From c60e6d76e15f99c8d35faef621e67479d4d2c395 Mon Sep 17 00:00:00 2001
From: Chris Cassano <1285652+glitch003@users.noreply.github.com>
Date: Sat, 4 Jan 2025 08:07:14 +0700
Subject: [PATCH] Feature/bundled js (#3)
* now bundling JS
* dev command
* fixed test setup
* tests should work with env vars now
* tests fixed locally
* add dotenv dependency in correct place
* run on warpbuild
* remove yarn - using npm for this project
* remove server.log
* removed server.log
* output server logs
---
.env.example | 1 +
.github/workflows/js-sdk.yml | 4 +-
.github/workflows/python-sdk.yml | 8 +-
.gitignore | 9 +-
js-sdk-server/package-lock.json | 446 +
js-sdk-server/package.json | 9 +-
js-sdk-server/server.js | 14 +-
js-sdk-server/server.log | 537 -
js-sdk-server/test.js | 32 +
js-sdk-server/utils.js | 8 +-
js-sdk-server/yarn.lock | 1743 -
python/lit_python_sdk/bundled_server.js | 291436 +++++++++++++++++++++
python/lit_python_sdk/client.py | 8 +
python/lit_python_sdk/requirements.txt | 1 -
python/lit_python_sdk/server.py | 13 +-
python/pyproject.toml | 11 +-
python/tests/test_client.py | 14 +-
17 files changed, 291992 insertions(+), 2302 deletions(-)
create mode 100644 .env.example
delete mode 100644 js-sdk-server/server.log
delete mode 100644 js-sdk-server/yarn.lock
create mode 100644 python/lit_python_sdk/bundled_server.js
delete mode 100644 python/lit_python_sdk/requirements.txt
diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..d0acb5f
--- /dev/null
+++ b/.env.example
@@ -0,0 +1 @@
+LIT_POLYGLOT_SDK_TEST_PRIVATE_KEY=""
\ No newline at end of file
diff --git a/.github/workflows/js-sdk.yml b/.github/workflows/js-sdk.yml
index b7b779b..91658cf 100644
--- a/.github/workflows/js-sdk.yml
+++ b/.github/workflows/js-sdk.yml
@@ -12,7 +12,7 @@ on:
jobs:
test:
- runs-on: ubuntu-latest
+ runs-on: warp-ubuntu-latest-x64-2x
steps:
- uses: actions/checkout@v3
@@ -30,4 +30,6 @@ jobs:
- name: Run tests
working-directory: js-sdk-server
+ env:
+ LIT_POLYGLOT_SDK_TEST_PRIVATE_KEY: ${{ secrets.LIT_POLYGLOT_SDK_TEST_PRIVATE_KEY }}
run: npm test
diff --git a/.github/workflows/python-sdk.yml b/.github/workflows/python-sdk.yml
index 68ce14d..907dc9d 100644
--- a/.github/workflows/python-sdk.yml
+++ b/.github/workflows/python-sdk.yml
@@ -12,7 +12,7 @@ on:
jobs:
test:
- runs-on: ubuntu-latest
+ runs-on: warp-ubuntu-latest-x64-2x
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11"]
@@ -35,5 +35,11 @@ jobs:
- name: Run tests
working-directory: python
+ env:
+ LIT_POLYGLOT_SDK_TEST_PRIVATE_KEY: ${{ secrets.LIT_POLYGLOT_SDK_TEST_PRIVATE_KEY }}
run: |
pytest tests/ -v
+ if [ -f lit_python_sdk/server.log ]; then
+ echo "Server log contents:"
+ cat lit_python_sdk/server.log
+ fi
diff --git a/.gitignore b/.gitignore
index e053bc4..773ca1c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,7 +27,10 @@ node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
+
+# general
lit-session-storage/
+server.log
# IDE
.idea/
@@ -36,4 +39,8 @@ lit-session-storage/
*.swo
# Mac
-.DS_Store
\ No newline at end of file
+.DS_Store
+
+# misc
+.env
+.env.local
\ No newline at end of file
diff --git a/js-sdk-server/package-lock.json b/js-sdk-server/package-lock.json
index fa483da..a58a384 100644
--- a/js-sdk-server/package-lock.json
+++ b/js-sdk-server/package-lock.json
@@ -14,10 +14,14 @@
"@lit-protocol/lit-node-client-nodejs": "7.0.1-alpha-0",
"body-parser": "^1.20.2",
"concurrently": "^8.2.2",
+ "dotenv": "^16.4.7",
"ethers": "^5.7.2",
"express": "^4.18.2",
"node-fetch": "^2.6.9",
"node-localstorage": "^3.0.5"
+ },
+ "devDependencies": {
+ "esbuild": "^0.20.1"
}
},
"node_modules/@babel/runtime": {
@@ -31,6 +35,397 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz",
+ "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz",
+ "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz",
+ "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz",
+ "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz",
+ "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz",
+ "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz",
+ "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz",
+ "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz",
+ "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz",
+ "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz",
+ "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz",
+ "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz",
+ "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz",
+ "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz",
+ "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz",
+ "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz",
+ "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz",
+ "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz",
+ "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz",
+ "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz",
+ "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz",
+ "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz",
+ "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/@ethersproject/abi": {
"version": "5.7.0",
"resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz",
@@ -1583,6 +1978,18 @@
"npm": "1.2.8000 || >= 1.4.16"
}
},
+ "node_modules/dotenv": {
+ "version": "16.4.7",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
+ "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@@ -1620,6 +2027,45 @@
"node": ">= 0.4"
}
},
+ "node_modules/esbuild": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz",
+ "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.20.2",
+ "@esbuild/android-arm": "0.20.2",
+ "@esbuild/android-arm64": "0.20.2",
+ "@esbuild/android-x64": "0.20.2",
+ "@esbuild/darwin-arm64": "0.20.2",
+ "@esbuild/darwin-x64": "0.20.2",
+ "@esbuild/freebsd-arm64": "0.20.2",
+ "@esbuild/freebsd-x64": "0.20.2",
+ "@esbuild/linux-arm": "0.20.2",
+ "@esbuild/linux-arm64": "0.20.2",
+ "@esbuild/linux-ia32": "0.20.2",
+ "@esbuild/linux-loong64": "0.20.2",
+ "@esbuild/linux-mips64el": "0.20.2",
+ "@esbuild/linux-ppc64": "0.20.2",
+ "@esbuild/linux-riscv64": "0.20.2",
+ "@esbuild/linux-s390x": "0.20.2",
+ "@esbuild/linux-x64": "0.20.2",
+ "@esbuild/netbsd-x64": "0.20.2",
+ "@esbuild/openbsd-x64": "0.20.2",
+ "@esbuild/sunos-x64": "0.20.2",
+ "@esbuild/win32-arm64": "0.20.2",
+ "@esbuild/win32-ia32": "0.20.2",
+ "@esbuild/win32-x64": "0.20.2"
+ }
+ },
"node_modules/escalade": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
diff --git a/js-sdk-server/package.json b/js-sdk-server/package.json
index 641bad9..2cfbb0a 100644
--- a/js-sdk-server/package.json
+++ b/js-sdk-server/package.json
@@ -4,8 +4,9 @@
"main": "index.js",
"scripts": {
"start": "node server.js",
- "test:only": "node test.js",
- "test": "concurrently \"node server.js\" \"sleep 2 && node test.js\""
+ "test": "node test.js",
+ "build": "esbuild server.js --bundle --platform=node --outfile=../python/lit_python_sdk/bundled_server.js",
+ "dev": "esbuild server.js --bundle --platform=node --outfile=../python/lit_python_sdk/bundled_server.js --watch"
},
"keywords": [],
"author": "",
@@ -17,9 +18,13 @@
"@lit-protocol/lit-node-client-nodejs": "7.0.1-alpha-0",
"body-parser": "^1.20.2",
"concurrently": "^8.2.2",
+ "dotenv": "^16.4.7",
"ethers": "^5.7.2",
"express": "^4.18.2",
"node-fetch": "^2.6.9",
"node-localstorage": "^3.0.5"
+ },
+ "devDependencies": {
+ "esbuild": "^0.20.1"
}
}
diff --git a/js-sdk-server/server.js b/js-sdk-server/server.js
index 07d81e9..87f01b8 100644
--- a/js-sdk-server/server.js
+++ b/js-sdk-server/server.js
@@ -41,6 +41,16 @@ app.use((req, res, next) => {
next();
});
+// set the wallet used to talk to the Lit Nodes
+app.post("/setAuthToken", (req, res) => {
+ const { authToken } = req.body;
+ app.locals.ethersWallet = new ethers.Wallet(
+ authToken,
+ new ethers.providers.JsonRpcProvider(LIT_RPC.CHRONICLE_YELLOWSTONE)
+ );
+ res.json({ success: true });
+});
+
// generate session key and get session delegation
app.post("/isReady", (req, res) => {
try {
@@ -165,10 +175,6 @@ app.listen(port, async () => {
litNetwork: LitNetwork.DatilDev,
});
await app.locals.litNodeClient.connect();
- app.locals.ethersWallet = new ethers.Wallet(
- process.env.LIT_PYTHON_SDK_PRIVATE_KEY,
- new ethers.providers.JsonRpcProvider(LIT_RPC.CHRONICLE_YELLOWSTONE)
- );
// see if we can load the pkp from local storage
const pkp = localStorage.getItem("pkp");
if (pkp) {
diff --git a/js-sdk-server/server.log b/js-sdk-server/server.log
deleted file mode 100644
index d4070c6..0000000
--- a/js-sdk-server/server.log
+++ /dev/null
@@ -1,537 +0,0 @@
-
-> js-sdk-server@1.0.0 start
-> node server.js
-
-Fri, 03 Jan 2025 23:44:37 GMT lit-js-sdk:constants:errors deprecated LitErrorKind is deprecated and will be removed in a future version. Use LIT_ERROR_KIND instead. at node:internal/modules/cjs/loader:1358:14
-Fri, 03 Jan 2025 23:44:37 GMT lit-js-sdk:constants:constants deprecated LitNetwork is deprecated and will be removed in a future version. Use LIT_NETWORK instead. at server.js:165:28
-Fri, 03 Jan 2025 23:44:37 GMT lit-js-sdk:constants:constants deprecated LogLevel is deprecated and will be removed in a future version. Use LOG_LEVEL instead. at node_modules/@lit-protocol/core/src/lib/lit-core.js:446:90
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.389Z] [36m[DEBUG][0m [contract-sdk] Validator's URL: https://15.235.83.220:7470
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.390Z] [36m[DEBUG][0m [core] [_getValidatorData] epochInfo: {
- epochLength: 300,
- number: 22504,
- endTime: 1730943027,
- retries: 0,
- timeout: 60
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.391Z] [36m[DEBUG][0m [core] [_getValidatorData] minNodeCount: 2
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.391Z] [36m[DEBUG][0m [core] [_getValidatorData] Bootstrap urls: [
- 'https://15.235.83.220:7470',
- 'https://15.235.83.220:7472',
- 'https://15.235.83.220:7471'
-]
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.391Z] [36m[DEBUG][0m [core] [_getValidatorData] stakingContract: 0xD4507CD392Af2c80919219d7896508728f6A623F
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.391Z] [36m[DEBUG][0m [core] handshakeWithNode https://15.235.83.220:7470/web/handshake/
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.392Z] [36m[DEBUG][0m [core] [36m[id: 4a34463c5c77a][0m sendCommandToNode with url https://15.235.83.220:7470/web/handshake/ and data {
- clientPublicKey: 'test',
- challenge: '5301ea82088ed708b3ed67027d95247b9a9c840b7714529e37a41a2febb7fef0',
- epoch: 22504
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.401Z] [36m[DEBUG][0m [core] handshakeWithNode https://15.235.83.220:7472/web/handshake/
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.401Z] [36m[DEBUG][0m [core] [36m[id: 4a34463c5c77a][0m sendCommandToNode with url https://15.235.83.220:7472/web/handshake/ and data {
- clientPublicKey: 'test',
- challenge: '8c9f96a6f6cc045e034722ab784542d76809a0b4d8b76e187eee51d6c350abd5',
- epoch: 22504
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.402Z] [36m[DEBUG][0m [core] handshakeWithNode https://15.235.83.220:7471/web/handshake/
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.402Z] [36m[DEBUG][0m [core] [36m[id: 4a34463c5c77a][0m sendCommandToNode with url https://15.235.83.220:7471/web/handshake/ and data {
- clientPublicKey: 'test',
- challenge: '5ca0902b095c669129473c940cd0a54e000f2fc2a35f58bbdfff6e046d38f99c',
- epoch: 22504
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.669Z] [36m[DEBUG][0m [core] Handshake with https://15.235.83.220:7472 returned keys: {
- serverPubKey: '',
- subnetPubKey: '82b7ec4aac62a87aba55f6920862e021df37c445a075e72d87a64c3573aea67cfbb59a7be671e785fb3cb05d242cf2e6',
- networkPubKey: '82b7ec4aac62a87aba55f6920862e021df37c445a075e72d87a64c3573aea67cfbb59a7be671e785fb3cb05d242cf2e6',
- networkPubKeySet: '82b7ec4aac62a87aba55f6920862e021df37c445a075e72d87a64c3573aea67cfbb59a7be671e785fb3cb05d242cf2e6',
- hdRootPubkeys: [
- '03ab0ccc2dc8a3d9c2de9a7421b171475a09e60cb546fe446a9d0c3aadb8f639ae',
- '03b6300abf338b504b7b49eb83b59554d12232b9f390f6bb5bf06150b812678b53',
- '039911489c48624554fef51f37323053953def50ed3b40e69620d0a6bcb4ffdc2f',
- '034feeda3a7912131c980ae8b6376611dd5052d574979247d64da8bb1446e240d7',
- '023dd81dba4b89da5e4c3dec5da93ba0e1addc0eafbe03487450c42e28628570d1',
- '0346ac7da954f1b8ee891b79eb8cf45bafef62c85dffc1dc41e4b755bc0428689f',
- '0222be55763b2339daf0c149e5e6e927894e0667671de47a591fc24f38eef48cd3',
- '0313cce430e8c79053e02460e880ec36f1d64763617b47e0a2f83d06caae86c27a',
- '023e4f4020ea03b0631b02cbb595631e6bbbd563f1fe9f1cf953b29ea8a2d26a85',
- '0332914fa7b8ca6083139bb969650c26b092fe9990ef188daada9e4049bef58899'
- ],
- latestBlockhash: '0x0dca7ec19ab5aa6ffa022d1e05eddb4df2703292d43bb2d73e5e3495f5039118'
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.670Z] [36m[DEBUG][0m [core] Handshake with https://15.235.83.220:7471 returned keys: {
- serverPubKey: '',
- subnetPubKey: '82b7ec4aac62a87aba55f6920862e021df37c445a075e72d87a64c3573aea67cfbb59a7be671e785fb3cb05d242cf2e6',
- networkPubKey: '82b7ec4aac62a87aba55f6920862e021df37c445a075e72d87a64c3573aea67cfbb59a7be671e785fb3cb05d242cf2e6',
- networkPubKeySet: '82b7ec4aac62a87aba55f6920862e021df37c445a075e72d87a64c3573aea67cfbb59a7be671e785fb3cb05d242cf2e6',
- hdRootPubkeys: [
- '03ab0ccc2dc8a3d9c2de9a7421b171475a09e60cb546fe446a9d0c3aadb8f639ae',
- '03b6300abf338b504b7b49eb83b59554d12232b9f390f6bb5bf06150b812678b53',
- '039911489c48624554fef51f37323053953def50ed3b40e69620d0a6bcb4ffdc2f',
- '034feeda3a7912131c980ae8b6376611dd5052d574979247d64da8bb1446e240d7',
- '023dd81dba4b89da5e4c3dec5da93ba0e1addc0eafbe03487450c42e28628570d1',
- '0346ac7da954f1b8ee891b79eb8cf45bafef62c85dffc1dc41e4b755bc0428689f',
- '0222be55763b2339daf0c149e5e6e927894e0667671de47a591fc24f38eef48cd3',
- '0313cce430e8c79053e02460e880ec36f1d64763617b47e0a2f83d06caae86c27a',
- '023e4f4020ea03b0631b02cbb595631e6bbbd563f1fe9f1cf953b29ea8a2d26a85',
- '0332914fa7b8ca6083139bb969650c26b092fe9990ef188daada9e4049bef58899'
- ],
- latestBlockhash: '0x0dca7ec19ab5aa6ffa022d1e05eddb4df2703292d43bb2d73e5e3495f5039118'
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.671Z] [36m[DEBUG][0m [core] Handshake with https://15.235.83.220:7470 returned keys: {
- serverPubKey: '',
- subnetPubKey: '82b7ec4aac62a87aba55f6920862e021df37c445a075e72d87a64c3573aea67cfbb59a7be671e785fb3cb05d242cf2e6',
- networkPubKey: '82b7ec4aac62a87aba55f6920862e021df37c445a075e72d87a64c3573aea67cfbb59a7be671e785fb3cb05d242cf2e6',
- networkPubKeySet: '82b7ec4aac62a87aba55f6920862e021df37c445a075e72d87a64c3573aea67cfbb59a7be671e785fb3cb05d242cf2e6',
- hdRootPubkeys: [
- '03ab0ccc2dc8a3d9c2de9a7421b171475a09e60cb546fe446a9d0c3aadb8f639ae',
- '03b6300abf338b504b7b49eb83b59554d12232b9f390f6bb5bf06150b812678b53',
- '039911489c48624554fef51f37323053953def50ed3b40e69620d0a6bcb4ffdc2f',
- '034feeda3a7912131c980ae8b6376611dd5052d574979247d64da8bb1446e240d7',
- '023dd81dba4b89da5e4c3dec5da93ba0e1addc0eafbe03487450c42e28628570d1',
- '0346ac7da954f1b8ee891b79eb8cf45bafef62c85dffc1dc41e4b755bc0428689f',
- '0222be55763b2339daf0c149e5e6e927894e0667671de47a591fc24f38eef48cd3',
- '0313cce430e8c79053e02460e880ec36f1d64763617b47e0a2f83d06caae86c27a',
- '023e4f4020ea03b0631b02cbb595631e6bbbd563f1fe9f1cf953b29ea8a2d26a85',
- '0332914fa7b8ca6083139bb969650c26b092fe9990ef188daada9e4049bef58899'
- ],
- latestBlockhash: '0x0dca7ec19ab5aa6ffa022d1e05eddb4df2703292d43bb2d73e5e3495f5039118'
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.672Z] [36m[DEBUG][0m [core] listening for state change on staking contract: 0xD4507CD392Af2c80919219d7896508728f6A623F
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.672Z] [36m[DEBUG][0m [core] 🔥 lit is ready. "litNodeClient" variable is ready to use globally.
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:37.673Z] [36m[DEBUG][0m [core] current network config {
- networkPubkey: '82b7ec4aac62a87aba55f6920862e021df37c445a075e72d87a64c3573aea67cfbb59a7be671e785fb3cb05d242cf2e6',
- networkPubKeySet: '82b7ec4aac62a87aba55f6920862e021df37c445a075e72d87a64c3573aea67cfbb59a7be671e785fb3cb05d242cf2e6',
- hdRootPubkeys: [
- '03ab0ccc2dc8a3d9c2de9a7421b171475a09e60cb546fe446a9d0c3aadb8f639ae',
- '03b6300abf338b504b7b49eb83b59554d12232b9f390f6bb5bf06150b812678b53',
- '039911489c48624554fef51f37323053953def50ed3b40e69620d0a6bcb4ffdc2f',
- '034feeda3a7912131c980ae8b6376611dd5052d574979247d64da8bb1446e240d7',
- '023dd81dba4b89da5e4c3dec5da93ba0e1addc0eafbe03487450c42e28628570d1',
- '0346ac7da954f1b8ee891b79eb8cf45bafef62c85dffc1dc41e4b755bc0428689f',
- '0222be55763b2339daf0c149e5e6e927894e0667671de47a591fc24f38eef48cd3',
- '0313cce430e8c79053e02460e880ec36f1d64763617b47e0a2f83d06caae86c27a',
- '023e4f4020ea03b0631b02cbb595631e6bbbd563f1fe9f1cf953b29ea8a2d26a85',
- '0332914fa7b8ca6083139bb969650c26b092fe9990ef188daada9e4049bef58899'
- ],
- subnetPubkey: '82b7ec4aac62a87aba55f6920862e021df37c445a075e72d87a64c3573aea67cfbb59a7be671e785fb3cb05d242cf2e6',
- latestBlockhash: '0x0dca7ec19ab5aa6ffa022d1e05eddb4df2703292d43bb2d73e5e3495f5039118'
-}
-Server running at http://localhost:3092
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.752Z] [36m[DEBUG][0m [core] Blockhash is still valid. No need to sync.
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.752Z] [36m[DEBUG][0m [core] getWalletSig - flow starts
- storageKey: lit-wallet-sig
- storedWalletSigOrError: {"type":"SUCCESS","result":"{\"sig\":\"0x8457ffb8e2874820dc71e41401ae92fc630cbe60dd6dad5671ad2ba0866f6dcc12044dc300b412cd7c0753a870dd473646218ce990d2dc8bd9dfdc20bcdf0ba41c\",\"derivedVia\":\"web3.eth.personal.sign\",\"signedMessage\":\"localhost wants you to sign in with your Ethereum account:\\n0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c\\n\\nThis is a test statement. You can put anything you want here. I further authorize the stated URI to perform the following actions on my behalf: (1) 'Threshold': 'Execution' for 'lit-litaction://*'. (2) 'Threshold': 'Signing' for 'lit-pkp://*'.\\n\\nURI: lit:session:1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a\\nVersion: 1\\nChain ID: 1\\nNonce: 0x3214e1ab52984a119ada3f3d8764628906bb0e1f71b0933e1f26d92f910556d6\\nIssued At: 2025-01-03T23:40:08.087Z\\nExpiration Time: 2025-01-03T23:50:08.068Z\\nResources:\\n- urn:recap:eyJhdHQiOnsibGl0LWxpdGFjdGlvbjovLyoiOnsiVGhyZXNob2xkL0V4ZWN1dGlvbiI6W3t9XX0sImxpdC1wa3A6Ly8qIjp7IlRocmVzaG9sZC9TaWduaW5nIjpbe31dfX0sInByZiI6W119\",\"address\":\"0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c\"}"}
-
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.753Z] [36m[DEBUG][0m [core] getWalletSig - flow 2
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.753Z] [36m[DEBUG][0m [core] getWalletSig - flow 2.1
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.753Z] [36m[DEBUG][0m [core] getWalletSig - flow 3
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.809Z] [36m[DEBUG][0m [core] signatures: {
- 'https://15.235.83.220:7472': {
- sig: '2e997b8b2e468b6a6f1aa86dd275b2083d7a432f64aace405d289c4a712e014958b565a75b03aff919e479f9d39a46d46c90dafc2682655853becc648404a004',
- derivedVia: 'litSessionSignViaNacl',
- signedMessage: `{"sessionKey":"1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a","resourceAbilityRequests":[{"resource":{"resource":"*","resourcePrefix":"lit-litaction"},"ability":"lit-action-execution"},{"resource":{"resource":"*","resourcePrefix":"lit-pkp"},"ability":"pkp-signing"}],"capabilities":[{"sig":"0x8457ffb8e2874820dc71e41401ae92fc630cbe60dd6dad5671ad2ba0866f6dcc12044dc300b412cd7c0753a870dd473646218ce990d2dc8bd9dfdc20bcdf0ba41c","derivedVia":"web3.eth.personal.sign","signedMessage":"localhost wants you to sign in with your Ethereum account:\\n0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c\\n\\nThis is a test statement. You can put anything you want here. I further authorize the stated URI to perform the following actions on my behalf: (1) 'Threshold': 'Execution' for 'lit-litaction://*'. (2) 'Threshold': 'Signing' for 'lit-pkp://*'.\\n\\nURI: lit:session:1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a\\nVersion: 1\\nChain ID: 1\\nNonce: 0x3214e1ab52984a119ada3f3d8764628906bb0e1f71b0933e1f26d92f910556d6\\nIssued At: 2025-01-03T23:40:08.087Z\\nExpiration Time: 2025-01-03T23:50:08.068Z\\nResources:\\n- urn:recap:eyJhdHQiOnsibGl0LWxpdGFjdGlvbjovLyoiOnsiVGhyZXNob2xkL0V4ZWN1dGlvbiI6W3t9XX0sImxpdC1wa3A6Ly8qIjp7IlRocmVzaG9sZC9TaWduaW5nIjpbe31dfX0sInByZiI6W119","address":"0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c"}],"issuedAt":"2025-01-03T23:44:39.773Z","expiration":"2025-01-03T23:54:39.751Z","nodeAddress":"https://15.235.83.220:7472"}`,
- address: '1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a',
- algo: 'ed25519'
- },
- 'https://15.235.83.220:7471': {
- sig: 'def2f9b2f7a7ded93415c94b2cd89d1d3001d679a492a1d0ff9c664f102c773032bb4e7b84eef3f35a3a4a285f81d30453772cfc2d044152b408d84364383406',
- derivedVia: 'litSessionSignViaNacl',
- signedMessage: `{"sessionKey":"1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a","resourceAbilityRequests":[{"resource":{"resource":"*","resourcePrefix":"lit-litaction"},"ability":"lit-action-execution"},{"resource":{"resource":"*","resourcePrefix":"lit-pkp"},"ability":"pkp-signing"}],"capabilities":[{"sig":"0x8457ffb8e2874820dc71e41401ae92fc630cbe60dd6dad5671ad2ba0866f6dcc12044dc300b412cd7c0753a870dd473646218ce990d2dc8bd9dfdc20bcdf0ba41c","derivedVia":"web3.eth.personal.sign","signedMessage":"localhost wants you to sign in with your Ethereum account:\\n0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c\\n\\nThis is a test statement. You can put anything you want here. I further authorize the stated URI to perform the following actions on my behalf: (1) 'Threshold': 'Execution' for 'lit-litaction://*'. (2) 'Threshold': 'Signing' for 'lit-pkp://*'.\\n\\nURI: lit:session:1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a\\nVersion: 1\\nChain ID: 1\\nNonce: 0x3214e1ab52984a119ada3f3d8764628906bb0e1f71b0933e1f26d92f910556d6\\nIssued At: 2025-01-03T23:40:08.087Z\\nExpiration Time: 2025-01-03T23:50:08.068Z\\nResources:\\n- urn:recap:eyJhdHQiOnsibGl0LWxpdGFjdGlvbjovLyoiOnsiVGhyZXNob2xkL0V4ZWN1dGlvbiI6W3t9XX0sImxpdC1wa3A6Ly8qIjp7IlRocmVzaG9sZC9TaWduaW5nIjpbe31dfX0sInByZiI6W119","address":"0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c"}],"issuedAt":"2025-01-03T23:44:39.773Z","expiration":"2025-01-03T23:54:39.751Z","nodeAddress":"https://15.235.83.220:7471"}`,
- address: '1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a',
- algo: 'ed25519'
- },
- 'https://15.235.83.220:7470': {
- sig: 'eaab274fe738170285852dc46a21a646de50aa13db59312aed46018da71986da49162b4dd7decaaeeea68860e27aa290fb1f5c312e90b763f8f2fae20041520e',
- derivedVia: 'litSessionSignViaNacl',
- signedMessage: `{"sessionKey":"1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a","resourceAbilityRequests":[{"resource":{"resource":"*","resourcePrefix":"lit-litaction"},"ability":"lit-action-execution"},{"resource":{"resource":"*","resourcePrefix":"lit-pkp"},"ability":"pkp-signing"}],"capabilities":[{"sig":"0x8457ffb8e2874820dc71e41401ae92fc630cbe60dd6dad5671ad2ba0866f6dcc12044dc300b412cd7c0753a870dd473646218ce990d2dc8bd9dfdc20bcdf0ba41c","derivedVia":"web3.eth.personal.sign","signedMessage":"localhost wants you to sign in with your Ethereum account:\\n0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c\\n\\nThis is a test statement. You can put anything you want here. I further authorize the stated URI to perform the following actions on my behalf: (1) 'Threshold': 'Execution' for 'lit-litaction://*'. (2) 'Threshold': 'Signing' for 'lit-pkp://*'.\\n\\nURI: lit:session:1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a\\nVersion: 1\\nChain ID: 1\\nNonce: 0x3214e1ab52984a119ada3f3d8764628906bb0e1f71b0933e1f26d92f910556d6\\nIssued At: 2025-01-03T23:40:08.087Z\\nExpiration Time: 2025-01-03T23:50:08.068Z\\nResources:\\n- urn:recap:eyJhdHQiOnsibGl0LWxpdGFjdGlvbjovLyoiOnsiVGhyZXNob2xkL0V4ZWN1dGlvbiI6W3t9XX0sImxpdC1wa3A6Ly8qIjp7IlRocmVzaG9sZC9TaWduaW5nIjpbe31dfX0sInByZiI6W119","address":"0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c"}],"issuedAt":"2025-01-03T23:44:39.773Z","expiration":"2025-01-03T23:54:39.751Z","nodeAddress":"https://15.235.83.220:7470"}`,
- address: '1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a',
- algo: 'ed25519'
- }
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.810Z] [36m[DEBUG][0m [core] The request time is at: 2025-01-03T23:44:39.810Z
-* Outer expiration:
- * Issued at: 2025-01-03T23:44:39.773Z
- * Expiration: 2025-01-03T23:54:39.751Z
- * Duration: 9 minutes, 59.978 seconds
- * Status: ✅ Not expired (valid for 9 minutes, 59.941 seconds)
-* Capabilities:
- * Capability 1 (web3.eth.personal.sign):
- * Issued at: 2025-01-03T23:40:08.087Z
- * Expiration: 2025-01-03T23:50:08.068Z
- * Duration: 9 minutes, 59.981 seconds
- * Status: ✅ Not expired (valid for 5 minutes, 28.258 seconds)
- * Attenuation:
- * lit-litaction://*
- * Threshold/Execution
- * lit-pkp://*
- * Threshold/Signing
-
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.811Z] [36m[DEBUG][0m [core] [36m[id: a6917bfc6966a][0m sendCommandToNode with url https://15.235.83.220:7472/web/execute/v1 and data {
- code: 'CiAgICAgICAgKGFzeW5jICgpID0+IHsKICAgICAgICAgICAgY29uc29sZS5sb2coIlRoaXMgaXMgYSBsb2ciKTsKICAgICAgICAgICAgTGl0LkFjdGlvbnMuc2V0UmVzcG9uc2Uoe3Jlc3BvbnNlOiAiSGVsbG8sIFdvcmxkISJ9KTsKICAgICAgICB9KSgpCiAgICA=',
- jsParams: undefined,
- authSig: {
- sig: '2e997b8b2e468b6a6f1aa86dd275b2083d7a432f64aace405d289c4a712e014958b565a75b03aff919e479f9d39a46d46c90dafc2682655853becc648404a004',
- derivedVia: 'litSessionSignViaNacl',
- signedMessage: `{"sessionKey":"1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a","resourceAbilityRequests":[{"resource":{"resource":"*","resourcePrefix":"lit-litaction"},"ability":"lit-action-execution"},{"resource":{"resource":"*","resourcePrefix":"lit-pkp"},"ability":"pkp-signing"}],"capabilities":[{"sig":"0x8457ffb8e2874820dc71e41401ae92fc630cbe60dd6dad5671ad2ba0866f6dcc12044dc300b412cd7c0753a870dd473646218ce990d2dc8bd9dfdc20bcdf0ba41c","derivedVia":"web3.eth.personal.sign","signedMessage":"localhost wants you to sign in with your Ethereum account:\\n0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c\\n\\nThis is a test statement. You can put anything you want here. I further authorize the stated URI to perform the following actions on my behalf: (1) 'Threshold': 'Execution' for 'lit-litaction://*'. (2) 'Threshold': 'Signing' for 'lit-pkp://*'.\\n\\nURI: lit:session:1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a\\nVersion: 1\\nChain ID: 1\\nNonce: 0x3214e1ab52984a119ada3f3d8764628906bb0e1f71b0933e1f26d92f910556d6\\nIssued At: 2025-01-03T23:40:08.087Z\\nExpiration Time: 2025-01-03T23:50:08.068Z\\nResources:\\n- urn:recap:eyJhdHQiOnsibGl0LWxpdGFjdGlvbjovLyoiOnsiVGhyZXNob2xkL0V4ZWN1dGlvbiI6W3t9XX0sImxpdC1wa3A6Ly8qIjp7IlRocmVzaG9sZC9TaWduaW5nIjpbe31dfX0sInByZiI6W119","address":"0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c"}],"issuedAt":"2025-01-03T23:44:39.773Z","expiration":"2025-01-03T23:54:39.751Z","nodeAddress":"https://15.235.83.220:7472"}`,
- address: '1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a',
- algo: 'ed25519'
- },
- epoch: 22504
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.811Z] [36m[DEBUG][0m [core] [36m[id: a6917bfc6966a][0m sendCommandToNode with url https://15.235.83.220:7471/web/execute/v1 and data {
- code: 'CiAgICAgICAgKGFzeW5jICgpID0+IHsKICAgICAgICAgICAgY29uc29sZS5sb2coIlRoaXMgaXMgYSBsb2ciKTsKICAgICAgICAgICAgTGl0LkFjdGlvbnMuc2V0UmVzcG9uc2Uoe3Jlc3BvbnNlOiAiSGVsbG8sIFdvcmxkISJ9KTsKICAgICAgICB9KSgpCiAgICA=',
- jsParams: undefined,
- authSig: {
- sig: 'def2f9b2f7a7ded93415c94b2cd89d1d3001d679a492a1d0ff9c664f102c773032bb4e7b84eef3f35a3a4a285f81d30453772cfc2d044152b408d84364383406',
- derivedVia: 'litSessionSignViaNacl',
- signedMessage: `{"sessionKey":"1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a","resourceAbilityRequests":[{"resource":{"resource":"*","resourcePrefix":"lit-litaction"},"ability":"lit-action-execution"},{"resource":{"resource":"*","resourcePrefix":"lit-pkp"},"ability":"pkp-signing"}],"capabilities":[{"sig":"0x8457ffb8e2874820dc71e41401ae92fc630cbe60dd6dad5671ad2ba0866f6dcc12044dc300b412cd7c0753a870dd473646218ce990d2dc8bd9dfdc20bcdf0ba41c","derivedVia":"web3.eth.personal.sign","signedMessage":"localhost wants you to sign in with your Ethereum account:\\n0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c\\n\\nThis is a test statement. You can put anything you want here. I further authorize the stated URI to perform the following actions on my behalf: (1) 'Threshold': 'Execution' for 'lit-litaction://*'. (2) 'Threshold': 'Signing' for 'lit-pkp://*'.\\n\\nURI: lit:session:1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a\\nVersion: 1\\nChain ID: 1\\nNonce: 0x3214e1ab52984a119ada3f3d8764628906bb0e1f71b0933e1f26d92f910556d6\\nIssued At: 2025-01-03T23:40:08.087Z\\nExpiration Time: 2025-01-03T23:50:08.068Z\\nResources:\\n- urn:recap:eyJhdHQiOnsibGl0LWxpdGFjdGlvbjovLyoiOnsiVGhyZXNob2xkL0V4ZWN1dGlvbiI6W3t9XX0sImxpdC1wa3A6Ly8qIjp7IlRocmVzaG9sZC9TaWduaW5nIjpbe31dfX0sInByZiI6W119","address":"0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c"}],"issuedAt":"2025-01-03T23:44:39.773Z","expiration":"2025-01-03T23:54:39.751Z","nodeAddress":"https://15.235.83.220:7471"}`,
- address: '1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a',
- algo: 'ed25519'
- },
- epoch: 22504
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.812Z] [36m[DEBUG][0m [core] [36m[id: a6917bfc6966a][0m sendCommandToNode with url https://15.235.83.220:7470/web/execute/v1 and data {
- code: 'CiAgICAgICAgKGFzeW5jICgpID0+IHsKICAgICAgICAgICAgY29uc29sZS5sb2coIlRoaXMgaXMgYSBsb2ciKTsKICAgICAgICAgICAgTGl0LkFjdGlvbnMuc2V0UmVzcG9uc2Uoe3Jlc3BvbnNlOiAiSGVsbG8sIFdvcmxkISJ9KTsKICAgICAgICB9KSgpCiAgICA=',
- jsParams: undefined,
- authSig: {
- sig: 'eaab274fe738170285852dc46a21a646de50aa13db59312aed46018da71986da49162b4dd7decaaeeea68860e27aa290fb1f5c312e90b763f8f2fae20041520e',
- derivedVia: 'litSessionSignViaNacl',
- signedMessage: `{"sessionKey":"1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a","resourceAbilityRequests":[{"resource":{"resource":"*","resourcePrefix":"lit-litaction"},"ability":"lit-action-execution"},{"resource":{"resource":"*","resourcePrefix":"lit-pkp"},"ability":"pkp-signing"}],"capabilities":[{"sig":"0x8457ffb8e2874820dc71e41401ae92fc630cbe60dd6dad5671ad2ba0866f6dcc12044dc300b412cd7c0753a870dd473646218ce990d2dc8bd9dfdc20bcdf0ba41c","derivedVia":"web3.eth.personal.sign","signedMessage":"localhost wants you to sign in with your Ethereum account:\\n0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c\\n\\nThis is a test statement. You can put anything you want here. I further authorize the stated URI to perform the following actions on my behalf: (1) 'Threshold': 'Execution' for 'lit-litaction://*'. (2) 'Threshold': 'Signing' for 'lit-pkp://*'.\\n\\nURI: lit:session:1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a\\nVersion: 1\\nChain ID: 1\\nNonce: 0x3214e1ab52984a119ada3f3d8764628906bb0e1f71b0933e1f26d92f910556d6\\nIssued At: 2025-01-03T23:40:08.087Z\\nExpiration Time: 2025-01-03T23:50:08.068Z\\nResources:\\n- urn:recap:eyJhdHQiOnsibGl0LWxpdGFjdGlvbjovLyoiOnsiVGhyZXNob2xkL0V4ZWN1dGlvbiI6W3t9XX0sImxpdC1wa3A6Ly8qIjp7IlRocmVzaG9sZC9TaWduaW5nIjpbe31dfX0sInByZiI6W119","address":"0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c"}],"issuedAt":"2025-01-03T23:44:39.773Z","expiration":"2025-01-03T23:54:39.751Z","nodeAddress":"https://15.235.83.220:7470"}`,
- address: '1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a',
- algo: 'ed25519'
- },
- epoch: 22504
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.985Z] [36m[DEBUG][0m [core] [36m[id: a6917bfc6966a][0m executeJs responseData from node : [
- {
- "success": true,
- "signedData": {},
- "decryptedData": {},
- "claimData": {},
- "response": "Hello, World!",
- "logs": "This is a log\n"
- },
- {
- "success": true,
- "signedData": {},
- "decryptedData": {},
- "claimData": {},
- "response": "Hello, World!",
- "logs": "This is a log\n"
- },
- {
- "success": true,
- "signedData": {},
- "decryptedData": {},
- "claimData": {},
- "response": "Hello, World!",
- "logs": "This is a log\n"
- }
-]
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.986Z] [36m[DEBUG][0m [core] strategy found to be most common, taking most common response from execution results
-Fri, 03 Jan 2025 23:44:39 GMT lit-js-sdk:constants:constants deprecated LitNetwork is deprecated and will be removed in a future version. Use LIT_NETWORK instead. at server.js:93:25
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.992Z] [36m[DEBUG][0m [contract-sdk] ----- We're in node! -----
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.992Z] [36m[DEBUG][0m [contract-sdk] Your Signer: Wallet {
- _isSigner: true,
- _signingKey: [Function (anonymous)],
- _mnemonic: [Function (anonymous)],
- address: '0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c',
- provider: JsonRpcProvider {
- _isProvider: true,
- _events: [],
- _emitted: { block: -2 },
- disableCcipRead: false,
- formatter: Formatter { formats: [Object] },
- anyNetwork: false,
- _networkPromise: Promise { [Object] },
- _maxInternalBlockNumber: -1024,
- _lastBlockNumber: -2,
- _maxFilterBlockRange: 10,
- _pollingInterval: 4000,
- _fastQueryDate: 0,
- connection: { url: 'https://yellowstone-rpc.litprotocol.com' },
- _nextId: 43,
- _eventLoopCache: { detectNetwork: null, eth_chainId: null },
- _network: { chainId: 175188, name: 'unknown' }
- }
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.992Z] [36m[DEBUG][0m [contract-sdk] Your Provider: {
- url: 'https://yellowstone-rpc.litprotocol.com',
- skipFetchSetup: true
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:39.993Z] [36m[DEBUG][0m [contract-sdk] resolved contract addresses for: datil-dev {
- StakingBalances: '0x77F277D4858Ae589b2263FEfd50CaD7838fE4741',
- Staking: '0xD4507CD392Af2c80919219d7896508728f6A623F',
- Multisender: '0x116eBFb474C6aa13e1B8b19253fd0E3f226A982f',
- LITToken: '0x81d8f0e945E3Bdc735dA3E19C4Df77a8B91046Cd',
- PubkeyRouter: '0xbc01f21C58Ca83f25b09338401D53D4c2344D1d9',
- PKPNFT: '0x02C4242F72d62c8fEF2b2DB088A35a9F4ec741C7',
- RateLimitNFT: '0x1A12D5B3D6A52B3bDe0468900795D35ce994ac2b',
- PKPHelper: '0xCa9C62fB4ceA8831eBb6fD9fE747Cc372515CF7f',
- PKPPermissions: '0xf64638F1eb3b064f5443F7c9e2Dc050ed535D891',
- PKPNFTMetadata: '0x784A743bBBB5f5225CeC7979A3304179be17D66d',
- Allowlist: '0xC60051658E346554C1F572ef3Aa4bD8596E026b6'
-}
-Fri, 03 Jan 2025 23:44:40 GMT lit-js-sdk:constants:constants deprecated AuthMethodType is deprecated and will be removed in a future version. Use AUTH_METHOD_TYPE instead. at server.js:122:36
-Fri, 03 Jan 2025 23:44:40 GMT lit-js-sdk:constants:constants deprecated AuthMethodScope is deprecated and will be removed in a future version. Use AUTH_METHOD_SCOPE instead. at server.js:128:30
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:40.742Z] [36m[DEBUG][0m [contract-sdk] tokenId: 0xe4e64fe535568f620a2cd4d5d4218e64bcb86a3e8d924f5cb870726539eb2e10
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:40.786Z] [36m[DEBUG][0m [contract-sdk] pkp pub key: 0x049e967fa79fd937486bb1e98891a6a420e7e68ff1687418af7444c10ab324a79c644c074225f899e86da8c9da4b10e1e8c7343b0bfb4669ac3f95887e08487a57
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:40.839Z] [36m[DEBUG][0m [core] The request time is at: 2025-01-03T23:44:40.839Z
-* Outer expiration:
- * Issued at: 2025-01-03T23:44:40.809Z
- * Expiration: 2025-01-03T23:54:40.799Z
- * Duration: 9 minutes, 59.990 seconds
- * Status: ✅ Not expired (valid for 9 minutes, 59.960 seconds)
-* Capabilities:
- * Capability 1 (web3.eth.personal.sign):
- * Issued at: 2025-01-03T23:40:08.087Z
- * Expiration: 2025-01-03T23:50:08.068Z
- * Duration: 9 minutes, 59.981 seconds
- * Status: ✅ Not expired (valid for 5 minutes, 27.229 seconds)
- * Attenuation:
- * lit-litaction://*
- * Threshold/Execution
- * lit-pkp://*
- * Threshold/Signing
-
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:40.839Z] [36m[DEBUG][0m [core] [36m[id: ff2b3f2992127][0m reqBody: {
- toSign: [
- 173, 178, 4, 32, 189, 232, 205, 166,
- 119, 18, 73, 24, 136, 23, 9, 143,
- 202, 140, 207, 142, 239, 33, 32, 163,
- 30, 63, 100, 245, 129, 32, 38, 191
- ],
- pubkey: '0x049e967fa79fd937486bb1e98891a6a420e7e68ff1687418af7444c10ab324a79c644c074225f899e86da8c9da4b10e1e8c7343b0bfb4669ac3f95887e08487a57',
- authSig: {
- sig: '175c2ca9c608ca5fd6298dace4115cd0bc058277e133a17d0ef0144d41f2978d32b3f18a0f8f7b3bcd4d7152d6e0e15f7aad17c6b65ec5bf45dba7893a42a70e',
- derivedVia: 'litSessionSignViaNacl',
- signedMessage: `{"sessionKey":"1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a","resourceAbilityRequests":[{"resource":{"resource":"*","resourcePrefix":"lit-litaction"},"ability":"lit-action-execution"},{"resource":{"resource":"*","resourcePrefix":"lit-pkp"},"ability":"pkp-signing"}],"capabilities":[{"sig":"0x8457ffb8e2874820dc71e41401ae92fc630cbe60dd6dad5671ad2ba0866f6dcc12044dc300b412cd7c0753a870dd473646218ce990d2dc8bd9dfdc20bcdf0ba41c","derivedVia":"web3.eth.personal.sign","signedMessage":"localhost wants you to sign in with your Ethereum account:\\n0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c\\n\\nThis is a test statement. You can put anything you want here. I further authorize the stated URI to perform the following actions on my behalf: (1) 'Threshold': 'Execution' for 'lit-litaction://*'. (2) 'Threshold': 'Signing' for 'lit-pkp://*'.\\n\\nURI: lit:session:1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a\\nVersion: 1\\nChain ID: 1\\nNonce: 0x3214e1ab52984a119ada3f3d8764628906bb0e1f71b0933e1f26d92f910556d6\\nIssued At: 2025-01-03T23:40:08.087Z\\nExpiration Time: 2025-01-03T23:50:08.068Z\\nResources:\\n- urn:recap:eyJhdHQiOnsibGl0LWxpdGFjdGlvbjovLyoiOnsiVGhyZXNob2xkL0V4ZWN1dGlvbiI6W3t9XX0sImxpdC1wa3A6Ly8qIjp7IlRocmVzaG9sZC9TaWduaW5nIjpbe31dfX0sInByZiI6W119","address":"0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c"}],"issuedAt":"2025-01-03T23:44:40.809Z","expiration":"2025-01-03T23:54:40.799Z","nodeAddress":"https://15.235.83.220:7472"}`,
- address: '1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a',
- algo: 'ed25519'
- }
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:40.840Z] [36m[DEBUG][0m [core] [36m[id: ff2b3f2992127][0m sendCommandToNode with url https://15.235.83.220:7472/web/pkp/sign/v1 and data {
- toSign: [
- 173, 178, 4, 32, 189, 232, 205, 166,
- 119, 18, 73, 24, 136, 23, 9, 143,
- 202, 140, 207, 142, 239, 33, 32, 163,
- 30, 63, 100, 245, 129, 32, 38, 191
- ],
- pubkey: '0x049e967fa79fd937486bb1e98891a6a420e7e68ff1687418af7444c10ab324a79c644c074225f899e86da8c9da4b10e1e8c7343b0bfb4669ac3f95887e08487a57',
- authSig: {
- sig: '175c2ca9c608ca5fd6298dace4115cd0bc058277e133a17d0ef0144d41f2978d32b3f18a0f8f7b3bcd4d7152d6e0e15f7aad17c6b65ec5bf45dba7893a42a70e',
- derivedVia: 'litSessionSignViaNacl',
- signedMessage: `{"sessionKey":"1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a","resourceAbilityRequests":[{"resource":{"resource":"*","resourcePrefix":"lit-litaction"},"ability":"lit-action-execution"},{"resource":{"resource":"*","resourcePrefix":"lit-pkp"},"ability":"pkp-signing"}],"capabilities":[{"sig":"0x8457ffb8e2874820dc71e41401ae92fc630cbe60dd6dad5671ad2ba0866f6dcc12044dc300b412cd7c0753a870dd473646218ce990d2dc8bd9dfdc20bcdf0ba41c","derivedVia":"web3.eth.personal.sign","signedMessage":"localhost wants you to sign in with your Ethereum account:\\n0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c\\n\\nThis is a test statement. You can put anything you want here. I further authorize the stated URI to perform the following actions on my behalf: (1) 'Threshold': 'Execution' for 'lit-litaction://*'. (2) 'Threshold': 'Signing' for 'lit-pkp://*'.\\n\\nURI: lit:session:1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a\\nVersion: 1\\nChain ID: 1\\nNonce: 0x3214e1ab52984a119ada3f3d8764628906bb0e1f71b0933e1f26d92f910556d6\\nIssued At: 2025-01-03T23:40:08.087Z\\nExpiration Time: 2025-01-03T23:50:08.068Z\\nResources:\\n- urn:recap:eyJhdHQiOnsibGl0LWxpdGFjdGlvbjovLyoiOnsiVGhyZXNob2xkL0V4ZWN1dGlvbiI6W3t9XX0sImxpdC1wa3A6Ly8qIjp7IlRocmVzaG9sZC9TaWduaW5nIjpbe31dfX0sInByZiI6W119","address":"0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c"}],"issuedAt":"2025-01-03T23:44:40.809Z","expiration":"2025-01-03T23:54:40.799Z","nodeAddress":"https://15.235.83.220:7472"}`,
- address: '1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a',
- algo: 'ed25519'
- },
- epoch: 22504
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:40.840Z] [36m[DEBUG][0m [core] [36m[id: ff2b3f2992127][0m sendCommandToNode with url https://15.235.83.220:7471/web/pkp/sign/v1 and data {
- toSign: [
- 173, 178, 4, 32, 189, 232, 205, 166,
- 119, 18, 73, 24, 136, 23, 9, 143,
- 202, 140, 207, 142, 239, 33, 32, 163,
- 30, 63, 100, 245, 129, 32, 38, 191
- ],
- pubkey: '0x049e967fa79fd937486bb1e98891a6a420e7e68ff1687418af7444c10ab324a79c644c074225f899e86da8c9da4b10e1e8c7343b0bfb4669ac3f95887e08487a57',
- authSig: {
- sig: 'fc9c150a3755958badf6fc2088a9c8ef518fd68649e5019b7e78d0a0f0a333d1280dfc348ff07ef19d36a871b07090d2e38f0d9c9ea072ddbaacd16a0e5caf09',
- derivedVia: 'litSessionSignViaNacl',
- signedMessage: `{"sessionKey":"1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a","resourceAbilityRequests":[{"resource":{"resource":"*","resourcePrefix":"lit-litaction"},"ability":"lit-action-execution"},{"resource":{"resource":"*","resourcePrefix":"lit-pkp"},"ability":"pkp-signing"}],"capabilities":[{"sig":"0x8457ffb8e2874820dc71e41401ae92fc630cbe60dd6dad5671ad2ba0866f6dcc12044dc300b412cd7c0753a870dd473646218ce990d2dc8bd9dfdc20bcdf0ba41c","derivedVia":"web3.eth.personal.sign","signedMessage":"localhost wants you to sign in with your Ethereum account:\\n0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c\\n\\nThis is a test statement. You can put anything you want here. I further authorize the stated URI to perform the following actions on my behalf: (1) 'Threshold': 'Execution' for 'lit-litaction://*'. (2) 'Threshold': 'Signing' for 'lit-pkp://*'.\\n\\nURI: lit:session:1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a\\nVersion: 1\\nChain ID: 1\\nNonce: 0x3214e1ab52984a119ada3f3d8764628906bb0e1f71b0933e1f26d92f910556d6\\nIssued At: 2025-01-03T23:40:08.087Z\\nExpiration Time: 2025-01-03T23:50:08.068Z\\nResources:\\n- urn:recap:eyJhdHQiOnsibGl0LWxpdGFjdGlvbjovLyoiOnsiVGhyZXNob2xkL0V4ZWN1dGlvbiI6W3t9XX0sImxpdC1wa3A6Ly8qIjp7IlRocmVzaG9sZC9TaWduaW5nIjpbe31dfX0sInByZiI6W119","address":"0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c"}],"issuedAt":"2025-01-03T23:44:40.809Z","expiration":"2025-01-03T23:54:40.799Z","nodeAddress":"https://15.235.83.220:7471"}`,
- address: '1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a',
- algo: 'ed25519'
- },
- epoch: 22504
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:40.840Z] [36m[DEBUG][0m [core] [36m[id: ff2b3f2992127][0m sendCommandToNode with url https://15.235.83.220:7470/web/pkp/sign/v1 and data {
- toSign: [
- 173, 178, 4, 32, 189, 232, 205, 166,
- 119, 18, 73, 24, 136, 23, 9, 143,
- 202, 140, 207, 142, 239, 33, 32, 163,
- 30, 63, 100, 245, 129, 32, 38, 191
- ],
- pubkey: '0x049e967fa79fd937486bb1e98891a6a420e7e68ff1687418af7444c10ab324a79c644c074225f899e86da8c9da4b10e1e8c7343b0bfb4669ac3f95887e08487a57',
- authSig: {
- sig: '76eae56459bcf1166b8457ccc917dd7fd875f00268bedf15cc585af273ad0980ca19e3f1965bd723b1979fb61603c4b62aa9f862f91ca72b69c15ffb0fa6a408',
- derivedVia: 'litSessionSignViaNacl',
- signedMessage: `{"sessionKey":"1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a","resourceAbilityRequests":[{"resource":{"resource":"*","resourcePrefix":"lit-litaction"},"ability":"lit-action-execution"},{"resource":{"resource":"*","resourcePrefix":"lit-pkp"},"ability":"pkp-signing"}],"capabilities":[{"sig":"0x8457ffb8e2874820dc71e41401ae92fc630cbe60dd6dad5671ad2ba0866f6dcc12044dc300b412cd7c0753a870dd473646218ce990d2dc8bd9dfdc20bcdf0ba41c","derivedVia":"web3.eth.personal.sign","signedMessage":"localhost wants you to sign in with your Ethereum account:\\n0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c\\n\\nThis is a test statement. You can put anything you want here. I further authorize the stated URI to perform the following actions on my behalf: (1) 'Threshold': 'Execution' for 'lit-litaction://*'. (2) 'Threshold': 'Signing' for 'lit-pkp://*'.\\n\\nURI: lit:session:1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a\\nVersion: 1\\nChain ID: 1\\nNonce: 0x3214e1ab52984a119ada3f3d8764628906bb0e1f71b0933e1f26d92f910556d6\\nIssued At: 2025-01-03T23:40:08.087Z\\nExpiration Time: 2025-01-03T23:50:08.068Z\\nResources:\\n- urn:recap:eyJhdHQiOnsibGl0LWxpdGFjdGlvbjovLyoiOnsiVGhyZXNob2xkL0V4ZWN1dGlvbiI6W3t9XX0sImxpdC1wa3A6Ly8qIjp7IlRocmVzaG9sZC9TaWduaW5nIjpbe31dfX0sInByZiI6W119","address":"0x046BF7BB88E0e0941358CE3F5A765C9acddA7B9c"}],"issuedAt":"2025-01-03T23:44:40.809Z","expiration":"2025-01-03T23:54:40.799Z","nodeAddress":"https://15.235.83.220:7470"}`,
- address: '1efc187488b759d1356766a0eaac03e5a458c801989abac75f8b702e2f47409a',
- algo: 'ed25519'
- },
- epoch: 22504
-}
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:41.805Z] [36m[DEBUG][0m [core] [36m[id: ff2b3f2992127][0m responseData [
- {
- "success": true,
- "signedData": [
- 173,
- 178,
- 4,
- 32,
- 189,
- 232,
- 205,
- 166,
- 119,
- 18,
- 73,
- 24,
- 136,
- 23,
- 9,
- 143,
- 202,
- 140,
- 207,
- 142,
- 239,
- 33,
- 32,
- 163,
- 30,
- 63,
- 100,
- 245,
- 129,
- 32,
- 38,
- 191
- ],
- "signatureShare": {
- "digest": "fail",
- "result": "fail",
- "share_index": 0,
- "signature_share": "",
- "big_r": "",
- "public_key": "",
- "sig_type": ""
- }
- },
- {
- "success": true,
- "signedData": [
- 173,
- 178,
- 4,
- 32,
- 189,
- 232,
- 205,
- 166,
- 119,
- 18,
- 73,
- 24,
- 136,
- 23,
- 9,
- 143,
- 202,
- 140,
- 207,
- 142,
- 239,
- 33,
- 32,
- 163,
- 30,
- 63,
- 100,
- 245,
- 129,
- 32,
- 38,
- 191
- ],
- "signatureShare": {
- "digest": "\"ADB20420BDE8CDA6771249188817098FCA8CCF8EEF2120A31E3F64F5812026BF\"",
- "result": "success",
- "share_index": 0,
- "signature_share": "\"E30A150613D9E516B78F0DF510A076378FB191BBFAACB67F3404B5DD03D32443\"",
- "big_r": "\"03C618F783460900861CED6BC2123210432D810FDC68EE1EC5FDCA524E7BCAC681\"",
- "public_key": "\"049E967FA79FD937486BB1E98891A6A420E7E68FF1687418AF7444C10AB324A79C644C074225F899E86DA8C9DA4B10E1E8C7343B0BFB4669AC3F95887E08487A57\"",
- "sig_type": "K256"
- }
- },
- {
- "success": true,
- "signedData": [
- 173,
- 178,
- 4,
- 32,
- 189,
- 232,
- 205,
- 166,
- 119,
- 18,
- 73,
- 24,
- 136,
- 23,
- 9,
- 143,
- 202,
- 140,
- 207,
- 142,
- 239,
- 33,
- 32,
- 163,
- 30,
- 63,
- 100,
- 245,
- 129,
- 32,
- 38,
- 191
- ],
- "signatureShare": {
- "digest": "\"ADB20420BDE8CDA6771249188817098FCA8CCF8EEF2120A31E3F64F5812026BF\"",
- "result": "success",
- "share_index": 0,
- "signature_share": "\"291151D9382E93472BE9F232CFBB965D69FACB4A4CCB7DBE8A174B69822A73BF\"",
- "big_r": "\"03C618F783460900861CED6BC2123210432D810FDC68EE1EC5FDCA524E7BCAC681\"",
- "public_key": "\"049E967FA79FD937486BB1E98891A6A420E7E68FF1687418AF7444C10AB324A79C644C074225F899E86DA8C9DA4B10E1E8C7343B0BFB4669AC3F95887E08487A57\"",
- "sig_type": "K256"
- }
- }
-]
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:41.806Z] [36m[DEBUG][0m [core] [36m[id: ff2b3f2992127][0m invalid field signatureShare in signature share: signature, continuing with share processing
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:41.806Z] [36m[DEBUG][0m [core] [36m[id: ff2b3f2992127][0m starting signature combine for sig name: sig [
- {
- sigType: 'K256',
- signatureShare: 'E30A150613D9E516B78F0DF510A076378FB191BBFAACB67F3404B5DD03D32443',
- shareIndex: 0,
- bigR: '03C618F783460900861CED6BC2123210432D810FDC68EE1EC5FDCA524E7BCAC681',
- publicKey: '049E967FA79FD937486BB1E98891A6A420E7E68FF1687418AF7444C10AB324A79C644C074225F899E86DA8C9DA4B10E1E8C7343B0BFB4669AC3F95887E08487A57',
- dataSigned: 'ADB20420BDE8CDA6771249188817098FCA8CCF8EEF2120A31E3F64F5812026BF',
- sigName: 'sig'
- },
- {
- sigType: 'K256',
- signatureShare: '291151D9382E93472BE9F232CFBB965D69FACB4A4CCB7DBE8A174B69822A73BF',
- shareIndex: 0,
- bigR: '03C618F783460900861CED6BC2123210432D810FDC68EE1EC5FDCA524E7BCAC681',
- publicKey: '049E967FA79FD937486BB1E98891A6A420E7E68FF1687418AF7444C10AB324A79C644C074225F899E86DA8C9DA4B10E1E8C7343B0BFB4669AC3F95887E08487A57',
- dataSigned: 'ADB20420BDE8CDA6771249188817098FCA8CCF8EEF2120A31E3F64F5812026BF',
- sigName: 'sig'
- }
-]
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:41.806Z] [36m[DEBUG][0m [core] [36m[id: ff2b3f2992127][0m number of shares for sig: 3
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:41.806Z] [36m[DEBUG][0m [core] [36m[id: ff2b3f2992127][0m validated length for signature: sig 2
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:41.806Z] [36m[DEBUG][0m [core] [36m[id: ff2b3f2992127][0m minimum required shares for threshold: 2
-using deprecated parameters for `initSync()`; pass a single object instead
-[Lit-JS-SDK v7.0.1-alpha-0] [2025-01-03T23:44:41.834Z] [36m[DEBUG][0m [core] [36m[id: ff2b3f2992127][0m signature combination {
- signature: {
- r: 'c618f783460900861ced6bc2123210432d810fdc68ee1ec5fdca524e7bcac681',
- s: '0c1b66df4c08785de3790027e05c0c963efd801f982f9401fe49a2b9b5c756c1',
- recid: 1,
- signature: '0xc618f783460900861ced6bc2123210432d810fdc68ee1ec5fdca524e7bcac6810c1b66df4c08785de3790027e05c0c963efd801f982f9401fe49a2b9b5c756c11c',
- publicKey: '049E967FA79FD937486BB1E98891A6A420E7E68FF1687418AF7444C10AB324A79C644C074225F899E86DA8C9DA4B10E1E8C7343B0BFB4669AC3F95887E08487A57',
- dataSigned: 'ADB20420BDE8CDA6771249188817098FCA8CCF8EEF2120A31E3F64F5812026BF'
- }
-}
diff --git a/js-sdk-server/test.js b/js-sdk-server/test.js
index f60fae8..3b09e66 100644
--- a/js-sdk-server/test.js
+++ b/js-sdk-server/test.js
@@ -1,5 +1,16 @@
const fetch = require("node-fetch");
+require("dotenv").config({ path: "../.env" });
const ethers = require("ethers");
+const { spawn } = require("child_process");
+
+async function startServer() {
+ console.log("Starting server in ", __dirname);
+ const server = spawn("npm", ["run", "start"], {
+ cwd: __dirname,
+ stdio: "inherit",
+ });
+ return server;
+}
async function checkIsReady() {
try {
@@ -31,6 +42,22 @@ async function waitUntilReady(maxAttempts = 30, delayMs = 1000) {
throw new Error("Server failed to become ready in time");
}
+async function testSetAuthToken() {
+ const response = await fetch("http://localhost:3092/setAuthToken", {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ authToken: process.env.LIT_POLYGLOT_SDK_TEST_PRIVATE_KEY,
+ }),
+ });
+ const data = await response.json();
+ if (!data.success) {
+ throw new Error("Failed to set auth token");
+ }
+}
+
async function testExecuteJs() {
try {
const response = await fetch("http://localhost:3092/executeJs", {
@@ -141,10 +168,15 @@ async function testSign() {
// Run the test with readiness check
async function runTest() {
try {
+ const serverHandle = await startServer();
await waitUntilReady();
+ await testSetAuthToken();
await testExecuteJs();
await testCreateWallet();
await testSign();
+ console.log("All tests passed!");
+ serverHandle.kill();
+ process.exit(0);
} catch (error) {
console.error("Test failed:", error);
process.exit(1);
diff --git a/js-sdk-server/utils.js b/js-sdk-server/utils.js
index 331279a..30a0857 100644
--- a/js-sdk-server/utils.js
+++ b/js-sdk-server/utils.js
@@ -5,11 +5,13 @@ const {
createSiweMessage,
generateAuthSig,
} = require("@lit-protocol/auth-helpers");
-const {
- LIT_ABILITY,
-} = require("@lit-protocol/constants");
+const { LIT_ABILITY } = require("@lit-protocol/constants");
async function getSessionSigs(app) {
+ if (!app.locals.ethersWallet) {
+ throw new Error("No Lit auth token set");
+ }
+
// get session sigs
const sessionSigs = await app.locals.litNodeClient.getSessionSigs({
chain: "ethereum",
diff --git a/js-sdk-server/yarn.lock b/js-sdk-server/yarn.lock
deleted file mode 100644
index 935e86e..0000000
--- a/js-sdk-server/yarn.lock
+++ /dev/null
@@ -1,1743 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@babel/runtime@^7.21.0":
- version "7.26.0"
- resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz"
- integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==
- dependencies:
- regenerator-runtime "^0.14.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==
- 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.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", "@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", "@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", "@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":
- 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", "@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", "@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":
- 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.7.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==
- 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.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", "@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", "@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", "@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", "@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":
- 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":
- 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", "@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", "@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", "@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", "@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", "@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/solidity@5.7.0":
- version "5.7.0"
- resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz"
- 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.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":
- 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/units@5.7.0":
- version "5.7.0"
- 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":
- 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", "@ethersproject/web@5.7.1":
- 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", "@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"
-
-"@lit-protocol/access-control-conditions@7.0.1-alpha-0":
- version "7.0.1-alpha-0"
- resolved "https://registry.npmjs.org/@lit-protocol/access-control-conditions/-/access-control-conditions-7.0.1-alpha-0.tgz"
- integrity sha512-dSvwhT0+PyCrpzp4BjisZ6jgH0rwEryjtVM1gDVmoVvOWzv5ZatEUdxjeh4RqwCv92pQYt/hWcuyUrCSK5pf8A==
- dependencies:
- "@ethersproject/abstract-provider" "5.7.0"
- "@ethersproject/contracts" "5.7.0"
- "@ethersproject/providers" "5.7.2"
- "@lit-protocol/accs-schemas" "^0.0.20"
- "@lit-protocol/constants" "7.0.1-alpha-0"
- "@lit-protocol/contracts" "^0.0.74"
- "@lit-protocol/logger" "7.0.1-alpha-0"
- "@lit-protocol/misc" "7.0.1-alpha-0"
- "@lit-protocol/types" "7.0.1-alpha-0"
- "@lit-protocol/uint8arrays" "7.0.1-alpha-0"
- "@openagenda/verror" "^3.1.4"
- ajv "^8.12.0"
- bech32 "^2.0.0"
- depd "^2.0.0"
- ethers "^5.7.1"
- siwe "^2.3.2"
- tslib "1.14.1"
- util "0.12.5"
-
-"@lit-protocol/accs-schemas@^0.0.20":
- version "0.0.20"
- resolved "https://registry.npmjs.org/@lit-protocol/accs-schemas/-/accs-schemas-0.0.20.tgz"
- integrity sha512-JHHX0q45nq1uQ4olkg4VIGLW9lzMnRRldeTDuOrOaoPVztz+2iSOjwzb+QmuSuKFQpP5SOej2zoQB+K8b22KDw==
- dependencies:
- ajv "^8.12.0"
-
-"@lit-protocol/auth-helpers@7.0.1-alpha-0":
- version "7.0.1-alpha-0"
- resolved "https://registry.npmjs.org/@lit-protocol/auth-helpers/-/auth-helpers-7.0.1-alpha-0.tgz"
- integrity sha512-kLQ8cEtRwaXkLRKi3TJyxSt2DD3MuUV3Mxlqfk8aHS7tvYzN/Ru3tX3jGAA1m3/oKQWnDL7L6qjxZSY/b4ySBA==
- dependencies:
- "@ethersproject/abstract-provider" "5.7.0"
- "@ethersproject/contracts" "5.7.0"
- "@ethersproject/providers" "5.7.2"
- "@lit-protocol/access-control-conditions" "7.0.1-alpha-0"
- "@lit-protocol/accs-schemas" "^0.0.20"
- "@lit-protocol/constants" "7.0.1-alpha-0"
- "@lit-protocol/contracts" "^0.0.74"
- "@lit-protocol/logger" "7.0.1-alpha-0"
- "@lit-protocol/misc" "7.0.1-alpha-0"
- "@lit-protocol/types" "7.0.1-alpha-0"
- "@lit-protocol/uint8arrays" "7.0.1-alpha-0"
- "@openagenda/verror" "^3.1.4"
- ajv "^8.12.0"
- bech32 "^2.0.0"
- depd "^2.0.0"
- ethers "^5.7.1"
- siwe "^2.3.2"
- siwe-recap "0.0.2-alpha.0"
- tslib "1.14.1"
- util "0.12.5"
-
-"@lit-protocol/constants@7.0.1-alpha-0":
- version "7.0.1-alpha-0"
- resolved "https://registry.npmjs.org/@lit-protocol/constants/-/constants-7.0.1-alpha-0.tgz"
- integrity sha512-TTZ0l0uwiRJ3rH37X0wbDOhzvhruCKAaicOa4oXNzptwVaHWud04nNopn0Tz+qO9G62p3MvuI5YMQxNrsvRdLg==
- dependencies:
- "@ethersproject/abstract-provider" "5.7.0"
- "@lit-protocol/accs-schemas" "^0.0.20"
- "@lit-protocol/contracts" "^0.0.74"
- "@lit-protocol/types" "7.0.1-alpha-0"
- "@openagenda/verror" "^3.1.4"
- depd "^2.0.0"
- ethers "^5.7.1"
- siwe "^2.3.2"
- tslib "1.14.1"
-
-"@lit-protocol/contracts-sdk@7.0.1-alpha-0":
- version "7.0.1-alpha-0"
- resolved "https://registry.npmjs.org/@lit-protocol/contracts-sdk/-/contracts-sdk-7.0.1-alpha-0.tgz"
- integrity sha512-w0WOcr9gWRcAdTnY++qt0yWjns7AT96z8xQ6kgxvN1AJBTjK9xso92Lt0ugpUKK4e4sUvIQ/b5jRJVACaji6yg==
- dependencies:
- "@ethersproject/abi" "5.7.0"
- "@ethersproject/abstract-provider" "5.7.0"
- "@ethersproject/contracts" "5.7.0"
- "@ethersproject/providers" "5.7.2"
- "@lit-protocol/accs-schemas" "^0.0.20"
- "@lit-protocol/constants" "7.0.1-alpha-0"
- "@lit-protocol/contracts" "^0.0.74"
- "@lit-protocol/logger" "7.0.1-alpha-0"
- "@lit-protocol/misc" "7.0.1-alpha-0"
- "@lit-protocol/types" "7.0.1-alpha-0"
- "@openagenda/verror" "^3.1.4"
- ajv "^8.12.0"
- bech32 "^2.0.0"
- depd "^2.0.0"
- ethers "^5.7.1"
- jose "^4.14.4"
- process "0.11.10"
- siwe "^2.3.2"
- tslib "1.14.1"
- util "0.12.5"
-
-"@lit-protocol/contracts@^0.0.74":
- version "0.0.74"
- resolved "https://registry.npmjs.org/@lit-protocol/contracts/-/contracts-0.0.74.tgz"
- integrity sha512-8uV038gzBp7ew7a4884SVt9Zhu8CtiTb+A8dKNnByxVoT1kFt4O4DmsaniV8p9AGjNR13IWfpU1NFChmPHVIpQ==
-
-"@lit-protocol/core@7.0.1-alpha-0":
- version "7.0.1-alpha-0"
- resolved "https://registry.npmjs.org/@lit-protocol/core/-/core-7.0.1-alpha-0.tgz"
- integrity sha512-scCJ+kjuNpRSNhDbvw4hjXzVZEmADVjqqB9Debmm66tnKvxGdldbzBfwbpJ1kzJ9ckj64yXAPfPQurMVI+p12g==
- dependencies:
- "@ethersproject/abi" "5.7.0"
- "@ethersproject/abstract-provider" "5.7.0"
- "@ethersproject/contracts" "5.7.0"
- "@ethersproject/providers" "5.7.2"
- "@lit-protocol/access-control-conditions" "7.0.1-alpha-0"
- "@lit-protocol/accs-schemas" "^0.0.20"
- "@lit-protocol/constants" "7.0.1-alpha-0"
- "@lit-protocol/contracts" "^0.0.74"
- "@lit-protocol/contracts-sdk" "7.0.1-alpha-0"
- "@lit-protocol/crypto" "7.0.1-alpha-0"
- "@lit-protocol/logger" "7.0.1-alpha-0"
- "@lit-protocol/misc" "7.0.1-alpha-0"
- "@lit-protocol/nacl" "7.0.1-alpha-0"
- "@lit-protocol/types" "7.0.1-alpha-0"
- "@lit-protocol/uint8arrays" "7.0.1-alpha-0"
- "@lit-protocol/wasm" "7.0.1-alpha-0"
- "@openagenda/verror" "^3.1.4"
- ajv "^8.12.0"
- bech32 "^2.0.0"
- date-and-time "^2.4.1"
- depd "^2.0.0"
- ethers "^5.7.1"
- jose "^4.14.4"
- multiformats "^9.7.1"
- pako "^2.1.0"
- process "0.11.10"
- siwe "^2.3.2"
- tslib "1.14.1"
- util "0.12.5"
-
-"@lit-protocol/crypto@7.0.1-alpha-0":
- version "7.0.1-alpha-0"
- resolved "https://registry.npmjs.org/@lit-protocol/crypto/-/crypto-7.0.1-alpha-0.tgz"
- integrity sha512-Nn/qPhLKMqoT2rmz+ZNv9Xg7h+HaHczPX9IptLOaKY2C6vm0DRTu814mOTyKB8hS3bzb+fkbV0vn+NEfhzv1mw==
- dependencies:
- "@ethersproject/abstract-provider" "5.7.0"
- "@ethersproject/contracts" "5.7.0"
- "@ethersproject/providers" "5.7.2"
- "@lit-protocol/accs-schemas" "^0.0.20"
- "@lit-protocol/constants" "7.0.1-alpha-0"
- "@lit-protocol/contracts" "^0.0.74"
- "@lit-protocol/logger" "7.0.1-alpha-0"
- "@lit-protocol/misc" "7.0.1-alpha-0"
- "@lit-protocol/nacl" "7.0.1-alpha-0"
- "@lit-protocol/types" "7.0.1-alpha-0"
- "@lit-protocol/uint8arrays" "7.0.1-alpha-0"
- "@lit-protocol/wasm" "7.0.1-alpha-0"
- "@openagenda/verror" "^3.1.4"
- ajv "^8.12.0"
- bech32 "^2.0.0"
- depd "^2.0.0"
- ethers "^5.7.1"
- pako "^2.1.0"
- siwe "^2.3.2"
- tslib "1.14.1"
- util "0.12.5"
-
-"@lit-protocol/lit-node-client-nodejs@7.0.1-alpha-0":
- version "7.0.1-alpha-0"
- resolved "https://registry.npmjs.org/@lit-protocol/lit-node-client-nodejs/-/lit-node-client-nodejs-7.0.1-alpha-0.tgz"
- integrity sha512-A0K2CWL5oKjwCEjPbZIR7OV2ebobO0fS69OXthphYuPKGsnwBkckXCnL8beAIIdUl1boS4PimwIDmE3NCj8SjA==
- dependencies:
- "@ethersproject/abi" "5.7.0"
- "@ethersproject/abstract-provider" "5.7.0"
- "@ethersproject/contracts" "5.7.0"
- "@ethersproject/providers" "5.7.2"
- "@ethersproject/transactions" "5.7.0"
- "@lit-protocol/access-control-conditions" "7.0.1-alpha-0"
- "@lit-protocol/accs-schemas" "^0.0.20"
- "@lit-protocol/auth-helpers" "7.0.1-alpha-0"
- "@lit-protocol/constants" "7.0.1-alpha-0"
- "@lit-protocol/contracts" "^0.0.74"
- "@lit-protocol/contracts-sdk" "7.0.1-alpha-0"
- "@lit-protocol/core" "7.0.1-alpha-0"
- "@lit-protocol/crypto" "7.0.1-alpha-0"
- "@lit-protocol/logger" "7.0.1-alpha-0"
- "@lit-protocol/misc" "7.0.1-alpha-0"
- "@lit-protocol/misc-browser" "7.0.1-alpha-0"
- "@lit-protocol/nacl" "7.0.1-alpha-0"
- "@lit-protocol/types" "7.0.1-alpha-0"
- "@lit-protocol/uint8arrays" "7.0.1-alpha-0"
- "@lit-protocol/wasm" "7.0.1-alpha-0"
- "@openagenda/verror" "^3.1.4"
- ajv "^8.12.0"
- bech32 "^2.0.0"
- cross-fetch "3.1.8"
- date-and-time "^2.4.1"
- depd "^2.0.0"
- ethers "^5.7.1"
- jose "^4.14.4"
- multiformats "^9.7.1"
- pako "^2.1.0"
- process "0.11.10"
- siwe "^2.3.2"
- siwe-recap "0.0.2-alpha.0"
- tslib "1.14.1"
- util "0.12.5"
-
-"@lit-protocol/logger@7.0.1-alpha-0":
- version "7.0.1-alpha-0"
- resolved "https://registry.npmjs.org/@lit-protocol/logger/-/logger-7.0.1-alpha-0.tgz"
- integrity sha512-dWg4YUgOVURE3WDYUln0jMj/atXofWI0wSC3ZtSeXnByU4T3BnzWyVidjzCkR7lk1MIRqq7Qbpiik6G5Mw6u1A==
- dependencies:
- "@ethersproject/abstract-provider" "5.7.0"
- "@lit-protocol/accs-schemas" "^0.0.20"
- "@lit-protocol/constants" "7.0.1-alpha-0"
- "@lit-protocol/contracts" "^0.0.74"
- "@lit-protocol/types" "7.0.1-alpha-0"
- "@openagenda/verror" "^3.1.4"
- depd "^2.0.0"
- ethers "^5.7.1"
- siwe "^2.3.2"
- tslib "1.14.1"
-
-"@lit-protocol/misc-browser@7.0.1-alpha-0":
- version "7.0.1-alpha-0"
- resolved "https://registry.npmjs.org/@lit-protocol/misc-browser/-/misc-browser-7.0.1-alpha-0.tgz"
- integrity sha512-cRCQFsO9kMHHjoW+w3mTKI1ylUh3JdJo3cBwV7l9QbvnKVaQEuIsmdFozMNoudSpNEbWWGxbyKgn4+5FnmZCWg==
- dependencies:
- "@ethersproject/abstract-provider" "5.7.0"
- "@lit-protocol/accs-schemas" "^0.0.20"
- "@lit-protocol/constants" "7.0.1-alpha-0"
- "@lit-protocol/contracts" "^0.0.74"
- "@lit-protocol/types" "7.0.1-alpha-0"
- "@lit-protocol/uint8arrays" "7.0.1-alpha-0"
- "@openagenda/verror" "^3.1.4"
- depd "^2.0.0"
- ethers "^5.7.1"
- siwe "^2.3.2"
- tslib "1.14.1"
-
-"@lit-protocol/misc@7.0.1-alpha-0":
- version "7.0.1-alpha-0"
- resolved "https://registry.npmjs.org/@lit-protocol/misc/-/misc-7.0.1-alpha-0.tgz"
- integrity sha512-ErA5su84JZfGLKOi6yTF1Y8TH6zn8kLAJoyFG3vcLMXCQ4SsHLC7G8WaMRT2SnznLYYLzU/i/7N36gCJuJfdrQ==
- dependencies:
- "@ethersproject/abstract-provider" "5.7.0"
- "@ethersproject/contracts" "5.7.0"
- "@ethersproject/providers" "5.7.2"
- "@lit-protocol/accs-schemas" "^0.0.20"
- "@lit-protocol/constants" "7.0.1-alpha-0"
- "@lit-protocol/contracts" "^0.0.74"
- "@lit-protocol/logger" "7.0.1-alpha-0"
- "@lit-protocol/types" "7.0.1-alpha-0"
- "@openagenda/verror" "^3.1.4"
- ajv "^8.12.0"
- bech32 "^2.0.0"
- depd "^2.0.0"
- ethers "^5.7.1"
- siwe "^2.3.2"
- tslib "1.14.1"
- util "0.12.5"
-
-"@lit-protocol/nacl@7.0.1-alpha-0":
- version "7.0.1-alpha-0"
- resolved "https://registry.npmjs.org/@lit-protocol/nacl/-/nacl-7.0.1-alpha-0.tgz"
- integrity sha512-P6WGnYIY1cgOm1qGFjiDFzMAIeir9gU+JQFz/0+Q/Pvk5ACdYosJBBNfUU2Zrqrg3bjJ7xIeisZZEk7BgIj6bQ==
- dependencies:
- tslib "1.14.1"
-
-"@lit-protocol/types@7.0.1-alpha-0":
- version "7.0.1-alpha-0"
- resolved "https://registry.npmjs.org/@lit-protocol/types/-/types-7.0.1-alpha-0.tgz"
- integrity sha512-AhYobpG2F7JN+efV09aSAgI99nkegtEXrniqNSooSOgUnpPRMjmqGN93qnL628ykglrHx7Q/nkv7tZS03yaLbA==
- dependencies:
- "@ethersproject/abstract-provider" "5.7.0"
- "@lit-protocol/accs-schemas" "^0.0.20"
- depd "^2.0.0"
- ethers "^5.7.1"
- siwe "^2.3.2"
- tslib "1.14.1"
-
-"@lit-protocol/uint8arrays@7.0.1-alpha-0":
- version "7.0.1-alpha-0"
- resolved "https://registry.npmjs.org/@lit-protocol/uint8arrays/-/uint8arrays-7.0.1-alpha-0.tgz"
- integrity sha512-MzNYteWsOw0zEKelh0buezsQugMDTRnNLucAWwm8TwIykVfGdXnG8AY0oZAygXO+wfRbnKtEMh2tXY7joIdsiA==
- dependencies:
- "@ethersproject/abstract-provider" "5.7.0"
- "@lit-protocol/accs-schemas" "^0.0.20"
- "@lit-protocol/constants" "7.0.1-alpha-0"
- "@lit-protocol/contracts" "^0.0.74"
- "@lit-protocol/types" "7.0.1-alpha-0"
- "@openagenda/verror" "^3.1.4"
- depd "^2.0.0"
- ethers "^5.7.1"
- siwe "^2.3.2"
- tslib "1.14.1"
-
-"@lit-protocol/wasm@7.0.1-alpha-0":
- version "7.0.1-alpha-0"
- resolved "https://registry.npmjs.org/@lit-protocol/wasm/-/wasm-7.0.1-alpha-0.tgz"
- integrity sha512-6MDdP3lNMx2BQMzFO9/AqlGctfUjvYxTNoKkUwGokN6w9QJUMcsWkk1lwqh/QsNHgChGWWNM2YXVM0+UK8dFrA==
- dependencies:
- ethers "^5.7.1"
- pako "^2.1.0"
- tslib "1.14.1"
-
-"@noble/hashes@^1.1.2":
- version "1.5.0"
- resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz"
- integrity sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==
-
-"@openagenda/verror@^3.1.4":
- version "3.1.4"
- resolved "https://registry.npmjs.org/@openagenda/verror/-/verror-3.1.4.tgz"
- integrity sha512-+V7QuD6v5sMWez7cu+5DXoXMim+iQssOcspoNgbWDW8sEyC54Mdo5VuIkcIjqhPmQYOzBWo5qlbzNGEpD6PzMA==
- dependencies:
- assertion-error "^1.1.0"
- depd "^2.0.0"
- inherits "^2.0.4"
- sprintf-js "^1.1.2"
-
-"@spruceid/siwe-parser@^2.1.2":
- version "2.1.2"
- resolved "https://registry.npmjs.org/@spruceid/siwe-parser/-/siwe-parser-2.1.2.tgz"
- integrity sha512-d/r3S1LwJyMaRAKQ0awmo9whfXeE88Qt00vRj91q5uv5ATtWIQEGJ67Yr5eSZw5zp1/fZCXZYuEckt8lSkereQ==
- dependencies:
- "@noble/hashes" "^1.1.2"
- apg-js "^4.3.0"
- uri-js "^4.4.1"
- valid-url "^1.0.9"
-
-"@stablelib/binary@^1.0.1":
- version "1.0.1"
- 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.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.npmjs.org/@stablelib/random/-/random-1.0.2.tgz"
- integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==
- dependencies:
- "@stablelib/binary" "^1.0.1"
- "@stablelib/wipe" "^1.0.1"
-
-"@stablelib/wipe@^1.0.1":
- version "1.0.1"
- resolved "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz"
- integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==
-
-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==
- dependencies:
- mime-types "~2.1.34"
- negotiator "0.6.3"
-
-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==
-
-ajv@^8.12.0:
- version "8.17.1"
- resolved "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz"
- integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==
- dependencies:
- fast-deep-equal "^3.1.3"
- fast-uri "^3.0.1"
- json-schema-traverse "^1.0.0"
- require-from-string "^2.0.2"
-
-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@^4.0.0, 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"
-
-apg-js@^4.3.0:
- version "4.4.0"
- resolved "https://registry.npmjs.org/apg-js/-/apg-js-4.4.0.tgz"
- integrity sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q==
-
-array-flatten@1.1.1:
- version "1.1.1"
- resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
- integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
-
-assertion-error@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz"
- integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
-
-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"
-
-bech32@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz"
- integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==
-
-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==
-
-bn.js@^4.11.9:
- version "4.12.1"
- resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz"
- integrity sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==
-
-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==
-
-body-parser@^1.20.2, body-parser@1.20.3:
- version "1.20.3"
- resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz"
- integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==
- dependencies:
- bytes "3.1.2"
- content-type "~1.0.5"
- debug "2.6.9"
- depd "2.0.0"
- destroy "1.2.0"
- http-errors "2.0.0"
- iconv-lite "0.4.24"
- on-finished "2.4.1"
- qs "6.13.0"
- raw-body "2.5.2"
- type-is "~1.6.18"
- unpipe "1.0.0"
-
-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==
-
-bytes@3.1.2:
- version "3.1.2"
- resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz"
- integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
-
-call-bind@^1.0.2, 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"
-
-canonicalize@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/canonicalize/-/canonicalize-2.0.0.tgz"
- integrity sha512-ulDEYPv7asdKvqahuAY35c1selLdzDwHqugK92hfkzvlDCwXRRelDkR+Er33md/PtnpqHemgkuDPanZ4fiYZ8w==
-
-chalk@^4.1.2:
- 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"
-
-cliui@^8.0.1:
- version "8.0.1"
- 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"
-
-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==
-
-concurrently@^8.2.2:
- version "8.2.2"
- resolved "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz"
- integrity sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==
- dependencies:
- chalk "^4.1.2"
- date-fns "^2.30.0"
- lodash "^4.17.21"
- rxjs "^7.8.1"
- shell-quote "^1.8.1"
- spawn-command "0.0.2"
- supports-color "^8.1.1"
- tree-kill "^1.2.2"
- yargs "^17.7.2"
-
-content-disposition@0.5.4:
- version "0.5.4"
- 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.5:
- version "1.0.5"
- resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz"
- integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
-
-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.7.1:
- version "0.7.1"
- resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz"
- integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==
-
-cross-fetch@3.1.8:
- 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"
-
-date-and-time@^2.4.1:
- version "2.4.3"
- resolved "https://registry.npmjs.org/date-and-time/-/date-and-time-2.4.3.tgz"
- integrity sha512-xkS/imTmsyEdpp9ie5oV5UWolg3XkYWNySbT2W4ESWr6v4V8YrsHbhpk9fIeQcr0NFTnYbQJLXlgU1zrLItysA==
-
-date-fns@^2.30.0:
- version "2.30.0"
- resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz"
- integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==
- dependencies:
- "@babel/runtime" "^7.21.0"
-
-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"
-
-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"
-
-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==
-
-destroy@1.2.0:
- version "1.2.0"
- resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz"
- integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
-
-ee-first@1.1.1:
- version "1.1.1"
- resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
- integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
-
-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==
-
-encodeurl@~1.0.2:
- version "1.0.2"
- resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
- integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
-
-encodeurl@~2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz"
- integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
-
-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.3.0:
- version "1.3.0"
- resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz"
- integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
-
-escalade@^3.1.1:
- 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:
- version "1.0.3"
- resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"
- integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
-
-etag@~1.8.1:
- version "1.8.1"
- resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"
- integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
-
-ethers@^5.5.1, "ethers@^5.6.8 || ^6.0.8", ethers@^5.7.1, 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"
-
-express@^4.18.2:
- version "4.21.1"
- resolved "https://registry.npmjs.org/express/-/express-4.21.1.tgz"
- integrity sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==
- dependencies:
- accepts "~1.3.8"
- array-flatten "1.1.1"
- body-parser "1.20.3"
- content-disposition "0.5.4"
- content-type "~1.0.4"
- cookie "0.7.1"
- cookie-signature "1.0.6"
- debug "2.6.9"
- depd "2.0.0"
- encodeurl "~2.0.0"
- escape-html "~1.0.3"
- etag "~1.8.1"
- finalhandler "1.3.1"
- fresh "0.5.2"
- http-errors "2.0.0"
- merge-descriptors "1.0.3"
- methods "~1.1.2"
- on-finished "2.4.1"
- parseurl "~1.3.3"
- path-to-regexp "0.1.10"
- proxy-addr "~2.0.7"
- qs "6.13.0"
- range-parser "~1.2.1"
- safe-buffer "5.2.1"
- send "0.19.0"
- serve-static "1.16.2"
- setprototypeof "1.2.0"
- statuses "2.0.1"
- type-is "~1.6.18"
- utils-merge "1.0.1"
- vary "~1.1.2"
-
-fast-deep-equal@^3.1.3:
- version "3.1.3"
- resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
- integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-
-fast-uri@^3.0.1:
- version "3.0.3"
- resolved "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz"
- integrity sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==
-
-finalhandler@1.3.1:
- version "1.3.1"
- resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz"
- integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==
- dependencies:
- debug "2.6.9"
- encodeurl "~2.0.0"
- escape-html "~1.0.3"
- on-finished "2.4.1"
- parseurl "~1.3.3"
- statuses "2.0.1"
- unpipe "~1.0.0"
-
-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"
-
-forwarded@0.2.0:
- version "0.2.0"
- resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz"
- integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
-
-fresh@0.5.2:
- version "0.5.2"
- resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
- integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
-
-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==
-
-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.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"
-
-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-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.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:
- 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.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:
- 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"
-
-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"
-
-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"
-
-iconv-lite@0.4.24:
- version "0.4.24"
- resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
- integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
- dependencies:
- safer-buffer ">= 2.1.2 < 3"
-
-imurmurhash@^0.1.4:
- version "0.1.4"
- resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
- integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
-
-inherits@^2.0.3, inherits@^2.0.4, inherits@2.0.4:
- version "2.0.4"
- resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-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-callable@^1.1.3:
- version "1.2.7"
- resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz"
- integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
-
-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-generator-function@^1.0.7:
- version "1.0.10"
- 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-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.14"
-
-jose@^4.14.4:
- version "4.15.9"
- resolved "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz"
- integrity sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==
-
-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==
-
-json-schema-traverse@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz"
- integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
-
-lodash@^4.17.21:
- version "4.17.21"
- resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
- integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-
-media-typer@0.3.0:
- version "0.3.0"
- resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
- integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==
-
-merge-descriptors@1.0.3:
- version "1.0.3"
- resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz"
- integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==
-
-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==
-
-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.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@1.6.0:
- version "1.6.0"
- resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"
- integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
-
-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==
-
-ms@2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
- integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
-
-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==
-
-multiformats@^11.0.2:
- version "11.0.2"
- resolved "https://registry.npmjs.org/multiformats/-/multiformats-11.0.2.tgz"
- integrity sha512-b5mYMkOkARIuVZCpvijFj9a6m5wMVLC7cf/jIPd5D/ARDOfLC5+IFkbgDXQgcU2goIsTD/O9NY4DI/Mt4OGvlg==
-
-multiformats@^9.7.1:
- version "9.9.0"
- resolved "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz"
- integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==
-
-negotiator@0.6.3:
- version "0.6.3"
- resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz"
- integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
-
-node-fetch@^2.6.12, 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==
- dependencies:
- whatwg-url "^5.0.0"
-
-node-localstorage@^3.0.5:
- version "3.0.5"
- resolved "https://registry.npmjs.org/node-localstorage/-/node-localstorage-3.0.5.tgz"
- integrity sha512-GCwtK33iwVXboZWYcqQHu3aRvXEBwmPkAMRBLeaX86ufhqslyUkLGsi4aW3INEfdQYpUB5M9qtYf3eHvAk2VBg==
- dependencies:
- write-file-atomic "^5.0.1"
-
-object-inspect@^1.13.1:
- version "1.13.3"
- resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz"
- integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==
-
-on-finished@2.4.1:
- 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"
-
-pako@^2.1.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz"
- integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==
-
-parseurl@~1.3.3:
- version "1.3.3"
- resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
- integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
-
-path-to-regexp@0.1.10:
- version "0.1.10"
- resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz"
- integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==
-
-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-addr@~2.0.7:
- version "2.0.7"
- 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"
- ipaddr.js "1.9.1"
-
-punycode@^2.1.0:
- version "2.3.1"
- resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz"
- integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
-
-qs@6.13.0:
- version "6.13.0"
- resolved "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz"
- integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==
- dependencies:
- side-channel "^1.0.6"
-
-range-parser@~1.2.1:
- version "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.5.2:
- 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==
- dependencies:
- bytes "3.1.2"
- http-errors "2.0.0"
- iconv-lite "0.4.24"
- unpipe "1.0.0"
-
-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==
-
-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==
-
-require-from-string@^2.0.2:
- version "2.0.2"
- resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz"
- integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
-
-rxjs@^7.8.1:
- version "7.8.1"
- 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:
- version "5.2.1"
- resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
- integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-
-"safer-buffer@>= 2.1.2 < 3":
- 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==
-
-send@0.19.0:
- version "0.19.0"
- resolved "https://registry.npmjs.org/send/-/send-0.19.0.tgz"
- integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==
- dependencies:
- debug "2.6.9"
- depd "2.0.0"
- destroy "1.2.0"
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- etag "~1.8.1"
- fresh "0.5.2"
- http-errors "2.0.0"
- mime "1.6.0"
- ms "2.1.3"
- on-finished "2.4.1"
- range-parser "~1.2.1"
- statuses "2.0.1"
-
-serve-static@1.16.2:
- version "1.16.2"
- resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz"
- integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==
- dependencies:
- encodeurl "~2.0.0"
- escape-html "~1.0.3"
- parseurl "~1.3.3"
- send "0.19.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"
-
-setprototypeof@1.2.0:
- version "1.2.0"
- resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz"
- integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
-
-shell-quote@^1.8.1:
- version "1.8.1"
- resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz"
- integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==
-
-side-channel@^1.0.6:
- 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"
-
-signal-exit@^4.0.1:
- version "4.1.0"
- resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz"
- integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
-
-siwe-recap@0.0.2-alpha.0:
- version "0.0.2-alpha.0"
- resolved "https://registry.npmjs.org/siwe-recap/-/siwe-recap-0.0.2-alpha.0.tgz"
- integrity sha512-xqFUnvrACWW/Q4s5HQ02avg8IyH2RcgkUzfvN4scYaaHErotLVtTGDZkSS0sn/oNK4MXRt83lTqredsvXgt8iA==
- dependencies:
- canonicalize "^2.0.0"
- multiformats "^11.0.2"
- siwe "^2.1.4"
-
-siwe@^2.1.4, siwe@^2.3.2:
- version "2.3.2"
- resolved "https://registry.npmjs.org/siwe/-/siwe-2.3.2.tgz"
- integrity sha512-aSf+6+Latyttbj5nMu6GF3doMfv2UYj83hhwZgUF20ky6fTS83uVhkQABdIVnEuS8y1bBdk7p6ltb9SmlhTTlA==
- dependencies:
- "@spruceid/siwe-parser" "^2.1.2"
- "@stablelib/random" "^1.0.1"
- uri-js "^4.4.1"
- valid-url "^1.0.9"
-
-spawn-command@0.0.2:
- version "0.0.2"
- resolved "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz"
- integrity sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==
-
-sprintf-js@^1.1.2:
- version "1.1.3"
- resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz"
- integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==
-
-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==
-
-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"
- 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"
-
-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"
-
-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"
-
-toidentifier@1.0.1:
- version "1.0.1"
- 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.npmjs.org/tr46/-/tr46-0.0.3.tgz"
- integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
-
-tree-kill@^1.2.2:
- version "1.2.2"
- resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz"
- integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
-
-tslib@^2.1.0:
- version "2.8.1"
- resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz"
- integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
-
-tslib@1.14.1:
- version "1.14.1"
- resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
- integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-
-type-is@~1.6.18:
- version "1.6.18"
- resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"
- integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
- dependencies:
- media-typer "0.3.0"
- mime-types "~2.1.24"
-
-typescript@^5.0.0:
- version "5.7.2"
- resolved "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz"
- integrity sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==
-
-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==
-
-uri-js@^4.4.1:
- version "4.4.1"
- resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
- integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
- dependencies:
- punycode "^2.1.0"
-
-util@0.12.5:
- version "0.12.5"
- resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz"
- integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==
- dependencies:
- inherits "^2.0.3"
- is-arguments "^1.0.4"
- is-generator-function "^1.0.7"
- is-typed-array "^1.1.3"
- which-typed-array "^1.1.2"
-
-utils-merge@1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"
- integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
-
-valid-url@^1.0.9:
- version "1.0.9"
- resolved "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz"
- integrity sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==
-
-vary@~1.1.2:
- version "1.1.2"
- resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
- integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
-
-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-typed-array@^1.1.14, 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.7"
- call-bind "^1.0.7"
- for-each "^0.3.3"
- gopd "^1.0.1"
- has-tostringtag "^1.0.2"
-
-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"
-
-write-file-atomic@^5.0.1:
- version "5.0.1"
- resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz"
- integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==
- dependencies:
- imurmurhash "^0.1.4"
- signal-exit "^4.0.1"
-
-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==
-
-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@^17.7.2:
- version "17.7.2"
- resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz"
- 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"
diff --git a/python/lit_python_sdk/bundled_server.js b/python/lit_python_sdk/bundled_server.js
new file mode 100644
index 0000000..9d95f51
--- /dev/null
+++ b/python/lit_python_sdk/bundled_server.js
@@ -0,0 +1,291436 @@
+var __defProp = Object.defineProperty;
+var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
+var __getOwnPropNames = Object.getOwnPropertyNames;
+var __hasOwnProp = Object.prototype.hasOwnProperty;
+var __esm = (fn, res) => function __init() {
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
+};
+var __commonJS = (cb, mod) => function __require() {
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
+};
+var __export = (target, all) => {
+ for (var name in all)
+ __defProp(target, name, { get: all[name], enumerable: true });
+};
+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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
+
+// node_modules/depd/index.js
+var require_depd = __commonJS({
+ "node_modules/depd/index.js"(exports2, module2) {
+ var relative = require("path").relative;
+ module2.exports = depd;
+ var basePath = process.cwd();
+ function containsNamespace(str, namespace) {
+ var vals = str.split(/[ ,]+/);
+ var ns = String(namespace).toLowerCase();
+ for (var i = 0; i < vals.length; i++) {
+ var val = vals[i];
+ if (val && (val === "*" || val.toLowerCase() === ns)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function convertDataDescriptorToAccessor(obj, prop, message) {
+ var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
+ var value = descriptor.value;
+ descriptor.get = function getter() {
+ return value;
+ };
+ if (descriptor.writable) {
+ descriptor.set = function setter(val) {
+ return value = val;
+ };
+ }
+ delete descriptor.value;
+ delete descriptor.writable;
+ Object.defineProperty(obj, prop, descriptor);
+ return descriptor;
+ }
+ function createArgumentsString(arity) {
+ var str = "";
+ for (var i = 0; i < arity; i++) {
+ str += ", arg" + i;
+ }
+ return str.substr(2);
+ }
+ function createStackString(stack) {
+ var str = this.name + ": " + this.namespace;
+ if (this.message) {
+ str += " deprecated " + this.message;
+ }
+ for (var i = 0; i < stack.length; i++) {
+ str += "\n at " + stack[i].toString();
+ }
+ return str;
+ }
+ function depd(namespace) {
+ if (!namespace) {
+ throw new TypeError("argument namespace is required");
+ }
+ var stack = getStack();
+ var site = callSiteLocation(stack[1]);
+ var file = site[0];
+ function deprecate(message) {
+ log.call(deprecate, message);
+ }
+ deprecate._file = file;
+ deprecate._ignored = isignored(namespace);
+ deprecate._namespace = namespace;
+ deprecate._traced = istraced(namespace);
+ deprecate._warned = /* @__PURE__ */ Object.create(null);
+ deprecate.function = wrapfunction;
+ deprecate.property = wrapproperty;
+ return deprecate;
+ }
+ function eehaslisteners(emitter, type) {
+ var count = typeof emitter.listenerCount !== "function" ? emitter.listeners(type).length : emitter.listenerCount(type);
+ return count > 0;
+ }
+ function isignored(namespace) {
+ if (process.noDeprecation) {
+ return true;
+ }
+ var str = process.env.NO_DEPRECATION || "";
+ return containsNamespace(str, namespace);
+ }
+ function istraced(namespace) {
+ if (process.traceDeprecation) {
+ return true;
+ }
+ var str = process.env.TRACE_DEPRECATION || "";
+ return containsNamespace(str, namespace);
+ }
+ function log(message, site) {
+ var haslisteners = eehaslisteners(process, "deprecation");
+ if (!haslisteners && this._ignored) {
+ return;
+ }
+ var caller;
+ var callFile;
+ var callSite;
+ var depSite;
+ var i = 0;
+ var seen = false;
+ var stack = getStack();
+ var file = this._file;
+ if (site) {
+ depSite = site;
+ callSite = callSiteLocation(stack[1]);
+ callSite.name = depSite.name;
+ file = callSite[0];
+ } else {
+ i = 2;
+ depSite = callSiteLocation(stack[i]);
+ callSite = depSite;
+ }
+ for (; i < stack.length; i++) {
+ caller = callSiteLocation(stack[i]);
+ callFile = caller[0];
+ if (callFile === file) {
+ seen = true;
+ } else if (callFile === this._file) {
+ file = this._file;
+ } else if (seen) {
+ break;
+ }
+ }
+ var key = caller ? depSite.join(":") + "__" + caller.join(":") : void 0;
+ if (key !== void 0 && key in this._warned) {
+ return;
+ }
+ this._warned[key] = true;
+ var msg = message;
+ if (!msg) {
+ msg = callSite === depSite || !callSite.name ? defaultMessage(depSite) : defaultMessage(callSite);
+ }
+ if (haslisteners) {
+ var err = DeprecationError(this._namespace, msg, stack.slice(i));
+ process.emit("deprecation", err);
+ return;
+ }
+ var format = process.stderr.isTTY ? formatColor : formatPlain;
+ var output = format.call(this, msg, caller, stack.slice(i));
+ process.stderr.write(output + "\n", "utf8");
+ }
+ function callSiteLocation(callSite) {
+ var file = callSite.getFileName() || "";
+ var line = callSite.getLineNumber();
+ var colm = callSite.getColumnNumber();
+ if (callSite.isEval()) {
+ file = callSite.getEvalOrigin() + ", " + file;
+ }
+ var site = [file, line, colm];
+ site.callSite = callSite;
+ site.name = callSite.getFunctionName();
+ return site;
+ }
+ function defaultMessage(site) {
+ var callSite = site.callSite;
+ var funcName = site.name;
+ if (!funcName) {
+ funcName = "";
+ }
+ var context = callSite.getThis();
+ var typeName = context && callSite.getTypeName();
+ if (typeName === "Object") {
+ typeName = void 0;
+ }
+ if (typeName === "Function") {
+ typeName = context.name || typeName;
+ }
+ return typeName && callSite.getMethodName() ? typeName + "." + funcName : funcName;
+ }
+ function formatPlain(msg, caller, stack) {
+ var timestamp = (/* @__PURE__ */ new Date()).toUTCString();
+ var formatted = timestamp + " " + this._namespace + " deprecated " + msg;
+ if (this._traced) {
+ for (var i = 0; i < stack.length; i++) {
+ formatted += "\n at " + stack[i].toString();
+ }
+ return formatted;
+ }
+ if (caller) {
+ formatted += " at " + formatLocation(caller);
+ }
+ return formatted;
+ }
+ function formatColor(msg, caller, stack) {
+ var formatted = "\x1B[36;1m" + this._namespace + "\x1B[22;39m \x1B[33;1mdeprecated\x1B[22;39m \x1B[0m" + msg + "\x1B[39m";
+ if (this._traced) {
+ for (var i = 0; i < stack.length; i++) {
+ formatted += "\n \x1B[36mat " + stack[i].toString() + "\x1B[39m";
+ }
+ return formatted;
+ }
+ if (caller) {
+ formatted += " \x1B[36m" + formatLocation(caller) + "\x1B[39m";
+ }
+ return formatted;
+ }
+ function formatLocation(callSite) {
+ return relative(basePath, callSite[0]) + ":" + callSite[1] + ":" + callSite[2];
+ }
+ function getStack() {
+ var limit = Error.stackTraceLimit;
+ var obj = {};
+ var prep = Error.prepareStackTrace;
+ Error.prepareStackTrace = prepareObjectStackTrace;
+ Error.stackTraceLimit = Math.max(10, limit);
+ Error.captureStackTrace(obj);
+ var stack = obj.stack.slice(1);
+ Error.prepareStackTrace = prep;
+ Error.stackTraceLimit = limit;
+ return stack;
+ }
+ function prepareObjectStackTrace(obj, stack) {
+ return stack;
+ }
+ function wrapfunction(fn, message) {
+ if (typeof fn !== "function") {
+ throw new TypeError("argument fn must be a function");
+ }
+ var args = createArgumentsString(fn.length);
+ var stack = getStack();
+ var site = callSiteLocation(stack[1]);
+ site.name = fn.name;
+ var deprecatedfn = new Function(
+ "fn",
+ "log",
+ "deprecate",
+ "message",
+ "site",
+ '"use strict"\nreturn function (' + args + ") {log.call(deprecate, message, site)\nreturn fn.apply(this, arguments)\n}"
+ )(fn, log, this, message, site);
+ return deprecatedfn;
+ }
+ function wrapproperty(obj, prop, message) {
+ if (!obj || typeof obj !== "object" && typeof obj !== "function") {
+ throw new TypeError("argument obj must be object");
+ }
+ var descriptor = Object.getOwnPropertyDescriptor(obj, prop);
+ if (!descriptor) {
+ throw new TypeError("must call property on owner object");
+ }
+ if (!descriptor.configurable) {
+ throw new TypeError("property must be configurable");
+ }
+ var deprecate = this;
+ var stack = getStack();
+ var site = callSiteLocation(stack[1]);
+ site.name = prop;
+ if ("value" in descriptor) {
+ descriptor = convertDataDescriptorToAccessor(obj, prop, message);
+ }
+ var get = descriptor.get;
+ var set = descriptor.set;
+ if (typeof get === "function") {
+ descriptor.get = function getter() {
+ log.call(deprecate, message, site);
+ return get.apply(this, arguments);
+ };
+ }
+ if (typeof set === "function") {
+ descriptor.set = function setter() {
+ log.call(deprecate, message, site);
+ return set.apply(this, arguments);
+ };
+ }
+ Object.defineProperty(obj, prop, descriptor);
+ }
+ function DeprecationError(namespace, message, stack) {
+ var error = new Error();
+ var stackString;
+ Object.defineProperty(error, "constructor", {
+ value: DeprecationError
+ });
+ Object.defineProperty(error, "message", {
+ configurable: true,
+ enumerable: false,
+ value: message,
+ writable: true
+ });
+ Object.defineProperty(error, "name", {
+ enumerable: false,
+ configurable: true,
+ value: "DeprecationError",
+ writable: true
+ });
+ Object.defineProperty(error, "namespace", {
+ configurable: true,
+ enumerable: false,
+ value: namespace,
+ writable: true
+ });
+ Object.defineProperty(error, "stack", {
+ configurable: true,
+ enumerable: false,
+ get: function() {
+ if (stackString !== void 0) {
+ return stackString;
+ }
+ return stackString = createStackString.call(this, stack);
+ },
+ set: function setter(val) {
+ stackString = val;
+ }
+ });
+ return error;
+ }
+ }
+});
+
+// node_modules/bytes/index.js
+var require_bytes = __commonJS({
+ "node_modules/bytes/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = bytes;
+ module2.exports.format = format;
+ module2.exports.parse = parse;
+ var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g;
+ var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/;
+ var map = {
+ b: 1,
+ kb: 1 << 10,
+ mb: 1 << 20,
+ gb: 1 << 30,
+ tb: Math.pow(1024, 4),
+ pb: Math.pow(1024, 5)
+ };
+ var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;
+ function bytes(value, options) {
+ if (typeof value === "string") {
+ return parse(value);
+ }
+ if (typeof value === "number") {
+ return format(value, options);
+ }
+ return null;
+ }
+ function format(value, options) {
+ if (!Number.isFinite(value)) {
+ return null;
+ }
+ var mag = Math.abs(value);
+ var thousandsSeparator = options && options.thousandsSeparator || "";
+ var unitSeparator = options && options.unitSeparator || "";
+ var decimalPlaces = options && options.decimalPlaces !== void 0 ? options.decimalPlaces : 2;
+ var fixedDecimals = Boolean(options && options.fixedDecimals);
+ var unit = options && options.unit || "";
+ if (!unit || !map[unit.toLowerCase()]) {
+ if (mag >= map.pb) {
+ unit = "PB";
+ } else if (mag >= map.tb) {
+ unit = "TB";
+ } else if (mag >= map.gb) {
+ unit = "GB";
+ } else if (mag >= map.mb) {
+ unit = "MB";
+ } else if (mag >= map.kb) {
+ unit = "KB";
+ } else {
+ unit = "B";
+ }
+ }
+ var val = value / map[unit.toLowerCase()];
+ var str = val.toFixed(decimalPlaces);
+ if (!fixedDecimals) {
+ str = str.replace(formatDecimalsRegExp, "$1");
+ }
+ if (thousandsSeparator) {
+ str = str.split(".").map(function(s, i) {
+ return i === 0 ? s.replace(formatThousandsRegExp, thousandsSeparator) : s;
+ }).join(".");
+ }
+ return str + unitSeparator + unit;
+ }
+ function parse(val) {
+ if (typeof val === "number" && !isNaN(val)) {
+ return val;
+ }
+ if (typeof val !== "string") {
+ return null;
+ }
+ var results = parseRegExp.exec(val);
+ var floatValue;
+ var unit = "b";
+ if (!results) {
+ floatValue = parseInt(val, 10);
+ unit = "b";
+ } else {
+ floatValue = parseFloat(results[1]);
+ unit = results[4].toLowerCase();
+ }
+ if (isNaN(floatValue)) {
+ return null;
+ }
+ return Math.floor(map[unit] * floatValue);
+ }
+ }
+});
+
+// node_modules/content-type/index.js
+var require_content_type = __commonJS({
+ "node_modules/content-type/index.js"(exports2) {
+ "use strict";
+ var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g;
+ var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/;
+ var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
+ var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g;
+ var QUOTE_REGEXP = /([\\"])/g;
+ var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
+ exports2.format = format;
+ exports2.parse = parse;
+ function format(obj) {
+ if (!obj || typeof obj !== "object") {
+ throw new TypeError("argument obj is required");
+ }
+ var parameters = obj.parameters;
+ var type = obj.type;
+ if (!type || !TYPE_REGEXP.test(type)) {
+ throw new TypeError("invalid type");
+ }
+ var string = type;
+ if (parameters && typeof parameters === "object") {
+ var param;
+ var params = Object.keys(parameters).sort();
+ for (var i = 0; i < params.length; i++) {
+ param = params[i];
+ if (!TOKEN_REGEXP.test(param)) {
+ throw new TypeError("invalid parameter name");
+ }
+ string += "; " + param + "=" + qstring(parameters[param]);
+ }
+ }
+ return string;
+ }
+ function parse(string) {
+ if (!string) {
+ throw new TypeError("argument string is required");
+ }
+ var header = typeof string === "object" ? getcontenttype(string) : string;
+ if (typeof header !== "string") {
+ throw new TypeError("argument string is required to be a string");
+ }
+ var index = header.indexOf(";");
+ var type = index !== -1 ? header.slice(0, index).trim() : header.trim();
+ if (!TYPE_REGEXP.test(type)) {
+ throw new TypeError("invalid media type");
+ }
+ var obj = new ContentType(type.toLowerCase());
+ if (index !== -1) {
+ var key;
+ var match;
+ var value;
+ PARAM_REGEXP.lastIndex = index;
+ while (match = PARAM_REGEXP.exec(header)) {
+ if (match.index !== index) {
+ throw new TypeError("invalid parameter format");
+ }
+ index += match[0].length;
+ key = match[1].toLowerCase();
+ value = match[2];
+ if (value.charCodeAt(0) === 34) {
+ value = value.slice(1, -1);
+ if (value.indexOf("\\") !== -1) {
+ value = value.replace(QESC_REGEXP, "$1");
+ }
+ }
+ obj.parameters[key] = value;
+ }
+ if (index !== header.length) {
+ throw new TypeError("invalid parameter format");
+ }
+ }
+ return obj;
+ }
+ function getcontenttype(obj) {
+ var header;
+ if (typeof obj.getHeader === "function") {
+ header = obj.getHeader("content-type");
+ } else if (typeof obj.headers === "object") {
+ header = obj.headers && obj.headers["content-type"];
+ }
+ if (typeof header !== "string") {
+ throw new TypeError("content-type header is missing from object");
+ }
+ return header;
+ }
+ function qstring(val) {
+ var str = String(val);
+ if (TOKEN_REGEXP.test(str)) {
+ return str;
+ }
+ if (str.length > 0 && !TEXT_REGEXP.test(str)) {
+ throw new TypeError("invalid parameter value");
+ }
+ return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"';
+ }
+ function ContentType(type) {
+ this.parameters = /* @__PURE__ */ Object.create(null);
+ this.type = type;
+ }
+ }
+});
+
+// node_modules/setprototypeof/index.js
+var require_setprototypeof = __commonJS({
+ "node_modules/setprototypeof/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);
+ function setProtoOf(obj, proto) {
+ obj.__proto__ = proto;
+ return obj;
+ }
+ function mixinProperties(obj, proto) {
+ for (var prop in proto) {
+ if (!Object.prototype.hasOwnProperty.call(obj, prop)) {
+ obj[prop] = proto[prop];
+ }
+ }
+ return obj;
+ }
+ }
+});
+
+// node_modules/statuses/codes.json
+var require_codes = __commonJS({
+ "node_modules/statuses/codes.json"(exports2, module2) {
+ module2.exports = {
+ "100": "Continue",
+ "101": "Switching Protocols",
+ "102": "Processing",
+ "103": "Early Hints",
+ "200": "OK",
+ "201": "Created",
+ "202": "Accepted",
+ "203": "Non-Authoritative Information",
+ "204": "No Content",
+ "205": "Reset Content",
+ "206": "Partial Content",
+ "207": "Multi-Status",
+ "208": "Already Reported",
+ "226": "IM Used",
+ "300": "Multiple Choices",
+ "301": "Moved Permanently",
+ "302": "Found",
+ "303": "See Other",
+ "304": "Not Modified",
+ "305": "Use Proxy",
+ "307": "Temporary Redirect",
+ "308": "Permanent Redirect",
+ "400": "Bad Request",
+ "401": "Unauthorized",
+ "402": "Payment Required",
+ "403": "Forbidden",
+ "404": "Not Found",
+ "405": "Method Not Allowed",
+ "406": "Not Acceptable",
+ "407": "Proxy Authentication Required",
+ "408": "Request Timeout",
+ "409": "Conflict",
+ "410": "Gone",
+ "411": "Length Required",
+ "412": "Precondition Failed",
+ "413": "Payload Too Large",
+ "414": "URI Too Long",
+ "415": "Unsupported Media Type",
+ "416": "Range Not Satisfiable",
+ "417": "Expectation Failed",
+ "418": "I'm a Teapot",
+ "421": "Misdirected Request",
+ "422": "Unprocessable Entity",
+ "423": "Locked",
+ "424": "Failed Dependency",
+ "425": "Too Early",
+ "426": "Upgrade Required",
+ "428": "Precondition Required",
+ "429": "Too Many Requests",
+ "431": "Request Header Fields Too Large",
+ "451": "Unavailable For Legal Reasons",
+ "500": "Internal Server Error",
+ "501": "Not Implemented",
+ "502": "Bad Gateway",
+ "503": "Service Unavailable",
+ "504": "Gateway Timeout",
+ "505": "HTTP Version Not Supported",
+ "506": "Variant Also Negotiates",
+ "507": "Insufficient Storage",
+ "508": "Loop Detected",
+ "509": "Bandwidth Limit Exceeded",
+ "510": "Not Extended",
+ "511": "Network Authentication Required"
+ };
+ }
+});
+
+// node_modules/statuses/index.js
+var require_statuses = __commonJS({
+ "node_modules/statuses/index.js"(exports2, module2) {
+ "use strict";
+ var codes = require_codes();
+ module2.exports = status;
+ status.message = codes;
+ status.code = createMessageToStatusCodeMap(codes);
+ status.codes = createStatusCodeList(codes);
+ status.redirect = {
+ 300: true,
+ 301: true,
+ 302: true,
+ 303: true,
+ 305: true,
+ 307: true,
+ 308: true
+ };
+ status.empty = {
+ 204: true,
+ 205: true,
+ 304: true
+ };
+ status.retry = {
+ 502: true,
+ 503: true,
+ 504: true
+ };
+ function createMessageToStatusCodeMap(codes2) {
+ var map = {};
+ Object.keys(codes2).forEach(function forEachCode(code) {
+ var message = codes2[code];
+ var status2 = Number(code);
+ map[message.toLowerCase()] = status2;
+ });
+ return map;
+ }
+ function createStatusCodeList(codes2) {
+ return Object.keys(codes2).map(function mapCode(code) {
+ return Number(code);
+ });
+ }
+ function getStatusCode(message) {
+ var msg = message.toLowerCase();
+ if (!Object.prototype.hasOwnProperty.call(status.code, msg)) {
+ throw new Error('invalid status message: "' + message + '"');
+ }
+ return status.code[msg];
+ }
+ function getStatusMessage(code) {
+ if (!Object.prototype.hasOwnProperty.call(status.message, code)) {
+ throw new Error("invalid status code: " + code);
+ }
+ return status.message[code];
+ }
+ function status(code) {
+ if (typeof code === "number") {
+ return getStatusMessage(code);
+ }
+ if (typeof code !== "string") {
+ throw new TypeError("code must be a number or string");
+ }
+ var n = parseInt(code, 10);
+ if (!isNaN(n)) {
+ return getStatusMessage(n);
+ }
+ return getStatusCode(code);
+ }
+ }
+});
+
+// node_modules/inherits/inherits_browser.js
+var require_inherits_browser = __commonJS({
+ "node_modules/inherits/inherits_browser.js"(exports2, module2) {
+ if (typeof Object.create === "function") {
+ module2.exports = function inherits(ctor, superCtor) {
+ if (superCtor) {
+ ctor.super_ = superCtor;
+ ctor.prototype = Object.create(superCtor.prototype, {
+ constructor: {
+ value: ctor,
+ enumerable: false,
+ writable: true,
+ configurable: true
+ }
+ });
+ }
+ };
+ } else {
+ module2.exports = function inherits(ctor, superCtor) {
+ if (superCtor) {
+ ctor.super_ = superCtor;
+ var TempCtor = function() {
+ };
+ TempCtor.prototype = superCtor.prototype;
+ ctor.prototype = new TempCtor();
+ ctor.prototype.constructor = ctor;
+ }
+ };
+ }
+ }
+});
+
+// node_modules/inherits/inherits.js
+var require_inherits = __commonJS({
+ "node_modules/inherits/inherits.js"(exports2, module2) {
+ try {
+ util = require("util");
+ if (typeof util.inherits !== "function")
+ throw "";
+ module2.exports = util.inherits;
+ } catch (e) {
+ module2.exports = require_inherits_browser();
+ }
+ var util;
+ }
+});
+
+// node_modules/toidentifier/index.js
+var require_toidentifier = __commonJS({
+ "node_modules/toidentifier/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = toIdentifier;
+ function toIdentifier(str) {
+ return str.split(" ").map(function(token) {
+ return token.slice(0, 1).toUpperCase() + token.slice(1);
+ }).join("").replace(/[^ _0-9a-z]/gi, "");
+ }
+ }
+});
+
+// node_modules/http-errors/index.js
+var require_http_errors = __commonJS({
+ "node_modules/http-errors/index.js"(exports2, module2) {
+ "use strict";
+ var deprecate = require_depd()("http-errors");
+ var setPrototypeOf = require_setprototypeof();
+ var statuses = require_statuses();
+ var inherits = require_inherits();
+ var toIdentifier = require_toidentifier();
+ module2.exports = createError;
+ module2.exports.HttpError = createHttpErrorConstructor();
+ module2.exports.isHttpError = createIsHttpErrorFunction(module2.exports.HttpError);
+ populateConstructorExports(module2.exports, statuses.codes, module2.exports.HttpError);
+ function codeClass(status) {
+ return Number(String(status).charAt(0) + "00");
+ }
+ function createError() {
+ var err;
+ var msg;
+ var status = 500;
+ var props = {};
+ for (var i = 0; i < arguments.length; i++) {
+ var arg = arguments[i];
+ var type = typeof arg;
+ if (type === "object" && arg instanceof Error) {
+ err = arg;
+ status = err.status || err.statusCode || status;
+ } else if (type === "number" && i === 0) {
+ status = arg;
+ } else if (type === "string") {
+ msg = arg;
+ } else if (type === "object") {
+ props = arg;
+ } else {
+ throw new TypeError("argument #" + (i + 1) + " unsupported type " + type);
+ }
+ }
+ if (typeof status === "number" && (status < 400 || status >= 600)) {
+ deprecate("non-error status code; use only 4xx or 5xx status codes");
+ }
+ if (typeof status !== "number" || !statuses.message[status] && (status < 400 || status >= 600)) {
+ status = 500;
+ }
+ var HttpError = createError[status] || createError[codeClass(status)];
+ if (!err) {
+ err = HttpError ? new HttpError(msg) : new Error(msg || statuses.message[status]);
+ Error.captureStackTrace(err, createError);
+ }
+ if (!HttpError || !(err instanceof HttpError) || err.status !== status) {
+ err.expose = status < 500;
+ err.status = err.statusCode = status;
+ }
+ for (var key in props) {
+ if (key !== "status" && key !== "statusCode") {
+ err[key] = props[key];
+ }
+ }
+ return err;
+ }
+ function createHttpErrorConstructor() {
+ function HttpError() {
+ throw new TypeError("cannot construct abstract class");
+ }
+ inherits(HttpError, Error);
+ return HttpError;
+ }
+ function createClientErrorConstructor(HttpError, name, code) {
+ var className = toClassName(name);
+ function ClientError(message) {
+ var msg = message != null ? message : statuses.message[code];
+ var err = new Error(msg);
+ Error.captureStackTrace(err, ClientError);
+ setPrototypeOf(err, ClientError.prototype);
+ Object.defineProperty(err, "message", {
+ enumerable: true,
+ configurable: true,
+ value: msg,
+ writable: true
+ });
+ Object.defineProperty(err, "name", {
+ enumerable: false,
+ configurable: true,
+ value: className,
+ writable: true
+ });
+ return err;
+ }
+ inherits(ClientError, HttpError);
+ nameFunc(ClientError, className);
+ ClientError.prototype.status = code;
+ ClientError.prototype.statusCode = code;
+ ClientError.prototype.expose = true;
+ return ClientError;
+ }
+ function createIsHttpErrorFunction(HttpError) {
+ return function isHttpError(val) {
+ if (!val || typeof val !== "object") {
+ return false;
+ }
+ if (val instanceof HttpError) {
+ return true;
+ }
+ return val instanceof Error && typeof val.expose === "boolean" && typeof val.statusCode === "number" && val.status === val.statusCode;
+ };
+ }
+ function createServerErrorConstructor(HttpError, name, code) {
+ var className = toClassName(name);
+ function ServerError(message) {
+ var msg = message != null ? message : statuses.message[code];
+ var err = new Error(msg);
+ Error.captureStackTrace(err, ServerError);
+ setPrototypeOf(err, ServerError.prototype);
+ Object.defineProperty(err, "message", {
+ enumerable: true,
+ configurable: true,
+ value: msg,
+ writable: true
+ });
+ Object.defineProperty(err, "name", {
+ enumerable: false,
+ configurable: true,
+ value: className,
+ writable: true
+ });
+ return err;
+ }
+ inherits(ServerError, HttpError);
+ nameFunc(ServerError, className);
+ ServerError.prototype.status = code;
+ ServerError.prototype.statusCode = code;
+ ServerError.prototype.expose = false;
+ return ServerError;
+ }
+ function nameFunc(func, name) {
+ var desc = Object.getOwnPropertyDescriptor(func, "name");
+ if (desc && desc.configurable) {
+ desc.value = name;
+ Object.defineProperty(func, "name", desc);
+ }
+ }
+ function populateConstructorExports(exports3, codes, HttpError) {
+ codes.forEach(function forEachCode(code) {
+ var CodeError;
+ var name = toIdentifier(statuses.message[code]);
+ switch (codeClass(code)) {
+ case 400:
+ CodeError = createClientErrorConstructor(HttpError, name, code);
+ break;
+ case 500:
+ CodeError = createServerErrorConstructor(HttpError, name, code);
+ break;
+ }
+ if (CodeError) {
+ exports3[code] = CodeError;
+ exports3[name] = CodeError;
+ }
+ });
+ }
+ function toClassName(name) {
+ return name.substr(-5) !== "Error" ? name + "Error" : name;
+ }
+ }
+});
+
+// node_modules/ms/index.js
+var require_ms = __commonJS({
+ "node_modules/ms/index.js"(exports2, module2) {
+ var s = 1e3;
+ var m = s * 60;
+ var h = m * 60;
+ var d = h * 24;
+ var y = d * 365.25;
+ module2.exports = function(val, options) {
+ options = options || {};
+ var type = typeof val;
+ if (type === "string" && val.length > 0) {
+ return parse(val);
+ } else if (type === "number" && isNaN(val) === false) {
+ return options.long ? fmtLong(val) : fmtShort(val);
+ }
+ throw new Error(
+ "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
+ );
+ };
+ function parse(str) {
+ str = String(str);
+ if (str.length > 100) {
+ return;
+ }
+ var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
+ str
+ );
+ if (!match) {
+ return;
+ }
+ var n = parseFloat(match[1]);
+ var type = (match[2] || "ms").toLowerCase();
+ switch (type) {
+ case "years":
+ case "year":
+ case "yrs":
+ case "yr":
+ case "y":
+ return n * y;
+ case "days":
+ case "day":
+ case "d":
+ return n * d;
+ case "hours":
+ case "hour":
+ case "hrs":
+ case "hr":
+ case "h":
+ return n * h;
+ case "minutes":
+ case "minute":
+ case "mins":
+ case "min":
+ case "m":
+ return n * m;
+ case "seconds":
+ case "second":
+ case "secs":
+ case "sec":
+ case "s":
+ return n * s;
+ case "milliseconds":
+ case "millisecond":
+ case "msecs":
+ case "msec":
+ case "ms":
+ return n;
+ default:
+ return void 0;
+ }
+ }
+ function fmtShort(ms) {
+ if (ms >= d) {
+ return Math.round(ms / d) + "d";
+ }
+ if (ms >= h) {
+ return Math.round(ms / h) + "h";
+ }
+ if (ms >= m) {
+ return Math.round(ms / m) + "m";
+ }
+ if (ms >= s) {
+ return Math.round(ms / s) + "s";
+ }
+ return ms + "ms";
+ }
+ function fmtLong(ms) {
+ return plural(ms, d, "day") || plural(ms, h, "hour") || plural(ms, m, "minute") || plural(ms, s, "second") || ms + " ms";
+ }
+ function plural(ms, n, name) {
+ if (ms < n) {
+ return;
+ }
+ if (ms < n * 1.5) {
+ return Math.floor(ms / n) + " " + name;
+ }
+ return Math.ceil(ms / n) + " " + name + "s";
+ }
+ }
+});
+
+// node_modules/debug/src/debug.js
+var require_debug = __commonJS({
+ "node_modules/debug/src/debug.js"(exports2, module2) {
+ exports2 = module2.exports = createDebug.debug = createDebug["default"] = createDebug;
+ exports2.coerce = coerce;
+ exports2.disable = disable;
+ exports2.enable = enable;
+ exports2.enabled = enabled;
+ exports2.humanize = require_ms();
+ exports2.names = [];
+ exports2.skips = [];
+ exports2.formatters = {};
+ var prevTime;
+ function selectColor(namespace) {
+ var hash = 0, i;
+ for (i in namespace) {
+ hash = (hash << 5) - hash + namespace.charCodeAt(i);
+ hash |= 0;
+ }
+ return exports2.colors[Math.abs(hash) % exports2.colors.length];
+ }
+ function createDebug(namespace) {
+ function debug() {
+ if (!debug.enabled)
+ return;
+ var self2 = debug;
+ var curr = +/* @__PURE__ */ new Date();
+ var ms = curr - (prevTime || curr);
+ self2.diff = ms;
+ self2.prev = prevTime;
+ self2.curr = curr;
+ prevTime = curr;
+ var args = new Array(arguments.length);
+ for (var i = 0; i < args.length; i++) {
+ args[i] = arguments[i];
+ }
+ args[0] = exports2.coerce(args[0]);
+ if ("string" !== typeof args[0]) {
+ args.unshift("%O");
+ }
+ var index = 0;
+ args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
+ if (match === "%%")
+ return match;
+ index++;
+ var formatter = exports2.formatters[format];
+ if ("function" === typeof formatter) {
+ var val = args[index];
+ match = formatter.call(self2, val);
+ args.splice(index, 1);
+ index--;
+ }
+ return match;
+ });
+ exports2.formatArgs.call(self2, args);
+ var logFn = debug.log || exports2.log || console.log.bind(console);
+ logFn.apply(self2, args);
+ }
+ debug.namespace = namespace;
+ debug.enabled = exports2.enabled(namespace);
+ debug.useColors = exports2.useColors();
+ debug.color = selectColor(namespace);
+ if ("function" === typeof exports2.init) {
+ exports2.init(debug);
+ }
+ return debug;
+ }
+ function enable(namespaces) {
+ exports2.save(namespaces);
+ exports2.names = [];
+ exports2.skips = [];
+ var split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
+ var len = split.length;
+ for (var i = 0; i < len; i++) {
+ if (!split[i])
+ continue;
+ namespaces = split[i].replace(/\*/g, ".*?");
+ if (namespaces[0] === "-") {
+ exports2.skips.push(new RegExp("^" + namespaces.substr(1) + "$"));
+ } else {
+ exports2.names.push(new RegExp("^" + namespaces + "$"));
+ }
+ }
+ }
+ function disable() {
+ exports2.enable("");
+ }
+ function enabled(name) {
+ var i, len;
+ for (i = 0, len = exports2.skips.length; i < len; i++) {
+ if (exports2.skips[i].test(name)) {
+ return false;
+ }
+ }
+ for (i = 0, len = exports2.names.length; i < len; i++) {
+ if (exports2.names[i].test(name)) {
+ return true;
+ }
+ }
+ return false;
+ }
+ function coerce(val) {
+ if (val instanceof Error)
+ return val.stack || val.message;
+ return val;
+ }
+ }
+});
+
+// node_modules/debug/src/browser.js
+var require_browser = __commonJS({
+ "node_modules/debug/src/browser.js"(exports2, module2) {
+ exports2 = module2.exports = require_debug();
+ exports2.log = log;
+ exports2.formatArgs = formatArgs;
+ exports2.save = save;
+ exports2.load = load;
+ exports2.useColors = useColors;
+ exports2.storage = "undefined" != typeof chrome && "undefined" != typeof chrome.storage ? chrome.storage.local : localstorage();
+ exports2.colors = [
+ "lightseagreen",
+ "forestgreen",
+ "goldenrod",
+ "dodgerblue",
+ "darkorchid",
+ "crimson"
+ ];
+ function useColors() {
+ if (typeof window !== "undefined" && window.process && window.process.type === "renderer") {
+ return true;
+ }
+ return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // is firebug? http://stackoverflow.com/a/398120/376773
+ typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // is firefox >= v31?
+ // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
+ typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // double check webkit in userAgent just in case we are in a worker
+ typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
+ }
+ exports2.formatters.j = function(v) {
+ try {
+ return JSON.stringify(v);
+ } catch (err) {
+ return "[UnexpectedJSONParseError]: " + err.message;
+ }
+ };
+ function formatArgs(args) {
+ var useColors2 = this.useColors;
+ args[0] = (useColors2 ? "%c" : "") + this.namespace + (useColors2 ? " %c" : " ") + args[0] + (useColors2 ? "%c " : " ") + "+" + exports2.humanize(this.diff);
+ if (!useColors2)
+ return;
+ var c = "color: " + this.color;
+ args.splice(1, 0, c, "color: inherit");
+ var index = 0;
+ var lastC = 0;
+ args[0].replace(/%[a-zA-Z%]/g, function(match) {
+ if ("%%" === match)
+ return;
+ index++;
+ if ("%c" === match) {
+ lastC = index;
+ }
+ });
+ args.splice(lastC, 0, c);
+ }
+ function log() {
+ return "object" === typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments);
+ }
+ function save(namespaces) {
+ try {
+ if (null == namespaces) {
+ exports2.storage.removeItem("debug");
+ } else {
+ exports2.storage.debug = namespaces;
+ }
+ } catch (e) {
+ }
+ }
+ function load() {
+ var r;
+ try {
+ r = exports2.storage.debug;
+ } catch (e) {
+ }
+ if (!r && typeof process !== "undefined" && "env" in process) {
+ r = process.env.DEBUG;
+ }
+ return r;
+ }
+ exports2.enable(load());
+ function localstorage() {
+ try {
+ return window.localStorage;
+ } catch (e) {
+ }
+ }
+ }
+});
+
+// node_modules/debug/src/node.js
+var require_node = __commonJS({
+ "node_modules/debug/src/node.js"(exports2, module2) {
+ var tty = require("tty");
+ var util = require("util");
+ exports2 = module2.exports = require_debug();
+ exports2.init = init;
+ exports2.log = log;
+ exports2.formatArgs = formatArgs;
+ exports2.save = save;
+ exports2.load = load;
+ exports2.useColors = useColors;
+ exports2.colors = [6, 2, 3, 4, 5, 1];
+ exports2.inspectOpts = Object.keys(process.env).filter(function(key) {
+ return /^debug_/i.test(key);
+ }).reduce(function(obj, key) {
+ var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, function(_, k) {
+ return k.toUpperCase();
+ });
+ var val = process.env[key];
+ if (/^(yes|on|true|enabled)$/i.test(val))
+ val = true;
+ else if (/^(no|off|false|disabled)$/i.test(val))
+ val = false;
+ else if (val === "null")
+ val = null;
+ else
+ val = Number(val);
+ obj[prop] = val;
+ return obj;
+ }, {});
+ var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
+ if (1 !== fd && 2 !== fd) {
+ util.deprecate(function() {
+ }, "except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();
+ }
+ var stream = 1 === fd ? process.stdout : 2 === fd ? process.stderr : createWritableStdioStream(fd);
+ function useColors() {
+ return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(fd);
+ }
+ exports2.formatters.o = function(v) {
+ this.inspectOpts.colors = this.useColors;
+ return util.inspect(v, this.inspectOpts).split("\n").map(function(str) {
+ return str.trim();
+ }).join(" ");
+ };
+ exports2.formatters.O = function(v) {
+ this.inspectOpts.colors = this.useColors;
+ return util.inspect(v, this.inspectOpts);
+ };
+ function formatArgs(args) {
+ var name = this.namespace;
+ var useColors2 = this.useColors;
+ if (useColors2) {
+ var c = this.color;
+ var prefix = " \x1B[3" + c + ";1m" + name + " \x1B[0m";
+ args[0] = prefix + args[0].split("\n").join("\n" + prefix);
+ args.push("\x1B[3" + c + "m+" + exports2.humanize(this.diff) + "\x1B[0m");
+ } else {
+ args[0] = (/* @__PURE__ */ new Date()).toUTCString() + " " + name + " " + args[0];
+ }
+ }
+ function log() {
+ return stream.write(util.format.apply(util, arguments) + "\n");
+ }
+ function save(namespaces) {
+ if (null == namespaces) {
+ delete process.env.DEBUG;
+ } else {
+ process.env.DEBUG = namespaces;
+ }
+ }
+ function load() {
+ return process.env.DEBUG;
+ }
+ function createWritableStdioStream(fd2) {
+ var stream2;
+ var tty_wrap = process.binding("tty_wrap");
+ switch (tty_wrap.guessHandleType(fd2)) {
+ case "TTY":
+ stream2 = new tty.WriteStream(fd2);
+ stream2._type = "tty";
+ if (stream2._handle && stream2._handle.unref) {
+ stream2._handle.unref();
+ }
+ break;
+ case "FILE":
+ var fs = require("fs");
+ stream2 = new fs.SyncWriteStream(fd2, { autoClose: false });
+ stream2._type = "fs";
+ break;
+ case "PIPE":
+ case "TCP":
+ var net = require("net");
+ stream2 = new net.Socket({
+ fd: fd2,
+ readable: false,
+ writable: true
+ });
+ stream2.readable = false;
+ stream2.read = null;
+ stream2._type = "pipe";
+ if (stream2._handle && stream2._handle.unref) {
+ stream2._handle.unref();
+ }
+ break;
+ default:
+ throw new Error("Implement me. Unknown stream file type!");
+ }
+ stream2.fd = fd2;
+ stream2._isStdio = true;
+ return stream2;
+ }
+ function init(debug) {
+ debug.inspectOpts = {};
+ var keys = Object.keys(exports2.inspectOpts);
+ for (var i = 0; i < keys.length; i++) {
+ debug.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]];
+ }
+ }
+ exports2.enable(load());
+ }
+});
+
+// node_modules/debug/src/index.js
+var require_src = __commonJS({
+ "node_modules/debug/src/index.js"(exports2, module2) {
+ if (typeof process !== "undefined" && process.type === "renderer") {
+ module2.exports = require_browser();
+ } else {
+ module2.exports = require_node();
+ }
+ }
+});
+
+// node_modules/destroy/index.js
+var require_destroy = __commonJS({
+ "node_modules/destroy/index.js"(exports2, module2) {
+ "use strict";
+ var EventEmitter = require("events").EventEmitter;
+ var ReadStream = require("fs").ReadStream;
+ var Stream = require("stream");
+ var Zlib = require("zlib");
+ module2.exports = destroy;
+ function destroy(stream, suppress) {
+ if (isFsReadStream(stream)) {
+ destroyReadStream(stream);
+ } else if (isZlibStream(stream)) {
+ destroyZlibStream(stream);
+ } else if (hasDestroy(stream)) {
+ stream.destroy();
+ }
+ if (isEventEmitter(stream) && suppress) {
+ stream.removeAllListeners("error");
+ stream.addListener("error", noop);
+ }
+ return stream;
+ }
+ function destroyReadStream(stream) {
+ stream.destroy();
+ if (typeof stream.close === "function") {
+ stream.on("open", onOpenClose);
+ }
+ }
+ function closeZlibStream(stream) {
+ if (stream._hadError === true) {
+ var prop = stream._binding === null ? "_binding" : "_handle";
+ stream[prop] = {
+ close: function() {
+ this[prop] = null;
+ }
+ };
+ }
+ stream.close();
+ }
+ function destroyZlibStream(stream) {
+ if (typeof stream.destroy === "function") {
+ if (stream._binding) {
+ stream.destroy();
+ if (stream._processing) {
+ stream._needDrain = true;
+ stream.once("drain", onDrainClearBinding);
+ } else {
+ stream._binding.clear();
+ }
+ } else if (stream._destroy && stream._destroy !== Stream.Transform.prototype._destroy) {
+ stream.destroy();
+ } else if (stream._destroy && typeof stream.close === "function") {
+ stream.destroyed = true;
+ stream.close();
+ } else {
+ stream.destroy();
+ }
+ } else if (typeof stream.close === "function") {
+ closeZlibStream(stream);
+ }
+ }
+ function hasDestroy(stream) {
+ return stream instanceof Stream && typeof stream.destroy === "function";
+ }
+ function isEventEmitter(val) {
+ return val instanceof EventEmitter;
+ }
+ function isFsReadStream(stream) {
+ return stream instanceof ReadStream;
+ }
+ function isZlibStream(stream) {
+ return stream instanceof Zlib.Gzip || stream instanceof Zlib.Gunzip || stream instanceof Zlib.Deflate || stream instanceof Zlib.DeflateRaw || stream instanceof Zlib.Inflate || stream instanceof Zlib.InflateRaw || stream instanceof Zlib.Unzip;
+ }
+ function noop() {
+ }
+ function onDrainClearBinding() {
+ this._binding.clear();
+ }
+ function onOpenClose() {
+ if (typeof this.fd === "number") {
+ this.close();
+ }
+ }
+ }
+});
+
+// node_modules/safer-buffer/safer.js
+var require_safer = __commonJS({
+ "node_modules/safer-buffer/safer.js"(exports2, module2) {
+ "use strict";
+ var buffer = require("buffer");
+ var Buffer2 = buffer.Buffer;
+ var safer = {};
+ var key;
+ for (key in buffer) {
+ if (!buffer.hasOwnProperty(key))
+ continue;
+ if (key === "SlowBuffer" || key === "Buffer")
+ continue;
+ safer[key] = buffer[key];
+ }
+ var Safer = safer.Buffer = {};
+ for (key in Buffer2) {
+ if (!Buffer2.hasOwnProperty(key))
+ continue;
+ if (key === "allocUnsafe" || key === "allocUnsafeSlow")
+ continue;
+ Safer[key] = Buffer2[key];
+ }
+ safer.Buffer.prototype = Buffer2.prototype;
+ if (!Safer.from || Safer.from === Uint8Array.from) {
+ Safer.from = function(value, encodingOrOffset, length) {
+ if (typeof value === "number") {
+ throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value);
+ }
+ if (value && typeof value.length === "undefined") {
+ throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value);
+ }
+ return Buffer2(value, encodingOrOffset, length);
+ };
+ }
+ if (!Safer.alloc) {
+ Safer.alloc = function(size, fill, encoding) {
+ if (typeof size !== "number") {
+ throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size);
+ }
+ if (size < 0 || size >= 2 * (1 << 30)) {
+ throw new RangeError('The value "' + size + '" is invalid for option "size"');
+ }
+ var buf = Buffer2(size);
+ if (!fill || fill.length === 0) {
+ buf.fill(0);
+ } else if (typeof encoding === "string") {
+ buf.fill(fill, encoding);
+ } else {
+ buf.fill(fill);
+ }
+ return buf;
+ };
+ }
+ if (!safer.kStringMaxLength) {
+ try {
+ safer.kStringMaxLength = process.binding("buffer").kStringMaxLength;
+ } catch (e) {
+ }
+ }
+ if (!safer.constants) {
+ safer.constants = {
+ MAX_LENGTH: safer.kMaxLength
+ };
+ if (safer.kStringMaxLength) {
+ safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength;
+ }
+ }
+ module2.exports = safer;
+ }
+});
+
+// node_modules/iconv-lite/lib/bom-handling.js
+var require_bom_handling = __commonJS({
+ "node_modules/iconv-lite/lib/bom-handling.js"(exports2) {
+ "use strict";
+ var BOMChar = "\uFEFF";
+ exports2.PrependBOM = PrependBOMWrapper;
+ function PrependBOMWrapper(encoder, options) {
+ this.encoder = encoder;
+ this.addBOM = true;
+ }
+ PrependBOMWrapper.prototype.write = function(str) {
+ if (this.addBOM) {
+ str = BOMChar + str;
+ this.addBOM = false;
+ }
+ return this.encoder.write(str);
+ };
+ PrependBOMWrapper.prototype.end = function() {
+ return this.encoder.end();
+ };
+ exports2.StripBOM = StripBOMWrapper;
+ function StripBOMWrapper(decoder, options) {
+ this.decoder = decoder;
+ this.pass = false;
+ this.options = options || {};
+ }
+ StripBOMWrapper.prototype.write = function(buf) {
+ var res = this.decoder.write(buf);
+ if (this.pass || !res)
+ return res;
+ if (res[0] === BOMChar) {
+ res = res.slice(1);
+ if (typeof this.options.stripBOM === "function")
+ this.options.stripBOM();
+ }
+ this.pass = true;
+ return res;
+ };
+ StripBOMWrapper.prototype.end = function() {
+ return this.decoder.end();
+ };
+ }
+});
+
+// node_modules/iconv-lite/encodings/internal.js
+var require_internal = __commonJS({
+ "node_modules/iconv-lite/encodings/internal.js"(exports2, module2) {
+ "use strict";
+ var Buffer2 = require_safer().Buffer;
+ module2.exports = {
+ // Encodings
+ utf8: { type: "_internal", bomAware: true },
+ cesu8: { type: "_internal", bomAware: true },
+ unicode11utf8: "utf8",
+ ucs2: { type: "_internal", bomAware: true },
+ utf16le: "ucs2",
+ binary: { type: "_internal" },
+ base64: { type: "_internal" },
+ hex: { type: "_internal" },
+ // Codec.
+ _internal: InternalCodec
+ };
+ function InternalCodec(codecOptions, iconv) {
+ this.enc = codecOptions.encodingName;
+ this.bomAware = codecOptions.bomAware;
+ if (this.enc === "base64")
+ this.encoder = InternalEncoderBase64;
+ else if (this.enc === "cesu8") {
+ this.enc = "utf8";
+ this.encoder = InternalEncoderCesu8;
+ if (Buffer2.from("eda0bdedb2a9", "hex").toString() !== "\u{1F4A9}") {
+ this.decoder = InternalDecoderCesu8;
+ this.defaultCharUnicode = iconv.defaultCharUnicode;
+ }
+ }
+ }
+ InternalCodec.prototype.encoder = InternalEncoder;
+ InternalCodec.prototype.decoder = InternalDecoder;
+ var StringDecoder = require("string_decoder").StringDecoder;
+ if (!StringDecoder.prototype.end)
+ StringDecoder.prototype.end = function() {
+ };
+ function InternalDecoder(options, codec) {
+ StringDecoder.call(this, codec.enc);
+ }
+ InternalDecoder.prototype = StringDecoder.prototype;
+ function InternalEncoder(options, codec) {
+ this.enc = codec.enc;
+ }
+ InternalEncoder.prototype.write = function(str) {
+ return Buffer2.from(str, this.enc);
+ };
+ InternalEncoder.prototype.end = function() {
+ };
+ function InternalEncoderBase64(options, codec) {
+ this.prevStr = "";
+ }
+ InternalEncoderBase64.prototype.write = function(str) {
+ str = this.prevStr + str;
+ var completeQuads = str.length - str.length % 4;
+ this.prevStr = str.slice(completeQuads);
+ str = str.slice(0, completeQuads);
+ return Buffer2.from(str, "base64");
+ };
+ InternalEncoderBase64.prototype.end = function() {
+ return Buffer2.from(this.prevStr, "base64");
+ };
+ function InternalEncoderCesu8(options, codec) {
+ }
+ InternalEncoderCesu8.prototype.write = function(str) {
+ var buf = Buffer2.alloc(str.length * 3), bufIdx = 0;
+ for (var i = 0; i < str.length; i++) {
+ var charCode = str.charCodeAt(i);
+ if (charCode < 128)
+ buf[bufIdx++] = charCode;
+ else if (charCode < 2048) {
+ buf[bufIdx++] = 192 + (charCode >>> 6);
+ buf[bufIdx++] = 128 + (charCode & 63);
+ } else {
+ buf[bufIdx++] = 224 + (charCode >>> 12);
+ buf[bufIdx++] = 128 + (charCode >>> 6 & 63);
+ buf[bufIdx++] = 128 + (charCode & 63);
+ }
+ }
+ return buf.slice(0, bufIdx);
+ };
+ InternalEncoderCesu8.prototype.end = function() {
+ };
+ function InternalDecoderCesu8(options, codec) {
+ this.acc = 0;
+ this.contBytes = 0;
+ this.accBytes = 0;
+ this.defaultCharUnicode = codec.defaultCharUnicode;
+ }
+ InternalDecoderCesu8.prototype.write = function(buf) {
+ var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes, res = "";
+ for (var i = 0; i < buf.length; i++) {
+ var curByte = buf[i];
+ if ((curByte & 192) !== 128) {
+ if (contBytes > 0) {
+ res += this.defaultCharUnicode;
+ contBytes = 0;
+ }
+ if (curByte < 128) {
+ res += String.fromCharCode(curByte);
+ } else if (curByte < 224) {
+ acc = curByte & 31;
+ contBytes = 1;
+ accBytes = 1;
+ } else if (curByte < 240) {
+ acc = curByte & 15;
+ contBytes = 2;
+ accBytes = 1;
+ } else {
+ res += this.defaultCharUnicode;
+ }
+ } else {
+ if (contBytes > 0) {
+ acc = acc << 6 | curByte & 63;
+ contBytes--;
+ accBytes++;
+ if (contBytes === 0) {
+ if (accBytes === 2 && acc < 128 && acc > 0)
+ res += this.defaultCharUnicode;
+ else if (accBytes === 3 && acc < 2048)
+ res += this.defaultCharUnicode;
+ else
+ res += String.fromCharCode(acc);
+ }
+ } else {
+ res += this.defaultCharUnicode;
+ }
+ }
+ }
+ this.acc = acc;
+ this.contBytes = contBytes;
+ this.accBytes = accBytes;
+ return res;
+ };
+ InternalDecoderCesu8.prototype.end = function() {
+ var res = 0;
+ if (this.contBytes > 0)
+ res += this.defaultCharUnicode;
+ return res;
+ };
+ }
+});
+
+// node_modules/iconv-lite/encodings/utf16.js
+var require_utf16 = __commonJS({
+ "node_modules/iconv-lite/encodings/utf16.js"(exports2) {
+ "use strict";
+ var Buffer2 = require_safer().Buffer;
+ exports2.utf16be = Utf16BECodec;
+ function Utf16BECodec() {
+ }
+ Utf16BECodec.prototype.encoder = Utf16BEEncoder;
+ Utf16BECodec.prototype.decoder = Utf16BEDecoder;
+ Utf16BECodec.prototype.bomAware = true;
+ function Utf16BEEncoder() {
+ }
+ Utf16BEEncoder.prototype.write = function(str) {
+ var buf = Buffer2.from(str, "ucs2");
+ for (var i = 0; i < buf.length; i += 2) {
+ var tmp = buf[i];
+ buf[i] = buf[i + 1];
+ buf[i + 1] = tmp;
+ }
+ return buf;
+ };
+ Utf16BEEncoder.prototype.end = function() {
+ };
+ function Utf16BEDecoder() {
+ this.overflowByte = -1;
+ }
+ Utf16BEDecoder.prototype.write = function(buf) {
+ if (buf.length == 0)
+ return "";
+ var buf2 = Buffer2.alloc(buf.length + 1), i = 0, j = 0;
+ if (this.overflowByte !== -1) {
+ buf2[0] = buf[0];
+ buf2[1] = this.overflowByte;
+ i = 1;
+ j = 2;
+ }
+ for (; i < buf.length - 1; i += 2, j += 2) {
+ buf2[j] = buf[i + 1];
+ buf2[j + 1] = buf[i];
+ }
+ this.overflowByte = i == buf.length - 1 ? buf[buf.length - 1] : -1;
+ return buf2.slice(0, j).toString("ucs2");
+ };
+ Utf16BEDecoder.prototype.end = function() {
+ };
+ exports2.utf16 = Utf16Codec;
+ function Utf16Codec(codecOptions, iconv) {
+ this.iconv = iconv;
+ }
+ Utf16Codec.prototype.encoder = Utf16Encoder;
+ Utf16Codec.prototype.decoder = Utf16Decoder;
+ function Utf16Encoder(options, codec) {
+ options = options || {};
+ if (options.addBOM === void 0)
+ options.addBOM = true;
+ this.encoder = codec.iconv.getEncoder("utf-16le", options);
+ }
+ Utf16Encoder.prototype.write = function(str) {
+ return this.encoder.write(str);
+ };
+ Utf16Encoder.prototype.end = function() {
+ return this.encoder.end();
+ };
+ function Utf16Decoder(options, codec) {
+ this.decoder = null;
+ this.initialBytes = [];
+ this.initialBytesLen = 0;
+ this.options = options || {};
+ this.iconv = codec.iconv;
+ }
+ Utf16Decoder.prototype.write = function(buf) {
+ if (!this.decoder) {
+ this.initialBytes.push(buf);
+ this.initialBytesLen += buf.length;
+ if (this.initialBytesLen < 16)
+ return "";
+ var buf = Buffer2.concat(this.initialBytes), encoding = detectEncoding(buf, this.options.defaultEncoding);
+ this.decoder = this.iconv.getDecoder(encoding, this.options);
+ this.initialBytes.length = this.initialBytesLen = 0;
+ }
+ return this.decoder.write(buf);
+ };
+ Utf16Decoder.prototype.end = function() {
+ if (!this.decoder) {
+ var buf = Buffer2.concat(this.initialBytes), encoding = detectEncoding(buf, this.options.defaultEncoding);
+ this.decoder = this.iconv.getDecoder(encoding, this.options);
+ var res = this.decoder.write(buf), trail = this.decoder.end();
+ return trail ? res + trail : res;
+ }
+ return this.decoder.end();
+ };
+ function detectEncoding(buf, defaultEncoding) {
+ var enc = defaultEncoding || "utf-16le";
+ if (buf.length >= 2) {
+ if (buf[0] == 254 && buf[1] == 255)
+ enc = "utf-16be";
+ else if (buf[0] == 255 && buf[1] == 254)
+ enc = "utf-16le";
+ else {
+ var asciiCharsLE = 0, asciiCharsBE = 0, _len = Math.min(buf.length - buf.length % 2, 64);
+ for (var i = 0; i < _len; i += 2) {
+ if (buf[i] === 0 && buf[i + 1] !== 0)
+ asciiCharsBE++;
+ if (buf[i] !== 0 && buf[i + 1] === 0)
+ asciiCharsLE++;
+ }
+ if (asciiCharsBE > asciiCharsLE)
+ enc = "utf-16be";
+ else if (asciiCharsBE < asciiCharsLE)
+ enc = "utf-16le";
+ }
+ }
+ return enc;
+ }
+ }
+});
+
+// node_modules/iconv-lite/encodings/utf7.js
+var require_utf7 = __commonJS({
+ "node_modules/iconv-lite/encodings/utf7.js"(exports2) {
+ "use strict";
+ var Buffer2 = require_safer().Buffer;
+ exports2.utf7 = Utf7Codec;
+ exports2.unicode11utf7 = "utf7";
+ function Utf7Codec(codecOptions, iconv) {
+ this.iconv = iconv;
+ }
+ Utf7Codec.prototype.encoder = Utf7Encoder;
+ Utf7Codec.prototype.decoder = Utf7Decoder;
+ Utf7Codec.prototype.bomAware = true;
+ var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;
+ function Utf7Encoder(options, codec) {
+ this.iconv = codec.iconv;
+ }
+ Utf7Encoder.prototype.write = function(str) {
+ return Buffer2.from(str.replace(nonDirectChars, function(chunk) {
+ return "+" + (chunk === "+" ? "" : this.iconv.encode(chunk, "utf16-be").toString("base64").replace(/=+$/, "")) + "-";
+ }.bind(this)));
+ };
+ Utf7Encoder.prototype.end = function() {
+ };
+ function Utf7Decoder(options, codec) {
+ this.iconv = codec.iconv;
+ this.inBase64 = false;
+ this.base64Accum = "";
+ }
+ var base64Regex = /[A-Za-z0-9\/+]/;
+ var base64Chars = [];
+ for (i = 0; i < 256; i++)
+ base64Chars[i] = base64Regex.test(String.fromCharCode(i));
+ var i;
+ var plusChar = "+".charCodeAt(0);
+ var minusChar = "-".charCodeAt(0);
+ var andChar = "&".charCodeAt(0);
+ Utf7Decoder.prototype.write = function(buf) {
+ var res = "", lastI = 0, inBase64 = this.inBase64, base64Accum = this.base64Accum;
+ for (var i2 = 0; i2 < buf.length; i2++) {
+ if (!inBase64) {
+ if (buf[i2] == plusChar) {
+ res += this.iconv.decode(buf.slice(lastI, i2), "ascii");
+ lastI = i2 + 1;
+ inBase64 = true;
+ }
+ } else {
+ if (!base64Chars[buf[i2]]) {
+ if (i2 == lastI && buf[i2] == minusChar) {
+ res += "+";
+ } else {
+ var b64str = base64Accum + buf.slice(lastI, i2).toString();
+ res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
+ }
+ if (buf[i2] != minusChar)
+ i2--;
+ lastI = i2 + 1;
+ inBase64 = false;
+ base64Accum = "";
+ }
+ }
+ }
+ if (!inBase64) {
+ res += this.iconv.decode(buf.slice(lastI), "ascii");
+ } else {
+ var b64str = base64Accum + buf.slice(lastI).toString();
+ var canBeDecoded = b64str.length - b64str.length % 8;
+ base64Accum = b64str.slice(canBeDecoded);
+ b64str = b64str.slice(0, canBeDecoded);
+ res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
+ }
+ this.inBase64 = inBase64;
+ this.base64Accum = base64Accum;
+ return res;
+ };
+ Utf7Decoder.prototype.end = function() {
+ var res = "";
+ if (this.inBase64 && this.base64Accum.length > 0)
+ res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be");
+ this.inBase64 = false;
+ this.base64Accum = "";
+ return res;
+ };
+ exports2.utf7imap = Utf7IMAPCodec;
+ function Utf7IMAPCodec(codecOptions, iconv) {
+ this.iconv = iconv;
+ }
+ Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
+ Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
+ Utf7IMAPCodec.prototype.bomAware = true;
+ function Utf7IMAPEncoder(options, codec) {
+ this.iconv = codec.iconv;
+ this.inBase64 = false;
+ this.base64Accum = Buffer2.alloc(6);
+ this.base64AccumIdx = 0;
+ }
+ Utf7IMAPEncoder.prototype.write = function(str) {
+ var inBase64 = this.inBase64, base64Accum = this.base64Accum, base64AccumIdx = this.base64AccumIdx, buf = Buffer2.alloc(str.length * 5 + 10), bufIdx = 0;
+ for (var i2 = 0; i2 < str.length; i2++) {
+ var uChar = str.charCodeAt(i2);
+ if (32 <= uChar && uChar <= 126) {
+ if (inBase64) {
+ if (base64AccumIdx > 0) {
+ bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx);
+ base64AccumIdx = 0;
+ }
+ buf[bufIdx++] = minusChar;
+ inBase64 = false;
+ }
+ if (!inBase64) {
+ buf[bufIdx++] = uChar;
+ if (uChar === andChar)
+ buf[bufIdx++] = minusChar;
+ }
+ } else {
+ if (!inBase64) {
+ buf[bufIdx++] = andChar;
+ inBase64 = true;
+ }
+ if (inBase64) {
+ base64Accum[base64AccumIdx++] = uChar >> 8;
+ base64Accum[base64AccumIdx++] = uChar & 255;
+ if (base64AccumIdx == base64Accum.length) {
+ bufIdx += buf.write(base64Accum.toString("base64").replace(/\//g, ","), bufIdx);
+ base64AccumIdx = 0;
+ }
+ }
+ }
+ }
+ this.inBase64 = inBase64;
+ this.base64AccumIdx = base64AccumIdx;
+ return buf.slice(0, bufIdx);
+ };
+ Utf7IMAPEncoder.prototype.end = function() {
+ var buf = Buffer2.alloc(10), bufIdx = 0;
+ if (this.inBase64) {
+ if (this.base64AccumIdx > 0) {
+ bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString("base64").replace(/\//g, ",").replace(/=+$/, ""), bufIdx);
+ this.base64AccumIdx = 0;
+ }
+ buf[bufIdx++] = minusChar;
+ this.inBase64 = false;
+ }
+ return buf.slice(0, bufIdx);
+ };
+ function Utf7IMAPDecoder(options, codec) {
+ this.iconv = codec.iconv;
+ this.inBase64 = false;
+ this.base64Accum = "";
+ }
+ var base64IMAPChars = base64Chars.slice();
+ base64IMAPChars[",".charCodeAt(0)] = true;
+ Utf7IMAPDecoder.prototype.write = function(buf) {
+ var res = "", lastI = 0, inBase64 = this.inBase64, base64Accum = this.base64Accum;
+ for (var i2 = 0; i2 < buf.length; i2++) {
+ if (!inBase64) {
+ if (buf[i2] == andChar) {
+ res += this.iconv.decode(buf.slice(lastI, i2), "ascii");
+ lastI = i2 + 1;
+ inBase64 = true;
+ }
+ } else {
+ if (!base64IMAPChars[buf[i2]]) {
+ if (i2 == lastI && buf[i2] == minusChar) {
+ res += "&";
+ } else {
+ var b64str = base64Accum + buf.slice(lastI, i2).toString().replace(/,/g, "/");
+ res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
+ }
+ if (buf[i2] != minusChar)
+ i2--;
+ lastI = i2 + 1;
+ inBase64 = false;
+ base64Accum = "";
+ }
+ }
+ }
+ if (!inBase64) {
+ res += this.iconv.decode(buf.slice(lastI), "ascii");
+ } else {
+ var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, "/");
+ var canBeDecoded = b64str.length - b64str.length % 8;
+ base64Accum = b64str.slice(canBeDecoded);
+ b64str = b64str.slice(0, canBeDecoded);
+ res += this.iconv.decode(Buffer2.from(b64str, "base64"), "utf16-be");
+ }
+ this.inBase64 = inBase64;
+ this.base64Accum = base64Accum;
+ return res;
+ };
+ Utf7IMAPDecoder.prototype.end = function() {
+ var res = "";
+ if (this.inBase64 && this.base64Accum.length > 0)
+ res = this.iconv.decode(Buffer2.from(this.base64Accum, "base64"), "utf16-be");
+ this.inBase64 = false;
+ this.base64Accum = "";
+ return res;
+ };
+ }
+});
+
+// node_modules/iconv-lite/encodings/sbcs-codec.js
+var require_sbcs_codec = __commonJS({
+ "node_modules/iconv-lite/encodings/sbcs-codec.js"(exports2) {
+ "use strict";
+ var Buffer2 = require_safer().Buffer;
+ exports2._sbcs = SBCSCodec;
+ function SBCSCodec(codecOptions, iconv) {
+ if (!codecOptions)
+ throw new Error("SBCS codec is called without the data.");
+ if (!codecOptions.chars || codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256)
+ throw new Error("Encoding '" + codecOptions.type + "' has incorrect 'chars' (must be of len 128 or 256)");
+ if (codecOptions.chars.length === 128) {
+ var asciiString = "";
+ for (var i = 0; i < 128; i++)
+ asciiString += String.fromCharCode(i);
+ codecOptions.chars = asciiString + codecOptions.chars;
+ }
+ this.decodeBuf = Buffer2.from(codecOptions.chars, "ucs2");
+ var encodeBuf = Buffer2.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0));
+ for (var i = 0; i < codecOptions.chars.length; i++)
+ encodeBuf[codecOptions.chars.charCodeAt(i)] = i;
+ this.encodeBuf = encodeBuf;
+ }
+ SBCSCodec.prototype.encoder = SBCSEncoder;
+ SBCSCodec.prototype.decoder = SBCSDecoder;
+ function SBCSEncoder(options, codec) {
+ this.encodeBuf = codec.encodeBuf;
+ }
+ SBCSEncoder.prototype.write = function(str) {
+ var buf = Buffer2.alloc(str.length);
+ for (var i = 0; i < str.length; i++)
+ buf[i] = this.encodeBuf[str.charCodeAt(i)];
+ return buf;
+ };
+ SBCSEncoder.prototype.end = function() {
+ };
+ function SBCSDecoder(options, codec) {
+ this.decodeBuf = codec.decodeBuf;
+ }
+ SBCSDecoder.prototype.write = function(buf) {
+ var decodeBuf = this.decodeBuf;
+ var newBuf = Buffer2.alloc(buf.length * 2);
+ var idx1 = 0, idx2 = 0;
+ for (var i = 0; i < buf.length; i++) {
+ idx1 = buf[i] * 2;
+ idx2 = i * 2;
+ newBuf[idx2] = decodeBuf[idx1];
+ newBuf[idx2 + 1] = decodeBuf[idx1 + 1];
+ }
+ return newBuf.toString("ucs2");
+ };
+ SBCSDecoder.prototype.end = function() {
+ };
+ }
+});
+
+// node_modules/iconv-lite/encodings/sbcs-data.js
+var require_sbcs_data = __commonJS({
+ "node_modules/iconv-lite/encodings/sbcs-data.js"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ // Not supported by iconv, not sure why.
+ "10029": "maccenteuro",
+ "maccenteuro": {
+ "type": "_sbcs",
+ "chars": "\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"
+ },
+ "808": "cp808",
+ "ibm808": "cp808",
+ "cp808": {
+ "type": "_sbcs",
+ "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"
+ },
+ "mik": {
+ "type": "_sbcs",
+ "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
+ },
+ // Aliases of generated encodings.
+ "ascii8bit": "ascii",
+ "usascii": "ascii",
+ "ansix34": "ascii",
+ "ansix341968": "ascii",
+ "ansix341986": "ascii",
+ "csascii": "ascii",
+ "cp367": "ascii",
+ "ibm367": "ascii",
+ "isoir6": "ascii",
+ "iso646us": "ascii",
+ "iso646irv": "ascii",
+ "us": "ascii",
+ "latin1": "iso88591",
+ "latin2": "iso88592",
+ "latin3": "iso88593",
+ "latin4": "iso88594",
+ "latin5": "iso88599",
+ "latin6": "iso885910",
+ "latin7": "iso885913",
+ "latin8": "iso885914",
+ "latin9": "iso885915",
+ "latin10": "iso885916",
+ "csisolatin1": "iso88591",
+ "csisolatin2": "iso88592",
+ "csisolatin3": "iso88593",
+ "csisolatin4": "iso88594",
+ "csisolatincyrillic": "iso88595",
+ "csisolatinarabic": "iso88596",
+ "csisolatingreek": "iso88597",
+ "csisolatinhebrew": "iso88598",
+ "csisolatin5": "iso88599",
+ "csisolatin6": "iso885910",
+ "l1": "iso88591",
+ "l2": "iso88592",
+ "l3": "iso88593",
+ "l4": "iso88594",
+ "l5": "iso88599",
+ "l6": "iso885910",
+ "l7": "iso885913",
+ "l8": "iso885914",
+ "l9": "iso885915",
+ "l10": "iso885916",
+ "isoir14": "iso646jp",
+ "isoir57": "iso646cn",
+ "isoir100": "iso88591",
+ "isoir101": "iso88592",
+ "isoir109": "iso88593",
+ "isoir110": "iso88594",
+ "isoir144": "iso88595",
+ "isoir127": "iso88596",
+ "isoir126": "iso88597",
+ "isoir138": "iso88598",
+ "isoir148": "iso88599",
+ "isoir157": "iso885910",
+ "isoir166": "tis620",
+ "isoir179": "iso885913",
+ "isoir199": "iso885914",
+ "isoir203": "iso885915",
+ "isoir226": "iso885916",
+ "cp819": "iso88591",
+ "ibm819": "iso88591",
+ "cyrillic": "iso88595",
+ "arabic": "iso88596",
+ "arabic8": "iso88596",
+ "ecma114": "iso88596",
+ "asmo708": "iso88596",
+ "greek": "iso88597",
+ "greek8": "iso88597",
+ "ecma118": "iso88597",
+ "elot928": "iso88597",
+ "hebrew": "iso88598",
+ "hebrew8": "iso88598",
+ "turkish": "iso88599",
+ "turkish8": "iso88599",
+ "thai": "iso885911",
+ "thai8": "iso885911",
+ "celtic": "iso885914",
+ "celtic8": "iso885914",
+ "isoceltic": "iso885914",
+ "tis6200": "tis620",
+ "tis62025291": "tis620",
+ "tis62025330": "tis620",
+ "10000": "macroman",
+ "10006": "macgreek",
+ "10007": "maccyrillic",
+ "10079": "maciceland",
+ "10081": "macturkish",
+ "cspc8codepage437": "cp437",
+ "cspc775baltic": "cp775",
+ "cspc850multilingual": "cp850",
+ "cspcp852": "cp852",
+ "cspc862latinhebrew": "cp862",
+ "cpgr": "cp869",
+ "msee": "cp1250",
+ "mscyrl": "cp1251",
+ "msansi": "cp1252",
+ "msgreek": "cp1253",
+ "msturk": "cp1254",
+ "mshebr": "cp1255",
+ "msarab": "cp1256",
+ "winbaltrim": "cp1257",
+ "cp20866": "koi8r",
+ "20866": "koi8r",
+ "ibm878": "koi8r",
+ "cskoi8r": "koi8r",
+ "cp21866": "koi8u",
+ "21866": "koi8u",
+ "ibm1168": "koi8u",
+ "strk10482002": "rk1048",
+ "tcvn5712": "tcvn",
+ "tcvn57121": "tcvn",
+ "gb198880": "iso646cn",
+ "cn": "iso646cn",
+ "csiso14jisc6220ro": "iso646jp",
+ "jisc62201969ro": "iso646jp",
+ "jp": "iso646jp",
+ "cshproman8": "hproman8",
+ "r8": "hproman8",
+ "roman8": "hproman8",
+ "xroman8": "hproman8",
+ "ibm1051": "hproman8",
+ "mac": "macintosh",
+ "csmacintosh": "macintosh"
+ };
+ }
+});
+
+// node_modules/iconv-lite/encodings/sbcs-data-generated.js
+var require_sbcs_data_generated = __commonJS({
+ "node_modules/iconv-lite/encodings/sbcs-data-generated.js"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ "437": "cp437",
+ "737": "cp737",
+ "775": "cp775",
+ "850": "cp850",
+ "852": "cp852",
+ "855": "cp855",
+ "856": "cp856",
+ "857": "cp857",
+ "858": "cp858",
+ "860": "cp860",
+ "861": "cp861",
+ "862": "cp862",
+ "863": "cp863",
+ "864": "cp864",
+ "865": "cp865",
+ "866": "cp866",
+ "869": "cp869",
+ "874": "windows874",
+ "922": "cp922",
+ "1046": "cp1046",
+ "1124": "cp1124",
+ "1125": "cp1125",
+ "1129": "cp1129",
+ "1133": "cp1133",
+ "1161": "cp1161",
+ "1162": "cp1162",
+ "1163": "cp1163",
+ "1250": "windows1250",
+ "1251": "windows1251",
+ "1252": "windows1252",
+ "1253": "windows1253",
+ "1254": "windows1254",
+ "1255": "windows1255",
+ "1256": "windows1256",
+ "1257": "windows1257",
+ "1258": "windows1258",
+ "28591": "iso88591",
+ "28592": "iso88592",
+ "28593": "iso88593",
+ "28594": "iso88594",
+ "28595": "iso88595",
+ "28596": "iso88596",
+ "28597": "iso88597",
+ "28598": "iso88598",
+ "28599": "iso88599",
+ "28600": "iso885910",
+ "28601": "iso885911",
+ "28603": "iso885913",
+ "28604": "iso885914",
+ "28605": "iso885915",
+ "28606": "iso885916",
+ "windows874": {
+ "type": "_sbcs",
+ "chars": "\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
+ },
+ "win874": "windows874",
+ "cp874": "windows874",
+ "windows1250": {
+ "type": "_sbcs",
+ "chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"
+ },
+ "win1250": "windows1250",
+ "cp1250": "windows1250",
+ "windows1251": {
+ "type": "_sbcs",
+ "chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
+ },
+ "win1251": "windows1251",
+ "cp1251": "windows1251",
+ "windows1252": {
+ "type": "_sbcs",
+ "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
+ },
+ "win1252": "windows1252",
+ "cp1252": "windows1252",
+ "windows1253": {
+ "type": "_sbcs",
+ "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"
+ },
+ "win1253": "windows1253",
+ "cp1253": "windows1253",
+ "windows1254": {
+ "type": "_sbcs",
+ "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"
+ },
+ "win1254": "windows1254",
+ "cp1254": "windows1254",
+ "windows1255": {
+ "type": "_sbcs",
+ "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"
+ },
+ "win1255": "windows1255",
+ "cp1255": "windows1255",
+ "windows1256": {
+ "type": "_sbcs",
+ "chars": "\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"
+ },
+ "win1256": "windows1256",
+ "cp1256": "windows1256",
+ "windows1257": {
+ "type": "_sbcs",
+ "chars": "\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"
+ },
+ "win1257": "windows1257",
+ "cp1257": "windows1257",
+ "windows1258": {
+ "type": "_sbcs",
+ "chars": "\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
+ },
+ "win1258": "windows1258",
+ "cp1258": "windows1258",
+ "iso88591": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
+ },
+ "cp28591": "iso88591",
+ "iso88592": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"
+ },
+ "cp28592": "iso88592",
+ "iso88593": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"
+ },
+ "cp28593": "iso88593",
+ "iso88594": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"
+ },
+ "cp28594": "iso88594",
+ "iso88595": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"
+ },
+ "cp28595": "iso88595",
+ "iso88596": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
+ },
+ "cp28596": "iso88596",
+ "iso88597": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"
+ },
+ "cp28597": "iso88597",
+ "iso88598": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"
+ },
+ "cp28598": "iso88598",
+ "iso88599": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"
+ },
+ "cp28599": "iso88599",
+ "iso885910": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"
+ },
+ "cp28600": "iso885910",
+ "iso885911": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
+ },
+ "cp28601": "iso885911",
+ "iso885913": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"
+ },
+ "cp28603": "iso885913",
+ "iso885914": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"
+ },
+ "cp28604": "iso885914",
+ "iso885915": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
+ },
+ "cp28605": "iso885915",
+ "iso885916": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"
+ },
+ "cp28606": "iso885916",
+ "cp437": {
+ "type": "_sbcs",
+ "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
+ },
+ "ibm437": "cp437",
+ "csibm437": "cp437",
+ "cp737": {
+ "type": "_sbcs",
+ "chars": "\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
+ },
+ "ibm737": "cp737",
+ "csibm737": "cp737",
+ "cp775": {
+ "type": "_sbcs",
+ "chars": "\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"
+ },
+ "ibm775": "cp775",
+ "csibm775": "cp775",
+ "cp850": {
+ "type": "_sbcs",
+ "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
+ },
+ "ibm850": "cp850",
+ "csibm850": "cp850",
+ "cp852": {
+ "type": "_sbcs",
+ "chars": "\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"
+ },
+ "ibm852": "cp852",
+ "csibm852": "cp852",
+ "cp855": {
+ "type": "_sbcs",
+ "chars": "\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"
+ },
+ "ibm855": "cp855",
+ "csibm855": "cp855",
+ "cp856": {
+ "type": "_sbcs",
+ "chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
+ },
+ "ibm856": "cp856",
+ "csibm856": "cp856",
+ "cp857": {
+ "type": "_sbcs",
+ "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
+ },
+ "ibm857": "cp857",
+ "csibm857": "cp857",
+ "cp858": {
+ "type": "_sbcs",
+ "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"
+ },
+ "ibm858": "cp858",
+ "csibm858": "cp858",
+ "cp860": {
+ "type": "_sbcs",
+ "chars": "\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
+ },
+ "ibm860": "cp860",
+ "csibm860": "cp860",
+ "cp861": {
+ "type": "_sbcs",
+ "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
+ },
+ "ibm861": "cp861",
+ "csibm861": "cp861",
+ "cp862": {
+ "type": "_sbcs",
+ "chars": "\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
+ },
+ "ibm862": "cp862",
+ "csibm862": "cp862",
+ "cp863": {
+ "type": "_sbcs",
+ "chars": "\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
+ },
+ "ibm863": "cp863",
+ "csibm863": "cp863",
+ "cp864": {
+ "type": "_sbcs",
+ "chars": "\0\x07\b \n\v\f\r\x1B !\"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD"
+ },
+ "ibm864": "cp864",
+ "csibm864": "cp864",
+ "cp865": {
+ "type": "_sbcs",
+ "chars": "\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"
+ },
+ "ibm865": "cp865",
+ "csibm865": "cp865",
+ "cp866": {
+ "type": "_sbcs",
+ "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"
+ },
+ "ibm866": "cp866",
+ "csibm866": "cp866",
+ "cp869": {
+ "type": "_sbcs",
+ "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"
+ },
+ "ibm869": "cp869",
+ "csibm869": "cp869",
+ "cp922": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"
+ },
+ "ibm922": "cp922",
+ "csibm922": "cp922",
+ "cp1046": {
+ "type": "_sbcs",
+ "chars": "\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"
+ },
+ "ibm1046": "cp1046",
+ "csibm1046": "cp1046",
+ "cp1124": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"
+ },
+ "ibm1124": "cp1124",
+ "csibm1124": "cp1124",
+ "cp1125": {
+ "type": "_sbcs",
+ "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0"
+ },
+ "ibm1125": "cp1125",
+ "csibm1125": "cp1125",
+ "cp1129": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
+ },
+ "ibm1129": "cp1129",
+ "csibm1129": "cp1129",
+ "cp1133": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD"
+ },
+ "ibm1133": "cp1133",
+ "csibm1133": "cp1133",
+ "cp1161": {
+ "type": "_sbcs",
+ "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0"
+ },
+ "ibm1161": "cp1161",
+ "csibm1161": "cp1161",
+ "cp1162": {
+ "type": "_sbcs",
+ "chars": "\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
+ },
+ "ibm1162": "cp1162",
+ "csibm1162": "cp1162",
+ "cp1163": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"
+ },
+ "ibm1163": "cp1163",
+ "csibm1163": "cp1163",
+ "maccroatian": {
+ "type": "_sbcs",
+ "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7"
+ },
+ "maccyrillic": {
+ "type": "_sbcs",
+ "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"
+ },
+ "macgreek": {
+ "type": "_sbcs",
+ "chars": "\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD"
+ },
+ "maciceland": {
+ "type": "_sbcs",
+ "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
+ },
+ "macroman": {
+ "type": "_sbcs",
+ "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
+ },
+ "macromania": {
+ "type": "_sbcs",
+ "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
+ },
+ "macthai": {
+ "type": "_sbcs",
+ "chars": "\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD"
+ },
+ "macturkish": {
+ "type": "_sbcs",
+ "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
+ },
+ "macukraine": {
+ "type": "_sbcs",
+ "chars": "\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"
+ },
+ "koi8r": {
+ "type": "_sbcs",
+ "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
+ },
+ "koi8u": {
+ "type": "_sbcs",
+ "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
+ },
+ "koi8ru": {
+ "type": "_sbcs",
+ "chars": "\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
+ },
+ "koi8t": {
+ "type": "_sbcs",
+ "chars": "\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"
+ },
+ "armscii8": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD"
+ },
+ "rk1048": {
+ "type": "_sbcs",
+ "chars": "\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
+ },
+ "tcvn": {
+ "type": "_sbcs",
+ "chars": "\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b \n\v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0"
+ },
+ "georgianacademy": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
+ },
+ "georgianps": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"
+ },
+ "pt154": {
+ "type": "_sbcs",
+ "chars": "\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"
+ },
+ "viscii": {
+ "type": "_sbcs",
+ "chars": "\0\u1EB2\u1EB4\u1EAA\x07\b \n\v\f\r\u1EF6\u1EF8\x1B\u1EF4 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE"
+ },
+ "iso646cn": {
+ "type": "_sbcs",
+ "chars": "\0\x07\b \n\v\f\r\x1B !\"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
+ },
+ "iso646jp": {
+ "type": "_sbcs",
+ "chars": "\0\x07\b \n\v\f\r\x1B !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
+ },
+ "hproman8": {
+ "type": "_sbcs",
+ "chars": "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"
+ },
+ "macintosh": {
+ "type": "_sbcs",
+ "chars": "\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"
+ },
+ "ascii": {
+ "type": "_sbcs",
+ "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"
+ },
+ "tis620": {
+ "type": "_sbcs",
+ "chars": "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"
+ }
+ };
+ }
+});
+
+// node_modules/iconv-lite/encodings/dbcs-codec.js
+var require_dbcs_codec = __commonJS({
+ "node_modules/iconv-lite/encodings/dbcs-codec.js"(exports2) {
+ "use strict";
+ var Buffer2 = require_safer().Buffer;
+ exports2._dbcs = DBCSCodec;
+ var UNASSIGNED = -1;
+ var GB18030_CODE = -2;
+ var SEQ_START = -10;
+ var NODE_START = -1e3;
+ var UNASSIGNED_NODE = new Array(256);
+ var DEF_CHAR = -1;
+ for (i = 0; i < 256; i++)
+ UNASSIGNED_NODE[i] = UNASSIGNED;
+ var i;
+ function DBCSCodec(codecOptions, iconv) {
+ this.encodingName = codecOptions.encodingName;
+ if (!codecOptions)
+ throw new Error("DBCS codec is called without the data.");
+ if (!codecOptions.table)
+ throw new Error("Encoding '" + this.encodingName + "' has no data.");
+ var mappingTable = codecOptions.table();
+ this.decodeTables = [];
+ this.decodeTables[0] = UNASSIGNED_NODE.slice(0);
+ this.decodeTableSeq = [];
+ for (var i2 = 0; i2 < mappingTable.length; i2++)
+ this._addDecodeChunk(mappingTable[i2]);
+ this.defaultCharUnicode = iconv.defaultCharUnicode;
+ this.encodeTable = [];
+ this.encodeTableSeq = [];
+ var skipEncodeChars = {};
+ if (codecOptions.encodeSkipVals)
+ for (var i2 = 0; i2 < codecOptions.encodeSkipVals.length; i2++) {
+ var val = codecOptions.encodeSkipVals[i2];
+ if (typeof val === "number")
+ skipEncodeChars[val] = true;
+ else
+ for (var j = val.from; j <= val.to; j++)
+ skipEncodeChars[j] = true;
+ }
+ this._fillEncodeTable(0, 0, skipEncodeChars);
+ if (codecOptions.encodeAdd) {
+ for (var uChar in codecOptions.encodeAdd)
+ if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar))
+ this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);
+ }
+ this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];
+ if (this.defCharSB === UNASSIGNED)
+ this.defCharSB = this.encodeTable[0]["?"];
+ if (this.defCharSB === UNASSIGNED)
+ this.defCharSB = "?".charCodeAt(0);
+ if (typeof codecOptions.gb18030 === "function") {
+ this.gb18030 = codecOptions.gb18030();
+ var thirdByteNodeIdx = this.decodeTables.length;
+ var thirdByteNode = this.decodeTables[thirdByteNodeIdx] = UNASSIGNED_NODE.slice(0);
+ var fourthByteNodeIdx = this.decodeTables.length;
+ var fourthByteNode = this.decodeTables[fourthByteNodeIdx] = UNASSIGNED_NODE.slice(0);
+ for (var i2 = 129; i2 <= 254; i2++) {
+ var secondByteNodeIdx = NODE_START - this.decodeTables[0][i2];
+ var secondByteNode = this.decodeTables[secondByteNodeIdx];
+ for (var j = 48; j <= 57; j++)
+ secondByteNode[j] = NODE_START - thirdByteNodeIdx;
+ }
+ for (var i2 = 129; i2 <= 254; i2++)
+ thirdByteNode[i2] = NODE_START - fourthByteNodeIdx;
+ for (var i2 = 48; i2 <= 57; i2++)
+ fourthByteNode[i2] = GB18030_CODE;
+ }
+ }
+ DBCSCodec.prototype.encoder = DBCSEncoder;
+ DBCSCodec.prototype.decoder = DBCSDecoder;
+ DBCSCodec.prototype._getDecodeTrieNode = function(addr) {
+ var bytes = [];
+ for (; addr > 0; addr >>= 8)
+ bytes.push(addr & 255);
+ if (bytes.length == 0)
+ bytes.push(0);
+ var node = this.decodeTables[0];
+ for (var i2 = bytes.length - 1; i2 > 0; i2--) {
+ var val = node[bytes[i2]];
+ if (val == UNASSIGNED) {
+ node[bytes[i2]] = NODE_START - this.decodeTables.length;
+ this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));
+ } else if (val <= NODE_START) {
+ node = this.decodeTables[NODE_START - val];
+ } else
+ throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16));
+ }
+ return node;
+ };
+ DBCSCodec.prototype._addDecodeChunk = function(chunk) {
+ var curAddr = parseInt(chunk[0], 16);
+ var writeTable = this._getDecodeTrieNode(curAddr);
+ curAddr = curAddr & 255;
+ for (var k = 1; k < chunk.length; k++) {
+ var part = chunk[k];
+ if (typeof part === "string") {
+ for (var l = 0; l < part.length; ) {
+ var code = part.charCodeAt(l++);
+ if (55296 <= code && code < 56320) {
+ var codeTrail = part.charCodeAt(l++);
+ if (56320 <= codeTrail && codeTrail < 57344)
+ writeTable[curAddr++] = 65536 + (code - 55296) * 1024 + (codeTrail - 56320);
+ else
+ throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]);
+ } else if (4080 < code && code <= 4095) {
+ var len = 4095 - code + 2;
+ var seq = [];
+ for (var m = 0; m < len; m++)
+ seq.push(part.charCodeAt(l++));
+ writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;
+ this.decodeTableSeq.push(seq);
+ } else
+ writeTable[curAddr++] = code;
+ }
+ } else if (typeof part === "number") {
+ var charCode = writeTable[curAddr - 1] + 1;
+ for (var l = 0; l < part; l++)
+ writeTable[curAddr++] = charCode++;
+ } else
+ throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]);
+ }
+ if (curAddr > 255)
+ throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr);
+ };
+ DBCSCodec.prototype._getEncodeBucket = function(uCode) {
+ var high = uCode >> 8;
+ if (this.encodeTable[high] === void 0)
+ this.encodeTable[high] = UNASSIGNED_NODE.slice(0);
+ return this.encodeTable[high];
+ };
+ DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {
+ var bucket = this._getEncodeBucket(uCode);
+ var low = uCode & 255;
+ if (bucket[low] <= SEQ_START)
+ this.encodeTableSeq[SEQ_START - bucket[low]][DEF_CHAR] = dbcsCode;
+ else if (bucket[low] == UNASSIGNED)
+ bucket[low] = dbcsCode;
+ };
+ DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {
+ var uCode = seq[0];
+ var bucket = this._getEncodeBucket(uCode);
+ var low = uCode & 255;
+ var node;
+ if (bucket[low] <= SEQ_START) {
+ node = this.encodeTableSeq[SEQ_START - bucket[low]];
+ } else {
+ node = {};
+ if (bucket[low] !== UNASSIGNED)
+ node[DEF_CHAR] = bucket[low];
+ bucket[low] = SEQ_START - this.encodeTableSeq.length;
+ this.encodeTableSeq.push(node);
+ }
+ for (var j = 1; j < seq.length - 1; j++) {
+ var oldVal = node[uCode];
+ if (typeof oldVal === "object")
+ node = oldVal;
+ else {
+ node = node[uCode] = {};
+ if (oldVal !== void 0)
+ node[DEF_CHAR] = oldVal;
+ }
+ }
+ uCode = seq[seq.length - 1];
+ node[uCode] = dbcsCode;
+ };
+ DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {
+ var node = this.decodeTables[nodeIdx];
+ for (var i2 = 0; i2 < 256; i2++) {
+ var uCode = node[i2];
+ var mbCode = prefix + i2;
+ if (skipEncodeChars[mbCode])
+ continue;
+ if (uCode >= 0)
+ this._setEncodeChar(uCode, mbCode);
+ else if (uCode <= NODE_START)
+ this._fillEncodeTable(NODE_START - uCode, mbCode << 8, skipEncodeChars);
+ else if (uCode <= SEQ_START)
+ this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);
+ }
+ };
+ function DBCSEncoder(options, codec) {
+ this.leadSurrogate = -1;
+ this.seqObj = void 0;
+ this.encodeTable = codec.encodeTable;
+ this.encodeTableSeq = codec.encodeTableSeq;
+ this.defaultCharSingleByte = codec.defCharSB;
+ this.gb18030 = codec.gb18030;
+ }
+ DBCSEncoder.prototype.write = function(str) {
+ var newBuf = Buffer2.alloc(str.length * (this.gb18030 ? 4 : 3)), leadSurrogate = this.leadSurrogate, seqObj = this.seqObj, nextChar = -1, i2 = 0, j = 0;
+ while (true) {
+ if (nextChar === -1) {
+ if (i2 == str.length)
+ break;
+ var uCode = str.charCodeAt(i2++);
+ } else {
+ var uCode = nextChar;
+ nextChar = -1;
+ }
+ if (55296 <= uCode && uCode < 57344) {
+ if (uCode < 56320) {
+ if (leadSurrogate === -1) {
+ leadSurrogate = uCode;
+ continue;
+ } else {
+ leadSurrogate = uCode;
+ uCode = UNASSIGNED;
+ }
+ } else {
+ if (leadSurrogate !== -1) {
+ uCode = 65536 + (leadSurrogate - 55296) * 1024 + (uCode - 56320);
+ leadSurrogate = -1;
+ } else {
+ uCode = UNASSIGNED;
+ }
+ }
+ } else if (leadSurrogate !== -1) {
+ nextChar = uCode;
+ uCode = UNASSIGNED;
+ leadSurrogate = -1;
+ }
+ var dbcsCode = UNASSIGNED;
+ if (seqObj !== void 0 && uCode != UNASSIGNED) {
+ var resCode = seqObj[uCode];
+ if (typeof resCode === "object") {
+ seqObj = resCode;
+ continue;
+ } else if (typeof resCode == "number") {
+ dbcsCode = resCode;
+ } else if (resCode == void 0) {
+ resCode = seqObj[DEF_CHAR];
+ if (resCode !== void 0) {
+ dbcsCode = resCode;
+ nextChar = uCode;
+ } else {
+ }
+ }
+ seqObj = void 0;
+ } else if (uCode >= 0) {
+ var subtable = this.encodeTable[uCode >> 8];
+ if (subtable !== void 0)
+ dbcsCode = subtable[uCode & 255];
+ if (dbcsCode <= SEQ_START) {
+ seqObj = this.encodeTableSeq[SEQ_START - dbcsCode];
+ continue;
+ }
+ if (dbcsCode == UNASSIGNED && this.gb18030) {
+ var idx = findIdx(this.gb18030.uChars, uCode);
+ if (idx != -1) {
+ var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);
+ newBuf[j++] = 129 + Math.floor(dbcsCode / 12600);
+ dbcsCode = dbcsCode % 12600;
+ newBuf[j++] = 48 + Math.floor(dbcsCode / 1260);
+ dbcsCode = dbcsCode % 1260;
+ newBuf[j++] = 129 + Math.floor(dbcsCode / 10);
+ dbcsCode = dbcsCode % 10;
+ newBuf[j++] = 48 + dbcsCode;
+ continue;
+ }
+ }
+ }
+ if (dbcsCode === UNASSIGNED)
+ dbcsCode = this.defaultCharSingleByte;
+ if (dbcsCode < 256) {
+ newBuf[j++] = dbcsCode;
+ } else if (dbcsCode < 65536) {
+ newBuf[j++] = dbcsCode >> 8;
+ newBuf[j++] = dbcsCode & 255;
+ } else {
+ newBuf[j++] = dbcsCode >> 16;
+ newBuf[j++] = dbcsCode >> 8 & 255;
+ newBuf[j++] = dbcsCode & 255;
+ }
+ }
+ this.seqObj = seqObj;
+ this.leadSurrogate = leadSurrogate;
+ return newBuf.slice(0, j);
+ };
+ DBCSEncoder.prototype.end = function() {
+ if (this.leadSurrogate === -1 && this.seqObj === void 0)
+ return;
+ var newBuf = Buffer2.alloc(10), j = 0;
+ if (this.seqObj) {
+ var dbcsCode = this.seqObj[DEF_CHAR];
+ if (dbcsCode !== void 0) {
+ if (dbcsCode < 256) {
+ newBuf[j++] = dbcsCode;
+ } else {
+ newBuf[j++] = dbcsCode >> 8;
+ newBuf[j++] = dbcsCode & 255;
+ }
+ } else {
+ }
+ this.seqObj = void 0;
+ }
+ if (this.leadSurrogate !== -1) {
+ newBuf[j++] = this.defaultCharSingleByte;
+ this.leadSurrogate = -1;
+ }
+ return newBuf.slice(0, j);
+ };
+ DBCSEncoder.prototype.findIdx = findIdx;
+ function DBCSDecoder(options, codec) {
+ this.nodeIdx = 0;
+ this.prevBuf = Buffer2.alloc(0);
+ this.decodeTables = codec.decodeTables;
+ this.decodeTableSeq = codec.decodeTableSeq;
+ this.defaultCharUnicode = codec.defaultCharUnicode;
+ this.gb18030 = codec.gb18030;
+ }
+ DBCSDecoder.prototype.write = function(buf) {
+ var newBuf = Buffer2.alloc(buf.length * 2), nodeIdx = this.nodeIdx, prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length, seqStart = -this.prevBuf.length, uCode;
+ if (prevBufOffset > 0)
+ prevBuf = Buffer2.concat([prevBuf, buf.slice(0, 10)]);
+ for (var i2 = 0, j = 0; i2 < buf.length; i2++) {
+ var curByte = i2 >= 0 ? buf[i2] : prevBuf[i2 + prevBufOffset];
+ var uCode = this.decodeTables[nodeIdx][curByte];
+ if (uCode >= 0) {
+ } else if (uCode === UNASSIGNED) {
+ i2 = seqStart;
+ uCode = this.defaultCharUnicode.charCodeAt(0);
+ } else if (uCode === GB18030_CODE) {
+ var curSeq = seqStart >= 0 ? buf.slice(seqStart, i2 + 1) : prevBuf.slice(seqStart + prevBufOffset, i2 + 1 + prevBufOffset);
+ var ptr = (curSeq[0] - 129) * 12600 + (curSeq[1] - 48) * 1260 + (curSeq[2] - 129) * 10 + (curSeq[3] - 48);
+ var idx = findIdx(this.gb18030.gbChars, ptr);
+ uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];
+ } else if (uCode <= NODE_START) {
+ nodeIdx = NODE_START - uCode;
+ continue;
+ } else if (uCode <= SEQ_START) {
+ var seq = this.decodeTableSeq[SEQ_START - uCode];
+ for (var k = 0; k < seq.length - 1; k++) {
+ uCode = seq[k];
+ newBuf[j++] = uCode & 255;
+ newBuf[j++] = uCode >> 8;
+ }
+ uCode = seq[seq.length - 1];
+ } else
+ throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte);
+ if (uCode > 65535) {
+ uCode -= 65536;
+ var uCodeLead = 55296 + Math.floor(uCode / 1024);
+ newBuf[j++] = uCodeLead & 255;
+ newBuf[j++] = uCodeLead >> 8;
+ uCode = 56320 + uCode % 1024;
+ }
+ newBuf[j++] = uCode & 255;
+ newBuf[j++] = uCode >> 8;
+ nodeIdx = 0;
+ seqStart = i2 + 1;
+ }
+ this.nodeIdx = nodeIdx;
+ this.prevBuf = seqStart >= 0 ? buf.slice(seqStart) : prevBuf.slice(seqStart + prevBufOffset);
+ return newBuf.slice(0, j).toString("ucs2");
+ };
+ DBCSDecoder.prototype.end = function() {
+ var ret = "";
+ while (this.prevBuf.length > 0) {
+ ret += this.defaultCharUnicode;
+ var buf = this.prevBuf.slice(1);
+ this.prevBuf = Buffer2.alloc(0);
+ this.nodeIdx = 0;
+ if (buf.length > 0)
+ ret += this.write(buf);
+ }
+ this.nodeIdx = 0;
+ return ret;
+ };
+ function findIdx(table, val) {
+ if (table[0] > val)
+ return -1;
+ var l = 0, r = table.length;
+ while (l < r - 1) {
+ var mid = l + Math.floor((r - l + 1) / 2);
+ if (table[mid] <= val)
+ l = mid;
+ else
+ r = mid;
+ }
+ return l;
+ }
+ }
+});
+
+// node_modules/iconv-lite/encodings/tables/shiftjis.json
+var require_shiftjis = __commonJS({
+ "node_modules/iconv-lite/encodings/tables/shiftjis.json"(exports2, module2) {
+ module2.exports = [
+ ["0", "\0", 128],
+ ["a1", "\uFF61", 62],
+ ["8140", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7"],
+ ["8180", "\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],
+ ["81b8", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],
+ ["81c8", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],
+ ["81da", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],
+ ["81f0", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],
+ ["81fc", "\u25EF"],
+ ["824f", "\uFF10", 9],
+ ["8260", "\uFF21", 25],
+ ["8281", "\uFF41", 25],
+ ["829f", "\u3041", 82],
+ ["8340", "\u30A1", 62],
+ ["8380", "\u30E0", 22],
+ ["839f", "\u0391", 16, "\u03A3", 6],
+ ["83bf", "\u03B1", 16, "\u03C3", 6],
+ ["8440", "\u0410", 5, "\u0401\u0416", 25],
+ ["8470", "\u0430", 5, "\u0451\u0436", 7],
+ ["8480", "\u043E", 17],
+ ["849f", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],
+ ["8740", "\u2460", 19, "\u2160", 9],
+ ["875f", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],
+ ["877e", "\u337B"],
+ ["8780", "\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],
+ ["889f", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],
+ ["8940", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],
+ ["8980", "\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],
+ ["8a40", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],
+ ["8a80", "\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],
+ ["8b40", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],
+ ["8b80", "\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],
+ ["8c40", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],
+ ["8c80", "\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],
+ ["8d40", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],
+ ["8d80", "\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],
+ ["8e40", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],
+ ["8e80", "\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],
+ ["8f40", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],
+ ["8f80", "\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],
+ ["9040", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],
+ ["9080", "\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],
+ ["9140", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],
+ ["9180", "\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],
+ ["9240", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],
+ ["9280", "\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],
+ ["9340", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],
+ ["9380", "\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],
+ ["9440", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],
+ ["9480", "\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],
+ ["9540", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],
+ ["9580", "\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],
+ ["9640", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],
+ ["9680", "\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],
+ ["9740", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],
+ ["9780", "\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],
+ ["9840", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],
+ ["989f", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],
+ ["9940", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],
+ ["9980", "\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],
+ ["9a40", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],
+ ["9a80", "\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],
+ ["9b40", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],
+ ["9b80", "\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],
+ ["9c40", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],
+ ["9c80", "\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],
+ ["9d40", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],
+ ["9d80", "\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],
+ ["9e40", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],
+ ["9e80", "\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],
+ ["9f40", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],
+ ["9f80", "\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],
+ ["e040", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],
+ ["e080", "\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],
+ ["e140", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],
+ ["e180", "\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],
+ ["e240", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],
+ ["e280", "\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],
+ ["e340", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],
+ ["e380", "\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],
+ ["e440", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],
+ ["e480", "\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],
+ ["e540", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],
+ ["e580", "\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],
+ ["e640", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],
+ ["e680", "\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],
+ ["e740", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],
+ ["e780", "\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],
+ ["e840", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],
+ ["e880", "\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],
+ ["e940", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],
+ ["e980", "\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],
+ ["ea40", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],
+ ["ea80", "\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],
+ ["ed40", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],
+ ["ed80", "\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],
+ ["ee40", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],
+ ["ee80", "\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],
+ ["eeef", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"],
+ ["f040", "\uE000", 62],
+ ["f080", "\uE03F", 124],
+ ["f140", "\uE0BC", 62],
+ ["f180", "\uE0FB", 124],
+ ["f240", "\uE178", 62],
+ ["f280", "\uE1B7", 124],
+ ["f340", "\uE234", 62],
+ ["f380", "\uE273", 124],
+ ["f440", "\uE2F0", 62],
+ ["f480", "\uE32F", 124],
+ ["f540", "\uE3AC", 62],
+ ["f580", "\uE3EB", 124],
+ ["f640", "\uE468", 62],
+ ["f680", "\uE4A7", 124],
+ ["f740", "\uE524", 62],
+ ["f780", "\uE563", 124],
+ ["f840", "\uE5E0", 62],
+ ["f880", "\uE61F", 124],
+ ["f940", "\uE69C"],
+ ["fa40", "\u2170", 9, "\u2160", 9, "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],
+ ["fa80", "\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],
+ ["fb40", "\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],
+ ["fb80", "\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],
+ ["fc40", "\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]
+ ];
+ }
+});
+
+// node_modules/iconv-lite/encodings/tables/eucjp.json
+var require_eucjp = __commonJS({
+ "node_modules/iconv-lite/encodings/tables/eucjp.json"(exports2, module2) {
+ module2.exports = [
+ ["0", "\0", 127],
+ ["8ea1", "\uFF61", 62],
+ ["a1a1", "\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008", 9, "\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],
+ ["a2a1", "\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],
+ ["a2ba", "\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],
+ ["a2ca", "\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],
+ ["a2dc", "\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],
+ ["a2f2", "\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],
+ ["a2fe", "\u25EF"],
+ ["a3b0", "\uFF10", 9],
+ ["a3c1", "\uFF21", 25],
+ ["a3e1", "\uFF41", 25],
+ ["a4a1", "\u3041", 82],
+ ["a5a1", "\u30A1", 85],
+ ["a6a1", "\u0391", 16, "\u03A3", 6],
+ ["a6c1", "\u03B1", 16, "\u03C3", 6],
+ ["a7a1", "\u0410", 5, "\u0401\u0416", 25],
+ ["a7d1", "\u0430", 5, "\u0451\u0436", 25],
+ ["a8a1", "\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],
+ ["ada1", "\u2460", 19, "\u2160", 9],
+ ["adc0", "\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],
+ ["addf", "\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4", 4, "\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],
+ ["b0a1", "\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],
+ ["b1a1", "\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],
+ ["b2a1", "\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],
+ ["b3a1", "\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],
+ ["b4a1", "\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],
+ ["b5a1", "\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],
+ ["b6a1", "\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],
+ ["b7a1", "\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],
+ ["b8a1", "\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],
+ ["b9a1", "\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],
+ ["baa1", "\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],
+ ["bba1", "\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],
+ ["bca1", "\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],
+ ["bda1", "\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],
+ ["bea1", "\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],
+ ["bfa1", "\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],
+ ["c0a1", "\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],
+ ["c1a1", "\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],
+ ["c2a1", "\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],
+ ["c3a1", "\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],
+ ["c4a1", "\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],
+ ["c5a1", "\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],
+ ["c6a1", "\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],
+ ["c7a1", "\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],
+ ["c8a1", "\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],
+ ["c9a1", "\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],
+ ["caa1", "\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],
+ ["cba1", "\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],
+ ["cca1", "\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],
+ ["cda1", "\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],
+ ["cea1", "\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],
+ ["cfa1", "\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],
+ ["d0a1", "\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],
+ ["d1a1", "\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],
+ ["d2a1", "\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],
+ ["d3a1", "\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],
+ ["d4a1", "\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],
+ ["d5a1", "\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],
+ ["d6a1", "\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],
+ ["d7a1", "\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],
+ ["d8a1", "\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],
+ ["d9a1", "\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],
+ ["daa1", "\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],
+ ["dba1", "\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],
+ ["dca1", "\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],
+ ["dda1", "\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],
+ ["dea1", "\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],
+ ["dfa1", "\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],
+ ["e0a1", "\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],
+ ["e1a1", "\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],
+ ["e2a1", "\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],
+ ["e3a1", "\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],
+ ["e4a1", "\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],
+ ["e5a1", "\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],
+ ["e6a1", "\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],
+ ["e7a1", "\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],
+ ["e8a1", "\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],
+ ["e9a1", "\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],
+ ["eaa1", "\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],
+ ["eba1", "\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],
+ ["eca1", "\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],
+ ["eda1", "\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],
+ ["eea1", "\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],
+ ["efa1", "\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],
+ ["f0a1", "\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],
+ ["f1a1", "\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],
+ ["f2a1", "\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],
+ ["f3a1", "\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],
+ ["f4a1", "\u582F\u69C7\u9059\u7464\u51DC\u7199"],
+ ["f9a1", "\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],
+ ["faa1", "\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],
+ ["fba1", "\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],
+ ["fca1", "\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],
+ ["fcf1", "\u2170", 9, "\uFFE2\uFFE4\uFF07\uFF02"],
+ ["8fa2af", "\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],
+ ["8fa2c2", "\xA1\xA6\xBF"],
+ ["8fa2eb", "\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],
+ ["8fa6e1", "\u0386\u0388\u0389\u038A\u03AA"],
+ ["8fa6e7", "\u038C"],
+ ["8fa6e9", "\u038E\u03AB"],
+ ["8fa6ec", "\u038F"],
+ ["8fa6f1", "\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],
+ ["8fa7c2", "\u0402", 10, "\u040E\u040F"],
+ ["8fa7f2", "\u0452", 10, "\u045E\u045F"],
+ ["8fa9a1", "\xC6\u0110"],
+ ["8fa9a4", "\u0126"],
+ ["8fa9a6", "\u0132"],
+ ["8fa9a8", "\u0141\u013F"],
+ ["8fa9ab", "\u014A\xD8\u0152"],
+ ["8fa9af", "\u0166\xDE"],
+ ["8fa9c1", "\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],
+ ["8faaa1", "\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],
+ ["8faaba", "\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],
+ ["8faba1", "\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],
+ ["8fabbd", "\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],
+ ["8fabc5", "\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],
+ ["8fb0a1", "\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],
+ ["8fb1a1", "\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],
+ ["8fb2a1", "\u5092\u5093\u5094\u5096\u509B\u509C\u509E", 4, "\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],
+ ["8fb3a1", "\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],
+ ["8fb4a1", "\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],
+ ["8fb5a1", "\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],
+ ["8fb6a1", "\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D", 5, "\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4", 4, "\u56F1\u56EB\u56ED"],
+ ["8fb7a1", "\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D", 4, "\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],
+ ["8fb8a1", "\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],
+ ["8fb9a1", "\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],
+ ["8fbaa1", "\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6", 4, "\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],
+ ["8fbba1", "\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],
+ ["8fbca1", "\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A", 4, "\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],
+ ["8fbda1", "\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0", 4, "\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],
+ ["8fbea1", "\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110", 4, "\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],
+ ["8fbfa1", "\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],
+ ["8fc0a1", "\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],
+ ["8fc1a1", "\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],
+ ["8fc2a1", "\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],
+ ["8fc3a1", "\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E", 4, "\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],
+ ["8fc4a1", "\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],
+ ["8fc5a1", "\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],
+ ["8fc6a1", "\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],
+ ["8fc7a1", "\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],
+ ["8fc8a1", "\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],
+ ["8fc9a1", "\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094", 4, "\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103", 4, "\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],
+ ["8fcaa1", "\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],
+ ["8fcba1", "\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],
+ ["8fcca1", "\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428", 9, "\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],
+ ["8fcda1", "\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579", 5, "\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],
+ ["8fcea1", "\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2", 6, "\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],
+ ["8fcfa1", "\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],
+ ["8fd0a1", "\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],
+ ["8fd1a1", "\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],
+ ["8fd2a1", "\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59", 5],
+ ["8fd3a1", "\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],
+ ["8fd4a1", "\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2", 4, "\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],
+ ["8fd5a1", "\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],
+ ["8fd6a1", "\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],
+ ["8fd7a1", "\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],
+ ["8fd8a1", "\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],
+ ["8fd9a1", "\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F", 4, "\u8556\u8559\u855C", 6, "\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],
+ ["8fdaa1", "\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660", 4, "\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],
+ ["8fdba1", "\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783", 6, "\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],
+ ["8fdca1", "\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA", 4, "\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],
+ ["8fdda1", "\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4", 4, "\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],
+ ["8fdea1", "\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42", 4, "\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],
+ ["8fdfa1", "\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],
+ ["8fe0a1", "\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],
+ ["8fe1a1", "\u8F43\u8F47\u8F4F\u8F51", 4, "\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],
+ ["8fe2a1", "\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],
+ ["8fe3a1", "\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC", 5, "\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275", 4, "\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],
+ ["8fe4a1", "\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF", 4, "\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],
+ ["8fe5a1", "\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9", 4, "\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],
+ ["8fe6a1", "\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],
+ ["8fe7a1", "\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],
+ ["8fe8a1", "\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931", 4, "\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],
+ ["8fe9a1", "\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF", 4],
+ ["8feaa1", "\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A", 4, "\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],
+ ["8feba1", "\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26", 4, "\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],
+ ["8feca1", "\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],
+ ["8feda1", "\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43", 4, "\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D", 4, "\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]
+ ];
+ }
+});
+
+// node_modules/iconv-lite/encodings/tables/cp936.json
+var require_cp936 = __commonJS({
+ "node_modules/iconv-lite/encodings/tables/cp936.json"(exports2, module2) {
+ module2.exports = [
+ ["0", "\0", 127, "\u20AC"],
+ ["8140", "\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A", 5, "\u4E72\u4E74", 9, "\u4E7F", 6, "\u4E87\u4E8A"],
+ ["8180", "\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02", 6, "\u4F0B\u4F0C\u4F12", 4, "\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E", 4, "\u4F44\u4F45\u4F47", 5, "\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],
+ ["8240", "\u4FA4\u4FAB\u4FAD\u4FB0", 4, "\u4FB6", 8, "\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2", 4, "\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF", 11],
+ ["8280", "\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F", 10, "\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050", 4, "\u5056\u5057\u5058\u5059\u505B\u505D", 7, "\u5066", 5, "\u506D", 8, "\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E", 20, "\u50A4\u50A6\u50AA\u50AB\u50AD", 4, "\u50B3", 6, "\u50BC"],
+ ["8340", "\u50BD", 17, "\u50D0", 5, "\u50D7\u50D8\u50D9\u50DB", 10, "\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6", 4, "\u50FC", 9, "\u5108"],
+ ["8380", "\u5109\u510A\u510C", 5, "\u5113", 13, "\u5122", 28, "\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D", 4, "\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6", 4, "\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2", 5],
+ ["8440", "\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5", 5, "\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244", 5, "\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],
+ ["8480", "\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273", 9, "\u527E\u5280\u5283", 4, "\u5289", 6, "\u5291\u5292\u5294", 6, "\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4", 9, "\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9", 5, "\u52E0\u52E1\u52E2\u52E3\u52E5", 10, "\u52F1", 7, "\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],
+ ["8540", "\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F", 9, "\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],
+ ["8580", "\u5390", 4, "\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF", 6, "\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3", 4, "\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D", 4, "\u5463\u5465\u5467\u5469", 7, "\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],
+ ["8640", "\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0", 4, "\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4", 5, "\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A", 4, "\u5512\u5513\u5515", 5, "\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],
+ ["8680", "\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B", 4, "\u5551\u5552\u5553\u5554\u5557", 4, "\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F", 5, "\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0", 6, "\u55A8", 8, "\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF", 4, "\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7", 4, "\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8", 4, "\u55FF\u5602\u5603\u5604\u5605"],
+ ["8740", "\u5606\u5607\u560A\u560B\u560D\u5610", 7, "\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640", 11, "\u564F", 4, "\u5655\u5656\u565A\u565B\u565D", 4],
+ ["8780", "\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D", 7, "\u5687", 6, "\u5690\u5691\u5692\u5694", 14, "\u56A4", 10, "\u56B0", 6, "\u56B8\u56B9\u56BA\u56BB\u56BD", 12, "\u56CB", 8, "\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5", 5, "\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B", 6],
+ ["8840", "\u5712", 9, "\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734", 4, "\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752", 4, "\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],
+ ["8880", "\u5781\u5787\u5788\u5789\u578A\u578D", 4, "\u5794", 6, "\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9", 8, "\u57C4", 6, "\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5", 7, "\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825", 4, "\u582B", 4, "\u5831\u5832\u5833\u5834\u5836", 7],
+ ["8940", "\u583E", 5, "\u5845", 6, "\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859", 4, "\u585F", 5, "\u5866", 4, "\u586D", 16, "\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],
+ ["8980", "\u588D", 4, "\u5894", 4, "\u589B\u589C\u589D\u58A0", 7, "\u58AA", 17, "\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6", 10, "\u58D2\u58D3\u58D4\u58D6", 13, "\u58E5", 5, "\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA", 7, "\u5903\u5905\u5906\u5908", 4, "\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],
+ ["8a40", "\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B", 4, "\u5961\u5963\u5964\u5966", 12, "\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],
+ ["8a80", "\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3", 5, "\u59BA\u59BC\u59BD\u59BF", 6, "\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE", 4, "\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED", 11, "\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A", 6, "\u5A33\u5A35\u5A37", 4, "\u5A3D\u5A3E\u5A3F\u5A41", 4, "\u5A47\u5A48\u5A4B", 9, "\u5A56\u5A57\u5A58\u5A59\u5A5B", 5],
+ ["8b40", "\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B", 8, "\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80", 17, "\u5A93", 6, "\u5A9C", 13, "\u5AAB\u5AAC"],
+ ["8b80", "\u5AAD", 4, "\u5AB4\u5AB6\u5AB7\u5AB9", 4, "\u5ABF\u5AC0\u5AC3", 5, "\u5ACA\u5ACB\u5ACD", 4, "\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC", 4, "\u5AF2", 22, "\u5B0A", 11, "\u5B18", 25, "\u5B33\u5B35\u5B36\u5B38", 7, "\u5B41", 6],
+ ["8c40", "\u5B48", 7, "\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],
+ ["8c80", "\u5BD1\u5BD4", 8, "\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9", 4, "\u5BEF\u5BF1", 6, "\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67", 6, "\u5C70\u5C72", 6, "\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83", 4, "\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D", 4, "\u5CA4", 4],
+ ["8d40", "\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5", 5, "\u5CCC", 5, "\u5CD3", 5, "\u5CDA", 6, "\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1", 9, "\u5CFC", 4],
+ ["8d80", "\u5D01\u5D04\u5D05\u5D08", 5, "\u5D0F", 4, "\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F", 4, "\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F", 4, "\u5D35", 7, "\u5D3F", 7, "\u5D48\u5D49\u5D4D", 10, "\u5D59\u5D5A\u5D5C\u5D5E", 10, "\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75", 12, "\u5D83", 21, "\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],
+ ["8e40", "\u5DA1", 21, "\u5DB8", 12, "\u5DC6", 6, "\u5DCE", 12, "\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],
+ ["8e80", "\u5DF0\u5DF5\u5DF6\u5DF8", 4, "\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E", 7, "\u5E28", 4, "\u5E2F\u5E30\u5E32", 4, "\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46", 5, "\u5E4D", 6, "\u5E56", 4, "\u5E5C\u5E5D\u5E5F\u5E60\u5E63", 14, "\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8", 4, "\u5EAE", 4, "\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF", 6],
+ ["8f40", "\u5EC6\u5EC7\u5EC8\u5ECB", 5, "\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC", 11, "\u5EE9\u5EEB", 8, "\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],
+ ["8f80", "\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32", 6, "\u5F3B\u5F3D\u5F3E\u5F3F\u5F41", 14, "\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2", 5, "\u5FA9\u5FAB\u5FAC\u5FAF", 5, "\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE", 4, "\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],
+ ["9040", "\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030", 4, "\u6036", 4, "\u603D\u603E\u6040\u6044", 6, "\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],
+ ["9080", "\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD", 7, "\u60C7\u60C8\u60C9\u60CC", 4, "\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1", 4, "\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB", 4, "\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110", 4, "\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C", 18, "\u6140", 6],
+ ["9140", "\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156", 6, "\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169", 6, "\u6171\u6172\u6173\u6174\u6176\u6178", 18, "\u618C\u618D\u618F", 4, "\u6195"],
+ ["9180", "\u6196", 6, "\u619E", 8, "\u61AA\u61AB\u61AD", 9, "\u61B8", 5, "\u61BF\u61C0\u61C1\u61C3", 4, "\u61C9\u61CC", 4, "\u61D3\u61D5", 16, "\u61E7", 13, "\u61F6", 8, "\u6200", 5, "\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238", 4, "\u6242\u6244\u6245\u6246\u624A"],
+ ["9240", "\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C", 6, "\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B", 5, "\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],
+ ["9280", "\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333", 5, "\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356", 7, "\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399", 6, "\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],
+ ["9340", "\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7", 6, "\u63DF\u63E2\u63E4", 4, "\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406", 4, "\u640D\u640E\u6411\u6412\u6415", 5, "\u641D\u641F\u6422\u6423\u6424"],
+ ["9380", "\u6425\u6427\u6428\u6429\u642B\u642E", 5, "\u6435", 4, "\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B", 6, "\u6453\u6455\u6456\u6457\u6459", 4, "\u645F", 7, "\u6468\u646A\u646B\u646C\u646E", 9, "\u647B", 6, "\u6483\u6486\u6488", 8, "\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F", 4, "\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6", 6, "\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],
+ ["9440", "\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7", 24, "\u6501", 7, "\u650A", 7, "\u6513", 4, "\u6519", 8],
+ ["9480", "\u6522\u6523\u6524\u6526", 4, "\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540", 4, "\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578", 14, "\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1", 7, "\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8", 7, "\u65E1\u65E3\u65E4\u65EA\u65EB"],
+ ["9540", "\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB", 4, "\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637", 4, "\u663D\u663F\u6640\u6642\u6644", 6, "\u664D\u664E\u6650\u6651\u6658"],
+ ["9580", "\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669", 4, "\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698", 4, "\u669E", 8, "\u66A9", 4, "\u66AF", 4, "\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF", 25, "\u66DA\u66DE", 7, "\u66E7\u66E8\u66EA", 5, "\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],
+ ["9640", "\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720", 5, "\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757", 4, "\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],
+ ["9680", "\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9", 7, "\u67C2\u67C5", 9, "\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5", 7, "\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818", 4, "\u681E\u681F\u6820\u6822", 6, "\u682B", 6, "\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856", 5],
+ ["9740", "\u685C\u685D\u685E\u685F\u686A\u686C", 7, "\u6875\u6878", 8, "\u6882\u6884\u6887", 7, "\u6890\u6891\u6892\u6894\u6895\u6896\u6898", 9, "\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],
+ ["9780", "\u68B9", 6, "\u68C1\u68C3", 5, "\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB", 4, "\u68E1\u68E2\u68E4", 9, "\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906", 4, "\u690C\u690F\u6911\u6913", 11, "\u6921\u6922\u6923\u6925", 7, "\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943", 16, "\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],
+ ["9840", "\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972", 4, "\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E", 5, "\u6996\u6997\u6999\u699A\u699D", 9, "\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],
+ ["9880", "\u69BE\u69BF\u69C0\u69C2", 7, "\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5", 5, "\u69DC\u69DD\u69DE\u69E1", 11, "\u69EE\u69EF\u69F0\u69F1\u69F3", 9, "\u69FE\u6A00", 9, "\u6A0B", 11, "\u6A19", 5, "\u6A20\u6A22", 5, "\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36", 6, "\u6A3F", 4, "\u6A45\u6A46\u6A48", 7, "\u6A51", 6, "\u6A5A"],
+ ["9940", "\u6A5C", 4, "\u6A62\u6A63\u6A64\u6A66", 10, "\u6A72", 6, "\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85", 8, "\u6A8F\u6A92", 4, "\u6A98", 7, "\u6AA1", 5],
+ ["9980", "\u6AA7\u6AA8\u6AAA\u6AAD", 114, "\u6B25\u6B26\u6B28", 6],
+ ["9a40", "\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D", 11, "\u6B5A", 7, "\u6B68\u6B69\u6B6B", 13, "\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],
+ ["9a80", "\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C", 4, "\u6BA2", 7, "\u6BAB", 7, "\u6BB6\u6BB8", 6, "\u6BC0\u6BC3\u6BC4\u6BC6", 4, "\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC", 4, "\u6BE2", 7, "\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE", 6, "\u6C08", 4, "\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B", 4, "\u6C51\u6C52\u6C53\u6C56\u6C58"],
+ ["9b40", "\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B", 4, "\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],
+ ["9b80", "\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F", 5, "\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D", 4, "\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96", 4, "\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9", 5, "\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],
+ ["9c40", "\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD", 7, "\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],
+ ["9c80", "\u6E36\u6E37\u6E39\u6E3B", 7, "\u6E45", 7, "\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60", 10, "\u6E6C\u6E6D\u6E6F", 14, "\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A", 4, "\u6E91", 6, "\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA", 5],
+ ["9d40", "\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA", 7, "\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A", 4, "\u6F10\u6F11\u6F12\u6F16", 9, "\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37", 6, "\u6F3F\u6F40\u6F41\u6F42"],
+ ["9d80", "\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E", 9, "\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67", 5, "\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D", 6, "\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F", 12, "\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2", 4, "\u6FA8", 10, "\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA", 5, "\u6FC1\u6FC3", 5, "\u6FCA", 6, "\u6FD3", 10, "\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],
+ ["9e40", "\u6FE6", 7, "\u6FF0", 32, "\u7012", 7, "\u701C", 6, "\u7024", 6],
+ ["9e80", "\u702B", 9, "\u7036\u7037\u7038\u703A", 17, "\u704D\u704E\u7050", 13, "\u705F", 11, "\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E", 12, "\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB", 12, "\u70DA"],
+ ["9f40", "\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0", 6, "\u70F8\u70FA\u70FB\u70FC\u70FE", 10, "\u710B", 4, "\u7111\u7112\u7114\u7117\u711B", 10, "\u7127", 7, "\u7132\u7133\u7134"],
+ ["9f80", "\u7135\u7137", 13, "\u7146\u7147\u7148\u7149\u714B\u714D\u714F", 12, "\u715D\u715F", 4, "\u7165\u7169", 4, "\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E", 5, "\u7185", 4, "\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A", 4, "\u71A1", 6, "\u71A9\u71AA\u71AB\u71AD", 5, "\u71B4\u71B6\u71B7\u71B8\u71BA", 8, "\u71C4", 9, "\u71CF", 4],
+ ["a040", "\u71D6", 9, "\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8", 5, "\u71EF", 9, "\u71FA", 11, "\u7207", 19],
+ ["a080", "\u721B\u721C\u721E", 9, "\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240", 6, "\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285", 4, "\u728C\u728E\u7290\u7291\u7293", 11, "\u72A0", 11, "\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA", 6, "\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],
+ ["a1a1", "\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 7, "\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],
+ ["a2a1", "\u2170", 9],
+ ["a2b1", "\u2488", 19, "\u2474", 19, "\u2460", 9],
+ ["a2e5", "\u3220", 9],
+ ["a2f1", "\u2160", 11],
+ ["a3a1", "\uFF01\uFF02\uFF03\uFFE5\uFF05", 88, "\uFFE3"],
+ ["a4a1", "\u3041", 82],
+ ["a5a1", "\u30A1", 85],
+ ["a6a1", "\u0391", 16, "\u03A3", 6],
+ ["a6c1", "\u03B1", 16, "\u03C3", 6],
+ ["a6e0", "\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],
+ ["a6ee", "\uFE3B\uFE3C\uFE37\uFE38\uFE31"],
+ ["a6f4", "\uFE33\uFE34"],
+ ["a7a1", "\u0410", 5, "\u0401\u0416", 25],
+ ["a7d1", "\u0430", 5, "\u0451\u0436", 25],
+ ["a840", "\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550", 35, "\u2581", 6],
+ ["a880", "\u2588", 7, "\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],
+ ["a8a1", "\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],
+ ["a8bd", "\u0144\u0148"],
+ ["a8c0", "\u0261"],
+ ["a8c5", "\u3105", 36],
+ ["a940", "\u3021", 8, "\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],
+ ["a959", "\u2121\u3231"],
+ ["a95c", "\u2010"],
+ ["a960", "\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49", 9, "\uFE54\uFE55\uFE56\uFE57\uFE59", 8],
+ ["a980", "\uFE62", 4, "\uFE68\uFE69\uFE6A\uFE6B"],
+ ["a996", "\u3007"],
+ ["a9a4", "\u2500", 75],
+ ["aa40", "\u72DC\u72DD\u72DF\u72E2", 5, "\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304", 5, "\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340", 8],
+ ["aa80", "\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358", 7, "\u7361", 10, "\u736E\u7370\u7371"],
+ ["ab40", "\u7372", 11, "\u737F", 4, "\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3", 5, "\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3", 4],
+ ["ab80", "\u73CB\u73CC\u73CE\u73D2", 6, "\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3", 4],
+ ["ac40", "\u73F8", 10, "\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411", 8, "\u741C", 5, "\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437", 4, "\u743D\u743E\u743F\u7440\u7442", 11],
+ ["ac80", "\u744E", 6, "\u7456\u7458\u745D\u7460", 12, "\u746E\u746F\u7471", 4, "\u7478\u7479\u747A"],
+ ["ad40", "\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491", 10, "\u749D\u749F", 7, "\u74AA", 15, "\u74BB", 12],
+ ["ad80", "\u74C8", 9, "\u74D3", 8, "\u74DD\u74DF\u74E1\u74E5\u74E7", 6, "\u74F0\u74F1\u74F2"],
+ ["ae40", "\u74F3\u74F5\u74F8", 6, "\u7500\u7501\u7502\u7503\u7505", 7, "\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520", 4, "\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],
+ ["ae80", "\u755D", 7, "\u7567\u7568\u7569\u756B", 6, "\u7573\u7575\u7576\u7577\u757A", 4, "\u7580\u7581\u7582\u7584\u7585\u7587"],
+ ["af40", "\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6", 4, "\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],
+ ["af80", "\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],
+ ["b040", "\u7645", 6, "\u764E", 5, "\u7655\u7657", 4, "\u765D\u765F\u7660\u7661\u7662\u7664", 6, "\u766C\u766D\u766E\u7670", 7, "\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],
+ ["b080", "\u769C", 7, "\u76A5", 8, "\u76AF\u76B0\u76B3\u76B5", 9, "\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],
+ ["b140", "\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0", 4, "\u76E6", 7, "\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E", 10, "\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],
+ ["b180", "\u772C\u772E\u7730", 4, "\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748", 7, "\u7752", 7, "\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],
+ ["b240", "\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D", 11, "\u777A\u777B\u777C\u7781\u7782\u7783\u7786", 5, "\u778F\u7790\u7793", 11, "\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6", 4],
+ ["b280", "\u77BC\u77BE\u77C0", 12, "\u77CE", 8, "\u77D8\u77D9\u77DA\u77DD", 4, "\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],
+ ["b340", "\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803", 5, "\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],
+ ["b380", "\u785B\u785C\u785E", 11, "\u786F", 7, "\u7878\u7879\u787A\u787B\u787D", 6, "\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],
+ ["b440", "\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8", 7, "\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA", 9],
+ ["b480", "\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED", 4, "\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB", 5, "\u7902\u7903\u7904\u7906", 6, "\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],
+ ["b540", "\u790D", 5, "\u7914", 9, "\u791F", 4, "\u7925", 14, "\u7935", 4, "\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A", 8, "\u7954\u7955\u7958\u7959\u7961\u7963"],
+ ["b580", "\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970", 6, "\u7979\u797B", 4, "\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],
+ ["b640", "\u7993", 6, "\u799B", 11, "\u79A8", 10, "\u79B4", 4, "\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9", 5, "\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],
+ ["b680", "\u79EC\u79EE\u79F1", 6, "\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F", 4, "\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],
+ ["b740", "\u7A1D\u7A1F\u7A21\u7A22\u7A24", 14, "\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40", 5, "\u7A47", 9, "\u7A52", 4, "\u7A58", 16],
+ ["b780", "\u7A69", 6, "\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],
+ ["b840", "\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE", 4, "\u7AB4", 10, "\u7AC0", 10, "\u7ACC", 9, "\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7", 5, "\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],
+ ["b880", "\u7AF4", 4, "\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],
+ ["b940", "\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F", 5, "\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63", 10, "\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86", 6, "\u7B8E\u7B8F"],
+ ["b980", "\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9", 7, "\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],
+ ["ba40", "\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4", 4, "\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2", 4, "\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF", 7, "\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10", 5, "\u7C17\u7C18\u7C19"],
+ ["ba80", "\u7C1A", 4, "\u7C20", 5, "\u7C28\u7C29\u7C2B", 12, "\u7C39", 5, "\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],
+ ["bb40", "\u7C43", 9, "\u7C4E", 36, "\u7C75", 5, "\u7C7E", 9],
+ ["bb80", "\u7C88\u7C8A", 6, "\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4", 4, "\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],
+ ["bc40", "\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE", 6, "\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1", 6, "\u7CE9", 5, "\u7CF0", 7, "\u7CF9\u7CFA\u7CFC", 13, "\u7D0B", 5],
+ ["bc80", "\u7D11", 14, "\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30", 6, "\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],
+ ["bd40", "\u7D37", 54, "\u7D6F", 7],
+ ["bd80", "\u7D78", 32, "\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],
+ ["be40", "\u7D99", 12, "\u7DA7", 6, "\u7DAF", 42],
+ ["be80", "\u7DDA", 32, "\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],
+ ["bf40", "\u7DFB", 62],
+ ["bf80", "\u7E3A\u7E3C", 4, "\u7E42", 4, "\u7E48", 21, "\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],
+ ["c040", "\u7E5E", 35, "\u7E83", 23, "\u7E9C\u7E9D\u7E9E"],
+ ["c080", "\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B", 6, "\u7F43\u7F46", 9, "\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],
+ ["c140", "\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63", 4, "\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82", 7, "\u7F8B\u7F8D\u7F8F", 4, "\u7F95", 4, "\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8", 6, "\u7FB1"],
+ ["c180", "\u7FB3", 4, "\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF", 4, "\u7FD6\u7FD7\u7FD9", 5, "\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],
+ ["c240", "\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4", 6, "\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B", 5, "\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],
+ ["c280", "\u8059\u805B", 13, "\u806B", 5, "\u8072", 11, "\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],
+ ["c340", "\u807E\u8081\u8082\u8085\u8088\u808A\u808D", 5, "\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7", 4, "\u80CF", 6, "\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],
+ ["c380", "\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F", 12, "\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139", 4, "\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],
+ ["c440", "\u8140", 5, "\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B", 4, "\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183", 4, "\u8189\u818B\u818C\u818D\u818E\u8190\u8192", 5, "\u8199\u819A\u819E", 4, "\u81A4\u81A5"],
+ ["c480", "\u81A7\u81A9\u81AB", 7, "\u81B4", 5, "\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD", 6, "\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],
+ ["c540", "\u81D4", 14, "\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE", 4, "\u81F5", 5, "\u81FD\u81FF\u8203\u8207", 4, "\u820E\u820F\u8211\u8213\u8215", 5, "\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],
+ ["c580", "\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250", 7, "\u8259\u825B\u825C\u825D\u825E\u8260", 7, "\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],
+ ["c640", "\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],
+ ["c680", "\u82FA\u82FC", 4, "\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D", 9, "\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],
+ ["c740", "\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A", 4, "\u8353\u8355", 4, "\u835D\u8362\u8370", 6, "\u8379\u837A\u837E", 6, "\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1", 6, "\u83AC\u83AD\u83AE"],
+ ["c780", "\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],
+ ["c840", "\u83EE\u83EF\u83F3", 4, "\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412", 5, "\u8419\u841A\u841B\u841E", 5, "\u8429", 7, "\u8432", 5, "\u8439\u843A\u843B\u843E", 7, "\u8447\u8448\u8449"],
+ ["c880", "\u844A", 6, "\u8452", 4, "\u8458\u845D\u845E\u845F\u8460\u8462\u8464", 4, "\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],
+ ["c940", "\u847D", 4, "\u8483\u8484\u8485\u8486\u848A\u848D\u848F", 7, "\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2", 12, "\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],
+ ["c980", "\u84D8", 4, "\u84DE\u84E1\u84E2\u84E4\u84E7", 4, "\u84ED\u84EE\u84EF\u84F1", 10, "\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],
+ ["ca40", "\u8503", 8, "\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522", 8, "\u852D", 9, "\u853E", 4, "\u8544\u8545\u8546\u8547\u854B", 10],
+ ["ca80", "\u8557\u8558\u855A\u855B\u855C\u855D\u855F", 4, "\u8565\u8566\u8567\u8569", 8, "\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],
+ ["cb40", "\u8582\u8583\u8586\u8588", 6, "\u8590", 10, "\u859D", 6, "\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1", 5, "\u85B8\u85BA", 6, "\u85C2", 6, "\u85CA", 4, "\u85D1\u85D2"],
+ ["cb80", "\u85D4\u85D6", 5, "\u85DD", 6, "\u85E5\u85E6\u85E7\u85E8\u85EA", 14, "\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],
+ ["cc40", "\u85F9\u85FA\u85FC\u85FD\u85FE\u8600", 4, "\u8606", 10, "\u8612\u8613\u8614\u8615\u8617", 15, "\u8628\u862A", 13, "\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],
+ ["cc80", "\u8641", 11, "\u8652\u8653\u8655", 4, "\u865B\u865C\u865D\u865F\u8660\u8661\u8663", 7, "\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],
+ ["cd40", "\u866D\u866F\u8670\u8672", 6, "\u8683", 6, "\u868E", 4, "\u8694\u8696", 5, "\u869E", 4, "\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB", 4, "\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],
+ ["cd80", "\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],
+ ["ce40", "\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740", 6, "\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A", 5, "\u8761\u8762\u8766", 7, "\u876F\u8771\u8772\u8773\u8775"],
+ ["ce80", "\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E", 4, "\u8794\u8795\u8796\u8798", 6, "\u87A0", 4, "\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],
+ ["cf40", "\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1", 4, "\u87C7\u87C8\u87C9\u87CC", 4, "\u87D4", 6, "\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF", 9],
+ ["cf80", "\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804", 5, "\u880B", 7, "\u8814\u8817\u8818\u8819\u881A\u881C", 4, "\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],
+ ["d040", "\u8824", 13, "\u8833", 5, "\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846", 5, "\u884E", 5, "\u8855\u8856\u8858\u885A", 6, "\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],
+ ["d080", "\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897", 4, "\u889D", 4, "\u88A3\u88A5", 5, "\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],
+ ["d140", "\u88AC\u88AE\u88AF\u88B0\u88B2", 4, "\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA", 4, "\u88E0\u88E1\u88E6\u88E7\u88E9", 6, "\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903", 5],
+ ["d180", "\u8909\u890B", 4, "\u8911\u8914", 4, "\u891C", 4, "\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],
+ ["d240", "\u8938", 8, "\u8942\u8943\u8945", 24, "\u8960", 5, "\u8967", 19, "\u897C"],
+ ["d280", "\u897D\u897E\u8980\u8982\u8984\u8985\u8987", 26, "\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],
+ ["d340", "\u89A2", 30, "\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4", 6],
+ ["d380", "\u89FB", 4, "\u8A01", 5, "\u8A08", 21, "\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],
+ ["d440", "\u8A1E", 31, "\u8A3F", 8, "\u8A49", 21],
+ ["d480", "\u8A5F", 25, "\u8A7A", 6, "\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],
+ ["d540", "\u8A81", 7, "\u8A8B", 7, "\u8A94", 46],
+ ["d580", "\u8AC3", 32, "\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],
+ ["d640", "\u8AE4", 34, "\u8B08", 27],
+ ["d680", "\u8B24\u8B25\u8B27", 30, "\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],
+ ["d740", "\u8B46", 31, "\u8B67", 4, "\u8B6D", 25],
+ ["d780", "\u8B87", 24, "\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],
+ ["d840", "\u8C38", 8, "\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D", 7, "\u8C56\u8C57\u8C58\u8C59\u8C5B", 5, "\u8C63", 6, "\u8C6C", 6, "\u8C74\u8C75\u8C76\u8C77\u8C7B", 6, "\u8C83\u8C84\u8C86\u8C87"],
+ ["d880", "\u8C88\u8C8B\u8C8D", 6, "\u8C95\u8C96\u8C97\u8C99", 20, "\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],
+ ["d940", "\u8CAE", 62],
+ ["d980", "\u8CED", 32, "\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],
+ ["da40", "\u8D0E", 14, "\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78", 8, "\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C", 4, "\u8D92\u8D93\u8D95", 9, "\u8DA0\u8DA1"],
+ ["da80", "\u8DA2\u8DA4", 12, "\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],
+ ["db40", "\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE", 6, "\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15", 7, "\u8E20\u8E21\u8E24", 4, "\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],
+ ["db80", "\u8E3F\u8E43\u8E45\u8E46\u8E4C", 4, "\u8E53", 5, "\u8E5A", 11, "\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],
+ ["dc40", "\u8E73\u8E75\u8E77", 4, "\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88", 6, "\u8E91\u8E92\u8E93\u8E95", 6, "\u8E9D\u8E9F", 11, "\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3", 6, "\u8EBB", 7],
+ ["dc80", "\u8EC3", 10, "\u8ECF", 21, "\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],
+ ["dd40", "\u8EE5", 62],
+ ["dd80", "\u8F24", 32, "\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],
+ ["de40", "\u8F45", 32, "\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],
+ ["de80", "\u8FC9", 4, "\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],
+ ["df40", "\u9019\u901C\u9023\u9024\u9025\u9027", 5, "\u9030", 4, "\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048", 4, "\u904E\u9054\u9055\u9056\u9059\u905A\u905C", 5, "\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F", 4, "\u9076", 6, "\u907E\u9081"],
+ ["df80", "\u9084\u9085\u9086\u9087\u9089\u908A\u908C", 4, "\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],
+ ["e040", "\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105", 19, "\u911A\u911B\u911C"],
+ ["e080", "\u911D\u911F\u9120\u9121\u9124", 10, "\u9130\u9132", 6, "\u913A", 8, "\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],
+ ["e140", "\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180", 4, "\u9186\u9188\u918A\u918E\u918F\u9193", 6, "\u919C", 5, "\u91A4", 5, "\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],
+ ["e180", "\u91BC", 10, "\u91C8\u91CB\u91D0\u91D2", 9, "\u91DD", 8, "\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],
+ ["e240", "\u91E6", 62],
+ ["e280", "\u9225", 32, "\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967", 5, "\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],
+ ["e340", "\u9246", 45, "\u9275", 16],
+ ["e380", "\u9286", 7, "\u928F", 24, "\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],
+ ["e440", "\u92A8", 5, "\u92AF", 24, "\u92C9", 31],
+ ["e480", "\u92E9", 32, "\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],
+ ["e540", "\u930A", 51, "\u933F", 10],
+ ["e580", "\u934A", 31, "\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],
+ ["e640", "\u936C", 34, "\u9390", 27],
+ ["e680", "\u93AC", 29, "\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],
+ ["e740", "\u93CE", 7, "\u93D7", 54],
+ ["e780", "\u940E", 32, "\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21", 6, "\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F", 4, "\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],
+ ["e840", "\u942F", 14, "\u943F", 43, "\u946C\u946D\u946E\u946F"],
+ ["e880", "\u9470", 20, "\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],
+ ["e940", "\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577", 7, "\u9580", 42],
+ ["e980", "\u95AB", 32, "\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],
+ ["ea40", "\u95CC", 27, "\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623", 6, "\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],
+ ["ea80", "\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D", 4, "\u9673\u9678", 12, "\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],
+ ["eb40", "\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D", 9, "\u96A8", 7, "\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6", 9, "\u96E1", 6, "\u96EB"],
+ ["eb80", "\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717", 4, "\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],
+ ["ec40", "\u9721", 8, "\u972B\u972C\u972E\u972F\u9731\u9733", 4, "\u973A\u973B\u973C\u973D\u973F", 18, "\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A", 7],
+ ["ec80", "\u9772\u9775\u9777", 4, "\u977D", 7, "\u9786", 4, "\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799", 4, "\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],
+ ["ed40", "\u979E\u979F\u97A1\u97A2\u97A4", 6, "\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5", 46],
+ ["ed80", "\u97E4\u97E5\u97E8\u97EE", 4, "\u97F4\u97F7", 23, "\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],
+ ["ee40", "\u980F", 62],
+ ["ee80", "\u984E", 32, "\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6", 4, "\u94BC\u94BD\u94BF\u94C4\u94C8", 6, "\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],
+ ["ef40", "\u986F", 5, "\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8", 37, "\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0", 4],
+ ["ef80", "\u98E5\u98E6\u98E9", 30, "\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512", 4, "\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564", 8, "\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],
+ ["f040", "\u9908", 4, "\u990E\u990F\u9911", 28, "\u992F", 26],
+ ["f080", "\u994A", 9, "\u9956", 12, "\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28", 4, "\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66", 6, "\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],
+ ["f140", "\u998C\u998E\u999A", 10, "\u99A6\u99A7\u99A9", 47],
+ ["f180", "\u99D9", 32, "\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],
+ ["f240", "\u99FA", 62],
+ ["f280", "\u9A39", 32, "\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],
+ ["f340", "\u9A5A", 17, "\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9", 6, "\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6", 4, "\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],
+ ["f380", "\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0", 8, "\u9AFA\u9AFC", 6, "\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],
+ ["f440", "\u9B07\u9B09", 5, "\u9B10\u9B11\u9B12\u9B14", 10, "\u9B20\u9B21\u9B22\u9B24", 10, "\u9B30\u9B31\u9B33", 7, "\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55", 5],
+ ["f480", "\u9B5B", 32, "\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],
+ ["f540", "\u9B7C", 62],
+ ["f580", "\u9BBB", 32, "\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],
+ ["f640", "\u9BDC", 62],
+ ["f680", "\u9C1B", 32, "\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85", 5, "\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E", 5, "\u9CA5", 4, "\u9CAB\u9CAD\u9CAE\u9CB0", 7, "\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],
+ ["f740", "\u9C3C", 62],
+ ["f780", "\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE", 4, "\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC", 4, "\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],
+ ["f840", "\u9CE3", 62],
+ ["f880", "\u9D22", 32],
+ ["f940", "\u9D43", 62],
+ ["f980", "\u9D82", 32],
+ ["fa40", "\u9DA3", 62],
+ ["fa80", "\u9DE2", 32],
+ ["fb40", "\u9E03", 27, "\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74", 9, "\u9E80"],
+ ["fb80", "\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C", 5, "\u9E94", 8, "\u9E9E\u9EA0", 5, "\u9EA7\u9EA8\u9EA9\u9EAA"],
+ ["fc40", "\u9EAB", 8, "\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF", 4, "\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0", 8, "\u9EFA\u9EFD\u9EFF", 6],
+ ["fc80", "\u9F06", 4, "\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A", 5, "\u9F21\u9F23", 8, "\u9F2D\u9F2E\u9F30\u9F31"],
+ ["fd40", "\u9F32", 4, "\u9F38\u9F3A\u9F3C\u9F3F", 4, "\u9F45", 10, "\u9F52", 38],
+ ["fd80", "\u9F79", 5, "\u9F81\u9F82\u9F8D", 11, "\u9F9C\u9F9D\u9F9E\u9FA1", 4, "\uF92C\uF979\uF995\uF9E7\uF9F1"],
+ ["fe40", "\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]
+ ];
+ }
+});
+
+// node_modules/iconv-lite/encodings/tables/gbk-added.json
+var require_gbk_added = __commonJS({
+ "node_modules/iconv-lite/encodings/tables/gbk-added.json"(exports2, module2) {
+ module2.exports = [
+ ["a140", "\uE4C6", 62],
+ ["a180", "\uE505", 32],
+ ["a240", "\uE526", 62],
+ ["a280", "\uE565", 32],
+ ["a2ab", "\uE766", 5],
+ ["a2e3", "\u20AC\uE76D"],
+ ["a2ef", "\uE76E\uE76F"],
+ ["a2fd", "\uE770\uE771"],
+ ["a340", "\uE586", 62],
+ ["a380", "\uE5C5", 31, "\u3000"],
+ ["a440", "\uE5E6", 62],
+ ["a480", "\uE625", 32],
+ ["a4f4", "\uE772", 10],
+ ["a540", "\uE646", 62],
+ ["a580", "\uE685", 32],
+ ["a5f7", "\uE77D", 7],
+ ["a640", "\uE6A6", 62],
+ ["a680", "\uE6E5", 32],
+ ["a6b9", "\uE785", 7],
+ ["a6d9", "\uE78D", 6],
+ ["a6ec", "\uE794\uE795"],
+ ["a6f3", "\uE796"],
+ ["a6f6", "\uE797", 8],
+ ["a740", "\uE706", 62],
+ ["a780", "\uE745", 32],
+ ["a7c2", "\uE7A0", 14],
+ ["a7f2", "\uE7AF", 12],
+ ["a896", "\uE7BC", 10],
+ ["a8bc", "\uE7C7"],
+ ["a8bf", "\u01F9"],
+ ["a8c1", "\uE7C9\uE7CA\uE7CB\uE7CC"],
+ ["a8ea", "\uE7CD", 20],
+ ["a958", "\uE7E2"],
+ ["a95b", "\uE7E3"],
+ ["a95d", "\uE7E4\uE7E5\uE7E6"],
+ ["a989", "\u303E\u2FF0", 11],
+ ["a997", "\uE7F4", 12],
+ ["a9f0", "\uE801", 14],
+ ["aaa1", "\uE000", 93],
+ ["aba1", "\uE05E", 93],
+ ["aca1", "\uE0BC", 93],
+ ["ada1", "\uE11A", 93],
+ ["aea1", "\uE178", 93],
+ ["afa1", "\uE1D6", 93],
+ ["d7fa", "\uE810", 4],
+ ["f8a1", "\uE234", 93],
+ ["f9a1", "\uE292", 93],
+ ["faa1", "\uE2F0", 93],
+ ["fba1", "\uE34E", 93],
+ ["fca1", "\uE3AC", 93],
+ ["fda1", "\uE40A", 93],
+ ["fe50", "\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],
+ ["fe80", "\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13", 6, "\u4DAE\uE864\uE468", 93]
+ ];
+ }
+});
+
+// node_modules/iconv-lite/encodings/tables/gb18030-ranges.json
+var require_gb18030_ranges = __commonJS({
+ "node_modules/iconv-lite/encodings/tables/gb18030-ranges.json"(exports2, module2) {
+ module2.exports = { uChars: [128, 165, 169, 178, 184, 216, 226, 235, 238, 244, 248, 251, 253, 258, 276, 284, 300, 325, 329, 334, 364, 463, 465, 467, 469, 471, 473, 475, 477, 506, 594, 610, 712, 716, 730, 930, 938, 962, 970, 1026, 1104, 1106, 8209, 8215, 8218, 8222, 8231, 8241, 8244, 8246, 8252, 8365, 8452, 8454, 8458, 8471, 8482, 8556, 8570, 8596, 8602, 8713, 8720, 8722, 8726, 8731, 8737, 8740, 8742, 8748, 8751, 8760, 8766, 8777, 8781, 8787, 8802, 8808, 8816, 8854, 8858, 8870, 8896, 8979, 9322, 9372, 9548, 9588, 9616, 9622, 9634, 9652, 9662, 9672, 9676, 9680, 9702, 9735, 9738, 9793, 9795, 11906, 11909, 11913, 11917, 11928, 11944, 11947, 11951, 11956, 11960, 11964, 11979, 12284, 12292, 12312, 12319, 12330, 12351, 12436, 12447, 12535, 12543, 12586, 12842, 12850, 12964, 13200, 13215, 13218, 13253, 13263, 13267, 13270, 13384, 13428, 13727, 13839, 13851, 14617, 14703, 14801, 14816, 14964, 15183, 15471, 15585, 16471, 16736, 17208, 17325, 17330, 17374, 17623, 17997, 18018, 18212, 18218, 18301, 18318, 18760, 18811, 18814, 18820, 18823, 18844, 18848, 18872, 19576, 19620, 19738, 19887, 40870, 59244, 59336, 59367, 59413, 59417, 59423, 59431, 59437, 59443, 59452, 59460, 59478, 59493, 63789, 63866, 63894, 63976, 63986, 64016, 64018, 64021, 64025, 64034, 64037, 64042, 65074, 65093, 65107, 65112, 65127, 65132, 65375, 65510, 65536], gbChars: [0, 36, 38, 45, 50, 81, 89, 95, 96, 100, 103, 104, 105, 109, 126, 133, 148, 172, 175, 179, 208, 306, 307, 308, 309, 310, 311, 312, 313, 341, 428, 443, 544, 545, 558, 741, 742, 749, 750, 805, 819, 820, 7922, 7924, 7925, 7927, 7934, 7943, 7944, 7945, 7950, 8062, 8148, 8149, 8152, 8164, 8174, 8236, 8240, 8262, 8264, 8374, 8380, 8381, 8384, 8388, 8390, 8392, 8393, 8394, 8396, 8401, 8406, 8416, 8419, 8424, 8437, 8439, 8445, 8482, 8485, 8496, 8521, 8603, 8936, 8946, 9046, 9050, 9063, 9066, 9076, 9092, 9100, 9108, 9111, 9113, 9131, 9162, 9164, 9218, 9219, 11329, 11331, 11334, 11336, 11346, 11361, 11363, 11366, 11370, 11372, 11375, 11389, 11682, 11686, 11687, 11692, 11694, 11714, 11716, 11723, 11725, 11730, 11736, 11982, 11989, 12102, 12336, 12348, 12350, 12384, 12393, 12395, 12397, 12510, 12553, 12851, 12962, 12973, 13738, 13823, 13919, 13933, 14080, 14298, 14585, 14698, 15583, 15847, 16318, 16434, 16438, 16481, 16729, 17102, 17122, 17315, 17320, 17402, 17418, 17859, 17909, 17911, 17915, 17916, 17936, 17939, 17961, 18664, 18703, 18814, 18962, 19043, 33469, 33470, 33471, 33484, 33485, 33490, 33497, 33501, 33505, 33513, 33520, 33536, 33550, 37845, 37921, 37948, 38029, 38038, 38064, 38065, 38066, 38069, 38075, 38076, 38078, 39108, 39109, 39113, 39114, 39115, 39116, 39265, 39394, 189e3] };
+ }
+});
+
+// node_modules/iconv-lite/encodings/tables/cp949.json
+var require_cp949 = __commonJS({
+ "node_modules/iconv-lite/encodings/tables/cp949.json"(exports2, module2) {
+ module2.exports = [
+ ["0", "\0", 127],
+ ["8141", "\uAC02\uAC03\uAC05\uAC06\uAC0B", 4, "\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25", 6, "\uAC2E\uAC32\uAC33\uAC34"],
+ ["8161", "\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41", 9, "\uAC4C\uAC4E", 5, "\uAC55"],
+ ["8181", "\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D", 18, "\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B", 4, "\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95", 6, "\uAC9E\uACA2", 5, "\uACAB\uACAD\uACAE\uACB1", 6, "\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD", 7, "\uACD6\uACD8", 7, "\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7", 4, "\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07", 4, "\uAD0E\uAD10\uAD12\uAD13"],
+ ["8241", "\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21", 7, "\uAD2A\uAD2B\uAD2E", 5],
+ ["8261", "\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D", 6, "\uAD46\uAD48\uAD4A", 5, "\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],
+ ["8281", "\uAD59", 7, "\uAD62\uAD64", 7, "\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83", 4, "\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91", 10, "\uAD9E", 5, "\uADA5", 17, "\uADB8", 7, "\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9", 6, "\uADD2\uADD4", 7, "\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5", 18],
+ ["8341", "\uADFA\uADFB\uADFD\uADFE\uAE02", 5, "\uAE0A\uAE0C\uAE0E", 5, "\uAE15", 7],
+ ["8361", "\uAE1D", 18, "\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],
+ ["8381", "\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57", 4, "\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71", 6, "\uAE7A\uAE7E", 5, "\uAE86", 5, "\uAE8D", 46, "\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5", 6, "\uAECE\uAED2", 5, "\uAEDA\uAEDB\uAEDD", 8],
+ ["8441", "\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE", 5, "\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD", 8],
+ ["8461", "\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11", 18],
+ ["8481", "\uAF24", 7, "\uAF2E\uAF2F\uAF31\uAF33\uAF35", 6, "\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A", 5, "\uAF51", 10, "\uAF5E", 5, "\uAF66", 18, "\uAF7A", 5, "\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89", 6, "\uAF92\uAF93\uAF94\uAF96", 5, "\uAF9D", 26, "\uAFBA\uAFBB\uAFBD\uAFBE"],
+ ["8541", "\uAFBF\uAFC1", 5, "\uAFCA\uAFCC\uAFCF", 4, "\uAFD5", 6, "\uAFDD", 4],
+ ["8561", "\uAFE2", 5, "\uAFEA", 5, "\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9", 6, "\uB002\uB003"],
+ ["8581", "\uB005", 6, "\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015", 6, "\uB01E", 9, "\uB029", 26, "\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E", 29, "\uB07E\uB07F\uB081\uB082\uB083\uB085", 6, "\uB08E\uB090\uB092", 5, "\uB09B\uB09D\uB09E\uB0A3\uB0A4"],
+ ["8641", "\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD", 6, "\uB0C6\uB0CA", 5, "\uB0D2"],
+ ["8661", "\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9", 6, "\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6", 10],
+ ["8681", "\uB0F1", 22, "\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E", 4, "\uB126\uB127\uB129\uB12A\uB12B\uB12D", 6, "\uB136\uB13A", 5, "\uB142\uB143\uB145\uB146\uB147\uB149", 6, "\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161", 22, "\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183", 4, "\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],
+ ["8741", "\uB19E", 9, "\uB1A9", 15],
+ ["8761", "\uB1B9", 18, "\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],
+ ["8781", "\uB1D6", 5, "\uB1DE\uB1E0", 7, "\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1", 7, "\uB1FA\uB1FC\uB1FE", 5, "\uB206\uB207\uB209\uB20A\uB20D", 6, "\uB216\uB218\uB21A", 5, "\uB221", 18, "\uB235", 6, "\uB23D", 26, "\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261", 6, "\uB26A", 4],
+ ["8841", "\uB26F", 4, "\uB276", 5, "\uB27D", 6, "\uB286\uB287\uB288\uB28A", 4],
+ ["8861", "\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B", 4, "\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],
+ ["8881", "\uB2B8", 15, "\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3", 4, "\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309", 6, "\uB312\uB316", 5, "\uB31D", 54, "\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],
+ ["8941", "\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379", 6, "\uB382\uB386", 5, "\uB38D"],
+ ["8961", "\uB38E\uB38F\uB391\uB392\uB393\uB395", 10, "\uB3A2", 5, "\uB3A9\uB3AA\uB3AB\uB3AD"],
+ ["8981", "\uB3AE", 21, "\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9", 18, "\uB3FD", 18, "\uB411", 6, "\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421", 6, "\uB42A\uB42C", 7, "\uB435", 15],
+ ["8a41", "\uB445", 10, "\uB452\uB453\uB455\uB456\uB457\uB459", 6, "\uB462\uB464\uB466"],
+ ["8a61", "\uB467", 4, "\uB46D", 18, "\uB481\uB482"],
+ ["8a81", "\uB483", 4, "\uB489", 19, "\uB49E", 5, "\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD", 7, "\uB4B6\uB4B8\uB4BA", 5, "\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9", 6, "\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6", 5, "\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7", 4, "\uB4EE\uB4F0\uB4F2", 5, "\uB4F9", 26, "\uB516\uB517\uB519\uB51A\uB51D"],
+ ["8b41", "\uB51E", 5, "\uB526\uB52B", 4, "\uB532\uB533\uB535\uB536\uB537\uB539", 6, "\uB542\uB546"],
+ ["8b61", "\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555", 6, "\uB55E\uB562", 8],
+ ["8b81", "\uB56B", 52, "\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6", 4, "\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5", 6, "\uB5CE\uB5D2", 5, "\uB5D9", 18, "\uB5ED", 18],
+ ["8c41", "\uB600", 15, "\uB612\uB613\uB615\uB616\uB617\uB619", 4],
+ ["8c61", "\uB61E", 6, "\uB626", 5, "\uB62D", 6, "\uB635", 5],
+ ["8c81", "\uB63B", 12, "\uB649", 26, "\uB665\uB666\uB667\uB669", 50, "\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5", 5, "\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2", 16],
+ ["8d41", "\uB6C3", 16, "\uB6D5", 8],
+ ["8d61", "\uB6DE", 17, "\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],
+ ["8d81", "\uB6FB", 4, "\uB702\uB703\uB704\uB706", 33, "\uB72A\uB72B\uB72D\uB72E\uB731", 6, "\uB73A\uB73C", 7, "\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D", 6, "\uB756", 9, "\uB761\uB762\uB763\uB765\uB766\uB767\uB769", 6, "\uB772\uB774\uB776", 5, "\uB77E\uB77F\uB781\uB782\uB783\uB785", 6, "\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],
+ ["8e41", "\uB79F\uB7A1", 6, "\uB7AA\uB7AE", 5, "\uB7B6\uB7B7\uB7B9", 8],
+ ["8e61", "\uB7C2", 4, "\uB7C8\uB7CA", 19],
+ ["8e81", "\uB7DE", 13, "\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5", 6, "\uB7FE\uB802", 4, "\uB80A\uB80B\uB80D\uB80E\uB80F\uB811", 6, "\uB81A\uB81C\uB81E", 5, "\uB826\uB827\uB829\uB82A\uB82B\uB82D", 6, "\uB836\uB83A", 5, "\uB841\uB842\uB843\uB845", 11, "\uB852\uB854", 7, "\uB85E\uB85F\uB861\uB862\uB863\uB865", 6, "\uB86E\uB870\uB872", 5, "\uB879\uB87A\uB87B\uB87D", 7],
+ ["8f41", "\uB885", 7, "\uB88E", 17],
+ ["8f61", "\uB8A0", 7, "\uB8A9", 6, "\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9", 4],
+ ["8f81", "\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6", 5, "\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5", 7, "\uB8DE\uB8E0\uB8E2", 5, "\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1", 6, "\uB8FA\uB8FC\uB8FE", 5, "\uB905", 18, "\uB919", 6, "\uB921", 26, "\uB93E\uB93F\uB941\uB942\uB943\uB945", 6, "\uB94D\uB94E\uB950\uB952", 5],
+ ["9041", "\uB95A\uB95B\uB95D\uB95E\uB95F\uB961", 6, "\uB96A\uB96C\uB96E", 5, "\uB976\uB977\uB979\uB97A\uB97B\uB97D"],
+ ["9061", "\uB97E", 5, "\uB986\uB988\uB98B\uB98C\uB98F", 15],
+ ["9081", "\uB99F", 12, "\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5", 6, "\uB9BE\uB9C0\uB9C2", 5, "\uB9CA\uB9CB\uB9CD\uB9D3", 4, "\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED", 6, "\uB9F6\uB9FB", 4, "\uBA02", 5, "\uBA09", 11, "\uBA16", 33, "\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],
+ ["9141", "\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D", 6, "\uBA66\uBA6A", 5],
+ ["9161", "\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79", 9, "\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D", 5],
+ ["9181", "\uBA93", 20, "\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3", 4, "\uBABA\uBABC\uBABE", 5, "\uBAC5\uBAC6\uBAC7\uBAC9", 14, "\uBADA", 33, "\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05", 7, "\uBB0E\uBB10\uBB12", 5, "\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21", 6],
+ ["9241", "\uBB28\uBB2A\uBB2C", 7, "\uBB37\uBB39\uBB3A\uBB3F", 4, "\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],
+ ["9261", "\uBB53\uBB55\uBB56\uBB57\uBB59", 7, "\uBB62\uBB64", 7, "\uBB6D", 4],
+ ["9281", "\uBB72", 21, "\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91", 18, "\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD", 6, "\uBBB5\uBBB6\uBBB8", 7, "\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9", 6, "\uBBD1\uBBD2\uBBD4", 35, "\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],
+ ["9341", "\uBC03", 4, "\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],
+ ["9361", "\uBC36\uBC37\uBC39", 6, "\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51", 8],
+ ["9381", "\uBC5A\uBC5B\uBC5C\uBC5E", 37, "\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F", 4, "\uBC96\uBC98\uBC9B", 4, "\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9", 6, "\uBCB2\uBCB6", 5, "\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5", 7, "\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD", 22, "\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],
+ ["9441", "\uBCFE", 5, "\uBD06\uBD08\uBD0A", 5, "\uBD11\uBD12\uBD13\uBD15", 8],
+ ["9461", "\uBD1E", 5, "\uBD25", 6, "\uBD2D", 12],
+ ["9481", "\uBD3A", 5, "\uBD41", 6, "\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51", 6, "\uBD5A", 9, "\uBD65\uBD66\uBD67\uBD69", 22, "\uBD82\uBD83\uBD85\uBD86\uBD8B", 4, "\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D", 6, "\uBDA5", 10, "\uBDB1", 6, "\uBDB9", 24],
+ ["9541", "\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD", 11, "\uBDEA", 5, "\uBDF1"],
+ ["9561", "\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9", 6, "\uBE01\uBE02\uBE04\uBE06", 5, "\uBE0E\uBE0F\uBE11\uBE12\uBE13"],
+ ["9581", "\uBE15", 6, "\uBE1E\uBE20", 35, "\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F", 4, "\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B", 4, "\uBE72\uBE76", 4, "\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85", 6, "\uBE8E\uBE92", 5, "\uBE9A", 13, "\uBEA9", 14],
+ ["9641", "\uBEB8", 23, "\uBED2\uBED3"],
+ ["9661", "\uBED5\uBED6\uBED9", 6, "\uBEE1\uBEE2\uBEE6", 5, "\uBEED", 8],
+ ["9681", "\uBEF6", 10, "\uBF02", 5, "\uBF0A", 13, "\uBF1A\uBF1E", 33, "\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49", 6, "\uBF52\uBF53\uBF54\uBF56", 44],
+ ["9741", "\uBF83", 16, "\uBF95", 8],
+ ["9761", "\uBF9E", 17, "\uBFB1", 7],
+ ["9781", "\uBFB9", 11, "\uBFC6", 5, "\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5", 6, "\uBFDD\uBFDE\uBFE0\uBFE2", 89, "\uC03D\uC03E\uC03F"],
+ ["9841", "\uC040", 16, "\uC052", 5, "\uC059\uC05A\uC05B"],
+ ["9861", "\uC05D\uC05E\uC05F\uC061", 6, "\uC06A", 15],
+ ["9881", "\uC07A", 21, "\uC092\uC093\uC095\uC096\uC097\uC099", 6, "\uC0A2\uC0A4\uC0A6", 5, "\uC0AE\uC0B1\uC0B2\uC0B7", 4, "\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1", 6, "\uC0DA\uC0DE", 5, "\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED", 6, "\uC0F6\uC0F8\uC0FA", 5, "\uC101\uC102\uC103\uC105\uC106\uC107\uC109", 6, "\uC111\uC112\uC113\uC114\uC116", 5, "\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],
+ ["9941", "\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141", 6, "\uC14A\uC14E", 5, "\uC156\uC157"],
+ ["9961", "\uC159\uC15A\uC15B\uC15D", 6, "\uC166\uC16A", 5, "\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],
+ ["9981", "\uC17C", 8, "\uC186", 5, "\uC18F\uC191\uC192\uC193\uC195\uC197", 4, "\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1", 11, "\uC1BE", 5, "\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD", 6, "\uC1D5\uC1D6\uC1D9", 6, "\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9", 6, "\uC1F2\uC1F4", 7, "\uC1FE\uC1FF\uC201\uC202\uC203\uC205", 6, "\uC20E\uC210\uC212", 5, "\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],
+ ["9a41", "\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235", 16],
+ ["9a61", "\uC246\uC247\uC249", 6, "\uC252\uC253\uC255\uC256\uC257\uC259", 6, "\uC261\uC262\uC263\uC264\uC266"],
+ ["9a81", "\uC267", 4, "\uC26E\uC26F\uC271\uC272\uC273\uC275", 6, "\uC27E\uC280\uC282", 5, "\uC28A", 5, "\uC291", 6, "\uC299\uC29A\uC29C\uC29E", 5, "\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE", 5, "\uC2B6\uC2B8\uC2BA", 33, "\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5", 5, "\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301", 6, "\uC30A\uC30B\uC30E\uC30F"],
+ ["9b41", "\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D", 6, "\uC326\uC327\uC32A", 8],
+ ["9b61", "\uC333", 17, "\uC346", 7],
+ ["9b81", "\uC34E", 25, "\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373", 4, "\uC37A\uC37B\uC37E", 5, "\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D", 50, "\uC3C1", 22, "\uC3DA"],
+ ["9c41", "\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3", 4, "\uC3EA\uC3EB\uC3EC\uC3EE", 5, "\uC3F6\uC3F7\uC3F9", 5],
+ ["9c61", "\uC3FF", 8, "\uC409", 6, "\uC411", 9],
+ ["9c81", "\uC41B", 8, "\uC425", 6, "\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435", 6, "\uC43E", 9, "\uC449", 26, "\uC466\uC467\uC469\uC46A\uC46B\uC46D", 6, "\uC476\uC477\uC478\uC47A", 5, "\uC481", 18, "\uC495", 6, "\uC49D", 12],
+ ["9d41", "\uC4AA", 13, "\uC4B9\uC4BA\uC4BB\uC4BD", 8],
+ ["9d61", "\uC4C6", 25],
+ ["9d81", "\uC4E0", 8, "\uC4EA", 5, "\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502", 9, "\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515", 6, "\uC51D", 10, "\uC52A\uC52B\uC52D\uC52E\uC52F\uC531", 6, "\uC53A\uC53C\uC53E", 5, "\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569", 6, "\uC572\uC576", 5, "\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],
+ ["9e41", "\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1", 7, "\uC5AA", 9, "\uC5B6"],
+ ["9e61", "\uC5B7\uC5BA\uC5BF", 4, "\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9", 6, "\uC5E2\uC5E4\uC5E6\uC5E7"],
+ ["9e81", "\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611", 6, "\uC61A\uC61D", 6, "\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649", 6, "\uC652\uC656", 5, "\uC65E\uC65F\uC661", 10, "\uC66D\uC66E\uC670\uC672", 5, "\uC67A\uC67B\uC67D\uC67E\uC67F\uC681", 6, "\uC68A\uC68C\uC68E", 5, "\uC696\uC697\uC699\uC69A\uC69B\uC69D", 6, "\uC6A6"],
+ ["9f41", "\uC6A8\uC6AA", 5, "\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB", 4, "\uC6C2\uC6C4\uC6C6", 5, "\uC6CE"],
+ ["9f61", "\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5", 6, "\uC6DE\uC6DF\uC6E2", 5, "\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],
+ ["9f81", "\uC6F3", 4, "\uC6FA\uC6FB\uC6FC\uC6FE", 5, "\uC706\uC707\uC709\uC70A\uC70B\uC70D", 6, "\uC716\uC718\uC71A", 5, "\uC722\uC723\uC725\uC726\uC727\uC729", 6, "\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745", 4, "\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761", 6, "\uC769\uC76A\uC76C", 7, "\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B", 4, "\uC7A2\uC7A7", 4, "\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],
+ ["a041", "\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2", 5, "\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1", 6, "\uC7D9\uC7DA\uC7DB\uC7DC"],
+ ["a061", "\uC7DE", 5, "\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED", 13],
+ ["a081", "\uC7FB", 4, "\uC802\uC803\uC805\uC806\uC807\uC809\uC80B", 4, "\uC812\uC814\uC817", 4, "\uC81E\uC81F\uC821\uC822\uC823\uC825", 6, "\uC82E\uC830\uC832", 5, "\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841", 6, "\uC84A\uC84B\uC84E", 5, "\uC855", 26, "\uC872\uC873\uC875\uC876\uC877\uC879\uC87B", 4, "\uC882\uC884\uC888\uC889\uC88A\uC88E", 5, "\uC895", 7, "\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],
+ ["a141", "\uC8A5\uC8A6\uC8A7\uC8A9", 18, "\uC8BE\uC8BF\uC8C0\uC8C1"],
+ ["a161", "\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD", 6, "\uC8D6\uC8D8\uC8DA", 5, "\uC8E2\uC8E3\uC8E5"],
+ ["a181", "\uC8E6", 14, "\uC8F6", 5, "\uC8FE\uC8FF\uC901\uC902\uC903\uC907", 4, "\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008", 9, "\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],
+ ["a241", "\uC910\uC912", 5, "\uC919", 18],
+ ["a261", "\uC92D", 6, "\uC935", 18],
+ ["a281", "\uC948", 7, "\uC952\uC953\uC955\uC956\uC957\uC959", 6, "\uC962\uC964", 7, "\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],
+ ["a341", "\uC971\uC972\uC973\uC975", 6, "\uC97D", 10, "\uC98A\uC98B\uC98D\uC98E\uC98F"],
+ ["a361", "\uC991", 6, "\uC99A\uC99C\uC99E", 16],
+ ["a381", "\uC9AF", 16, "\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB", 4, "\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01", 58, "\uFFE6\uFF3D", 32, "\uFFE3"],
+ ["a441", "\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2", 5, "\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],
+ ["a461", "\uCA05\uCA06\uCA07\uCA0A\uCA0E", 5, "\uCA15\uCA16\uCA17\uCA19", 12],
+ ["a481", "\uCA26\uCA27\uCA28\uCA2A", 28, "\u3131", 93],
+ ["a541", "\uCA47", 4, "\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55", 6, "\uCA5E\uCA62", 5, "\uCA69\uCA6A"],
+ ["a561", "\uCA6B", 17, "\uCA7E", 5, "\uCA85\uCA86"],
+ ["a581", "\uCA87", 16, "\uCA99", 14, "\u2170", 9],
+ ["a5b0", "\u2160", 9],
+ ["a5c1", "\u0391", 16, "\u03A3", 6],
+ ["a5e1", "\u03B1", 16, "\u03C3", 6],
+ ["a641", "\uCAA8", 19, "\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],
+ ["a661", "\uCAC6", 5, "\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA", 5, "\uCAE1", 6],
+ ["a681", "\uCAE8\uCAE9\uCAEA\uCAEB\uCAED", 6, "\uCAF5", 18, "\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543", 7],
+ ["a741", "\uCB0B", 4, "\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19", 6, "\uCB22", 7],
+ ["a761", "\uCB2A", 22, "\uCB42\uCB43\uCB44"],
+ ["a781", "\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51", 6, "\uCB5A\uCB5B\uCB5C\uCB5E", 5, "\uCB65", 7, "\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399", 9, "\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0", 9, "\u3380", 4, "\u33BA", 5, "\u3390", 4, "\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],
+ ["a841", "\uCB6D", 10, "\uCB7A", 14],
+ ["a861", "\uCB89", 18, "\uCB9D", 6],
+ ["a881", "\uCBA4", 19, "\uCBB9", 11, "\xC6\xD0\xAA\u0126"],
+ ["a8a6", "\u0132"],
+ ["a8a8", "\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],
+ ["a8b1", "\u3260", 27, "\u24D0", 25, "\u2460", 14, "\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],
+ ["a941", "\uCBC5", 14, "\uCBD5", 10],
+ ["a961", "\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA", 18],
+ ["a981", "\uCBFD", 14, "\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15", 6, "\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200", 27, "\u249C", 25, "\u2474", 14, "\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],
+ ["aa41", "\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31", 6, "\uCC3A\uCC3F", 4, "\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],
+ ["aa61", "\uCC4F", 4, "\uCC56\uCC5A", 5, "\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69", 6, "\uCC71\uCC72"],
+ ["aa81", "\uCC73\uCC74\uCC76", 29, "\u3041", 82],
+ ["ab41", "\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1", 6, "\uCCAA\uCCAE", 5, "\uCCB6\uCCB7\uCCB9"],
+ ["ab61", "\uCCBA\uCCBB\uCCBD", 6, "\uCCC6\uCCC8\uCCCA", 5, "\uCCD1\uCCD2\uCCD3\uCCD5", 5],
+ ["ab81", "\uCCDB", 8, "\uCCE5", 6, "\uCCED\uCCEE\uCCEF\uCCF1", 12, "\u30A1", 85],
+ ["ac41", "\uCCFE\uCCFF\uCD00\uCD02", 5, "\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11", 6, "\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],
+ ["ac61", "\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D", 11, "\uCD3A", 4],
+ ["ac81", "\uCD3F", 28, "\uCD5D\uCD5E\uCD5F\u0410", 5, "\u0401\u0416", 25],
+ ["acd1", "\u0430", 5, "\u0451\u0436", 25],
+ ["ad41", "\uCD61\uCD62\uCD63\uCD65", 6, "\uCD6E\uCD70\uCD72", 5, "\uCD79", 7],
+ ["ad61", "\uCD81", 6, "\uCD89", 10, "\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],
+ ["ad81", "\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA", 5, "\uCDB1", 18, "\uCDC5"],
+ ["ae41", "\uCDC6", 5, "\uCDCD\uCDCE\uCDCF\uCDD1", 16],
+ ["ae61", "\uCDE2", 5, "\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1", 6, "\uCDFA\uCDFC\uCDFE", 4],
+ ["ae81", "\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D", 6, "\uCE15\uCE16\uCE17\uCE18\uCE1A", 5, "\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],
+ ["af41", "\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36", 19],
+ ["af61", "\uCE4A", 13, "\uCE5A\uCE5B\uCE5D\uCE5E\uCE62", 5, "\uCE6A\uCE6C"],
+ ["af81", "\uCE6E", 5, "\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D", 6, "\uCE86\uCE88\uCE8A", 5, "\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],
+ ["b041", "\uCE9A", 5, "\uCEA2\uCEA6", 5, "\uCEAE", 12],
+ ["b061", "\uCEBB", 5, "\uCEC2", 19],
+ ["b081", "\uCED6", 13, "\uCEE6\uCEE7\uCEE9\uCEEA\uCEED", 6, "\uCEF6\uCEFA", 5, "\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10", 7, "\uAC19", 4, "\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],
+ ["b141", "\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09", 6, "\uCF12\uCF14\uCF16", 5, "\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],
+ ["b161", "\uCF25", 6, "\uCF2E\uCF32", 5, "\uCF39", 11],
+ ["b181", "\uCF45", 14, "\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D", 6, "\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],
+ ["b241", "\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79", 6, "\uCF81\uCF82\uCF83\uCF84\uCF86", 5, "\uCF8D"],
+ ["b261", "\uCF8E", 18, "\uCFA2", 5, "\uCFA9"],
+ ["b281", "\uCFAA", 5, "\uCFB1", 18, "\uCFC5", 6, "\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],
+ ["b341", "\uCFCC", 19, "\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],
+ ["b361", "\uCFEA", 5, "\uCFF2\uCFF4\uCFF6", 5, "\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005", 5],
+ ["b381", "\uD00B", 5, "\uD012", 5, "\uD019", 19, "\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB", 4, "\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],
+ ["b441", "\uD02E", 5, "\uD036\uD037\uD039\uD03A\uD03B\uD03D", 6, "\uD046\uD048\uD04A", 5],
+ ["b461", "\uD051\uD052\uD053\uD055\uD056\uD057\uD059", 6, "\uD061", 10, "\uD06E\uD06F"],
+ ["b481", "\uD071\uD072\uD073\uD075", 6, "\uD07E\uD07F\uD080\uD082", 18, "\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB", 4, "\uB2F3\uB2F4\uB2F5\uB2F7", 4, "\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],
+ ["b541", "\uD095", 14, "\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD", 5],
+ ["b561", "\uD0B3\uD0B6\uD0B8\uD0BA", 5, "\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA", 5, "\uD0D2\uD0D6", 4],
+ ["b581", "\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5", 6, "\uD0EE\uD0F2", 5, "\uD0F9", 11, "\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],
+ ["b641", "\uD105", 7, "\uD10E", 17],
+ ["b661", "\uD120", 15, "\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],
+ ["b681", "\uD13F\uD142\uD146", 5, "\uD14E\uD14F\uD151\uD152\uD153\uD155", 6, "\uD15E\uD160\uD162", 5, "\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],
+ ["b741", "\uD16E", 13, "\uD17D", 6, "\uD185\uD186\uD187\uD189\uD18A"],
+ ["b761", "\uD18B", 20, "\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],
+ ["b781", "\uD1A9", 6, "\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1", 14, "\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],
+ ["b841", "\uD1D0", 7, "\uD1D9", 17],
+ ["b861", "\uD1EB", 8, "\uD1F5\uD1F6\uD1F7\uD1F9", 13],
+ ["b881", "\uD208\uD20A", 5, "\uD211", 24, "\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE", 4, "\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],
+ ["b941", "\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235", 6, "\uD23E\uD240\uD242", 5, "\uD249\uD24A\uD24B\uD24C"],
+ ["b961", "\uD24D", 14, "\uD25D", 6, "\uD265\uD266\uD267\uD268"],
+ ["b981", "\uD269", 22, "\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14", 4, "\uBC1B", 4, "\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],
+ ["ba41", "\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296", 5, "\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5", 6, "\uD2AD"],
+ ["ba61", "\uD2AE\uD2AF\uD2B0\uD2B2", 5, "\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3", 4, "\uD2CA\uD2CC", 5],
+ ["ba81", "\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD", 6, "\uD2E6", 9, "\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],
+ ["bb41", "\uD2FB", 4, "\uD302\uD304\uD306", 5, "\uD30F\uD311\uD312\uD313\uD315\uD317", 4, "\uD31E\uD322\uD323"],
+ ["bb61", "\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331", 6, "\uD33A\uD33E", 5, "\uD346\uD347\uD348\uD349"],
+ ["bb81", "\uD34A", 31, "\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],
+ ["bc41", "\uD36A", 17, "\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],
+ ["bc61", "\uD388\uD389\uD38A\uD38B\uD38E\uD392", 5, "\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1", 6, "\uD3AA\uD3AC\uD3AE"],
+ ["bc81", "\uD3AF", 4, "\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD", 6, "\uD3C6\uD3C7\uD3CA", 5, "\uD3D1", 5, "\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C", 4, "\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],
+ ["bd41", "\uD3D7\uD3D9", 7, "\uD3E2\uD3E4", 7, "\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],
+ ["bd61", "\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402", 5, "\uD409", 13],
+ ["bd81", "\uD417", 5, "\uD41E", 25, "\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],
+ ["be41", "\uD438", 7, "\uD441\uD442\uD443\uD445", 14],
+ ["be61", "\uD454", 7, "\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465", 7, "\uD46E\uD470\uD471\uD472"],
+ ["be81", "\uD473", 4, "\uD47A\uD47B\uD47D\uD47E\uD481\uD483", 4, "\uD48A\uD48C\uD48E", 5, "\uD495", 8, "\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4", 6, "\uC5CC\uC5CE"],
+ ["bf41", "\uD49E", 10, "\uD4AA", 14],
+ ["bf61", "\uD4B9", 18, "\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],
+ ["bf81", "\uD4D6", 5, "\uD4DD\uD4DE\uD4E0", 7, "\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1", 6, "\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC", 5, "\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],
+ ["c041", "\uD4FE", 5, "\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D", 6, "\uD516\uD518", 5],
+ ["c061", "\uD51E", 25],
+ ["c081", "\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545", 6, "\uD54E\uD550\uD552", 5, "\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751", 7, "\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],
+ ["c141", "\uD564\uD566\uD567\uD56A\uD56C\uD56E", 5, "\uD576\uD577\uD579\uD57A\uD57B\uD57D", 6, "\uD586\uD58A\uD58B"],
+ ["c161", "\uD58C\uD58D\uD58E\uD58F\uD591", 19, "\uD5A6\uD5A7"],
+ ["c181", "\uD5A8", 31, "\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],
+ ["c241", "\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3", 4, "\uD5DA\uD5DC\uD5DE", 5, "\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],
+ ["c261", "\uD5EF", 4, "\uD5F6\uD5F8\uD5FA", 5, "\uD602\uD603\uD605\uD606\uD607\uD609", 6, "\uD612"],
+ ["c281", "\uD616", 5, "\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625", 7, "\uD62E", 9, "\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],
+ ["c341", "\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D", 4],
+ ["c361", "\uD662", 4, "\uD668\uD66A", 5, "\uD672\uD673\uD675", 11],
+ ["c381", "\uD681\uD682\uD684\uD686", 5, "\uD68E\uD68F\uD691\uD692\uD693\uD695", 7, "\uD69E\uD6A0\uD6A2", 5, "\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],
+ ["c441", "\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1", 7, "\uD6BA\uD6BC", 7, "\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],
+ ["c461", "\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA", 5, "\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9", 4],
+ ["c481", "\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6", 5, "\uD6FE\uD6FF\uD701\uD702\uD703\uD705", 11, "\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],
+ ["c541", "\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721", 6, "\uD72A\uD72C\uD72E", 5, "\uD736\uD737\uD739"],
+ ["c561", "\uD73A\uD73B\uD73D", 6, "\uD745\uD746\uD748\uD74A", 5, "\uD752\uD753\uD755\uD75A", 4],
+ ["c581", "\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775", 6, "\uD77E\uD77F\uD780\uD782", 5, "\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],
+ ["c641", "\uD78D\uD78E\uD78F\uD791", 6, "\uD79A\uD79C\uD79E", 5],
+ ["c6a1", "\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],
+ ["c7a1", "\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],
+ ["c8a1", "\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],
+ ["caa1", "\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],
+ ["cba1", "\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],
+ ["cca1", "\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],
+ ["cda1", "\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],
+ ["cea1", "\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],
+ ["cfa1", "\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],
+ ["d0a1", "\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],
+ ["d1a1", "\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E", 5, "\u90A3\uF914", 4, "\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],
+ ["d2a1", "\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928", 4, "\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933", 5, "\u99D1\uF939", 10, "\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A", 7, "\u5AE9\u8A25\u677B\u7D10\uF952", 5, "\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],
+ ["d3a1", "\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],
+ ["d4a1", "\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],
+ ["d5a1", "\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],
+ ["d6a1", "\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],
+ ["d7a1", "\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],
+ ["d8a1", "\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],
+ ["d9a1", "\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],
+ ["daa1", "\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],
+ ["dba1", "\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],
+ ["dca1", "\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],
+ ["dda1", "\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],
+ ["dea1", "\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],
+ ["dfa1", "\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],
+ ["e0a1", "\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],
+ ["e1a1", "\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],
+ ["e2a1", "\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],
+ ["e3a1", "\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],
+ ["e4a1", "\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],
+ ["e5a1", "\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],
+ ["e6a1", "\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],
+ ["e7a1", "\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],
+ ["e8a1", "\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],
+ ["e9a1", "\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],
+ ["eaa1", "\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],
+ ["eba1", "\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],
+ ["eca1", "\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],
+ ["eda1", "\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],
+ ["eea1", "\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],
+ ["efa1", "\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],
+ ["f0a1", "\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],
+ ["f1a1", "\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],
+ ["f2a1", "\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],
+ ["f3a1", "\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],
+ ["f4a1", "\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],
+ ["f5a1", "\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],
+ ["f6a1", "\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],
+ ["f7a1", "\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],
+ ["f8a1", "\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],
+ ["f9a1", "\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],
+ ["faa1", "\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],
+ ["fba1", "\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],
+ ["fca1", "\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],
+ ["fda1", "\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]
+ ];
+ }
+});
+
+// node_modules/iconv-lite/encodings/tables/cp950.json
+var require_cp950 = __commonJS({
+ "node_modules/iconv-lite/encodings/tables/cp950.json"(exports2, module2) {
+ module2.exports = [
+ ["0", "\0", 127],
+ ["a140", "\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],
+ ["a1a1", "\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62", 4, "\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],
+ ["a240", "\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581", 7, "\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],
+ ["a2a1", "\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10", 9, "\u2160", 9, "\u3021", 8, "\u5341\u5344\u5345\uFF21", 25, "\uFF41", 21],
+ ["a340", "\uFF57\uFF58\uFF59\uFF5A\u0391", 16, "\u03A3", 6, "\u03B1", 16, "\u03C3", 6, "\u3105", 10],
+ ["a3a1", "\u3110", 25, "\u02D9\u02C9\u02CA\u02C7\u02CB"],
+ ["a3e1", "\u20AC"],
+ ["a440", "\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],
+ ["a4a1", "\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],
+ ["a540", "\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],
+ ["a5a1", "\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],
+ ["a640", "\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],
+ ["a6a1", "\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],
+ ["a740", "\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],
+ ["a7a1", "\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],
+ ["a840", "\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],
+ ["a8a1", "\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],
+ ["a940", "\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],
+ ["a9a1", "\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],
+ ["aa40", "\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],
+ ["aaa1", "\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],
+ ["ab40", "\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],
+ ["aba1", "\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],
+ ["ac40", "\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],
+ ["aca1", "\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],
+ ["ad40", "\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],
+ ["ada1", "\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],
+ ["ae40", "\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],
+ ["aea1", "\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],
+ ["af40", "\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],
+ ["afa1", "\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],
+ ["b040", "\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],
+ ["b0a1", "\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],
+ ["b140", "\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],
+ ["b1a1", "\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],
+ ["b240", "\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],
+ ["b2a1", "\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],
+ ["b340", "\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],
+ ["b3a1", "\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],
+ ["b440", "\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],
+ ["b4a1", "\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],
+ ["b540", "\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],
+ ["b5a1", "\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],
+ ["b640", "\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],
+ ["b6a1", "\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],
+ ["b740", "\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],
+ ["b7a1", "\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],
+ ["b840", "\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],
+ ["b8a1", "\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],
+ ["b940", "\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],
+ ["b9a1", "\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],
+ ["ba40", "\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],
+ ["baa1", "\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],
+ ["bb40", "\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],
+ ["bba1", "\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],
+ ["bc40", "\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],
+ ["bca1", "\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],
+ ["bd40", "\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],
+ ["bda1", "\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],
+ ["be40", "\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],
+ ["bea1", "\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],
+ ["bf40", "\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],
+ ["bfa1", "\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],
+ ["c040", "\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],
+ ["c0a1", "\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],
+ ["c140", "\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],
+ ["c1a1", "\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],
+ ["c240", "\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],
+ ["c2a1", "\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],
+ ["c340", "\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],
+ ["c3a1", "\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],
+ ["c440", "\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],
+ ["c4a1", "\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],
+ ["c540", "\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],
+ ["c5a1", "\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],
+ ["c640", "\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],
+ ["c940", "\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],
+ ["c9a1", "\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],
+ ["ca40", "\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],
+ ["caa1", "\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],
+ ["cb40", "\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],
+ ["cba1", "\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],
+ ["cc40", "\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],
+ ["cca1", "\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],
+ ["cd40", "\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],
+ ["cda1", "\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],
+ ["ce40", "\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],
+ ["cea1", "\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],
+ ["cf40", "\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],
+ ["cfa1", "\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],
+ ["d040", "\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],
+ ["d0a1", "\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],
+ ["d140", "\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],
+ ["d1a1", "\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],
+ ["d240", "\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],
+ ["d2a1", "\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],
+ ["d340", "\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],
+ ["d3a1", "\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],
+ ["d440", "\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],
+ ["d4a1", "\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],
+ ["d540", "\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],
+ ["d5a1", "\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],
+ ["d640", "\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],
+ ["d6a1", "\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],
+ ["d740", "\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],
+ ["d7a1", "\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],
+ ["d840", "\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],
+ ["d8a1", "\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],
+ ["d940", "\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],
+ ["d9a1", "\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],
+ ["da40", "\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],
+ ["daa1", "\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],
+ ["db40", "\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],
+ ["dba1", "\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],
+ ["dc40", "\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],
+ ["dca1", "\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],
+ ["dd40", "\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],
+ ["dda1", "\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],
+ ["de40", "\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],
+ ["dea1", "\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],
+ ["df40", "\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],
+ ["dfa1", "\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],
+ ["e040", "\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],
+ ["e0a1", "\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],
+ ["e140", "\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],
+ ["e1a1", "\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],
+ ["e240", "\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],
+ ["e2a1", "\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],
+ ["e340", "\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],
+ ["e3a1", "\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],
+ ["e440", "\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],
+ ["e4a1", "\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],
+ ["e540", "\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],
+ ["e5a1", "\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],
+ ["e640", "\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],
+ ["e6a1", "\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],
+ ["e740", "\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],
+ ["e7a1", "\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],
+ ["e840", "\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],
+ ["e8a1", "\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],
+ ["e940", "\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],
+ ["e9a1", "\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],
+ ["ea40", "\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],
+ ["eaa1", "\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],
+ ["eb40", "\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],
+ ["eba1", "\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],
+ ["ec40", "\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],
+ ["eca1", "\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],
+ ["ed40", "\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],
+ ["eda1", "\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],
+ ["ee40", "\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],
+ ["eea1", "\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],
+ ["ef40", "\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],
+ ["efa1", "\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],
+ ["f040", "\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],
+ ["f0a1", "\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],
+ ["f140", "\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],
+ ["f1a1", "\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],
+ ["f240", "\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],
+ ["f2a1", "\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],
+ ["f340", "\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],
+ ["f3a1", "\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],
+ ["f440", "\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],
+ ["f4a1", "\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],
+ ["f540", "\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],
+ ["f5a1", "\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],
+ ["f640", "\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],
+ ["f6a1", "\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],
+ ["f740", "\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],
+ ["f7a1", "\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],
+ ["f840", "\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],
+ ["f8a1", "\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],
+ ["f940", "\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],
+ ["f9a1", "\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]
+ ];
+ }
+});
+
+// node_modules/iconv-lite/encodings/tables/big5-added.json
+var require_big5_added = __commonJS({
+ "node_modules/iconv-lite/encodings/tables/big5-added.json"(exports2, module2) {
+ module2.exports = [
+ ["8740", "\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],
+ ["8767", "\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],
+ ["87a1", "\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],
+ ["8840", "\u31C0", 4, "\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],
+ ["88a1", "\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],
+ ["8940", "\u{2A3A9}\u{21145}"],
+ ["8943", "\u650A"],
+ ["8946", "\u4E3D\u6EDD\u9D4E\u91DF"],
+ ["894c", "\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],
+ ["89a1", "\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],
+ ["89ab", "\u918C\u78B8\u915E\u80BC"],
+ ["89b0", "\u8D0B\u80F6\u{209E7}"],
+ ["89b5", "\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],
+ ["89c1", "\u6E9A\u823E\u7519"],
+ ["89c5", "\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],
+ ["8a40", "\u{27D84}\u5525"],
+ ["8a43", "\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],
+ ["8a64", "\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],
+ ["8a76", "\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],
+ ["8aa1", "\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],
+ ["8aac", "\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],
+ ["8ab2", "\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],
+ ["8abb", "\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],
+ ["8ac9", "\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],
+ ["8ace", "\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],
+ ["8adf", "\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],
+ ["8af6", "\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],
+ ["8b40", "\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],
+ ["8b55", "\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],
+ ["8ba1", "\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],
+ ["8bde", "\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],
+ ["8c40", "\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],
+ ["8ca1", "\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],
+ ["8ca7", "\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],
+ ["8cc9", "\u9868\u676B\u4276\u573D"],
+ ["8cce", "\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],
+ ["8ce6", "\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],
+ ["8d40", "\u{20B9F}"],
+ ["8d42", "\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],
+ ["8da1", "\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],
+ ["8e40", "\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],
+ ["8ea1", "\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],
+ ["8f40", "\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],
+ ["8fa1", "\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],
+ ["9040", "\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],
+ ["90a1", "\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],
+ ["9140", "\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],
+ ["91a1", "\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],
+ ["9240", "\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],
+ ["92a1", "\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],
+ ["9340", "\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],
+ ["93a1", "\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],
+ ["9440", "\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],
+ ["94a1", "\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],
+ ["9540", "\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],
+ ["95a1", "\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],
+ ["9640", "\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],
+ ["96a1", "\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],
+ ["9740", "\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],
+ ["97a1", "\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],
+ ["9840", "\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],
+ ["98a1", "\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],
+ ["9940", "\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],
+ ["99a1", "\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],
+ ["9a40", "\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],
+ ["9aa1", "\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],
+ ["9b40", "\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],
+ ["9b62", "\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],
+ ["9ba1", "\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],
+ ["9c40", "\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],
+ ["9ca1", "\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],
+ ["9d40", "\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],
+ ["9da1", "\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],
+ ["9e40", "\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],
+ ["9ea1", "\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],
+ ["9ead", "\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],
+ ["9ec5", "\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],
+ ["9ef5", "\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],
+ ["9f40", "\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],
+ ["9f4f", "\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],
+ ["9fa1", "\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],
+ ["9fae", "\u9159\u9681\u915C"],
+ ["9fb2", "\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],
+ ["9fc1", "\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],
+ ["9fc9", "\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],
+ ["9fdb", "\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],
+ ["9fe7", "\u6BFA\u8818\u7F78"],
+ ["9feb", "\u5620\u{2A64A}\u8E77\u9F53"],
+ ["9ff0", "\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],
+ ["a040", "\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],
+ ["a055", "\u{2183B}\u{26E05}"],
+ ["a058", "\u8A7E\u{2251B}"],
+ ["a05b", "\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],
+ ["a063", "\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],
+ ["a073", "\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],
+ ["a0a1", "\u5D57\u{28BC2}\u8FDA\u{28E39}"],
+ ["a0a6", "\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],
+ ["a0ae", "\u77FE"],
+ ["a0b0", "\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],
+ ["a0d4", "\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],
+ ["a0e2", "\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],
+ ["a3c0", "\u2400", 31, "\u2421"],
+ ["c6a1", "\u2460", 9, "\u2474", 9, "\u2170", 9, "\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041", 23],
+ ["c740", "\u3059", 58, "\u30A1\u30A2\u30A3\u30A4"],
+ ["c7a1", "\u30A5", 81, "\u0410", 5, "\u0401\u0416", 4],
+ ["c840", "\u041B", 26, "\u0451\u0436", 25, "\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],
+ ["c8a1", "\u9FB0\u5188\u9FB1\u{27607}"],
+ ["c8cd", "\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],
+ ["c8f5", "\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],
+ ["f9fe", "\uFFED"],
+ ["fa40", "\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],
+ ["faa1", "\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],
+ ["fb40", "\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],
+ ["fba1", "\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],
+ ["fc40", "\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],
+ ["fca1", "\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],
+ ["fd40", "\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],
+ ["fda1", "\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],
+ ["fe40", "\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],
+ ["fea1", "\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]
+ ];
+ }
+});
+
+// node_modules/iconv-lite/encodings/dbcs-data.js
+var require_dbcs_data = __commonJS({
+ "node_modules/iconv-lite/encodings/dbcs-data.js"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ // == Japanese/ShiftJIS ====================================================
+ // All japanese encodings are based on JIS X set of standards:
+ // JIS X 0201 - Single-byte encoding of ASCII + ¥ + Kana chars at 0xA1-0xDF.
+ // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes.
+ // Has several variations in 1978, 1983, 1990 and 1997.
+ // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.
+ // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.
+ // 2 planes, first is superset of 0208, second - revised 0212.
+ // Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)
+ // Byte encodings are:
+ // * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte
+ // encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.
+ // Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.
+ // * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes.
+ // 0x00-0x7F - lower part of 0201
+ // 0x8E, 0xA1-0xDF - upper part of 0201
+ // (0xA1-0xFE)x2 - 0208 plane (94x94).
+ // 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).
+ // * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.
+ // Used as-is in ISO2022 family.
+ // * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII,
+ // 0201-1976 Roman, 0208-1978, 0208-1983.
+ // * ISO2022-JP-1: Adds esc seq for 0212-1990.
+ // * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.
+ // * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.
+ // * ISO2022-JP-2004: Adds 0213-2004 Plane 1.
+ //
+ // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.
+ //
+ // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html
+ "shiftjis": {
+ type: "_dbcs",
+ table: function() {
+ return require_shiftjis();
+ },
+ encodeAdd: { "\xA5": 92, "\u203E": 126 },
+ encodeSkipVals: [{ from: 60736, to: 63808 }]
+ },
+ "csshiftjis": "shiftjis",
+ "mskanji": "shiftjis",
+ "sjis": "shiftjis",
+ "windows31j": "shiftjis",
+ "ms31j": "shiftjis",
+ "xsjis": "shiftjis",
+ "windows932": "shiftjis",
+ "ms932": "shiftjis",
+ "932": "shiftjis",
+ "cp932": "shiftjis",
+ "eucjp": {
+ type: "_dbcs",
+ table: function() {
+ return require_eucjp();
+ },
+ encodeAdd: { "\xA5": 92, "\u203E": 126 }
+ },
+ // TODO: KDDI extension to Shift_JIS
+ // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.
+ // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.
+ // == Chinese/GBK ==========================================================
+ // http://en.wikipedia.org/wiki/GBK
+ // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder
+ // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936
+ "gb2312": "cp936",
+ "gb231280": "cp936",
+ "gb23121980": "cp936",
+ "csgb2312": "cp936",
+ "csiso58gb231280": "cp936",
+ "euccn": "cp936",
+ // Microsoft's CP936 is a subset and approximation of GBK.
+ "windows936": "cp936",
+ "ms936": "cp936",
+ "936": "cp936",
+ "cp936": {
+ type: "_dbcs",
+ table: function() {
+ return require_cp936();
+ }
+ },
+ // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.
+ "gbk": {
+ type: "_dbcs",
+ table: function() {
+ return require_cp936().concat(require_gbk_added());
+ }
+ },
+ "xgbk": "gbk",
+ "isoir58": "gbk",
+ // GB18030 is an algorithmic extension of GBK.
+ // Main source: https://www.w3.org/TR/encoding/#gbk-encoder
+ // http://icu-project.org/docs/papers/gb18030.html
+ // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml
+ // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0
+ "gb18030": {
+ type: "_dbcs",
+ table: function() {
+ return require_cp936().concat(require_gbk_added());
+ },
+ gb18030: function() {
+ return require_gb18030_ranges();
+ },
+ encodeSkipVals: [128],
+ encodeAdd: { "\u20AC": 41699 }
+ },
+ "chinese": "gb18030",
+ // == Korean ===============================================================
+ // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.
+ "windows949": "cp949",
+ "ms949": "cp949",
+ "949": "cp949",
+ "cp949": {
+ type: "_dbcs",
+ table: function() {
+ return require_cp949();
+ }
+ },
+ "cseuckr": "cp949",
+ "csksc56011987": "cp949",
+ "euckr": "cp949",
+ "isoir149": "cp949",
+ "korean": "cp949",
+ "ksc56011987": "cp949",
+ "ksc56011989": "cp949",
+ "ksc5601": "cp949",
+ // == Big5/Taiwan/Hong Kong ================================================
+ // There are lots of tables for Big5 and cp950. Please see the following links for history:
+ // http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html
+ // Variations, in roughly number of defined chars:
+ // * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT
+ // * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/
+ // * Big5-2003 (Taiwan standard) almost superset of cp950.
+ // * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.
+ // * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard.
+ // many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.
+ // Plus, it has 4 combining sequences.
+ // Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299
+ // because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.
+ // Implementations are not consistent within browsers; sometimes labeled as just big5.
+ // MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.
+ // Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31
+ // In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.
+ // Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt
+ // http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt
+ //
+ // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder
+ // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.
+ "windows950": "cp950",
+ "ms950": "cp950",
+ "950": "cp950",
+ "cp950": {
+ type: "_dbcs",
+ table: function() {
+ return require_cp950();
+ }
+ },
+ // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.
+ "big5": "big5hkscs",
+ "big5hkscs": {
+ type: "_dbcs",
+ table: function() {
+ return require_cp950().concat(require_big5_added());
+ },
+ encodeSkipVals: [41676]
+ },
+ "cnbig5": "big5hkscs",
+ "csbig5": "big5hkscs",
+ "xxbig5": "big5hkscs"
+ };
+ }
+});
+
+// node_modules/iconv-lite/encodings/index.js
+var require_encodings = __commonJS({
+ "node_modules/iconv-lite/encodings/index.js"(exports2, module2) {
+ "use strict";
+ var modules = [
+ require_internal(),
+ require_utf16(),
+ require_utf7(),
+ require_sbcs_codec(),
+ require_sbcs_data(),
+ require_sbcs_data_generated(),
+ require_dbcs_codec(),
+ require_dbcs_data()
+ ];
+ for (i = 0; i < modules.length; i++) {
+ module2 = modules[i];
+ for (enc in module2)
+ if (Object.prototype.hasOwnProperty.call(module2, enc))
+ exports2[enc] = module2[enc];
+ }
+ var module2;
+ var enc;
+ var i;
+ }
+});
+
+// node_modules/iconv-lite/lib/streams.js
+var require_streams = __commonJS({
+ "node_modules/iconv-lite/lib/streams.js"(exports2, module2) {
+ "use strict";
+ var Buffer2 = require("buffer").Buffer;
+ var Transform = require("stream").Transform;
+ module2.exports = function(iconv) {
+ iconv.encodeStream = function encodeStream(encoding, options) {
+ return new IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options);
+ };
+ iconv.decodeStream = function decodeStream(encoding, options) {
+ return new IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options);
+ };
+ iconv.supportsStreams = true;
+ iconv.IconvLiteEncoderStream = IconvLiteEncoderStream;
+ iconv.IconvLiteDecoderStream = IconvLiteDecoderStream;
+ iconv._collect = IconvLiteDecoderStream.prototype.collect;
+ };
+ function IconvLiteEncoderStream(conv, options) {
+ this.conv = conv;
+ options = options || {};
+ options.decodeStrings = false;
+ Transform.call(this, options);
+ }
+ IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {
+ constructor: { value: IconvLiteEncoderStream }
+ });
+ IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) {
+ if (typeof chunk != "string")
+ return done(new Error("Iconv encoding stream needs strings as its input."));
+ try {
+ var res = this.conv.write(chunk);
+ if (res && res.length)
+ this.push(res);
+ done();
+ } catch (e) {
+ done(e);
+ }
+ };
+ IconvLiteEncoderStream.prototype._flush = function(done) {
+ try {
+ var res = this.conv.end();
+ if (res && res.length)
+ this.push(res);
+ done();
+ } catch (e) {
+ done(e);
+ }
+ };
+ IconvLiteEncoderStream.prototype.collect = function(cb) {
+ var chunks = [];
+ this.on("error", cb);
+ this.on("data", function(chunk) {
+ chunks.push(chunk);
+ });
+ this.on("end", function() {
+ cb(null, Buffer2.concat(chunks));
+ });
+ return this;
+ };
+ function IconvLiteDecoderStream(conv, options) {
+ this.conv = conv;
+ options = options || {};
+ options.encoding = this.encoding = "utf8";
+ Transform.call(this, options);
+ }
+ IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {
+ constructor: { value: IconvLiteDecoderStream }
+ });
+ IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) {
+ if (!Buffer2.isBuffer(chunk))
+ return done(new Error("Iconv decoding stream needs buffers as its input."));
+ try {
+ var res = this.conv.write(chunk);
+ if (res && res.length)
+ this.push(res, this.encoding);
+ done();
+ } catch (e) {
+ done(e);
+ }
+ };
+ IconvLiteDecoderStream.prototype._flush = function(done) {
+ try {
+ var res = this.conv.end();
+ if (res && res.length)
+ this.push(res, this.encoding);
+ done();
+ } catch (e) {
+ done(e);
+ }
+ };
+ IconvLiteDecoderStream.prototype.collect = function(cb) {
+ var res = "";
+ this.on("error", cb);
+ this.on("data", function(chunk) {
+ res += chunk;
+ });
+ this.on("end", function() {
+ cb(null, res);
+ });
+ return this;
+ };
+ }
+});
+
+// node_modules/iconv-lite/lib/extend-node.js
+var require_extend_node = __commonJS({
+ "node_modules/iconv-lite/lib/extend-node.js"(exports2, module2) {
+ "use strict";
+ var Buffer2 = require("buffer").Buffer;
+ module2.exports = function(iconv) {
+ var original = void 0;
+ iconv.supportsNodeEncodingsExtension = !(Buffer2.from || new Buffer2(0) instanceof Uint8Array);
+ iconv.extendNodeEncodings = function extendNodeEncodings() {
+ if (original)
+ return;
+ original = {};
+ if (!iconv.supportsNodeEncodingsExtension) {
+ console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node");
+ console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");
+ return;
+ }
+ var nodeNativeEncodings = {
+ "hex": true,
+ "utf8": true,
+ "utf-8": true,
+ "ascii": true,
+ "binary": true,
+ "base64": true,
+ "ucs2": true,
+ "ucs-2": true,
+ "utf16le": true,
+ "utf-16le": true
+ };
+ Buffer2.isNativeEncoding = function(enc) {
+ return enc && nodeNativeEncodings[enc.toLowerCase()];
+ };
+ var SlowBuffer = require("buffer").SlowBuffer;
+ original.SlowBufferToString = SlowBuffer.prototype.toString;
+ SlowBuffer.prototype.toString = function(encoding, start, end) {
+ encoding = String(encoding || "utf8").toLowerCase();
+ if (Buffer2.isNativeEncoding(encoding))
+ return original.SlowBufferToString.call(this, encoding, start, end);
+ if (typeof start == "undefined")
+ start = 0;
+ if (typeof end == "undefined")
+ end = this.length;
+ return iconv.decode(this.slice(start, end), encoding);
+ };
+ original.SlowBufferWrite = SlowBuffer.prototype.write;
+ SlowBuffer.prototype.write = function(string, offset, length, encoding) {
+ if (isFinite(offset)) {
+ if (!isFinite(length)) {
+ encoding = length;
+ length = void 0;
+ }
+ } else {
+ var swap = encoding;
+ encoding = offset;
+ offset = length;
+ length = swap;
+ }
+ offset = +offset || 0;
+ var remaining = this.length - offset;
+ if (!length) {
+ length = remaining;
+ } else {
+ length = +length;
+ if (length > remaining) {
+ length = remaining;
+ }
+ }
+ encoding = String(encoding || "utf8").toLowerCase();
+ if (Buffer2.isNativeEncoding(encoding))
+ return original.SlowBufferWrite.call(this, string, offset, length, encoding);
+ if (string.length > 0 && (length < 0 || offset < 0))
+ throw new RangeError("attempt to write beyond buffer bounds");
+ var buf = iconv.encode(string, encoding);
+ if (buf.length < length)
+ length = buf.length;
+ buf.copy(this, offset, 0, length);
+ return length;
+ };
+ original.BufferIsEncoding = Buffer2.isEncoding;
+ Buffer2.isEncoding = function(encoding) {
+ return Buffer2.isNativeEncoding(encoding) || iconv.encodingExists(encoding);
+ };
+ original.BufferByteLength = Buffer2.byteLength;
+ Buffer2.byteLength = SlowBuffer.byteLength = function(str, encoding) {
+ encoding = String(encoding || "utf8").toLowerCase();
+ if (Buffer2.isNativeEncoding(encoding))
+ return original.BufferByteLength.call(this, str, encoding);
+ return iconv.encode(str, encoding).length;
+ };
+ original.BufferToString = Buffer2.prototype.toString;
+ Buffer2.prototype.toString = function(encoding, start, end) {
+ encoding = String(encoding || "utf8").toLowerCase();
+ if (Buffer2.isNativeEncoding(encoding))
+ return original.BufferToString.call(this, encoding, start, end);
+ if (typeof start == "undefined")
+ start = 0;
+ if (typeof end == "undefined")
+ end = this.length;
+ return iconv.decode(this.slice(start, end), encoding);
+ };
+ original.BufferWrite = Buffer2.prototype.write;
+ Buffer2.prototype.write = function(string, offset, length, encoding) {
+ var _offset = offset, _length = length, _encoding = encoding;
+ if (isFinite(offset)) {
+ if (!isFinite(length)) {
+ encoding = length;
+ length = void 0;
+ }
+ } else {
+ var swap = encoding;
+ encoding = offset;
+ offset = length;
+ length = swap;
+ }
+ encoding = String(encoding || "utf8").toLowerCase();
+ if (Buffer2.isNativeEncoding(encoding))
+ return original.BufferWrite.call(this, string, _offset, _length, _encoding);
+ offset = +offset || 0;
+ var remaining = this.length - offset;
+ if (!length) {
+ length = remaining;
+ } else {
+ length = +length;
+ if (length > remaining) {
+ length = remaining;
+ }
+ }
+ if (string.length > 0 && (length < 0 || offset < 0))
+ throw new RangeError("attempt to write beyond buffer bounds");
+ var buf = iconv.encode(string, encoding);
+ if (buf.length < length)
+ length = buf.length;
+ buf.copy(this, offset, 0, length);
+ return length;
+ };
+ if (iconv.supportsStreams) {
+ var Readable = require("stream").Readable;
+ original.ReadableSetEncoding = Readable.prototype.setEncoding;
+ Readable.prototype.setEncoding = function setEncoding(enc, options) {
+ this._readableState.decoder = iconv.getDecoder(enc, options);
+ this._readableState.encoding = enc;
+ };
+ Readable.prototype.collect = iconv._collect;
+ }
+ };
+ iconv.undoExtendNodeEncodings = function undoExtendNodeEncodings() {
+ if (!iconv.supportsNodeEncodingsExtension)
+ return;
+ if (!original)
+ throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called.");
+ delete Buffer2.isNativeEncoding;
+ var SlowBuffer = require("buffer").SlowBuffer;
+ SlowBuffer.prototype.toString = original.SlowBufferToString;
+ SlowBuffer.prototype.write = original.SlowBufferWrite;
+ Buffer2.isEncoding = original.BufferIsEncoding;
+ Buffer2.byteLength = original.BufferByteLength;
+ Buffer2.prototype.toString = original.BufferToString;
+ Buffer2.prototype.write = original.BufferWrite;
+ if (iconv.supportsStreams) {
+ var Readable = require("stream").Readable;
+ Readable.prototype.setEncoding = original.ReadableSetEncoding;
+ delete Readable.prototype.collect;
+ }
+ original = void 0;
+ };
+ };
+ }
+});
+
+// node_modules/iconv-lite/lib/index.js
+var require_lib = __commonJS({
+ "node_modules/iconv-lite/lib/index.js"(exports2, module2) {
+ "use strict";
+ var Buffer2 = require_safer().Buffer;
+ var bomHandling = require_bom_handling();
+ var iconv = module2.exports;
+ iconv.encodings = null;
+ iconv.defaultCharUnicode = "\uFFFD";
+ iconv.defaultCharSingleByte = "?";
+ iconv.encode = function encode(str, encoding, options) {
+ str = "" + (str || "");
+ var encoder = iconv.getEncoder(encoding, options);
+ var res = encoder.write(str);
+ var trail = encoder.end();
+ return trail && trail.length > 0 ? Buffer2.concat([res, trail]) : res;
+ };
+ iconv.decode = function decode(buf, encoding, options) {
+ if (typeof buf === "string") {
+ if (!iconv.skipDecodeWarning) {
+ console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding");
+ iconv.skipDecodeWarning = true;
+ }
+ buf = Buffer2.from("" + (buf || ""), "binary");
+ }
+ var decoder = iconv.getDecoder(encoding, options);
+ var res = decoder.write(buf);
+ var trail = decoder.end();
+ return trail ? res + trail : res;
+ };
+ iconv.encodingExists = function encodingExists(enc) {
+ try {
+ iconv.getCodec(enc);
+ return true;
+ } catch (e) {
+ return false;
+ }
+ };
+ iconv.toEncoding = iconv.encode;
+ iconv.fromEncoding = iconv.decode;
+ iconv._codecDataCache = {};
+ iconv.getCodec = function getCodec(encoding) {
+ if (!iconv.encodings)
+ iconv.encodings = require_encodings();
+ var enc = iconv._canonicalizeEncoding(encoding);
+ var codecOptions = {};
+ while (true) {
+ var codec = iconv._codecDataCache[enc];
+ if (codec)
+ return codec;
+ var codecDef = iconv.encodings[enc];
+ switch (typeof codecDef) {
+ case "string":
+ enc = codecDef;
+ break;
+ case "object":
+ for (var key in codecDef)
+ codecOptions[key] = codecDef[key];
+ if (!codecOptions.encodingName)
+ codecOptions.encodingName = enc;
+ enc = codecDef.type;
+ break;
+ case "function":
+ if (!codecOptions.encodingName)
+ codecOptions.encodingName = enc;
+ codec = new codecDef(codecOptions, iconv);
+ iconv._codecDataCache[codecOptions.encodingName] = codec;
+ return codec;
+ default:
+ throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '" + enc + "')");
+ }
+ }
+ };
+ iconv._canonicalizeEncoding = function(encoding) {
+ return ("" + encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, "");
+ };
+ iconv.getEncoder = function getEncoder(encoding, options) {
+ var codec = iconv.getCodec(encoding), encoder = new codec.encoder(options, codec);
+ if (codec.bomAware && options && options.addBOM)
+ encoder = new bomHandling.PrependBOM(encoder, options);
+ return encoder;
+ };
+ iconv.getDecoder = function getDecoder(encoding, options) {
+ var codec = iconv.getCodec(encoding), decoder = new codec.decoder(options, codec);
+ if (codec.bomAware && !(options && options.stripBOM === false))
+ decoder = new bomHandling.StripBOM(decoder, options);
+ return decoder;
+ };
+ var nodeVer = typeof process !== "undefined" && process.versions && process.versions.node;
+ if (nodeVer) {
+ nodeVerArr = nodeVer.split(".").map(Number);
+ if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) {
+ require_streams()(iconv);
+ }
+ require_extend_node()(iconv);
+ }
+ var nodeVerArr;
+ if (false) {
+ console.error("iconv-lite warning: javascript files use encoding different from utf-8. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.");
+ }
+ }
+});
+
+// node_modules/unpipe/index.js
+var require_unpipe = __commonJS({
+ "node_modules/unpipe/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = unpipe;
+ function hasPipeDataListeners(stream) {
+ var listeners = stream.listeners("data");
+ for (var i = 0; i < listeners.length; i++) {
+ if (listeners[i].name === "ondata") {
+ return true;
+ }
+ }
+ return false;
+ }
+ function unpipe(stream) {
+ if (!stream) {
+ throw new TypeError("argument stream is required");
+ }
+ if (typeof stream.unpipe === "function") {
+ stream.unpipe();
+ return;
+ }
+ if (!hasPipeDataListeners(stream)) {
+ return;
+ }
+ var listener;
+ var listeners = stream.listeners("close");
+ for (var i = 0; i < listeners.length; i++) {
+ listener = listeners[i];
+ if (listener.name !== "cleanup" && listener.name !== "onclose") {
+ continue;
+ }
+ listener.call(stream);
+ }
+ }
+ }
+});
+
+// node_modules/raw-body/index.js
+var require_raw_body = __commonJS({
+ "node_modules/raw-body/index.js"(exports2, module2) {
+ "use strict";
+ var asyncHooks = tryRequireAsyncHooks();
+ var bytes = require_bytes();
+ var createError = require_http_errors();
+ var iconv = require_lib();
+ var unpipe = require_unpipe();
+ module2.exports = getRawBody;
+ var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /;
+ function getDecoder(encoding) {
+ if (!encoding)
+ return null;
+ try {
+ return iconv.getDecoder(encoding);
+ } catch (e) {
+ if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message))
+ throw e;
+ throw createError(415, "specified encoding unsupported", {
+ encoding,
+ type: "encoding.unsupported"
+ });
+ }
+ }
+ function getRawBody(stream, options, callback) {
+ var done = callback;
+ var opts = options || {};
+ if (stream === void 0) {
+ throw new TypeError("argument stream is required");
+ } else if (typeof stream !== "object" || stream === null || typeof stream.on !== "function") {
+ throw new TypeError("argument stream must be a stream");
+ }
+ if (options === true || typeof options === "string") {
+ opts = {
+ encoding: options
+ };
+ }
+ if (typeof options === "function") {
+ done = options;
+ opts = {};
+ }
+ if (done !== void 0 && typeof done !== "function") {
+ throw new TypeError("argument callback must be a function");
+ }
+ if (!done && !global.Promise) {
+ throw new TypeError("argument callback is required");
+ }
+ var encoding = opts.encoding !== true ? opts.encoding : "utf-8";
+ var limit = bytes.parse(opts.limit);
+ var length = opts.length != null && !isNaN(opts.length) ? parseInt(opts.length, 10) : null;
+ if (done) {
+ return readStream(stream, encoding, length, limit, wrap(done));
+ }
+ return new Promise(function executor(resolve, reject) {
+ readStream(stream, encoding, length, limit, function onRead(err, buf) {
+ if (err)
+ return reject(err);
+ resolve(buf);
+ });
+ });
+ }
+ function halt(stream) {
+ unpipe(stream);
+ if (typeof stream.pause === "function") {
+ stream.pause();
+ }
+ }
+ function readStream(stream, encoding, length, limit, callback) {
+ var complete = false;
+ var sync = true;
+ if (limit !== null && length !== null && length > limit) {
+ return done(createError(413, "request entity too large", {
+ expected: length,
+ length,
+ limit,
+ type: "entity.too.large"
+ }));
+ }
+ var state = stream._readableState;
+ if (stream._decoder || state && (state.encoding || state.decoder)) {
+ return done(createError(500, "stream encoding should not be set", {
+ type: "stream.encoding.set"
+ }));
+ }
+ if (typeof stream.readable !== "undefined" && !stream.readable) {
+ return done(createError(500, "stream is not readable", {
+ type: "stream.not.readable"
+ }));
+ }
+ var received = 0;
+ var decoder;
+ try {
+ decoder = getDecoder(encoding);
+ } catch (err) {
+ return done(err);
+ }
+ var buffer = decoder ? "" : [];
+ stream.on("aborted", onAborted);
+ stream.on("close", cleanup);
+ stream.on("data", onData);
+ stream.on("end", onEnd);
+ stream.on("error", onEnd);
+ sync = false;
+ function done() {
+ var args = new Array(arguments.length);
+ for (var i = 0; i < args.length; i++) {
+ args[i] = arguments[i];
+ }
+ complete = true;
+ if (sync) {
+ process.nextTick(invokeCallback);
+ } else {
+ invokeCallback();
+ }
+ function invokeCallback() {
+ cleanup();
+ if (args[0]) {
+ halt(stream);
+ }
+ callback.apply(null, args);
+ }
+ }
+ function onAborted() {
+ if (complete)
+ return;
+ done(createError(400, "request aborted", {
+ code: "ECONNABORTED",
+ expected: length,
+ length,
+ received,
+ type: "request.aborted"
+ }));
+ }
+ function onData(chunk) {
+ if (complete)
+ return;
+ received += chunk.length;
+ if (limit !== null && received > limit) {
+ done(createError(413, "request entity too large", {
+ limit,
+ received,
+ type: "entity.too.large"
+ }));
+ } else if (decoder) {
+ buffer += decoder.write(chunk);
+ } else {
+ buffer.push(chunk);
+ }
+ }
+ function onEnd(err) {
+ if (complete)
+ return;
+ if (err)
+ return done(err);
+ if (length !== null && received !== length) {
+ done(createError(400, "request size did not match content length", {
+ expected: length,
+ length,
+ received,
+ type: "request.size.invalid"
+ }));
+ } else {
+ var string = decoder ? buffer + (decoder.end() || "") : Buffer.concat(buffer);
+ done(null, string);
+ }
+ }
+ function cleanup() {
+ buffer = null;
+ stream.removeListener("aborted", onAborted);
+ stream.removeListener("data", onData);
+ stream.removeListener("end", onEnd);
+ stream.removeListener("error", onEnd);
+ stream.removeListener("close", cleanup);
+ }
+ }
+ function tryRequireAsyncHooks() {
+ try {
+ return require("async_hooks");
+ } catch (e) {
+ return {};
+ }
+ }
+ function wrap(fn) {
+ var res;
+ if (asyncHooks.AsyncResource) {
+ res = new asyncHooks.AsyncResource(fn.name || "bound-anonymous-fn");
+ }
+ if (!res || !res.runInAsyncScope) {
+ return fn;
+ }
+ return res.runInAsyncScope.bind(res, fn, null);
+ }
+ }
+});
+
+// node_modules/ee-first/index.js
+var require_ee_first = __commonJS({
+ "node_modules/ee-first/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = first;
+ function first(stuff, done) {
+ if (!Array.isArray(stuff))
+ throw new TypeError("arg must be an array of [ee, events...] arrays");
+ var cleanups = [];
+ for (var i = 0; i < stuff.length; i++) {
+ var arr = stuff[i];
+ if (!Array.isArray(arr) || arr.length < 2)
+ throw new TypeError("each array member must be [ee, events...]");
+ var ee = arr[0];
+ for (var j = 1; j < arr.length; j++) {
+ var event = arr[j];
+ var fn = listener(event, callback);
+ ee.on(event, fn);
+ cleanups.push({
+ ee,
+ event,
+ fn
+ });
+ }
+ }
+ function callback() {
+ cleanup();
+ done.apply(null, arguments);
+ }
+ function cleanup() {
+ var x;
+ for (var i2 = 0; i2 < cleanups.length; i2++) {
+ x = cleanups[i2];
+ x.ee.removeListener(x.event, x.fn);
+ }
+ }
+ function thunk(fn2) {
+ done = fn2;
+ }
+ thunk.cancel = cleanup;
+ return thunk;
+ }
+ function listener(event, done) {
+ return function onevent(arg1) {
+ var args = new Array(arguments.length);
+ var ee = this;
+ var err = event === "error" ? arg1 : null;
+ for (var i = 0; i < args.length; i++) {
+ args[i] = arguments[i];
+ }
+ done(err, ee, event, args);
+ };
+ }
+ }
+});
+
+// node_modules/on-finished/index.js
+var require_on_finished = __commonJS({
+ "node_modules/on-finished/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = onFinished;
+ module2.exports.isFinished = isFinished;
+ var asyncHooks = tryRequireAsyncHooks();
+ var first = require_ee_first();
+ var defer = typeof setImmediate === "function" ? setImmediate : function(fn) {
+ process.nextTick(fn.bind.apply(fn, arguments));
+ };
+ function onFinished(msg, listener) {
+ if (isFinished(msg) !== false) {
+ defer(listener, null, msg);
+ return msg;
+ }
+ attachListener(msg, wrap(listener));
+ return msg;
+ }
+ function isFinished(msg) {
+ var socket = msg.socket;
+ if (typeof msg.finished === "boolean") {
+ return Boolean(msg.finished || socket && !socket.writable);
+ }
+ if (typeof msg.complete === "boolean") {
+ return Boolean(msg.upgrade || !socket || !socket.readable || msg.complete && !msg.readable);
+ }
+ return void 0;
+ }
+ function attachFinishedListener(msg, callback) {
+ var eeMsg;
+ var eeSocket;
+ var finished = false;
+ function onFinish(error) {
+ eeMsg.cancel();
+ eeSocket.cancel();
+ finished = true;
+ callback(error);
+ }
+ eeMsg = eeSocket = first([[msg, "end", "finish"]], onFinish);
+ function onSocket(socket) {
+ msg.removeListener("socket", onSocket);
+ if (finished)
+ return;
+ if (eeMsg !== eeSocket)
+ return;
+ eeSocket = first([[socket, "error", "close"]], onFinish);
+ }
+ if (msg.socket) {
+ onSocket(msg.socket);
+ return;
+ }
+ msg.on("socket", onSocket);
+ if (msg.socket === void 0) {
+ patchAssignSocket(msg, onSocket);
+ }
+ }
+ function attachListener(msg, listener) {
+ var attached = msg.__onFinished;
+ if (!attached || !attached.queue) {
+ attached = msg.__onFinished = createListener(msg);
+ attachFinishedListener(msg, attached);
+ }
+ attached.queue.push(listener);
+ }
+ function createListener(msg) {
+ function listener(err) {
+ if (msg.__onFinished === listener)
+ msg.__onFinished = null;
+ if (!listener.queue)
+ return;
+ var queue = listener.queue;
+ listener.queue = null;
+ for (var i = 0; i < queue.length; i++) {
+ queue[i](err, msg);
+ }
+ }
+ listener.queue = [];
+ return listener;
+ }
+ function patchAssignSocket(res, callback) {
+ var assignSocket = res.assignSocket;
+ if (typeof assignSocket !== "function")
+ return;
+ res.assignSocket = function _assignSocket(socket) {
+ assignSocket.call(this, socket);
+ callback(socket);
+ };
+ }
+ function tryRequireAsyncHooks() {
+ try {
+ return require("async_hooks");
+ } catch (e) {
+ return {};
+ }
+ }
+ function wrap(fn) {
+ var res;
+ if (asyncHooks.AsyncResource) {
+ res = new asyncHooks.AsyncResource(fn.name || "bound-anonymous-fn");
+ }
+ if (!res || !res.runInAsyncScope) {
+ return fn;
+ }
+ return res.runInAsyncScope.bind(res, fn, null);
+ }
+ }
+});
+
+// node_modules/body-parser/lib/read.js
+var require_read = __commonJS({
+ "node_modules/body-parser/lib/read.js"(exports2, module2) {
+ "use strict";
+ var createError = require_http_errors();
+ var destroy = require_destroy();
+ var getBody = require_raw_body();
+ var iconv = require_lib();
+ var onFinished = require_on_finished();
+ var unpipe = require_unpipe();
+ var zlib = require("zlib");
+ module2.exports = read;
+ function read(req, res, next, parse, debug, options) {
+ var length;
+ var opts = options;
+ var stream;
+ req._body = true;
+ var encoding = opts.encoding !== null ? opts.encoding : null;
+ var verify = opts.verify;
+ try {
+ stream = contentstream(req, debug, opts.inflate);
+ length = stream.length;
+ stream.length = void 0;
+ } catch (err) {
+ return next(err);
+ }
+ opts.length = length;
+ opts.encoding = verify ? null : encoding;
+ if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) {
+ return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', {
+ charset: encoding.toLowerCase(),
+ type: "charset.unsupported"
+ }));
+ }
+ debug("read body");
+ getBody(stream, opts, function(error, body) {
+ if (error) {
+ var _error;
+ if (error.type === "encoding.unsupported") {
+ _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', {
+ charset: encoding.toLowerCase(),
+ type: "charset.unsupported"
+ });
+ } else {
+ _error = createError(400, error);
+ }
+ if (stream !== req) {
+ unpipe(req);
+ destroy(stream, true);
+ }
+ dump(req, function onfinished() {
+ next(createError(400, _error));
+ });
+ return;
+ }
+ if (verify) {
+ try {
+ debug("verify body");
+ verify(req, res, body, encoding);
+ } catch (err) {
+ next(createError(403, err, {
+ body,
+ type: err.type || "entity.verify.failed"
+ }));
+ return;
+ }
+ }
+ var str = body;
+ try {
+ debug("parse body");
+ str = typeof body !== "string" && encoding !== null ? iconv.decode(body, encoding) : body;
+ req.body = parse(str);
+ } catch (err) {
+ next(createError(400, err, {
+ body: str,
+ type: err.type || "entity.parse.failed"
+ }));
+ return;
+ }
+ next();
+ });
+ }
+ function contentstream(req, debug, inflate) {
+ var encoding = (req.headers["content-encoding"] || "identity").toLowerCase();
+ var length = req.headers["content-length"];
+ var stream;
+ debug('content-encoding "%s"', encoding);
+ if (inflate === false && encoding !== "identity") {
+ throw createError(415, "content encoding unsupported", {
+ encoding,
+ type: "encoding.unsupported"
+ });
+ }
+ switch (encoding) {
+ case "deflate":
+ stream = zlib.createInflate();
+ debug("inflate body");
+ req.pipe(stream);
+ break;
+ case "gzip":
+ stream = zlib.createGunzip();
+ debug("gunzip body");
+ req.pipe(stream);
+ break;
+ case "identity":
+ stream = req;
+ stream.length = length;
+ break;
+ default:
+ throw createError(415, 'unsupported content encoding "' + encoding + '"', {
+ encoding,
+ type: "encoding.unsupported"
+ });
+ }
+ return stream;
+ }
+ function dump(req, callback) {
+ if (onFinished.isFinished(req)) {
+ callback(null);
+ } else {
+ onFinished(req, callback);
+ req.resume();
+ }
+ }
+ }
+});
+
+// node_modules/media-typer/index.js
+var require_media_typer = __commonJS({
+ "node_modules/media-typer/index.js"(exports2) {
+ var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g;
+ var textRegExp = /^[\u0020-\u007e\u0080-\u00ff]+$/;
+ var tokenRegExp = /^[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+$/;
+ var qescRegExp = /\\([\u0000-\u007f])/g;
+ var quoteRegExp = /([\\"])/g;
+ var subtypeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_.-]{0,126}$/;
+ var typeNameRegExp = /^[A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126}$/;
+ var typeRegExp = /^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$/;
+ exports2.format = format;
+ exports2.parse = parse;
+ function format(obj) {
+ if (!obj || typeof obj !== "object") {
+ throw new TypeError("argument obj is required");
+ }
+ var parameters = obj.parameters;
+ var subtype = obj.subtype;
+ var suffix = obj.suffix;
+ var type = obj.type;
+ if (!type || !typeNameRegExp.test(type)) {
+ throw new TypeError("invalid type");
+ }
+ if (!subtype || !subtypeNameRegExp.test(subtype)) {
+ throw new TypeError("invalid subtype");
+ }
+ var string = type + "/" + subtype;
+ if (suffix) {
+ if (!typeNameRegExp.test(suffix)) {
+ throw new TypeError("invalid suffix");
+ }
+ string += "+" + suffix;
+ }
+ if (parameters && typeof parameters === "object") {
+ var param;
+ var params = Object.keys(parameters).sort();
+ for (var i = 0; i < params.length; i++) {
+ param = params[i];
+ if (!tokenRegExp.test(param)) {
+ throw new TypeError("invalid parameter name");
+ }
+ string += "; " + param + "=" + qstring(parameters[param]);
+ }
+ }
+ return string;
+ }
+ function parse(string) {
+ if (!string) {
+ throw new TypeError("argument string is required");
+ }
+ if (typeof string === "object") {
+ string = getcontenttype(string);
+ }
+ if (typeof string !== "string") {
+ throw new TypeError("argument string is required to be a string");
+ }
+ var index = string.indexOf(";");
+ var type = index !== -1 ? string.substr(0, index) : string;
+ var key;
+ var match;
+ var obj = splitType(type);
+ var params = {};
+ var value;
+ paramRegExp.lastIndex = index;
+ while (match = paramRegExp.exec(string)) {
+ if (match.index !== index) {
+ throw new TypeError("invalid parameter format");
+ }
+ index += match[0].length;
+ key = match[1].toLowerCase();
+ value = match[2];
+ if (value[0] === '"') {
+ value = value.substr(1, value.length - 2).replace(qescRegExp, "$1");
+ }
+ params[key] = value;
+ }
+ if (index !== -1 && index !== string.length) {
+ throw new TypeError("invalid parameter format");
+ }
+ obj.parameters = params;
+ return obj;
+ }
+ function getcontenttype(obj) {
+ if (typeof obj.getHeader === "function") {
+ return obj.getHeader("content-type");
+ }
+ if (typeof obj.headers === "object") {
+ return obj.headers && obj.headers["content-type"];
+ }
+ }
+ function qstring(val) {
+ var str = String(val);
+ if (tokenRegExp.test(str)) {
+ return str;
+ }
+ if (str.length > 0 && !textRegExp.test(str)) {
+ throw new TypeError("invalid parameter value");
+ }
+ return '"' + str.replace(quoteRegExp, "\\$1") + '"';
+ }
+ function splitType(string) {
+ var match = typeRegExp.exec(string.toLowerCase());
+ if (!match) {
+ throw new TypeError("invalid media type");
+ }
+ var type = match[1];
+ var subtype = match[2];
+ var suffix;
+ var index = subtype.lastIndexOf("+");
+ if (index !== -1) {
+ suffix = subtype.substr(index + 1);
+ subtype = subtype.substr(0, index);
+ }
+ var obj = {
+ type,
+ subtype,
+ suffix
+ };
+ return obj;
+ }
+ }
+});
+
+// node_modules/mime-db/db.json
+var require_db = __commonJS({
+ "node_modules/mime-db/db.json"(exports2, module2) {
+ module2.exports = {
+ "application/1d-interleaved-parityfec": {
+ source: "iana"
+ },
+ "application/3gpdash-qoe-report+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/3gpp-ims+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/3gpphal+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/3gpphalforms+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/a2l": {
+ source: "iana"
+ },
+ "application/ace+cbor": {
+ source: "iana"
+ },
+ "application/activemessage": {
+ source: "iana"
+ },
+ "application/activity+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/alto-costmap+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/alto-costmapfilter+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/alto-directory+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/alto-endpointcost+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/alto-endpointcostparams+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/alto-endpointprop+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/alto-endpointpropparams+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/alto-error+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/alto-networkmap+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/alto-networkmapfilter+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/alto-updatestreamcontrol+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/alto-updatestreamparams+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/aml": {
+ source: "iana"
+ },
+ "application/andrew-inset": {
+ source: "iana",
+ extensions: ["ez"]
+ },
+ "application/applefile": {
+ source: "iana"
+ },
+ "application/applixware": {
+ source: "apache",
+ extensions: ["aw"]
+ },
+ "application/at+jwt": {
+ source: "iana"
+ },
+ "application/atf": {
+ source: "iana"
+ },
+ "application/atfx": {
+ source: "iana"
+ },
+ "application/atom+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["atom"]
+ },
+ "application/atomcat+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["atomcat"]
+ },
+ "application/atomdeleted+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["atomdeleted"]
+ },
+ "application/atomicmail": {
+ source: "iana"
+ },
+ "application/atomsvc+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["atomsvc"]
+ },
+ "application/atsc-dwd+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["dwd"]
+ },
+ "application/atsc-dynamic-event-message": {
+ source: "iana"
+ },
+ "application/atsc-held+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["held"]
+ },
+ "application/atsc-rdt+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/atsc-rsat+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["rsat"]
+ },
+ "application/atxml": {
+ source: "iana"
+ },
+ "application/auth-policy+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/bacnet-xdd+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/batch-smtp": {
+ source: "iana"
+ },
+ "application/bdoc": {
+ compressible: false,
+ extensions: ["bdoc"]
+ },
+ "application/beep+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/calendar+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/calendar+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xcs"]
+ },
+ "application/call-completion": {
+ source: "iana"
+ },
+ "application/cals-1840": {
+ source: "iana"
+ },
+ "application/captive+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/cbor": {
+ source: "iana"
+ },
+ "application/cbor-seq": {
+ source: "iana"
+ },
+ "application/cccex": {
+ source: "iana"
+ },
+ "application/ccmp+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/ccxml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["ccxml"]
+ },
+ "application/cdfx+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["cdfx"]
+ },
+ "application/cdmi-capability": {
+ source: "iana",
+ extensions: ["cdmia"]
+ },
+ "application/cdmi-container": {
+ source: "iana",
+ extensions: ["cdmic"]
+ },
+ "application/cdmi-domain": {
+ source: "iana",
+ extensions: ["cdmid"]
+ },
+ "application/cdmi-object": {
+ source: "iana",
+ extensions: ["cdmio"]
+ },
+ "application/cdmi-queue": {
+ source: "iana",
+ extensions: ["cdmiq"]
+ },
+ "application/cdni": {
+ source: "iana"
+ },
+ "application/cea": {
+ source: "iana"
+ },
+ "application/cea-2018+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/cellml+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/cfw": {
+ source: "iana"
+ },
+ "application/city+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/clr": {
+ source: "iana"
+ },
+ "application/clue+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/clue_info+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/cms": {
+ source: "iana"
+ },
+ "application/cnrp+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/coap-group+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/coap-payload": {
+ source: "iana"
+ },
+ "application/commonground": {
+ source: "iana"
+ },
+ "application/conference-info+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/cose": {
+ source: "iana"
+ },
+ "application/cose-key": {
+ source: "iana"
+ },
+ "application/cose-key-set": {
+ source: "iana"
+ },
+ "application/cpl+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["cpl"]
+ },
+ "application/csrattrs": {
+ source: "iana"
+ },
+ "application/csta+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/cstadata+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/csvm+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/cu-seeme": {
+ source: "apache",
+ extensions: ["cu"]
+ },
+ "application/cwt": {
+ source: "iana"
+ },
+ "application/cybercash": {
+ source: "iana"
+ },
+ "application/dart": {
+ compressible: true
+ },
+ "application/dash+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["mpd"]
+ },
+ "application/dash-patch+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["mpp"]
+ },
+ "application/dashdelta": {
+ source: "iana"
+ },
+ "application/davmount+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["davmount"]
+ },
+ "application/dca-rft": {
+ source: "iana"
+ },
+ "application/dcd": {
+ source: "iana"
+ },
+ "application/dec-dx": {
+ source: "iana"
+ },
+ "application/dialog-info+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/dicom": {
+ source: "iana"
+ },
+ "application/dicom+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/dicom+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/dii": {
+ source: "iana"
+ },
+ "application/dit": {
+ source: "iana"
+ },
+ "application/dns": {
+ source: "iana"
+ },
+ "application/dns+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/dns-message": {
+ source: "iana"
+ },
+ "application/docbook+xml": {
+ source: "apache",
+ compressible: true,
+ extensions: ["dbk"]
+ },
+ "application/dots+cbor": {
+ source: "iana"
+ },
+ "application/dskpp+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/dssc+der": {
+ source: "iana",
+ extensions: ["dssc"]
+ },
+ "application/dssc+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xdssc"]
+ },
+ "application/dvcs": {
+ source: "iana"
+ },
+ "application/ecmascript": {
+ source: "iana",
+ compressible: true,
+ extensions: ["es", "ecma"]
+ },
+ "application/edi-consent": {
+ source: "iana"
+ },
+ "application/edi-x12": {
+ source: "iana",
+ compressible: false
+ },
+ "application/edifact": {
+ source: "iana",
+ compressible: false
+ },
+ "application/efi": {
+ source: "iana"
+ },
+ "application/elm+json": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/elm+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/emergencycalldata.cap+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/emergencycalldata.comment+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/emergencycalldata.control+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/emergencycalldata.deviceinfo+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/emergencycalldata.ecall.msd": {
+ source: "iana"
+ },
+ "application/emergencycalldata.providerinfo+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/emergencycalldata.serviceinfo+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/emergencycalldata.subscriberinfo+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/emergencycalldata.veds+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/emma+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["emma"]
+ },
+ "application/emotionml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["emotionml"]
+ },
+ "application/encaprtp": {
+ source: "iana"
+ },
+ "application/epp+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/epub+zip": {
+ source: "iana",
+ compressible: false,
+ extensions: ["epub"]
+ },
+ "application/eshop": {
+ source: "iana"
+ },
+ "application/exi": {
+ source: "iana",
+ extensions: ["exi"]
+ },
+ "application/expect-ct-report+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/express": {
+ source: "iana",
+ extensions: ["exp"]
+ },
+ "application/fastinfoset": {
+ source: "iana"
+ },
+ "application/fastsoap": {
+ source: "iana"
+ },
+ "application/fdt+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["fdt"]
+ },
+ "application/fhir+json": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/fhir+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/fido.trusted-apps+json": {
+ compressible: true
+ },
+ "application/fits": {
+ source: "iana"
+ },
+ "application/flexfec": {
+ source: "iana"
+ },
+ "application/font-sfnt": {
+ source: "iana"
+ },
+ "application/font-tdpfr": {
+ source: "iana",
+ extensions: ["pfr"]
+ },
+ "application/font-woff": {
+ source: "iana",
+ compressible: false
+ },
+ "application/framework-attributes+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/geo+json": {
+ source: "iana",
+ compressible: true,
+ extensions: ["geojson"]
+ },
+ "application/geo+json-seq": {
+ source: "iana"
+ },
+ "application/geopackage+sqlite3": {
+ source: "iana"
+ },
+ "application/geoxacml+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/gltf-buffer": {
+ source: "iana"
+ },
+ "application/gml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["gml"]
+ },
+ "application/gpx+xml": {
+ source: "apache",
+ compressible: true,
+ extensions: ["gpx"]
+ },
+ "application/gxf": {
+ source: "apache",
+ extensions: ["gxf"]
+ },
+ "application/gzip": {
+ source: "iana",
+ compressible: false,
+ extensions: ["gz"]
+ },
+ "application/h224": {
+ source: "iana"
+ },
+ "application/held+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/hjson": {
+ extensions: ["hjson"]
+ },
+ "application/http": {
+ source: "iana"
+ },
+ "application/hyperstudio": {
+ source: "iana",
+ extensions: ["stk"]
+ },
+ "application/ibe-key-request+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/ibe-pkg-reply+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/ibe-pp-data": {
+ source: "iana"
+ },
+ "application/iges": {
+ source: "iana"
+ },
+ "application/im-iscomposing+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/index": {
+ source: "iana"
+ },
+ "application/index.cmd": {
+ source: "iana"
+ },
+ "application/index.obj": {
+ source: "iana"
+ },
+ "application/index.response": {
+ source: "iana"
+ },
+ "application/index.vnd": {
+ source: "iana"
+ },
+ "application/inkml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["ink", "inkml"]
+ },
+ "application/iotp": {
+ source: "iana"
+ },
+ "application/ipfix": {
+ source: "iana",
+ extensions: ["ipfix"]
+ },
+ "application/ipp": {
+ source: "iana"
+ },
+ "application/isup": {
+ source: "iana"
+ },
+ "application/its+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["its"]
+ },
+ "application/java-archive": {
+ source: "apache",
+ compressible: false,
+ extensions: ["jar", "war", "ear"]
+ },
+ "application/java-serialized-object": {
+ source: "apache",
+ compressible: false,
+ extensions: ["ser"]
+ },
+ "application/java-vm": {
+ source: "apache",
+ compressible: false,
+ extensions: ["class"]
+ },
+ "application/javascript": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true,
+ extensions: ["js", "mjs"]
+ },
+ "application/jf2feed+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/jose": {
+ source: "iana"
+ },
+ "application/jose+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/jrd+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/jscalendar+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/json": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true,
+ extensions: ["json", "map"]
+ },
+ "application/json-patch+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/json-seq": {
+ source: "iana"
+ },
+ "application/json5": {
+ extensions: ["json5"]
+ },
+ "application/jsonml+json": {
+ source: "apache",
+ compressible: true,
+ extensions: ["jsonml"]
+ },
+ "application/jwk+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/jwk-set+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/jwt": {
+ source: "iana"
+ },
+ "application/kpml-request+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/kpml-response+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/ld+json": {
+ source: "iana",
+ compressible: true,
+ extensions: ["jsonld"]
+ },
+ "application/lgr+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["lgr"]
+ },
+ "application/link-format": {
+ source: "iana"
+ },
+ "application/load-control+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/lost+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["lostxml"]
+ },
+ "application/lostsync+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/lpf+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/lxf": {
+ source: "iana"
+ },
+ "application/mac-binhex40": {
+ source: "iana",
+ extensions: ["hqx"]
+ },
+ "application/mac-compactpro": {
+ source: "apache",
+ extensions: ["cpt"]
+ },
+ "application/macwriteii": {
+ source: "iana"
+ },
+ "application/mads+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["mads"]
+ },
+ "application/manifest+json": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true,
+ extensions: ["webmanifest"]
+ },
+ "application/marc": {
+ source: "iana",
+ extensions: ["mrc"]
+ },
+ "application/marcxml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["mrcx"]
+ },
+ "application/mathematica": {
+ source: "iana",
+ extensions: ["ma", "nb", "mb"]
+ },
+ "application/mathml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["mathml"]
+ },
+ "application/mathml-content+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/mathml-presentation+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/mbms-associated-procedure-description+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/mbms-deregister+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/mbms-envelope+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/mbms-msk+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/mbms-msk-response+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/mbms-protection-description+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/mbms-reception-report+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/mbms-register+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/mbms-register-response+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/mbms-schedule+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/mbms-user-service-description+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/mbox": {
+ source: "iana",
+ extensions: ["mbox"]
+ },
+ "application/media-policy-dataset+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["mpf"]
+ },
+ "application/media_control+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/mediaservercontrol+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["mscml"]
+ },
+ "application/merge-patch+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/metalink+xml": {
+ source: "apache",
+ compressible: true,
+ extensions: ["metalink"]
+ },
+ "application/metalink4+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["meta4"]
+ },
+ "application/mets+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["mets"]
+ },
+ "application/mf4": {
+ source: "iana"
+ },
+ "application/mikey": {
+ source: "iana"
+ },
+ "application/mipc": {
+ source: "iana"
+ },
+ "application/missing-blocks+cbor-seq": {
+ source: "iana"
+ },
+ "application/mmt-aei+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["maei"]
+ },
+ "application/mmt-usd+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["musd"]
+ },
+ "application/mods+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["mods"]
+ },
+ "application/moss-keys": {
+ source: "iana"
+ },
+ "application/moss-signature": {
+ source: "iana"
+ },
+ "application/mosskey-data": {
+ source: "iana"
+ },
+ "application/mosskey-request": {
+ source: "iana"
+ },
+ "application/mp21": {
+ source: "iana",
+ extensions: ["m21", "mp21"]
+ },
+ "application/mp4": {
+ source: "iana",
+ extensions: ["mp4s", "m4p"]
+ },
+ "application/mpeg4-generic": {
+ source: "iana"
+ },
+ "application/mpeg4-iod": {
+ source: "iana"
+ },
+ "application/mpeg4-iod-xmt": {
+ source: "iana"
+ },
+ "application/mrb-consumer+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/mrb-publish+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/msc-ivr+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/msc-mixer+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/msword": {
+ source: "iana",
+ compressible: false,
+ extensions: ["doc", "dot"]
+ },
+ "application/mud+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/multipart-core": {
+ source: "iana"
+ },
+ "application/mxf": {
+ source: "iana",
+ extensions: ["mxf"]
+ },
+ "application/n-quads": {
+ source: "iana",
+ extensions: ["nq"]
+ },
+ "application/n-triples": {
+ source: "iana",
+ extensions: ["nt"]
+ },
+ "application/nasdata": {
+ source: "iana"
+ },
+ "application/news-checkgroups": {
+ source: "iana",
+ charset: "US-ASCII"
+ },
+ "application/news-groupinfo": {
+ source: "iana",
+ charset: "US-ASCII"
+ },
+ "application/news-transmission": {
+ source: "iana"
+ },
+ "application/nlsml+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/node": {
+ source: "iana",
+ extensions: ["cjs"]
+ },
+ "application/nss": {
+ source: "iana"
+ },
+ "application/oauth-authz-req+jwt": {
+ source: "iana"
+ },
+ "application/oblivious-dns-message": {
+ source: "iana"
+ },
+ "application/ocsp-request": {
+ source: "iana"
+ },
+ "application/ocsp-response": {
+ source: "iana"
+ },
+ "application/octet-stream": {
+ source: "iana",
+ compressible: false,
+ extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"]
+ },
+ "application/oda": {
+ source: "iana",
+ extensions: ["oda"]
+ },
+ "application/odm+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/odx": {
+ source: "iana"
+ },
+ "application/oebps-package+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["opf"]
+ },
+ "application/ogg": {
+ source: "iana",
+ compressible: false,
+ extensions: ["ogx"]
+ },
+ "application/omdoc+xml": {
+ source: "apache",
+ compressible: true,
+ extensions: ["omdoc"]
+ },
+ "application/onenote": {
+ source: "apache",
+ extensions: ["onetoc", "onetoc2", "onetmp", "onepkg"]
+ },
+ "application/opc-nodeset+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/oscore": {
+ source: "iana"
+ },
+ "application/oxps": {
+ source: "iana",
+ extensions: ["oxps"]
+ },
+ "application/p21": {
+ source: "iana"
+ },
+ "application/p21+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/p2p-overlay+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["relo"]
+ },
+ "application/parityfec": {
+ source: "iana"
+ },
+ "application/passport": {
+ source: "iana"
+ },
+ "application/patch-ops-error+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xer"]
+ },
+ "application/pdf": {
+ source: "iana",
+ compressible: false,
+ extensions: ["pdf"]
+ },
+ "application/pdx": {
+ source: "iana"
+ },
+ "application/pem-certificate-chain": {
+ source: "iana"
+ },
+ "application/pgp-encrypted": {
+ source: "iana",
+ compressible: false,
+ extensions: ["pgp"]
+ },
+ "application/pgp-keys": {
+ source: "iana",
+ extensions: ["asc"]
+ },
+ "application/pgp-signature": {
+ source: "iana",
+ extensions: ["asc", "sig"]
+ },
+ "application/pics-rules": {
+ source: "apache",
+ extensions: ["prf"]
+ },
+ "application/pidf+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/pidf-diff+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/pkcs10": {
+ source: "iana",
+ extensions: ["p10"]
+ },
+ "application/pkcs12": {
+ source: "iana"
+ },
+ "application/pkcs7-mime": {
+ source: "iana",
+ extensions: ["p7m", "p7c"]
+ },
+ "application/pkcs7-signature": {
+ source: "iana",
+ extensions: ["p7s"]
+ },
+ "application/pkcs8": {
+ source: "iana",
+ extensions: ["p8"]
+ },
+ "application/pkcs8-encrypted": {
+ source: "iana"
+ },
+ "application/pkix-attr-cert": {
+ source: "iana",
+ extensions: ["ac"]
+ },
+ "application/pkix-cert": {
+ source: "iana",
+ extensions: ["cer"]
+ },
+ "application/pkix-crl": {
+ source: "iana",
+ extensions: ["crl"]
+ },
+ "application/pkix-pkipath": {
+ source: "iana",
+ extensions: ["pkipath"]
+ },
+ "application/pkixcmp": {
+ source: "iana",
+ extensions: ["pki"]
+ },
+ "application/pls+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["pls"]
+ },
+ "application/poc-settings+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/postscript": {
+ source: "iana",
+ compressible: true,
+ extensions: ["ai", "eps", "ps"]
+ },
+ "application/ppsp-tracker+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/problem+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/problem+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/provenance+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["provx"]
+ },
+ "application/prs.alvestrand.titrax-sheet": {
+ source: "iana"
+ },
+ "application/prs.cww": {
+ source: "iana",
+ extensions: ["cww"]
+ },
+ "application/prs.cyn": {
+ source: "iana",
+ charset: "7-BIT"
+ },
+ "application/prs.hpub+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/prs.nprend": {
+ source: "iana"
+ },
+ "application/prs.plucker": {
+ source: "iana"
+ },
+ "application/prs.rdf-xml-crypt": {
+ source: "iana"
+ },
+ "application/prs.xsf+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/pskc+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["pskcxml"]
+ },
+ "application/pvd+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/qsig": {
+ source: "iana"
+ },
+ "application/raml+yaml": {
+ compressible: true,
+ extensions: ["raml"]
+ },
+ "application/raptorfec": {
+ source: "iana"
+ },
+ "application/rdap+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/rdf+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["rdf", "owl"]
+ },
+ "application/reginfo+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["rif"]
+ },
+ "application/relax-ng-compact-syntax": {
+ source: "iana",
+ extensions: ["rnc"]
+ },
+ "application/remote-printing": {
+ source: "iana"
+ },
+ "application/reputon+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/resource-lists+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["rl"]
+ },
+ "application/resource-lists-diff+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["rld"]
+ },
+ "application/rfc+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/riscos": {
+ source: "iana"
+ },
+ "application/rlmi+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/rls-services+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["rs"]
+ },
+ "application/route-apd+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["rapd"]
+ },
+ "application/route-s-tsid+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["sls"]
+ },
+ "application/route-usd+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["rusd"]
+ },
+ "application/rpki-ghostbusters": {
+ source: "iana",
+ extensions: ["gbr"]
+ },
+ "application/rpki-manifest": {
+ source: "iana",
+ extensions: ["mft"]
+ },
+ "application/rpki-publication": {
+ source: "iana"
+ },
+ "application/rpki-roa": {
+ source: "iana",
+ extensions: ["roa"]
+ },
+ "application/rpki-updown": {
+ source: "iana"
+ },
+ "application/rsd+xml": {
+ source: "apache",
+ compressible: true,
+ extensions: ["rsd"]
+ },
+ "application/rss+xml": {
+ source: "apache",
+ compressible: true,
+ extensions: ["rss"]
+ },
+ "application/rtf": {
+ source: "iana",
+ compressible: true,
+ extensions: ["rtf"]
+ },
+ "application/rtploopback": {
+ source: "iana"
+ },
+ "application/rtx": {
+ source: "iana"
+ },
+ "application/samlassertion+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/samlmetadata+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/sarif+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/sarif-external-properties+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/sbe": {
+ source: "iana"
+ },
+ "application/sbml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["sbml"]
+ },
+ "application/scaip+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/scim+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/scvp-cv-request": {
+ source: "iana",
+ extensions: ["scq"]
+ },
+ "application/scvp-cv-response": {
+ source: "iana",
+ extensions: ["scs"]
+ },
+ "application/scvp-vp-request": {
+ source: "iana",
+ extensions: ["spq"]
+ },
+ "application/scvp-vp-response": {
+ source: "iana",
+ extensions: ["spp"]
+ },
+ "application/sdp": {
+ source: "iana",
+ extensions: ["sdp"]
+ },
+ "application/secevent+jwt": {
+ source: "iana"
+ },
+ "application/senml+cbor": {
+ source: "iana"
+ },
+ "application/senml+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/senml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["senmlx"]
+ },
+ "application/senml-etch+cbor": {
+ source: "iana"
+ },
+ "application/senml-etch+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/senml-exi": {
+ source: "iana"
+ },
+ "application/sensml+cbor": {
+ source: "iana"
+ },
+ "application/sensml+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/sensml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["sensmlx"]
+ },
+ "application/sensml-exi": {
+ source: "iana"
+ },
+ "application/sep+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/sep-exi": {
+ source: "iana"
+ },
+ "application/session-info": {
+ source: "iana"
+ },
+ "application/set-payment": {
+ source: "iana"
+ },
+ "application/set-payment-initiation": {
+ source: "iana",
+ extensions: ["setpay"]
+ },
+ "application/set-registration": {
+ source: "iana"
+ },
+ "application/set-registration-initiation": {
+ source: "iana",
+ extensions: ["setreg"]
+ },
+ "application/sgml": {
+ source: "iana"
+ },
+ "application/sgml-open-catalog": {
+ source: "iana"
+ },
+ "application/shf+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["shf"]
+ },
+ "application/sieve": {
+ source: "iana",
+ extensions: ["siv", "sieve"]
+ },
+ "application/simple-filter+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/simple-message-summary": {
+ source: "iana"
+ },
+ "application/simplesymbolcontainer": {
+ source: "iana"
+ },
+ "application/sipc": {
+ source: "iana"
+ },
+ "application/slate": {
+ source: "iana"
+ },
+ "application/smil": {
+ source: "iana"
+ },
+ "application/smil+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["smi", "smil"]
+ },
+ "application/smpte336m": {
+ source: "iana"
+ },
+ "application/soap+fastinfoset": {
+ source: "iana"
+ },
+ "application/soap+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/sparql-query": {
+ source: "iana",
+ extensions: ["rq"]
+ },
+ "application/sparql-results+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["srx"]
+ },
+ "application/spdx+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/spirits-event+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/sql": {
+ source: "iana"
+ },
+ "application/srgs": {
+ source: "iana",
+ extensions: ["gram"]
+ },
+ "application/srgs+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["grxml"]
+ },
+ "application/sru+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["sru"]
+ },
+ "application/ssdl+xml": {
+ source: "apache",
+ compressible: true,
+ extensions: ["ssdl"]
+ },
+ "application/ssml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["ssml"]
+ },
+ "application/stix+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/swid+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["swidtag"]
+ },
+ "application/tamp-apex-update": {
+ source: "iana"
+ },
+ "application/tamp-apex-update-confirm": {
+ source: "iana"
+ },
+ "application/tamp-community-update": {
+ source: "iana"
+ },
+ "application/tamp-community-update-confirm": {
+ source: "iana"
+ },
+ "application/tamp-error": {
+ source: "iana"
+ },
+ "application/tamp-sequence-adjust": {
+ source: "iana"
+ },
+ "application/tamp-sequence-adjust-confirm": {
+ source: "iana"
+ },
+ "application/tamp-status-query": {
+ source: "iana"
+ },
+ "application/tamp-status-response": {
+ source: "iana"
+ },
+ "application/tamp-update": {
+ source: "iana"
+ },
+ "application/tamp-update-confirm": {
+ source: "iana"
+ },
+ "application/tar": {
+ compressible: true
+ },
+ "application/taxii+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/td+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/tei+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["tei", "teicorpus"]
+ },
+ "application/tetra_isi": {
+ source: "iana"
+ },
+ "application/thraud+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["tfi"]
+ },
+ "application/timestamp-query": {
+ source: "iana"
+ },
+ "application/timestamp-reply": {
+ source: "iana"
+ },
+ "application/timestamped-data": {
+ source: "iana",
+ extensions: ["tsd"]
+ },
+ "application/tlsrpt+gzip": {
+ source: "iana"
+ },
+ "application/tlsrpt+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/tnauthlist": {
+ source: "iana"
+ },
+ "application/token-introspection+jwt": {
+ source: "iana"
+ },
+ "application/toml": {
+ compressible: true,
+ extensions: ["toml"]
+ },
+ "application/trickle-ice-sdpfrag": {
+ source: "iana"
+ },
+ "application/trig": {
+ source: "iana",
+ extensions: ["trig"]
+ },
+ "application/ttml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["ttml"]
+ },
+ "application/tve-trigger": {
+ source: "iana"
+ },
+ "application/tzif": {
+ source: "iana"
+ },
+ "application/tzif-leap": {
+ source: "iana"
+ },
+ "application/ubjson": {
+ compressible: false,
+ extensions: ["ubj"]
+ },
+ "application/ulpfec": {
+ source: "iana"
+ },
+ "application/urc-grpsheet+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/urc-ressheet+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["rsheet"]
+ },
+ "application/urc-targetdesc+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["td"]
+ },
+ "application/urc-uisocketdesc+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vcard+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vcard+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vemmi": {
+ source: "iana"
+ },
+ "application/vividence.scriptfile": {
+ source: "apache"
+ },
+ "application/vnd.1000minds.decision-model+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["1km"]
+ },
+ "application/vnd.3gpp-prose+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp-prose-pc3ch+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp-v2x-local-service-information": {
+ source: "iana"
+ },
+ "application/vnd.3gpp.5gnas": {
+ source: "iana"
+ },
+ "application/vnd.3gpp.access-transfer-events+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.bsf+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.gmop+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.gtpc": {
+ source: "iana"
+ },
+ "application/vnd.3gpp.interworking-data": {
+ source: "iana"
+ },
+ "application/vnd.3gpp.lpp": {
+ source: "iana"
+ },
+ "application/vnd.3gpp.mc-signalling-ear": {
+ source: "iana"
+ },
+ "application/vnd.3gpp.mcdata-affiliation-command+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcdata-info+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcdata-payload": {
+ source: "iana"
+ },
+ "application/vnd.3gpp.mcdata-service-config+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcdata-signalling": {
+ source: "iana"
+ },
+ "application/vnd.3gpp.mcdata-ue-config+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcdata-user-profile+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcptt-affiliation-command+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcptt-floor-request+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcptt-info+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcptt-location-info+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcptt-service-config+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcptt-signed+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcptt-ue-config+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcptt-ue-init-config+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcptt-user-profile+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcvideo-affiliation-command+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcvideo-affiliation-info+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcvideo-info+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcvideo-location-info+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcvideo-service-config+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcvideo-transmission-request+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcvideo-ue-config+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mcvideo-user-profile+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.mid-call+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.ngap": {
+ source: "iana"
+ },
+ "application/vnd.3gpp.pfcp": {
+ source: "iana"
+ },
+ "application/vnd.3gpp.pic-bw-large": {
+ source: "iana",
+ extensions: ["plb"]
+ },
+ "application/vnd.3gpp.pic-bw-small": {
+ source: "iana",
+ extensions: ["psb"]
+ },
+ "application/vnd.3gpp.pic-bw-var": {
+ source: "iana",
+ extensions: ["pvb"]
+ },
+ "application/vnd.3gpp.s1ap": {
+ source: "iana"
+ },
+ "application/vnd.3gpp.sms": {
+ source: "iana"
+ },
+ "application/vnd.3gpp.sms+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.srvcc-ext+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.srvcc-info+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.state-and-event-info+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp.ussd+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp2.bcmcsinfo+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.3gpp2.sms": {
+ source: "iana"
+ },
+ "application/vnd.3gpp2.tcap": {
+ source: "iana",
+ extensions: ["tcap"]
+ },
+ "application/vnd.3lightssoftware.imagescal": {
+ source: "iana"
+ },
+ "application/vnd.3m.post-it-notes": {
+ source: "iana",
+ extensions: ["pwn"]
+ },
+ "application/vnd.accpac.simply.aso": {
+ source: "iana",
+ extensions: ["aso"]
+ },
+ "application/vnd.accpac.simply.imp": {
+ source: "iana",
+ extensions: ["imp"]
+ },
+ "application/vnd.acucobol": {
+ source: "iana",
+ extensions: ["acu"]
+ },
+ "application/vnd.acucorp": {
+ source: "iana",
+ extensions: ["atc", "acutc"]
+ },
+ "application/vnd.adobe.air-application-installer-package+zip": {
+ source: "apache",
+ compressible: false,
+ extensions: ["air"]
+ },
+ "application/vnd.adobe.flash.movie": {
+ source: "iana"
+ },
+ "application/vnd.adobe.formscentral.fcdt": {
+ source: "iana",
+ extensions: ["fcdt"]
+ },
+ "application/vnd.adobe.fxp": {
+ source: "iana",
+ extensions: ["fxp", "fxpl"]
+ },
+ "application/vnd.adobe.partial-upload": {
+ source: "iana"
+ },
+ "application/vnd.adobe.xdp+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xdp"]
+ },
+ "application/vnd.adobe.xfdf": {
+ source: "iana",
+ extensions: ["xfdf"]
+ },
+ "application/vnd.aether.imp": {
+ source: "iana"
+ },
+ "application/vnd.afpc.afplinedata": {
+ source: "iana"
+ },
+ "application/vnd.afpc.afplinedata-pagedef": {
+ source: "iana"
+ },
+ "application/vnd.afpc.cmoca-cmresource": {
+ source: "iana"
+ },
+ "application/vnd.afpc.foca-charset": {
+ source: "iana"
+ },
+ "application/vnd.afpc.foca-codedfont": {
+ source: "iana"
+ },
+ "application/vnd.afpc.foca-codepage": {
+ source: "iana"
+ },
+ "application/vnd.afpc.modca": {
+ source: "iana"
+ },
+ "application/vnd.afpc.modca-cmtable": {
+ source: "iana"
+ },
+ "application/vnd.afpc.modca-formdef": {
+ source: "iana"
+ },
+ "application/vnd.afpc.modca-mediummap": {
+ source: "iana"
+ },
+ "application/vnd.afpc.modca-objectcontainer": {
+ source: "iana"
+ },
+ "application/vnd.afpc.modca-overlay": {
+ source: "iana"
+ },
+ "application/vnd.afpc.modca-pagesegment": {
+ source: "iana"
+ },
+ "application/vnd.age": {
+ source: "iana",
+ extensions: ["age"]
+ },
+ "application/vnd.ah-barcode": {
+ source: "iana"
+ },
+ "application/vnd.ahead.space": {
+ source: "iana",
+ extensions: ["ahead"]
+ },
+ "application/vnd.airzip.filesecure.azf": {
+ source: "iana",
+ extensions: ["azf"]
+ },
+ "application/vnd.airzip.filesecure.azs": {
+ source: "iana",
+ extensions: ["azs"]
+ },
+ "application/vnd.amadeus+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.amazon.ebook": {
+ source: "apache",
+ extensions: ["azw"]
+ },
+ "application/vnd.amazon.mobi8-ebook": {
+ source: "iana"
+ },
+ "application/vnd.americandynamics.acc": {
+ source: "iana",
+ extensions: ["acc"]
+ },
+ "application/vnd.amiga.ami": {
+ source: "iana",
+ extensions: ["ami"]
+ },
+ "application/vnd.amundsen.maze+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.android.ota": {
+ source: "iana"
+ },
+ "application/vnd.android.package-archive": {
+ source: "apache",
+ compressible: false,
+ extensions: ["apk"]
+ },
+ "application/vnd.anki": {
+ source: "iana"
+ },
+ "application/vnd.anser-web-certificate-issue-initiation": {
+ source: "iana",
+ extensions: ["cii"]
+ },
+ "application/vnd.anser-web-funds-transfer-initiation": {
+ source: "apache",
+ extensions: ["fti"]
+ },
+ "application/vnd.antix.game-component": {
+ source: "iana",
+ extensions: ["atx"]
+ },
+ "application/vnd.apache.arrow.file": {
+ source: "iana"
+ },
+ "application/vnd.apache.arrow.stream": {
+ source: "iana"
+ },
+ "application/vnd.apache.thrift.binary": {
+ source: "iana"
+ },
+ "application/vnd.apache.thrift.compact": {
+ source: "iana"
+ },
+ "application/vnd.apache.thrift.json": {
+ source: "iana"
+ },
+ "application/vnd.api+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.aplextor.warrp+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.apothekende.reservation+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.apple.installer+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["mpkg"]
+ },
+ "application/vnd.apple.keynote": {
+ source: "iana",
+ extensions: ["key"]
+ },
+ "application/vnd.apple.mpegurl": {
+ source: "iana",
+ extensions: ["m3u8"]
+ },
+ "application/vnd.apple.numbers": {
+ source: "iana",
+ extensions: ["numbers"]
+ },
+ "application/vnd.apple.pages": {
+ source: "iana",
+ extensions: ["pages"]
+ },
+ "application/vnd.apple.pkpass": {
+ compressible: false,
+ extensions: ["pkpass"]
+ },
+ "application/vnd.arastra.swi": {
+ source: "iana"
+ },
+ "application/vnd.aristanetworks.swi": {
+ source: "iana",
+ extensions: ["swi"]
+ },
+ "application/vnd.artisan+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.artsquare": {
+ source: "iana"
+ },
+ "application/vnd.astraea-software.iota": {
+ source: "iana",
+ extensions: ["iota"]
+ },
+ "application/vnd.audiograph": {
+ source: "iana",
+ extensions: ["aep"]
+ },
+ "application/vnd.autopackage": {
+ source: "iana"
+ },
+ "application/vnd.avalon+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.avistar+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.balsamiq.bmml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["bmml"]
+ },
+ "application/vnd.balsamiq.bmpr": {
+ source: "iana"
+ },
+ "application/vnd.banana-accounting": {
+ source: "iana"
+ },
+ "application/vnd.bbf.usp.error": {
+ source: "iana"
+ },
+ "application/vnd.bbf.usp.msg": {
+ source: "iana"
+ },
+ "application/vnd.bbf.usp.msg+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.bekitzur-stech+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.bint.med-content": {
+ source: "iana"
+ },
+ "application/vnd.biopax.rdf+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.blink-idb-value-wrapper": {
+ source: "iana"
+ },
+ "application/vnd.blueice.multipass": {
+ source: "iana",
+ extensions: ["mpm"]
+ },
+ "application/vnd.bluetooth.ep.oob": {
+ source: "iana"
+ },
+ "application/vnd.bluetooth.le.oob": {
+ source: "iana"
+ },
+ "application/vnd.bmi": {
+ source: "iana",
+ extensions: ["bmi"]
+ },
+ "application/vnd.bpf": {
+ source: "iana"
+ },
+ "application/vnd.bpf3": {
+ source: "iana"
+ },
+ "application/vnd.businessobjects": {
+ source: "iana",
+ extensions: ["rep"]
+ },
+ "application/vnd.byu.uapi+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.cab-jscript": {
+ source: "iana"
+ },
+ "application/vnd.canon-cpdl": {
+ source: "iana"
+ },
+ "application/vnd.canon-lips": {
+ source: "iana"
+ },
+ "application/vnd.capasystems-pg+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.cendio.thinlinc.clientconf": {
+ source: "iana"
+ },
+ "application/vnd.century-systems.tcp_stream": {
+ source: "iana"
+ },
+ "application/vnd.chemdraw+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["cdxml"]
+ },
+ "application/vnd.chess-pgn": {
+ source: "iana"
+ },
+ "application/vnd.chipnuts.karaoke-mmd": {
+ source: "iana",
+ extensions: ["mmd"]
+ },
+ "application/vnd.ciedi": {
+ source: "iana"
+ },
+ "application/vnd.cinderella": {
+ source: "iana",
+ extensions: ["cdy"]
+ },
+ "application/vnd.cirpack.isdn-ext": {
+ source: "iana"
+ },
+ "application/vnd.citationstyles.style+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["csl"]
+ },
+ "application/vnd.claymore": {
+ source: "iana",
+ extensions: ["cla"]
+ },
+ "application/vnd.cloanto.rp9": {
+ source: "iana",
+ extensions: ["rp9"]
+ },
+ "application/vnd.clonk.c4group": {
+ source: "iana",
+ extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"]
+ },
+ "application/vnd.cluetrust.cartomobile-config": {
+ source: "iana",
+ extensions: ["c11amc"]
+ },
+ "application/vnd.cluetrust.cartomobile-config-pkg": {
+ source: "iana",
+ extensions: ["c11amz"]
+ },
+ "application/vnd.coffeescript": {
+ source: "iana"
+ },
+ "application/vnd.collabio.xodocuments.document": {
+ source: "iana"
+ },
+ "application/vnd.collabio.xodocuments.document-template": {
+ source: "iana"
+ },
+ "application/vnd.collabio.xodocuments.presentation": {
+ source: "iana"
+ },
+ "application/vnd.collabio.xodocuments.presentation-template": {
+ source: "iana"
+ },
+ "application/vnd.collabio.xodocuments.spreadsheet": {
+ source: "iana"
+ },
+ "application/vnd.collabio.xodocuments.spreadsheet-template": {
+ source: "iana"
+ },
+ "application/vnd.collection+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.collection.doc+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.collection.next+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.comicbook+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/vnd.comicbook-rar": {
+ source: "iana"
+ },
+ "application/vnd.commerce-battelle": {
+ source: "iana"
+ },
+ "application/vnd.commonspace": {
+ source: "iana",
+ extensions: ["csp"]
+ },
+ "application/vnd.contact.cmsg": {
+ source: "iana",
+ extensions: ["cdbcmsg"]
+ },
+ "application/vnd.coreos.ignition+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.cosmocaller": {
+ source: "iana",
+ extensions: ["cmc"]
+ },
+ "application/vnd.crick.clicker": {
+ source: "iana",
+ extensions: ["clkx"]
+ },
+ "application/vnd.crick.clicker.keyboard": {
+ source: "iana",
+ extensions: ["clkk"]
+ },
+ "application/vnd.crick.clicker.palette": {
+ source: "iana",
+ extensions: ["clkp"]
+ },
+ "application/vnd.crick.clicker.template": {
+ source: "iana",
+ extensions: ["clkt"]
+ },
+ "application/vnd.crick.clicker.wordbank": {
+ source: "iana",
+ extensions: ["clkw"]
+ },
+ "application/vnd.criticaltools.wbs+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["wbs"]
+ },
+ "application/vnd.cryptii.pipe+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.crypto-shade-file": {
+ source: "iana"
+ },
+ "application/vnd.cryptomator.encrypted": {
+ source: "iana"
+ },
+ "application/vnd.cryptomator.vault": {
+ source: "iana"
+ },
+ "application/vnd.ctc-posml": {
+ source: "iana",
+ extensions: ["pml"]
+ },
+ "application/vnd.ctct.ws+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.cups-pdf": {
+ source: "iana"
+ },
+ "application/vnd.cups-postscript": {
+ source: "iana"
+ },
+ "application/vnd.cups-ppd": {
+ source: "iana",
+ extensions: ["ppd"]
+ },
+ "application/vnd.cups-raster": {
+ source: "iana"
+ },
+ "application/vnd.cups-raw": {
+ source: "iana"
+ },
+ "application/vnd.curl": {
+ source: "iana"
+ },
+ "application/vnd.curl.car": {
+ source: "apache",
+ extensions: ["car"]
+ },
+ "application/vnd.curl.pcurl": {
+ source: "apache",
+ extensions: ["pcurl"]
+ },
+ "application/vnd.cyan.dean.root+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.cybank": {
+ source: "iana"
+ },
+ "application/vnd.cyclonedx+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.cyclonedx+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.d2l.coursepackage1p0+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/vnd.d3m-dataset": {
+ source: "iana"
+ },
+ "application/vnd.d3m-problem": {
+ source: "iana"
+ },
+ "application/vnd.dart": {
+ source: "iana",
+ compressible: true,
+ extensions: ["dart"]
+ },
+ "application/vnd.data-vision.rdz": {
+ source: "iana",
+ extensions: ["rdz"]
+ },
+ "application/vnd.datapackage+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.dataresource+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.dbf": {
+ source: "iana",
+ extensions: ["dbf"]
+ },
+ "application/vnd.debian.binary-package": {
+ source: "iana"
+ },
+ "application/vnd.dece.data": {
+ source: "iana",
+ extensions: ["uvf", "uvvf", "uvd", "uvvd"]
+ },
+ "application/vnd.dece.ttml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["uvt", "uvvt"]
+ },
+ "application/vnd.dece.unspecified": {
+ source: "iana",
+ extensions: ["uvx", "uvvx"]
+ },
+ "application/vnd.dece.zip": {
+ source: "iana",
+ extensions: ["uvz", "uvvz"]
+ },
+ "application/vnd.denovo.fcselayout-link": {
+ source: "iana",
+ extensions: ["fe_launch"]
+ },
+ "application/vnd.desmume.movie": {
+ source: "iana"
+ },
+ "application/vnd.dir-bi.plate-dl-nosuffix": {
+ source: "iana"
+ },
+ "application/vnd.dm.delegation+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.dna": {
+ source: "iana",
+ extensions: ["dna"]
+ },
+ "application/vnd.document+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.dolby.mlp": {
+ source: "apache",
+ extensions: ["mlp"]
+ },
+ "application/vnd.dolby.mobile.1": {
+ source: "iana"
+ },
+ "application/vnd.dolby.mobile.2": {
+ source: "iana"
+ },
+ "application/vnd.doremir.scorecloud-binary-document": {
+ source: "iana"
+ },
+ "application/vnd.dpgraph": {
+ source: "iana",
+ extensions: ["dpg"]
+ },
+ "application/vnd.dreamfactory": {
+ source: "iana",
+ extensions: ["dfac"]
+ },
+ "application/vnd.drive+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.ds-keypoint": {
+ source: "apache",
+ extensions: ["kpxx"]
+ },
+ "application/vnd.dtg.local": {
+ source: "iana"
+ },
+ "application/vnd.dtg.local.flash": {
+ source: "iana"
+ },
+ "application/vnd.dtg.local.html": {
+ source: "iana"
+ },
+ "application/vnd.dvb.ait": {
+ source: "iana",
+ extensions: ["ait"]
+ },
+ "application/vnd.dvb.dvbisl+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.dvb.dvbj": {
+ source: "iana"
+ },
+ "application/vnd.dvb.esgcontainer": {
+ source: "iana"
+ },
+ "application/vnd.dvb.ipdcdftnotifaccess": {
+ source: "iana"
+ },
+ "application/vnd.dvb.ipdcesgaccess": {
+ source: "iana"
+ },
+ "application/vnd.dvb.ipdcesgaccess2": {
+ source: "iana"
+ },
+ "application/vnd.dvb.ipdcesgpdd": {
+ source: "iana"
+ },
+ "application/vnd.dvb.ipdcroaming": {
+ source: "iana"
+ },
+ "application/vnd.dvb.iptv.alfec-base": {
+ source: "iana"
+ },
+ "application/vnd.dvb.iptv.alfec-enhancement": {
+ source: "iana"
+ },
+ "application/vnd.dvb.notif-aggregate-root+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.dvb.notif-container+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.dvb.notif-generic+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.dvb.notif-ia-msglist+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.dvb.notif-ia-registration-request+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.dvb.notif-ia-registration-response+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.dvb.notif-init+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.dvb.pfr": {
+ source: "iana"
+ },
+ "application/vnd.dvb.service": {
+ source: "iana",
+ extensions: ["svc"]
+ },
+ "application/vnd.dxr": {
+ source: "iana"
+ },
+ "application/vnd.dynageo": {
+ source: "iana",
+ extensions: ["geo"]
+ },
+ "application/vnd.dzr": {
+ source: "iana"
+ },
+ "application/vnd.easykaraoke.cdgdownload": {
+ source: "iana"
+ },
+ "application/vnd.ecdis-update": {
+ source: "iana"
+ },
+ "application/vnd.ecip.rlp": {
+ source: "iana"
+ },
+ "application/vnd.eclipse.ditto+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.ecowin.chart": {
+ source: "iana",
+ extensions: ["mag"]
+ },
+ "application/vnd.ecowin.filerequest": {
+ source: "iana"
+ },
+ "application/vnd.ecowin.fileupdate": {
+ source: "iana"
+ },
+ "application/vnd.ecowin.series": {
+ source: "iana"
+ },
+ "application/vnd.ecowin.seriesrequest": {
+ source: "iana"
+ },
+ "application/vnd.ecowin.seriesupdate": {
+ source: "iana"
+ },
+ "application/vnd.efi.img": {
+ source: "iana"
+ },
+ "application/vnd.efi.iso": {
+ source: "iana"
+ },
+ "application/vnd.emclient.accessrequest+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.enliven": {
+ source: "iana",
+ extensions: ["nml"]
+ },
+ "application/vnd.enphase.envoy": {
+ source: "iana"
+ },
+ "application/vnd.eprints.data+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.epson.esf": {
+ source: "iana",
+ extensions: ["esf"]
+ },
+ "application/vnd.epson.msf": {
+ source: "iana",
+ extensions: ["msf"]
+ },
+ "application/vnd.epson.quickanime": {
+ source: "iana",
+ extensions: ["qam"]
+ },
+ "application/vnd.epson.salt": {
+ source: "iana",
+ extensions: ["slt"]
+ },
+ "application/vnd.epson.ssf": {
+ source: "iana",
+ extensions: ["ssf"]
+ },
+ "application/vnd.ericsson.quickcall": {
+ source: "iana"
+ },
+ "application/vnd.espass-espass+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/vnd.eszigno3+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["es3", "et3"]
+ },
+ "application/vnd.etsi.aoc+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.asic-e+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/vnd.etsi.asic-s+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/vnd.etsi.cug+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.iptvcommand+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.iptvdiscovery+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.iptvprofile+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.iptvsad-bc+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.iptvsad-cod+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.iptvsad-npvr+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.iptvservice+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.iptvsync+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.iptvueprofile+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.mcid+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.mheg5": {
+ source: "iana"
+ },
+ "application/vnd.etsi.overload-control-policy-dataset+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.pstn+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.sci+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.simservs+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.timestamp-token": {
+ source: "iana"
+ },
+ "application/vnd.etsi.tsl+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.etsi.tsl.der": {
+ source: "iana"
+ },
+ "application/vnd.eu.kasparian.car+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.eudora.data": {
+ source: "iana"
+ },
+ "application/vnd.evolv.ecig.profile": {
+ source: "iana"
+ },
+ "application/vnd.evolv.ecig.settings": {
+ source: "iana"
+ },
+ "application/vnd.evolv.ecig.theme": {
+ source: "iana"
+ },
+ "application/vnd.exstream-empower+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/vnd.exstream-package": {
+ source: "iana"
+ },
+ "application/vnd.ezpix-album": {
+ source: "iana",
+ extensions: ["ez2"]
+ },
+ "application/vnd.ezpix-package": {
+ source: "iana",
+ extensions: ["ez3"]
+ },
+ "application/vnd.f-secure.mobile": {
+ source: "iana"
+ },
+ "application/vnd.familysearch.gedcom+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/vnd.fastcopy-disk-image": {
+ source: "iana"
+ },
+ "application/vnd.fdf": {
+ source: "iana",
+ extensions: ["fdf"]
+ },
+ "application/vnd.fdsn.mseed": {
+ source: "iana",
+ extensions: ["mseed"]
+ },
+ "application/vnd.fdsn.seed": {
+ source: "iana",
+ extensions: ["seed", "dataless"]
+ },
+ "application/vnd.ffsns": {
+ source: "iana"
+ },
+ "application/vnd.ficlab.flb+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/vnd.filmit.zfc": {
+ source: "iana"
+ },
+ "application/vnd.fints": {
+ source: "iana"
+ },
+ "application/vnd.firemonkeys.cloudcell": {
+ source: "iana"
+ },
+ "application/vnd.flographit": {
+ source: "iana",
+ extensions: ["gph"]
+ },
+ "application/vnd.fluxtime.clip": {
+ source: "iana",
+ extensions: ["ftc"]
+ },
+ "application/vnd.font-fontforge-sfd": {
+ source: "iana"
+ },
+ "application/vnd.framemaker": {
+ source: "iana",
+ extensions: ["fm", "frame", "maker", "book"]
+ },
+ "application/vnd.frogans.fnc": {
+ source: "iana",
+ extensions: ["fnc"]
+ },
+ "application/vnd.frogans.ltf": {
+ source: "iana",
+ extensions: ["ltf"]
+ },
+ "application/vnd.fsc.weblaunch": {
+ source: "iana",
+ extensions: ["fsc"]
+ },
+ "application/vnd.fujifilm.fb.docuworks": {
+ source: "iana"
+ },
+ "application/vnd.fujifilm.fb.docuworks.binder": {
+ source: "iana"
+ },
+ "application/vnd.fujifilm.fb.docuworks.container": {
+ source: "iana"
+ },
+ "application/vnd.fujifilm.fb.jfi+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.fujitsu.oasys": {
+ source: "iana",
+ extensions: ["oas"]
+ },
+ "application/vnd.fujitsu.oasys2": {
+ source: "iana",
+ extensions: ["oa2"]
+ },
+ "application/vnd.fujitsu.oasys3": {
+ source: "iana",
+ extensions: ["oa3"]
+ },
+ "application/vnd.fujitsu.oasysgp": {
+ source: "iana",
+ extensions: ["fg5"]
+ },
+ "application/vnd.fujitsu.oasysprs": {
+ source: "iana",
+ extensions: ["bh2"]
+ },
+ "application/vnd.fujixerox.art-ex": {
+ source: "iana"
+ },
+ "application/vnd.fujixerox.art4": {
+ source: "iana"
+ },
+ "application/vnd.fujixerox.ddd": {
+ source: "iana",
+ extensions: ["ddd"]
+ },
+ "application/vnd.fujixerox.docuworks": {
+ source: "iana",
+ extensions: ["xdw"]
+ },
+ "application/vnd.fujixerox.docuworks.binder": {
+ source: "iana",
+ extensions: ["xbd"]
+ },
+ "application/vnd.fujixerox.docuworks.container": {
+ source: "iana"
+ },
+ "application/vnd.fujixerox.hbpl": {
+ source: "iana"
+ },
+ "application/vnd.fut-misnet": {
+ source: "iana"
+ },
+ "application/vnd.futoin+cbor": {
+ source: "iana"
+ },
+ "application/vnd.futoin+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.fuzzysheet": {
+ source: "iana",
+ extensions: ["fzs"]
+ },
+ "application/vnd.genomatix.tuxedo": {
+ source: "iana",
+ extensions: ["txd"]
+ },
+ "application/vnd.gentics.grd+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.geo+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.geocube+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.geogebra.file": {
+ source: "iana",
+ extensions: ["ggb"]
+ },
+ "application/vnd.geogebra.slides": {
+ source: "iana"
+ },
+ "application/vnd.geogebra.tool": {
+ source: "iana",
+ extensions: ["ggt"]
+ },
+ "application/vnd.geometry-explorer": {
+ source: "iana",
+ extensions: ["gex", "gre"]
+ },
+ "application/vnd.geonext": {
+ source: "iana",
+ extensions: ["gxt"]
+ },
+ "application/vnd.geoplan": {
+ source: "iana",
+ extensions: ["g2w"]
+ },
+ "application/vnd.geospace": {
+ source: "iana",
+ extensions: ["g3w"]
+ },
+ "application/vnd.gerber": {
+ source: "iana"
+ },
+ "application/vnd.globalplatform.card-content-mgt": {
+ source: "iana"
+ },
+ "application/vnd.globalplatform.card-content-mgt-response": {
+ source: "iana"
+ },
+ "application/vnd.gmx": {
+ source: "iana",
+ extensions: ["gmx"]
+ },
+ "application/vnd.google-apps.document": {
+ compressible: false,
+ extensions: ["gdoc"]
+ },
+ "application/vnd.google-apps.presentation": {
+ compressible: false,
+ extensions: ["gslides"]
+ },
+ "application/vnd.google-apps.spreadsheet": {
+ compressible: false,
+ extensions: ["gsheet"]
+ },
+ "application/vnd.google-earth.kml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["kml"]
+ },
+ "application/vnd.google-earth.kmz": {
+ source: "iana",
+ compressible: false,
+ extensions: ["kmz"]
+ },
+ "application/vnd.gov.sk.e-form+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.gov.sk.e-form+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/vnd.gov.sk.xmldatacontainer+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.grafeq": {
+ source: "iana",
+ extensions: ["gqf", "gqs"]
+ },
+ "application/vnd.gridmp": {
+ source: "iana"
+ },
+ "application/vnd.groove-account": {
+ source: "iana",
+ extensions: ["gac"]
+ },
+ "application/vnd.groove-help": {
+ source: "iana",
+ extensions: ["ghf"]
+ },
+ "application/vnd.groove-identity-message": {
+ source: "iana",
+ extensions: ["gim"]
+ },
+ "application/vnd.groove-injector": {
+ source: "iana",
+ extensions: ["grv"]
+ },
+ "application/vnd.groove-tool-message": {
+ source: "iana",
+ extensions: ["gtm"]
+ },
+ "application/vnd.groove-tool-template": {
+ source: "iana",
+ extensions: ["tpl"]
+ },
+ "application/vnd.groove-vcard": {
+ source: "iana",
+ extensions: ["vcg"]
+ },
+ "application/vnd.hal+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.hal+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["hal"]
+ },
+ "application/vnd.handheld-entertainment+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["zmm"]
+ },
+ "application/vnd.hbci": {
+ source: "iana",
+ extensions: ["hbci"]
+ },
+ "application/vnd.hc+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.hcl-bireports": {
+ source: "iana"
+ },
+ "application/vnd.hdt": {
+ source: "iana"
+ },
+ "application/vnd.heroku+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.hhe.lesson-player": {
+ source: "iana",
+ extensions: ["les"]
+ },
+ "application/vnd.hl7cda+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/vnd.hl7v2+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/vnd.hp-hpgl": {
+ source: "iana",
+ extensions: ["hpgl"]
+ },
+ "application/vnd.hp-hpid": {
+ source: "iana",
+ extensions: ["hpid"]
+ },
+ "application/vnd.hp-hps": {
+ source: "iana",
+ extensions: ["hps"]
+ },
+ "application/vnd.hp-jlyt": {
+ source: "iana",
+ extensions: ["jlt"]
+ },
+ "application/vnd.hp-pcl": {
+ source: "iana",
+ extensions: ["pcl"]
+ },
+ "application/vnd.hp-pclxl": {
+ source: "iana",
+ extensions: ["pclxl"]
+ },
+ "application/vnd.httphone": {
+ source: "iana"
+ },
+ "application/vnd.hydrostatix.sof-data": {
+ source: "iana",
+ extensions: ["sfd-hdstx"]
+ },
+ "application/vnd.hyper+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.hyper-item+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.hyperdrive+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.hzn-3d-crossword": {
+ source: "iana"
+ },
+ "application/vnd.ibm.afplinedata": {
+ source: "iana"
+ },
+ "application/vnd.ibm.electronic-media": {
+ source: "iana"
+ },
+ "application/vnd.ibm.minipay": {
+ source: "iana",
+ extensions: ["mpy"]
+ },
+ "application/vnd.ibm.modcap": {
+ source: "iana",
+ extensions: ["afp", "listafp", "list3820"]
+ },
+ "application/vnd.ibm.rights-management": {
+ source: "iana",
+ extensions: ["irm"]
+ },
+ "application/vnd.ibm.secure-container": {
+ source: "iana",
+ extensions: ["sc"]
+ },
+ "application/vnd.iccprofile": {
+ source: "iana",
+ extensions: ["icc", "icm"]
+ },
+ "application/vnd.ieee.1905": {
+ source: "iana"
+ },
+ "application/vnd.igloader": {
+ source: "iana",
+ extensions: ["igl"]
+ },
+ "application/vnd.imagemeter.folder+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/vnd.imagemeter.image+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/vnd.immervision-ivp": {
+ source: "iana",
+ extensions: ["ivp"]
+ },
+ "application/vnd.immervision-ivu": {
+ source: "iana",
+ extensions: ["ivu"]
+ },
+ "application/vnd.ims.imsccv1p1": {
+ source: "iana"
+ },
+ "application/vnd.ims.imsccv1p2": {
+ source: "iana"
+ },
+ "application/vnd.ims.imsccv1p3": {
+ source: "iana"
+ },
+ "application/vnd.ims.lis.v2.result+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.ims.lti.v2.toolconsumerprofile+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.ims.lti.v2.toolproxy+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.ims.lti.v2.toolproxy.id+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.ims.lti.v2.toolsettings+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.ims.lti.v2.toolsettings.simple+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.informedcontrol.rms+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.informix-visionary": {
+ source: "iana"
+ },
+ "application/vnd.infotech.project": {
+ source: "iana"
+ },
+ "application/vnd.infotech.project+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.innopath.wamp.notification": {
+ source: "iana"
+ },
+ "application/vnd.insors.igm": {
+ source: "iana",
+ extensions: ["igm"]
+ },
+ "application/vnd.intercon.formnet": {
+ source: "iana",
+ extensions: ["xpw", "xpx"]
+ },
+ "application/vnd.intergeo": {
+ source: "iana",
+ extensions: ["i2g"]
+ },
+ "application/vnd.intertrust.digibox": {
+ source: "iana"
+ },
+ "application/vnd.intertrust.nncp": {
+ source: "iana"
+ },
+ "application/vnd.intu.qbo": {
+ source: "iana",
+ extensions: ["qbo"]
+ },
+ "application/vnd.intu.qfx": {
+ source: "iana",
+ extensions: ["qfx"]
+ },
+ "application/vnd.iptc.g2.catalogitem+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.iptc.g2.conceptitem+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.iptc.g2.knowledgeitem+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.iptc.g2.newsitem+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.iptc.g2.newsmessage+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.iptc.g2.packageitem+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.iptc.g2.planningitem+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.ipunplugged.rcprofile": {
+ source: "iana",
+ extensions: ["rcprofile"]
+ },
+ "application/vnd.irepository.package+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["irp"]
+ },
+ "application/vnd.is-xpr": {
+ source: "iana",
+ extensions: ["xpr"]
+ },
+ "application/vnd.isac.fcs": {
+ source: "iana",
+ extensions: ["fcs"]
+ },
+ "application/vnd.iso11783-10+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/vnd.jam": {
+ source: "iana",
+ extensions: ["jam"]
+ },
+ "application/vnd.japannet-directory-service": {
+ source: "iana"
+ },
+ "application/vnd.japannet-jpnstore-wakeup": {
+ source: "iana"
+ },
+ "application/vnd.japannet-payment-wakeup": {
+ source: "iana"
+ },
+ "application/vnd.japannet-registration": {
+ source: "iana"
+ },
+ "application/vnd.japannet-registration-wakeup": {
+ source: "iana"
+ },
+ "application/vnd.japannet-setstore-wakeup": {
+ source: "iana"
+ },
+ "application/vnd.japannet-verification": {
+ source: "iana"
+ },
+ "application/vnd.japannet-verification-wakeup": {
+ source: "iana"
+ },
+ "application/vnd.jcp.javame.midlet-rms": {
+ source: "iana",
+ extensions: ["rms"]
+ },
+ "application/vnd.jisp": {
+ source: "iana",
+ extensions: ["jisp"]
+ },
+ "application/vnd.joost.joda-archive": {
+ source: "iana",
+ extensions: ["joda"]
+ },
+ "application/vnd.jsk.isdn-ngn": {
+ source: "iana"
+ },
+ "application/vnd.kahootz": {
+ source: "iana",
+ extensions: ["ktz", "ktr"]
+ },
+ "application/vnd.kde.karbon": {
+ source: "iana",
+ extensions: ["karbon"]
+ },
+ "application/vnd.kde.kchart": {
+ source: "iana",
+ extensions: ["chrt"]
+ },
+ "application/vnd.kde.kformula": {
+ source: "iana",
+ extensions: ["kfo"]
+ },
+ "application/vnd.kde.kivio": {
+ source: "iana",
+ extensions: ["flw"]
+ },
+ "application/vnd.kde.kontour": {
+ source: "iana",
+ extensions: ["kon"]
+ },
+ "application/vnd.kde.kpresenter": {
+ source: "iana",
+ extensions: ["kpr", "kpt"]
+ },
+ "application/vnd.kde.kspread": {
+ source: "iana",
+ extensions: ["ksp"]
+ },
+ "application/vnd.kde.kword": {
+ source: "iana",
+ extensions: ["kwd", "kwt"]
+ },
+ "application/vnd.kenameaapp": {
+ source: "iana",
+ extensions: ["htke"]
+ },
+ "application/vnd.kidspiration": {
+ source: "iana",
+ extensions: ["kia"]
+ },
+ "application/vnd.kinar": {
+ source: "iana",
+ extensions: ["kne", "knp"]
+ },
+ "application/vnd.koan": {
+ source: "iana",
+ extensions: ["skp", "skd", "skt", "skm"]
+ },
+ "application/vnd.kodak-descriptor": {
+ source: "iana",
+ extensions: ["sse"]
+ },
+ "application/vnd.las": {
+ source: "iana"
+ },
+ "application/vnd.las.las+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.las.las+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["lasxml"]
+ },
+ "application/vnd.laszip": {
+ source: "iana"
+ },
+ "application/vnd.leap+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.liberty-request+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.llamagraphics.life-balance.desktop": {
+ source: "iana",
+ extensions: ["lbd"]
+ },
+ "application/vnd.llamagraphics.life-balance.exchange+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["lbe"]
+ },
+ "application/vnd.logipipe.circuit+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/vnd.loom": {
+ source: "iana"
+ },
+ "application/vnd.lotus-1-2-3": {
+ source: "iana",
+ extensions: ["123"]
+ },
+ "application/vnd.lotus-approach": {
+ source: "iana",
+ extensions: ["apr"]
+ },
+ "application/vnd.lotus-freelance": {
+ source: "iana",
+ extensions: ["pre"]
+ },
+ "application/vnd.lotus-notes": {
+ source: "iana",
+ extensions: ["nsf"]
+ },
+ "application/vnd.lotus-organizer": {
+ source: "iana",
+ extensions: ["org"]
+ },
+ "application/vnd.lotus-screencam": {
+ source: "iana",
+ extensions: ["scm"]
+ },
+ "application/vnd.lotus-wordpro": {
+ source: "iana",
+ extensions: ["lwp"]
+ },
+ "application/vnd.macports.portpkg": {
+ source: "iana",
+ extensions: ["portpkg"]
+ },
+ "application/vnd.mapbox-vector-tile": {
+ source: "iana",
+ extensions: ["mvt"]
+ },
+ "application/vnd.marlin.drm.actiontoken+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.marlin.drm.conftoken+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.marlin.drm.license+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.marlin.drm.mdcf": {
+ source: "iana"
+ },
+ "application/vnd.mason+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.maxar.archive.3tz+zip": {
+ source: "iana",
+ compressible: false
+ },
+ "application/vnd.maxmind.maxmind-db": {
+ source: "iana"
+ },
+ "application/vnd.mcd": {
+ source: "iana",
+ extensions: ["mcd"]
+ },
+ "application/vnd.medcalcdata": {
+ source: "iana",
+ extensions: ["mc1"]
+ },
+ "application/vnd.mediastation.cdkey": {
+ source: "iana",
+ extensions: ["cdkey"]
+ },
+ "application/vnd.meridian-slingshot": {
+ source: "iana"
+ },
+ "application/vnd.mfer": {
+ source: "iana",
+ extensions: ["mwf"]
+ },
+ "application/vnd.mfmp": {
+ source: "iana",
+ extensions: ["mfm"]
+ },
+ "application/vnd.micro+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.micrografx.flo": {
+ source: "iana",
+ extensions: ["flo"]
+ },
+ "application/vnd.micrografx.igx": {
+ source: "iana",
+ extensions: ["igx"]
+ },
+ "application/vnd.microsoft.portable-executable": {
+ source: "iana"
+ },
+ "application/vnd.microsoft.windows.thumbnail-cache": {
+ source: "iana"
+ },
+ "application/vnd.miele+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.mif": {
+ source: "iana",
+ extensions: ["mif"]
+ },
+ "application/vnd.minisoft-hp3000-save": {
+ source: "iana"
+ },
+ "application/vnd.mitsubishi.misty-guard.trustweb": {
+ source: "iana"
+ },
+ "application/vnd.mobius.daf": {
+ source: "iana",
+ extensions: ["daf"]
+ },
+ "application/vnd.mobius.dis": {
+ source: "iana",
+ extensions: ["dis"]
+ },
+ "application/vnd.mobius.mbk": {
+ source: "iana",
+ extensions: ["mbk"]
+ },
+ "application/vnd.mobius.mqy": {
+ source: "iana",
+ extensions: ["mqy"]
+ },
+ "application/vnd.mobius.msl": {
+ source: "iana",
+ extensions: ["msl"]
+ },
+ "application/vnd.mobius.plc": {
+ source: "iana",
+ extensions: ["plc"]
+ },
+ "application/vnd.mobius.txf": {
+ source: "iana",
+ extensions: ["txf"]
+ },
+ "application/vnd.mophun.application": {
+ source: "iana",
+ extensions: ["mpn"]
+ },
+ "application/vnd.mophun.certificate": {
+ source: "iana",
+ extensions: ["mpc"]
+ },
+ "application/vnd.motorola.flexsuite": {
+ source: "iana"
+ },
+ "application/vnd.motorola.flexsuite.adsi": {
+ source: "iana"
+ },
+ "application/vnd.motorola.flexsuite.fis": {
+ source: "iana"
+ },
+ "application/vnd.motorola.flexsuite.gotap": {
+ source: "iana"
+ },
+ "application/vnd.motorola.flexsuite.kmr": {
+ source: "iana"
+ },
+ "application/vnd.motorola.flexsuite.ttc": {
+ source: "iana"
+ },
+ "application/vnd.motorola.flexsuite.wem": {
+ source: "iana"
+ },
+ "application/vnd.motorola.iprm": {
+ source: "iana"
+ },
+ "application/vnd.mozilla.xul+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xul"]
+ },
+ "application/vnd.ms-3mfdocument": {
+ source: "iana"
+ },
+ "application/vnd.ms-artgalry": {
+ source: "iana",
+ extensions: ["cil"]
+ },
+ "application/vnd.ms-asf": {
+ source: "iana"
+ },
+ "application/vnd.ms-cab-compressed": {
+ source: "iana",
+ extensions: ["cab"]
+ },
+ "application/vnd.ms-color.iccprofile": {
+ source: "apache"
+ },
+ "application/vnd.ms-excel": {
+ source: "iana",
+ compressible: false,
+ extensions: ["xls", "xlm", "xla", "xlc", "xlt", "xlw"]
+ },
+ "application/vnd.ms-excel.addin.macroenabled.12": {
+ source: "iana",
+ extensions: ["xlam"]
+ },
+ "application/vnd.ms-excel.sheet.binary.macroenabled.12": {
+ source: "iana",
+ extensions: ["xlsb"]
+ },
+ "application/vnd.ms-excel.sheet.macroenabled.12": {
+ source: "iana",
+ extensions: ["xlsm"]
+ },
+ "application/vnd.ms-excel.template.macroenabled.12": {
+ source: "iana",
+ extensions: ["xltm"]
+ },
+ "application/vnd.ms-fontobject": {
+ source: "iana",
+ compressible: true,
+ extensions: ["eot"]
+ },
+ "application/vnd.ms-htmlhelp": {
+ source: "iana",
+ extensions: ["chm"]
+ },
+ "application/vnd.ms-ims": {
+ source: "iana",
+ extensions: ["ims"]
+ },
+ "application/vnd.ms-lrm": {
+ source: "iana",
+ extensions: ["lrm"]
+ },
+ "application/vnd.ms-office.activex+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.ms-officetheme": {
+ source: "iana",
+ extensions: ["thmx"]
+ },
+ "application/vnd.ms-opentype": {
+ source: "apache",
+ compressible: true
+ },
+ "application/vnd.ms-outlook": {
+ compressible: false,
+ extensions: ["msg"]
+ },
+ "application/vnd.ms-package.obfuscated-opentype": {
+ source: "apache"
+ },
+ "application/vnd.ms-pki.seccat": {
+ source: "apache",
+ extensions: ["cat"]
+ },
+ "application/vnd.ms-pki.stl": {
+ source: "apache",
+ extensions: ["stl"]
+ },
+ "application/vnd.ms-playready.initiator+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.ms-powerpoint": {
+ source: "iana",
+ compressible: false,
+ extensions: ["ppt", "pps", "pot"]
+ },
+ "application/vnd.ms-powerpoint.addin.macroenabled.12": {
+ source: "iana",
+ extensions: ["ppam"]
+ },
+ "application/vnd.ms-powerpoint.presentation.macroenabled.12": {
+ source: "iana",
+ extensions: ["pptm"]
+ },
+ "application/vnd.ms-powerpoint.slide.macroenabled.12": {
+ source: "iana",
+ extensions: ["sldm"]
+ },
+ "application/vnd.ms-powerpoint.slideshow.macroenabled.12": {
+ source: "iana",
+ extensions: ["ppsm"]
+ },
+ "application/vnd.ms-powerpoint.template.macroenabled.12": {
+ source: "iana",
+ extensions: ["potm"]
+ },
+ "application/vnd.ms-printdevicecapabilities+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.ms-printing.printticket+xml": {
+ source: "apache",
+ compressible: true
+ },
+ "application/vnd.ms-printschematicket+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.ms-project": {
+ source: "iana",
+ extensions: ["mpp", "mpt"]
+ },
+ "application/vnd.ms-tnef": {
+ source: "iana"
+ },
+ "application/vnd.ms-windows.devicepairing": {
+ source: "iana"
+ },
+ "application/vnd.ms-windows.nwprinting.oob": {
+ source: "iana"
+ },
+ "application/vnd.ms-windows.printerpairing": {
+ source: "iana"
+ },
+ "application/vnd.ms-windows.wsd.oob": {
+ source: "iana"
+ },
+ "application/vnd.ms-wmdrm.lic-chlg-req": {
+ source: "iana"
+ },
+ "application/vnd.ms-wmdrm.lic-resp": {
+ source: "iana"
+ },
+ "application/vnd.ms-wmdrm.meter-chlg-req": {
+ source: "iana"
+ },
+ "application/vnd.ms-wmdrm.meter-resp": {
+ source: "iana"
+ },
+ "application/vnd.ms-word.document.macroenabled.12": {
+ source: "iana",
+ extensions: ["docm"]
+ },
+ "application/vnd.ms-word.template.macroenabled.12": {
+ source: "iana",
+ extensions: ["dotm"]
+ },
+ "application/vnd.ms-works": {
+ source: "iana",
+ extensions: ["wps", "wks", "wcm", "wdb"]
+ },
+ "application/vnd.ms-wpl": {
+ source: "iana",
+ extensions: ["wpl"]
+ },
+ "application/vnd.ms-xpsdocument": {
+ source: "iana",
+ compressible: false,
+ extensions: ["xps"]
+ },
+ "application/vnd.msa-disk-image": {
+ source: "iana"
+ },
+ "application/vnd.mseq": {
+ source: "iana",
+ extensions: ["mseq"]
+ },
+ "application/vnd.msign": {
+ source: "iana"
+ },
+ "application/vnd.multiad.creator": {
+ source: "iana"
+ },
+ "application/vnd.multiad.creator.cif": {
+ source: "iana"
+ },
+ "application/vnd.music-niff": {
+ source: "iana"
+ },
+ "application/vnd.musician": {
+ source: "iana",
+ extensions: ["mus"]
+ },
+ "application/vnd.muvee.style": {
+ source: "iana",
+ extensions: ["msty"]
+ },
+ "application/vnd.mynfc": {
+ source: "iana",
+ extensions: ["taglet"]
+ },
+ "application/vnd.nacamar.ybrid+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.ncd.control": {
+ source: "iana"
+ },
+ "application/vnd.ncd.reference": {
+ source: "iana"
+ },
+ "application/vnd.nearst.inv+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.nebumind.line": {
+ source: "iana"
+ },
+ "application/vnd.nervana": {
+ source: "iana"
+ },
+ "application/vnd.netfpx": {
+ source: "iana"
+ },
+ "application/vnd.neurolanguage.nlu": {
+ source: "iana",
+ extensions: ["nlu"]
+ },
+ "application/vnd.nimn": {
+ source: "iana"
+ },
+ "application/vnd.nintendo.nitro.rom": {
+ source: "iana"
+ },
+ "application/vnd.nintendo.snes.rom": {
+ source: "iana"
+ },
+ "application/vnd.nitf": {
+ source: "iana",
+ extensions: ["ntf", "nitf"]
+ },
+ "application/vnd.noblenet-directory": {
+ source: "iana",
+ extensions: ["nnd"]
+ },
+ "application/vnd.noblenet-sealer": {
+ source: "iana",
+ extensions: ["nns"]
+ },
+ "application/vnd.noblenet-web": {
+ source: "iana",
+ extensions: ["nnw"]
+ },
+ "application/vnd.nokia.catalogs": {
+ source: "iana"
+ },
+ "application/vnd.nokia.conml+wbxml": {
+ source: "iana"
+ },
+ "application/vnd.nokia.conml+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.nokia.iptv.config+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.nokia.isds-radio-presets": {
+ source: "iana"
+ },
+ "application/vnd.nokia.landmark+wbxml": {
+ source: "iana"
+ },
+ "application/vnd.nokia.landmark+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.nokia.landmarkcollection+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.nokia.n-gage.ac+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["ac"]
+ },
+ "application/vnd.nokia.n-gage.data": {
+ source: "iana",
+ extensions: ["ngdat"]
+ },
+ "application/vnd.nokia.n-gage.symbian.install": {
+ source: "iana",
+ extensions: ["n-gage"]
+ },
+ "application/vnd.nokia.ncd": {
+ source: "iana"
+ },
+ "application/vnd.nokia.pcd+wbxml": {
+ source: "iana"
+ },
+ "application/vnd.nokia.pcd+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.nokia.radio-preset": {
+ source: "iana",
+ extensions: ["rpst"]
+ },
+ "application/vnd.nokia.radio-presets": {
+ source: "iana",
+ extensions: ["rpss"]
+ },
+ "application/vnd.novadigm.edm": {
+ source: "iana",
+ extensions: ["edm"]
+ },
+ "application/vnd.novadigm.edx": {
+ source: "iana",
+ extensions: ["edx"]
+ },
+ "application/vnd.novadigm.ext": {
+ source: "iana",
+ extensions: ["ext"]
+ },
+ "application/vnd.ntt-local.content-share": {
+ source: "iana"
+ },
+ "application/vnd.ntt-local.file-transfer": {
+ source: "iana"
+ },
+ "application/vnd.ntt-local.ogw_remote-access": {
+ source: "iana"
+ },
+ "application/vnd.ntt-local.sip-ta_remote": {
+ source: "iana"
+ },
+ "application/vnd.ntt-local.sip-ta_tcp_stream": {
+ source: "iana"
+ },
+ "application/vnd.oasis.opendocument.chart": {
+ source: "iana",
+ extensions: ["odc"]
+ },
+ "application/vnd.oasis.opendocument.chart-template": {
+ source: "iana",
+ extensions: ["otc"]
+ },
+ "application/vnd.oasis.opendocument.database": {
+ source: "iana",
+ extensions: ["odb"]
+ },
+ "application/vnd.oasis.opendocument.formula": {
+ source: "iana",
+ extensions: ["odf"]
+ },
+ "application/vnd.oasis.opendocument.formula-template": {
+ source: "iana",
+ extensions: ["odft"]
+ },
+ "application/vnd.oasis.opendocument.graphics": {
+ source: "iana",
+ compressible: false,
+ extensions: ["odg"]
+ },
+ "application/vnd.oasis.opendocument.graphics-template": {
+ source: "iana",
+ extensions: ["otg"]
+ },
+ "application/vnd.oasis.opendocument.image": {
+ source: "iana",
+ extensions: ["odi"]
+ },
+ "application/vnd.oasis.opendocument.image-template": {
+ source: "iana",
+ extensions: ["oti"]
+ },
+ "application/vnd.oasis.opendocument.presentation": {
+ source: "iana",
+ compressible: false,
+ extensions: ["odp"]
+ },
+ "application/vnd.oasis.opendocument.presentation-template": {
+ source: "iana",
+ extensions: ["otp"]
+ },
+ "application/vnd.oasis.opendocument.spreadsheet": {
+ source: "iana",
+ compressible: false,
+ extensions: ["ods"]
+ },
+ "application/vnd.oasis.opendocument.spreadsheet-template": {
+ source: "iana",
+ extensions: ["ots"]
+ },
+ "application/vnd.oasis.opendocument.text": {
+ source: "iana",
+ compressible: false,
+ extensions: ["odt"]
+ },
+ "application/vnd.oasis.opendocument.text-master": {
+ source: "iana",
+ extensions: ["odm"]
+ },
+ "application/vnd.oasis.opendocument.text-template": {
+ source: "iana",
+ extensions: ["ott"]
+ },
+ "application/vnd.oasis.opendocument.text-web": {
+ source: "iana",
+ extensions: ["oth"]
+ },
+ "application/vnd.obn": {
+ source: "iana"
+ },
+ "application/vnd.ocf+cbor": {
+ source: "iana"
+ },
+ "application/vnd.oci.image.manifest.v1+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oftn.l10n+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oipf.contentaccessdownload+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oipf.contentaccessstreaming+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oipf.cspg-hexbinary": {
+ source: "iana"
+ },
+ "application/vnd.oipf.dae.svg+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oipf.dae.xhtml+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oipf.mippvcontrolmessage+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oipf.pae.gem": {
+ source: "iana"
+ },
+ "application/vnd.oipf.spdiscovery+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oipf.spdlist+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oipf.ueprofile+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oipf.userprofile+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.olpc-sugar": {
+ source: "iana",
+ extensions: ["xo"]
+ },
+ "application/vnd.oma-scws-config": {
+ source: "iana"
+ },
+ "application/vnd.oma-scws-http-request": {
+ source: "iana"
+ },
+ "application/vnd.oma-scws-http-response": {
+ source: "iana"
+ },
+ "application/vnd.oma.bcast.associated-procedure-parameter+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.bcast.drm-trigger+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.bcast.imd+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.bcast.ltkm": {
+ source: "iana"
+ },
+ "application/vnd.oma.bcast.notification+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.bcast.provisioningtrigger": {
+ source: "iana"
+ },
+ "application/vnd.oma.bcast.sgboot": {
+ source: "iana"
+ },
+ "application/vnd.oma.bcast.sgdd+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.bcast.sgdu": {
+ source: "iana"
+ },
+ "application/vnd.oma.bcast.simple-symbol-container": {
+ source: "iana"
+ },
+ "application/vnd.oma.bcast.smartcard-trigger+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.bcast.sprov+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.bcast.stkm": {
+ source: "iana"
+ },
+ "application/vnd.oma.cab-address-book+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.cab-feature-handler+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.cab-pcc+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.cab-subs-invite+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.cab-user-prefs+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.dcd": {
+ source: "iana"
+ },
+ "application/vnd.oma.dcdc": {
+ source: "iana"
+ },
+ "application/vnd.oma.dd2+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["dd2"]
+ },
+ "application/vnd.oma.drm.risd+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.group-usage-list+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.lwm2m+cbor": {
+ source: "iana"
+ },
+ "application/vnd.oma.lwm2m+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.lwm2m+tlv": {
+ source: "iana"
+ },
+ "application/vnd.oma.pal+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.poc.detailed-progress-report+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.poc.final-report+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.poc.groups+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.poc.invocation-descriptor+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.poc.optimized-progress-report+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.push": {
+ source: "iana"
+ },
+ "application/vnd.oma.scidm.messages+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oma.xcap-directory+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.omads-email+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/vnd.omads-file+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/vnd.omads-folder+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/vnd.omaloc-supl-init": {
+ source: "iana"
+ },
+ "application/vnd.onepager": {
+ source: "iana"
+ },
+ "application/vnd.onepagertamp": {
+ source: "iana"
+ },
+ "application/vnd.onepagertamx": {
+ source: "iana"
+ },
+ "application/vnd.onepagertat": {
+ source: "iana"
+ },
+ "application/vnd.onepagertatp": {
+ source: "iana"
+ },
+ "application/vnd.onepagertatx": {
+ source: "iana"
+ },
+ "application/vnd.openblox.game+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["obgx"]
+ },
+ "application/vnd.openblox.game-binary": {
+ source: "iana"
+ },
+ "application/vnd.openeye.oeb": {
+ source: "iana"
+ },
+ "application/vnd.openofficeorg.extension": {
+ source: "apache",
+ extensions: ["oxt"]
+ },
+ "application/vnd.openstreetmap.data+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["osm"]
+ },
+ "application/vnd.opentimestamps.ots": {
+ source: "iana"
+ },
+ "application/vnd.openxmlformats-officedocument.custom-properties+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.customxmlproperties+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.drawing+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.drawingml.chart+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.extended-properties+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.comments+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation": {
+ source: "iana",
+ compressible: false,
+ extensions: ["pptx"]
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.presprops+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.slide": {
+ source: "iana",
+ extensions: ["sldx"]
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.slide+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.slideshow": {
+ source: "iana",
+ extensions: ["ppsx"]
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.tags+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.template": {
+ source: "iana",
+ extensions: ["potx"]
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
+ source: "iana",
+ compressible: false,
+ extensions: ["xlsx"]
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
+ source: "iana",
+ extensions: ["xltx"]
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.theme+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.themeoverride+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.vmldrawing": {
+ source: "iana"
+ },
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
+ source: "iana",
+ compressible: false,
+ extensions: ["docx"]
+ },
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
+ source: "iana",
+ extensions: ["dotx"]
+ },
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-package.core-properties+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.openxmlformats-package.relationships+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oracle.resource+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.orange.indata": {
+ source: "iana"
+ },
+ "application/vnd.osa.netdeploy": {
+ source: "iana"
+ },
+ "application/vnd.osgeo.mapguide.package": {
+ source: "iana",
+ extensions: ["mgp"]
+ },
+ "application/vnd.osgi.bundle": {
+ source: "iana"
+ },
+ "application/vnd.osgi.dp": {
+ source: "iana",
+ extensions: ["dp"]
+ },
+ "application/vnd.osgi.subsystem": {
+ source: "iana",
+ extensions: ["esa"]
+ },
+ "application/vnd.otps.ct-kip+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.oxli.countgraph": {
+ source: "iana"
+ },
+ "application/vnd.pagerduty+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.palm": {
+ source: "iana",
+ extensions: ["pdb", "pqa", "oprc"]
+ },
+ "application/vnd.panoply": {
+ source: "iana"
+ },
+ "application/vnd.paos.xml": {
+ source: "iana"
+ },
+ "application/vnd.patentdive": {
+ source: "iana"
+ },
+ "application/vnd.patientecommsdoc": {
+ source: "iana"
+ },
+ "application/vnd.pawaafile": {
+ source: "iana",
+ extensions: ["paw"]
+ },
+ "application/vnd.pcos": {
+ source: "iana"
+ },
+ "application/vnd.pg.format": {
+ source: "iana",
+ extensions: ["str"]
+ },
+ "application/vnd.pg.osasli": {
+ source: "iana",
+ extensions: ["ei6"]
+ },
+ "application/vnd.piaccess.application-licence": {
+ source: "iana"
+ },
+ "application/vnd.picsel": {
+ source: "iana",
+ extensions: ["efif"]
+ },
+ "application/vnd.pmi.widget": {
+ source: "iana",
+ extensions: ["wg"]
+ },
+ "application/vnd.poc.group-advertisement+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.pocketlearn": {
+ source: "iana",
+ extensions: ["plf"]
+ },
+ "application/vnd.powerbuilder6": {
+ source: "iana",
+ extensions: ["pbd"]
+ },
+ "application/vnd.powerbuilder6-s": {
+ source: "iana"
+ },
+ "application/vnd.powerbuilder7": {
+ source: "iana"
+ },
+ "application/vnd.powerbuilder7-s": {
+ source: "iana"
+ },
+ "application/vnd.powerbuilder75": {
+ source: "iana"
+ },
+ "application/vnd.powerbuilder75-s": {
+ source: "iana"
+ },
+ "application/vnd.preminet": {
+ source: "iana"
+ },
+ "application/vnd.previewsystems.box": {
+ source: "iana",
+ extensions: ["box"]
+ },
+ "application/vnd.proteus.magazine": {
+ source: "iana",
+ extensions: ["mgz"]
+ },
+ "application/vnd.psfs": {
+ source: "iana"
+ },
+ "application/vnd.publishare-delta-tree": {
+ source: "iana",
+ extensions: ["qps"]
+ },
+ "application/vnd.pvi.ptid1": {
+ source: "iana",
+ extensions: ["ptid"]
+ },
+ "application/vnd.pwg-multiplexed": {
+ source: "iana"
+ },
+ "application/vnd.pwg-xhtml-print+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.qualcomm.brew-app-res": {
+ source: "iana"
+ },
+ "application/vnd.quarantainenet": {
+ source: "iana"
+ },
+ "application/vnd.quark.quarkxpress": {
+ source: "iana",
+ extensions: ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"]
+ },
+ "application/vnd.quobject-quoxdocument": {
+ source: "iana"
+ },
+ "application/vnd.radisys.moml+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.radisys.msml+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.radisys.msml-audit+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.radisys.msml-audit-conf+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.radisys.msml-audit-conn+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.radisys.msml-audit-dialog+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.radisys.msml-audit-stream+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.radisys.msml-conf+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.radisys.msml-dialog+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.radisys.msml-dialog-base+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.radisys.msml-dialog-fax-detect+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.radisys.msml-dialog-fax-sendrecv+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.radisys.msml-dialog-group+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.radisys.msml-dialog-speech+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.radisys.msml-dialog-transform+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.rainstor.data": {
+ source: "iana"
+ },
+ "application/vnd.rapid": {
+ source: "iana"
+ },
+ "application/vnd.rar": {
+ source: "iana",
+ extensions: ["rar"]
+ },
+ "application/vnd.realvnc.bed": {
+ source: "iana",
+ extensions: ["bed"]
+ },
+ "application/vnd.recordare.musicxml": {
+ source: "iana",
+ extensions: ["mxl"]
+ },
+ "application/vnd.recordare.musicxml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["musicxml"]
+ },
+ "application/vnd.renlearn.rlprint": {
+ source: "iana"
+ },
+ "application/vnd.resilient.logic": {
+ source: "iana"
+ },
+ "application/vnd.restful+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.rig.cryptonote": {
+ source: "iana",
+ extensions: ["cryptonote"]
+ },
+ "application/vnd.rim.cod": {
+ source: "apache",
+ extensions: ["cod"]
+ },
+ "application/vnd.rn-realmedia": {
+ source: "apache",
+ extensions: ["rm"]
+ },
+ "application/vnd.rn-realmedia-vbr": {
+ source: "apache",
+ extensions: ["rmvb"]
+ },
+ "application/vnd.route66.link66+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["link66"]
+ },
+ "application/vnd.rs-274x": {
+ source: "iana"
+ },
+ "application/vnd.ruckus.download": {
+ source: "iana"
+ },
+ "application/vnd.s3sms": {
+ source: "iana"
+ },
+ "application/vnd.sailingtracker.track": {
+ source: "iana",
+ extensions: ["st"]
+ },
+ "application/vnd.sar": {
+ source: "iana"
+ },
+ "application/vnd.sbm.cid": {
+ source: "iana"
+ },
+ "application/vnd.sbm.mid2": {
+ source: "iana"
+ },
+ "application/vnd.scribus": {
+ source: "iana"
+ },
+ "application/vnd.sealed.3df": {
+ source: "iana"
+ },
+ "application/vnd.sealed.csf": {
+ source: "iana"
+ },
+ "application/vnd.sealed.doc": {
+ source: "iana"
+ },
+ "application/vnd.sealed.eml": {
+ source: "iana"
+ },
+ "application/vnd.sealed.mht": {
+ source: "iana"
+ },
+ "application/vnd.sealed.net": {
+ source: "iana"
+ },
+ "application/vnd.sealed.ppt": {
+ source: "iana"
+ },
+ "application/vnd.sealed.tiff": {
+ source: "iana"
+ },
+ "application/vnd.sealed.xls": {
+ source: "iana"
+ },
+ "application/vnd.sealedmedia.softseal.html": {
+ source: "iana"
+ },
+ "application/vnd.sealedmedia.softseal.pdf": {
+ source: "iana"
+ },
+ "application/vnd.seemail": {
+ source: "iana",
+ extensions: ["see"]
+ },
+ "application/vnd.seis+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.sema": {
+ source: "iana",
+ extensions: ["sema"]
+ },
+ "application/vnd.semd": {
+ source: "iana",
+ extensions: ["semd"]
+ },
+ "application/vnd.semf": {
+ source: "iana",
+ extensions: ["semf"]
+ },
+ "application/vnd.shade-save-file": {
+ source: "iana"
+ },
+ "application/vnd.shana.informed.formdata": {
+ source: "iana",
+ extensions: ["ifm"]
+ },
+ "application/vnd.shana.informed.formtemplate": {
+ source: "iana",
+ extensions: ["itp"]
+ },
+ "application/vnd.shana.informed.interchange": {
+ source: "iana",
+ extensions: ["iif"]
+ },
+ "application/vnd.shana.informed.package": {
+ source: "iana",
+ extensions: ["ipk"]
+ },
+ "application/vnd.shootproof+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.shopkick+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.shp": {
+ source: "iana"
+ },
+ "application/vnd.shx": {
+ source: "iana"
+ },
+ "application/vnd.sigrok.session": {
+ source: "iana"
+ },
+ "application/vnd.simtech-mindmapper": {
+ source: "iana",
+ extensions: ["twd", "twds"]
+ },
+ "application/vnd.siren+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.smaf": {
+ source: "iana",
+ extensions: ["mmf"]
+ },
+ "application/vnd.smart.notebook": {
+ source: "iana"
+ },
+ "application/vnd.smart.teacher": {
+ source: "iana",
+ extensions: ["teacher"]
+ },
+ "application/vnd.snesdev-page-table": {
+ source: "iana"
+ },
+ "application/vnd.software602.filler.form+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["fo"]
+ },
+ "application/vnd.software602.filler.form-xml-zip": {
+ source: "iana"
+ },
+ "application/vnd.solent.sdkm+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["sdkm", "sdkd"]
+ },
+ "application/vnd.spotfire.dxp": {
+ source: "iana",
+ extensions: ["dxp"]
+ },
+ "application/vnd.spotfire.sfs": {
+ source: "iana",
+ extensions: ["sfs"]
+ },
+ "application/vnd.sqlite3": {
+ source: "iana"
+ },
+ "application/vnd.sss-cod": {
+ source: "iana"
+ },
+ "application/vnd.sss-dtf": {
+ source: "iana"
+ },
+ "application/vnd.sss-ntf": {
+ source: "iana"
+ },
+ "application/vnd.stardivision.calc": {
+ source: "apache",
+ extensions: ["sdc"]
+ },
+ "application/vnd.stardivision.draw": {
+ source: "apache",
+ extensions: ["sda"]
+ },
+ "application/vnd.stardivision.impress": {
+ source: "apache",
+ extensions: ["sdd"]
+ },
+ "application/vnd.stardivision.math": {
+ source: "apache",
+ extensions: ["smf"]
+ },
+ "application/vnd.stardivision.writer": {
+ source: "apache",
+ extensions: ["sdw", "vor"]
+ },
+ "application/vnd.stardivision.writer-global": {
+ source: "apache",
+ extensions: ["sgl"]
+ },
+ "application/vnd.stepmania.package": {
+ source: "iana",
+ extensions: ["smzip"]
+ },
+ "application/vnd.stepmania.stepchart": {
+ source: "iana",
+ extensions: ["sm"]
+ },
+ "application/vnd.street-stream": {
+ source: "iana"
+ },
+ "application/vnd.sun.wadl+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["wadl"]
+ },
+ "application/vnd.sun.xml.calc": {
+ source: "apache",
+ extensions: ["sxc"]
+ },
+ "application/vnd.sun.xml.calc.template": {
+ source: "apache",
+ extensions: ["stc"]
+ },
+ "application/vnd.sun.xml.draw": {
+ source: "apache",
+ extensions: ["sxd"]
+ },
+ "application/vnd.sun.xml.draw.template": {
+ source: "apache",
+ extensions: ["std"]
+ },
+ "application/vnd.sun.xml.impress": {
+ source: "apache",
+ extensions: ["sxi"]
+ },
+ "application/vnd.sun.xml.impress.template": {
+ source: "apache",
+ extensions: ["sti"]
+ },
+ "application/vnd.sun.xml.math": {
+ source: "apache",
+ extensions: ["sxm"]
+ },
+ "application/vnd.sun.xml.writer": {
+ source: "apache",
+ extensions: ["sxw"]
+ },
+ "application/vnd.sun.xml.writer.global": {
+ source: "apache",
+ extensions: ["sxg"]
+ },
+ "application/vnd.sun.xml.writer.template": {
+ source: "apache",
+ extensions: ["stw"]
+ },
+ "application/vnd.sus-calendar": {
+ source: "iana",
+ extensions: ["sus", "susp"]
+ },
+ "application/vnd.svd": {
+ source: "iana",
+ extensions: ["svd"]
+ },
+ "application/vnd.swiftview-ics": {
+ source: "iana"
+ },
+ "application/vnd.sycle+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.syft+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.symbian.install": {
+ source: "apache",
+ extensions: ["sis", "sisx"]
+ },
+ "application/vnd.syncml+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true,
+ extensions: ["xsm"]
+ },
+ "application/vnd.syncml.dm+wbxml": {
+ source: "iana",
+ charset: "UTF-8",
+ extensions: ["bdm"]
+ },
+ "application/vnd.syncml.dm+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true,
+ extensions: ["xdm"]
+ },
+ "application/vnd.syncml.dm.notification": {
+ source: "iana"
+ },
+ "application/vnd.syncml.dmddf+wbxml": {
+ source: "iana"
+ },
+ "application/vnd.syncml.dmddf+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true,
+ extensions: ["ddf"]
+ },
+ "application/vnd.syncml.dmtnds+wbxml": {
+ source: "iana"
+ },
+ "application/vnd.syncml.dmtnds+xml": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true
+ },
+ "application/vnd.syncml.ds.notification": {
+ source: "iana"
+ },
+ "application/vnd.tableschema+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.tao.intent-module-archive": {
+ source: "iana",
+ extensions: ["tao"]
+ },
+ "application/vnd.tcpdump.pcap": {
+ source: "iana",
+ extensions: ["pcap", "cap", "dmp"]
+ },
+ "application/vnd.think-cell.ppttc+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.tmd.mediaflex.api+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.tml": {
+ source: "iana"
+ },
+ "application/vnd.tmobile-livetv": {
+ source: "iana",
+ extensions: ["tmo"]
+ },
+ "application/vnd.tri.onesource": {
+ source: "iana"
+ },
+ "application/vnd.trid.tpt": {
+ source: "iana",
+ extensions: ["tpt"]
+ },
+ "application/vnd.triscape.mxs": {
+ source: "iana",
+ extensions: ["mxs"]
+ },
+ "application/vnd.trueapp": {
+ source: "iana",
+ extensions: ["tra"]
+ },
+ "application/vnd.truedoc": {
+ source: "iana"
+ },
+ "application/vnd.ubisoft.webplayer": {
+ source: "iana"
+ },
+ "application/vnd.ufdl": {
+ source: "iana",
+ extensions: ["ufd", "ufdl"]
+ },
+ "application/vnd.uiq.theme": {
+ source: "iana",
+ extensions: ["utz"]
+ },
+ "application/vnd.umajin": {
+ source: "iana",
+ extensions: ["umj"]
+ },
+ "application/vnd.unity": {
+ source: "iana",
+ extensions: ["unityweb"]
+ },
+ "application/vnd.uoml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["uoml"]
+ },
+ "application/vnd.uplanet.alert": {
+ source: "iana"
+ },
+ "application/vnd.uplanet.alert-wbxml": {
+ source: "iana"
+ },
+ "application/vnd.uplanet.bearer-choice": {
+ source: "iana"
+ },
+ "application/vnd.uplanet.bearer-choice-wbxml": {
+ source: "iana"
+ },
+ "application/vnd.uplanet.cacheop": {
+ source: "iana"
+ },
+ "application/vnd.uplanet.cacheop-wbxml": {
+ source: "iana"
+ },
+ "application/vnd.uplanet.channel": {
+ source: "iana"
+ },
+ "application/vnd.uplanet.channel-wbxml": {
+ source: "iana"
+ },
+ "application/vnd.uplanet.list": {
+ source: "iana"
+ },
+ "application/vnd.uplanet.list-wbxml": {
+ source: "iana"
+ },
+ "application/vnd.uplanet.listcmd": {
+ source: "iana"
+ },
+ "application/vnd.uplanet.listcmd-wbxml": {
+ source: "iana"
+ },
+ "application/vnd.uplanet.signal": {
+ source: "iana"
+ },
+ "application/vnd.uri-map": {
+ source: "iana"
+ },
+ "application/vnd.valve.source.material": {
+ source: "iana"
+ },
+ "application/vnd.vcx": {
+ source: "iana",
+ extensions: ["vcx"]
+ },
+ "application/vnd.vd-study": {
+ source: "iana"
+ },
+ "application/vnd.vectorworks": {
+ source: "iana"
+ },
+ "application/vnd.vel+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.verimatrix.vcas": {
+ source: "iana"
+ },
+ "application/vnd.veritone.aion+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.veryant.thin": {
+ source: "iana"
+ },
+ "application/vnd.ves.encrypted": {
+ source: "iana"
+ },
+ "application/vnd.vidsoft.vidconference": {
+ source: "iana"
+ },
+ "application/vnd.visio": {
+ source: "iana",
+ extensions: ["vsd", "vst", "vss", "vsw"]
+ },
+ "application/vnd.visionary": {
+ source: "iana",
+ extensions: ["vis"]
+ },
+ "application/vnd.vividence.scriptfile": {
+ source: "iana"
+ },
+ "application/vnd.vsf": {
+ source: "iana",
+ extensions: ["vsf"]
+ },
+ "application/vnd.wap.sic": {
+ source: "iana"
+ },
+ "application/vnd.wap.slc": {
+ source: "iana"
+ },
+ "application/vnd.wap.wbxml": {
+ source: "iana",
+ charset: "UTF-8",
+ extensions: ["wbxml"]
+ },
+ "application/vnd.wap.wmlc": {
+ source: "iana",
+ extensions: ["wmlc"]
+ },
+ "application/vnd.wap.wmlscriptc": {
+ source: "iana",
+ extensions: ["wmlsc"]
+ },
+ "application/vnd.webturbo": {
+ source: "iana",
+ extensions: ["wtb"]
+ },
+ "application/vnd.wfa.dpp": {
+ source: "iana"
+ },
+ "application/vnd.wfa.p2p": {
+ source: "iana"
+ },
+ "application/vnd.wfa.wsc": {
+ source: "iana"
+ },
+ "application/vnd.windows.devicepairing": {
+ source: "iana"
+ },
+ "application/vnd.wmc": {
+ source: "iana"
+ },
+ "application/vnd.wmf.bootstrap": {
+ source: "iana"
+ },
+ "application/vnd.wolfram.mathematica": {
+ source: "iana"
+ },
+ "application/vnd.wolfram.mathematica.package": {
+ source: "iana"
+ },
+ "application/vnd.wolfram.player": {
+ source: "iana",
+ extensions: ["nbp"]
+ },
+ "application/vnd.wordperfect": {
+ source: "iana",
+ extensions: ["wpd"]
+ },
+ "application/vnd.wqd": {
+ source: "iana",
+ extensions: ["wqd"]
+ },
+ "application/vnd.wrq-hp3000-labelled": {
+ source: "iana"
+ },
+ "application/vnd.wt.stf": {
+ source: "iana",
+ extensions: ["stf"]
+ },
+ "application/vnd.wv.csp+wbxml": {
+ source: "iana"
+ },
+ "application/vnd.wv.csp+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.wv.ssp+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.xacml+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.xara": {
+ source: "iana",
+ extensions: ["xar"]
+ },
+ "application/vnd.xfdl": {
+ source: "iana",
+ extensions: ["xfdl"]
+ },
+ "application/vnd.xfdl.webform": {
+ source: "iana"
+ },
+ "application/vnd.xmi+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vnd.xmpie.cpkg": {
+ source: "iana"
+ },
+ "application/vnd.xmpie.dpkg": {
+ source: "iana"
+ },
+ "application/vnd.xmpie.plan": {
+ source: "iana"
+ },
+ "application/vnd.xmpie.ppkg": {
+ source: "iana"
+ },
+ "application/vnd.xmpie.xlim": {
+ source: "iana"
+ },
+ "application/vnd.yamaha.hv-dic": {
+ source: "iana",
+ extensions: ["hvd"]
+ },
+ "application/vnd.yamaha.hv-script": {
+ source: "iana",
+ extensions: ["hvs"]
+ },
+ "application/vnd.yamaha.hv-voice": {
+ source: "iana",
+ extensions: ["hvp"]
+ },
+ "application/vnd.yamaha.openscoreformat": {
+ source: "iana",
+ extensions: ["osf"]
+ },
+ "application/vnd.yamaha.openscoreformat.osfpvg+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["osfpvg"]
+ },
+ "application/vnd.yamaha.remote-setup": {
+ source: "iana"
+ },
+ "application/vnd.yamaha.smaf-audio": {
+ source: "iana",
+ extensions: ["saf"]
+ },
+ "application/vnd.yamaha.smaf-phrase": {
+ source: "iana",
+ extensions: ["spf"]
+ },
+ "application/vnd.yamaha.through-ngn": {
+ source: "iana"
+ },
+ "application/vnd.yamaha.tunnel-udpencap": {
+ source: "iana"
+ },
+ "application/vnd.yaoweme": {
+ source: "iana"
+ },
+ "application/vnd.yellowriver-custom-menu": {
+ source: "iana",
+ extensions: ["cmp"]
+ },
+ "application/vnd.youtube.yt": {
+ source: "iana"
+ },
+ "application/vnd.zul": {
+ source: "iana",
+ extensions: ["zir", "zirz"]
+ },
+ "application/vnd.zzazz.deck+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["zaz"]
+ },
+ "application/voicexml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["vxml"]
+ },
+ "application/voucher-cms+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/vq-rtcpxr": {
+ source: "iana"
+ },
+ "application/wasm": {
+ source: "iana",
+ compressible: true,
+ extensions: ["wasm"]
+ },
+ "application/watcherinfo+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["wif"]
+ },
+ "application/webpush-options+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/whoispp-query": {
+ source: "iana"
+ },
+ "application/whoispp-response": {
+ source: "iana"
+ },
+ "application/widget": {
+ source: "iana",
+ extensions: ["wgt"]
+ },
+ "application/winhlp": {
+ source: "apache",
+ extensions: ["hlp"]
+ },
+ "application/wita": {
+ source: "iana"
+ },
+ "application/wordperfect5.1": {
+ source: "iana"
+ },
+ "application/wsdl+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["wsdl"]
+ },
+ "application/wspolicy+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["wspolicy"]
+ },
+ "application/x-7z-compressed": {
+ source: "apache",
+ compressible: false,
+ extensions: ["7z"]
+ },
+ "application/x-abiword": {
+ source: "apache",
+ extensions: ["abw"]
+ },
+ "application/x-ace-compressed": {
+ source: "apache",
+ extensions: ["ace"]
+ },
+ "application/x-amf": {
+ source: "apache"
+ },
+ "application/x-apple-diskimage": {
+ source: "apache",
+ extensions: ["dmg"]
+ },
+ "application/x-arj": {
+ compressible: false,
+ extensions: ["arj"]
+ },
+ "application/x-authorware-bin": {
+ source: "apache",
+ extensions: ["aab", "x32", "u32", "vox"]
+ },
+ "application/x-authorware-map": {
+ source: "apache",
+ extensions: ["aam"]
+ },
+ "application/x-authorware-seg": {
+ source: "apache",
+ extensions: ["aas"]
+ },
+ "application/x-bcpio": {
+ source: "apache",
+ extensions: ["bcpio"]
+ },
+ "application/x-bdoc": {
+ compressible: false,
+ extensions: ["bdoc"]
+ },
+ "application/x-bittorrent": {
+ source: "apache",
+ extensions: ["torrent"]
+ },
+ "application/x-blorb": {
+ source: "apache",
+ extensions: ["blb", "blorb"]
+ },
+ "application/x-bzip": {
+ source: "apache",
+ compressible: false,
+ extensions: ["bz"]
+ },
+ "application/x-bzip2": {
+ source: "apache",
+ compressible: false,
+ extensions: ["bz2", "boz"]
+ },
+ "application/x-cbr": {
+ source: "apache",
+ extensions: ["cbr", "cba", "cbt", "cbz", "cb7"]
+ },
+ "application/x-cdlink": {
+ source: "apache",
+ extensions: ["vcd"]
+ },
+ "application/x-cfs-compressed": {
+ source: "apache",
+ extensions: ["cfs"]
+ },
+ "application/x-chat": {
+ source: "apache",
+ extensions: ["chat"]
+ },
+ "application/x-chess-pgn": {
+ source: "apache",
+ extensions: ["pgn"]
+ },
+ "application/x-chrome-extension": {
+ extensions: ["crx"]
+ },
+ "application/x-cocoa": {
+ source: "nginx",
+ extensions: ["cco"]
+ },
+ "application/x-compress": {
+ source: "apache"
+ },
+ "application/x-conference": {
+ source: "apache",
+ extensions: ["nsc"]
+ },
+ "application/x-cpio": {
+ source: "apache",
+ extensions: ["cpio"]
+ },
+ "application/x-csh": {
+ source: "apache",
+ extensions: ["csh"]
+ },
+ "application/x-deb": {
+ compressible: false
+ },
+ "application/x-debian-package": {
+ source: "apache",
+ extensions: ["deb", "udeb"]
+ },
+ "application/x-dgc-compressed": {
+ source: "apache",
+ extensions: ["dgc"]
+ },
+ "application/x-director": {
+ source: "apache",
+ extensions: ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"]
+ },
+ "application/x-doom": {
+ source: "apache",
+ extensions: ["wad"]
+ },
+ "application/x-dtbncx+xml": {
+ source: "apache",
+ compressible: true,
+ extensions: ["ncx"]
+ },
+ "application/x-dtbook+xml": {
+ source: "apache",
+ compressible: true,
+ extensions: ["dtb"]
+ },
+ "application/x-dtbresource+xml": {
+ source: "apache",
+ compressible: true,
+ extensions: ["res"]
+ },
+ "application/x-dvi": {
+ source: "apache",
+ compressible: false,
+ extensions: ["dvi"]
+ },
+ "application/x-envoy": {
+ source: "apache",
+ extensions: ["evy"]
+ },
+ "application/x-eva": {
+ source: "apache",
+ extensions: ["eva"]
+ },
+ "application/x-font-bdf": {
+ source: "apache",
+ extensions: ["bdf"]
+ },
+ "application/x-font-dos": {
+ source: "apache"
+ },
+ "application/x-font-framemaker": {
+ source: "apache"
+ },
+ "application/x-font-ghostscript": {
+ source: "apache",
+ extensions: ["gsf"]
+ },
+ "application/x-font-libgrx": {
+ source: "apache"
+ },
+ "application/x-font-linux-psf": {
+ source: "apache",
+ extensions: ["psf"]
+ },
+ "application/x-font-pcf": {
+ source: "apache",
+ extensions: ["pcf"]
+ },
+ "application/x-font-snf": {
+ source: "apache",
+ extensions: ["snf"]
+ },
+ "application/x-font-speedo": {
+ source: "apache"
+ },
+ "application/x-font-sunos-news": {
+ source: "apache"
+ },
+ "application/x-font-type1": {
+ source: "apache",
+ extensions: ["pfa", "pfb", "pfm", "afm"]
+ },
+ "application/x-font-vfont": {
+ source: "apache"
+ },
+ "application/x-freearc": {
+ source: "apache",
+ extensions: ["arc"]
+ },
+ "application/x-futuresplash": {
+ source: "apache",
+ extensions: ["spl"]
+ },
+ "application/x-gca-compressed": {
+ source: "apache",
+ extensions: ["gca"]
+ },
+ "application/x-glulx": {
+ source: "apache",
+ extensions: ["ulx"]
+ },
+ "application/x-gnumeric": {
+ source: "apache",
+ extensions: ["gnumeric"]
+ },
+ "application/x-gramps-xml": {
+ source: "apache",
+ extensions: ["gramps"]
+ },
+ "application/x-gtar": {
+ source: "apache",
+ extensions: ["gtar"]
+ },
+ "application/x-gzip": {
+ source: "apache"
+ },
+ "application/x-hdf": {
+ source: "apache",
+ extensions: ["hdf"]
+ },
+ "application/x-httpd-php": {
+ compressible: true,
+ extensions: ["php"]
+ },
+ "application/x-install-instructions": {
+ source: "apache",
+ extensions: ["install"]
+ },
+ "application/x-iso9660-image": {
+ source: "apache",
+ extensions: ["iso"]
+ },
+ "application/x-iwork-keynote-sffkey": {
+ extensions: ["key"]
+ },
+ "application/x-iwork-numbers-sffnumbers": {
+ extensions: ["numbers"]
+ },
+ "application/x-iwork-pages-sffpages": {
+ extensions: ["pages"]
+ },
+ "application/x-java-archive-diff": {
+ source: "nginx",
+ extensions: ["jardiff"]
+ },
+ "application/x-java-jnlp-file": {
+ source: "apache",
+ compressible: false,
+ extensions: ["jnlp"]
+ },
+ "application/x-javascript": {
+ compressible: true
+ },
+ "application/x-keepass2": {
+ extensions: ["kdbx"]
+ },
+ "application/x-latex": {
+ source: "apache",
+ compressible: false,
+ extensions: ["latex"]
+ },
+ "application/x-lua-bytecode": {
+ extensions: ["luac"]
+ },
+ "application/x-lzh-compressed": {
+ source: "apache",
+ extensions: ["lzh", "lha"]
+ },
+ "application/x-makeself": {
+ source: "nginx",
+ extensions: ["run"]
+ },
+ "application/x-mie": {
+ source: "apache",
+ extensions: ["mie"]
+ },
+ "application/x-mobipocket-ebook": {
+ source: "apache",
+ extensions: ["prc", "mobi"]
+ },
+ "application/x-mpegurl": {
+ compressible: false
+ },
+ "application/x-ms-application": {
+ source: "apache",
+ extensions: ["application"]
+ },
+ "application/x-ms-shortcut": {
+ source: "apache",
+ extensions: ["lnk"]
+ },
+ "application/x-ms-wmd": {
+ source: "apache",
+ extensions: ["wmd"]
+ },
+ "application/x-ms-wmz": {
+ source: "apache",
+ extensions: ["wmz"]
+ },
+ "application/x-ms-xbap": {
+ source: "apache",
+ extensions: ["xbap"]
+ },
+ "application/x-msaccess": {
+ source: "apache",
+ extensions: ["mdb"]
+ },
+ "application/x-msbinder": {
+ source: "apache",
+ extensions: ["obd"]
+ },
+ "application/x-mscardfile": {
+ source: "apache",
+ extensions: ["crd"]
+ },
+ "application/x-msclip": {
+ source: "apache",
+ extensions: ["clp"]
+ },
+ "application/x-msdos-program": {
+ extensions: ["exe"]
+ },
+ "application/x-msdownload": {
+ source: "apache",
+ extensions: ["exe", "dll", "com", "bat", "msi"]
+ },
+ "application/x-msmediaview": {
+ source: "apache",
+ extensions: ["mvb", "m13", "m14"]
+ },
+ "application/x-msmetafile": {
+ source: "apache",
+ extensions: ["wmf", "wmz", "emf", "emz"]
+ },
+ "application/x-msmoney": {
+ source: "apache",
+ extensions: ["mny"]
+ },
+ "application/x-mspublisher": {
+ source: "apache",
+ extensions: ["pub"]
+ },
+ "application/x-msschedule": {
+ source: "apache",
+ extensions: ["scd"]
+ },
+ "application/x-msterminal": {
+ source: "apache",
+ extensions: ["trm"]
+ },
+ "application/x-mswrite": {
+ source: "apache",
+ extensions: ["wri"]
+ },
+ "application/x-netcdf": {
+ source: "apache",
+ extensions: ["nc", "cdf"]
+ },
+ "application/x-ns-proxy-autoconfig": {
+ compressible: true,
+ extensions: ["pac"]
+ },
+ "application/x-nzb": {
+ source: "apache",
+ extensions: ["nzb"]
+ },
+ "application/x-perl": {
+ source: "nginx",
+ extensions: ["pl", "pm"]
+ },
+ "application/x-pilot": {
+ source: "nginx",
+ extensions: ["prc", "pdb"]
+ },
+ "application/x-pkcs12": {
+ source: "apache",
+ compressible: false,
+ extensions: ["p12", "pfx"]
+ },
+ "application/x-pkcs7-certificates": {
+ source: "apache",
+ extensions: ["p7b", "spc"]
+ },
+ "application/x-pkcs7-certreqresp": {
+ source: "apache",
+ extensions: ["p7r"]
+ },
+ "application/x-pki-message": {
+ source: "iana"
+ },
+ "application/x-rar-compressed": {
+ source: "apache",
+ compressible: false,
+ extensions: ["rar"]
+ },
+ "application/x-redhat-package-manager": {
+ source: "nginx",
+ extensions: ["rpm"]
+ },
+ "application/x-research-info-systems": {
+ source: "apache",
+ extensions: ["ris"]
+ },
+ "application/x-sea": {
+ source: "nginx",
+ extensions: ["sea"]
+ },
+ "application/x-sh": {
+ source: "apache",
+ compressible: true,
+ extensions: ["sh"]
+ },
+ "application/x-shar": {
+ source: "apache",
+ extensions: ["shar"]
+ },
+ "application/x-shockwave-flash": {
+ source: "apache",
+ compressible: false,
+ extensions: ["swf"]
+ },
+ "application/x-silverlight-app": {
+ source: "apache",
+ extensions: ["xap"]
+ },
+ "application/x-sql": {
+ source: "apache",
+ extensions: ["sql"]
+ },
+ "application/x-stuffit": {
+ source: "apache",
+ compressible: false,
+ extensions: ["sit"]
+ },
+ "application/x-stuffitx": {
+ source: "apache",
+ extensions: ["sitx"]
+ },
+ "application/x-subrip": {
+ source: "apache",
+ extensions: ["srt"]
+ },
+ "application/x-sv4cpio": {
+ source: "apache",
+ extensions: ["sv4cpio"]
+ },
+ "application/x-sv4crc": {
+ source: "apache",
+ extensions: ["sv4crc"]
+ },
+ "application/x-t3vm-image": {
+ source: "apache",
+ extensions: ["t3"]
+ },
+ "application/x-tads": {
+ source: "apache",
+ extensions: ["gam"]
+ },
+ "application/x-tar": {
+ source: "apache",
+ compressible: true,
+ extensions: ["tar"]
+ },
+ "application/x-tcl": {
+ source: "apache",
+ extensions: ["tcl", "tk"]
+ },
+ "application/x-tex": {
+ source: "apache",
+ extensions: ["tex"]
+ },
+ "application/x-tex-tfm": {
+ source: "apache",
+ extensions: ["tfm"]
+ },
+ "application/x-texinfo": {
+ source: "apache",
+ extensions: ["texinfo", "texi"]
+ },
+ "application/x-tgif": {
+ source: "apache",
+ extensions: ["obj"]
+ },
+ "application/x-ustar": {
+ source: "apache",
+ extensions: ["ustar"]
+ },
+ "application/x-virtualbox-hdd": {
+ compressible: true,
+ extensions: ["hdd"]
+ },
+ "application/x-virtualbox-ova": {
+ compressible: true,
+ extensions: ["ova"]
+ },
+ "application/x-virtualbox-ovf": {
+ compressible: true,
+ extensions: ["ovf"]
+ },
+ "application/x-virtualbox-vbox": {
+ compressible: true,
+ extensions: ["vbox"]
+ },
+ "application/x-virtualbox-vbox-extpack": {
+ compressible: false,
+ extensions: ["vbox-extpack"]
+ },
+ "application/x-virtualbox-vdi": {
+ compressible: true,
+ extensions: ["vdi"]
+ },
+ "application/x-virtualbox-vhd": {
+ compressible: true,
+ extensions: ["vhd"]
+ },
+ "application/x-virtualbox-vmdk": {
+ compressible: true,
+ extensions: ["vmdk"]
+ },
+ "application/x-wais-source": {
+ source: "apache",
+ extensions: ["src"]
+ },
+ "application/x-web-app-manifest+json": {
+ compressible: true,
+ extensions: ["webapp"]
+ },
+ "application/x-www-form-urlencoded": {
+ source: "iana",
+ compressible: true
+ },
+ "application/x-x509-ca-cert": {
+ source: "iana",
+ extensions: ["der", "crt", "pem"]
+ },
+ "application/x-x509-ca-ra-cert": {
+ source: "iana"
+ },
+ "application/x-x509-next-ca-cert": {
+ source: "iana"
+ },
+ "application/x-xfig": {
+ source: "apache",
+ extensions: ["fig"]
+ },
+ "application/x-xliff+xml": {
+ source: "apache",
+ compressible: true,
+ extensions: ["xlf"]
+ },
+ "application/x-xpinstall": {
+ source: "apache",
+ compressible: false,
+ extensions: ["xpi"]
+ },
+ "application/x-xz": {
+ source: "apache",
+ extensions: ["xz"]
+ },
+ "application/x-zmachine": {
+ source: "apache",
+ extensions: ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"]
+ },
+ "application/x400-bp": {
+ source: "iana"
+ },
+ "application/xacml+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/xaml+xml": {
+ source: "apache",
+ compressible: true,
+ extensions: ["xaml"]
+ },
+ "application/xcap-att+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xav"]
+ },
+ "application/xcap-caps+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xca"]
+ },
+ "application/xcap-diff+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xdf"]
+ },
+ "application/xcap-el+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xel"]
+ },
+ "application/xcap-error+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/xcap-ns+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xns"]
+ },
+ "application/xcon-conference-info+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/xcon-conference-info-diff+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/xenc+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xenc"]
+ },
+ "application/xhtml+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xhtml", "xht"]
+ },
+ "application/xhtml-voice+xml": {
+ source: "apache",
+ compressible: true
+ },
+ "application/xliff+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xlf"]
+ },
+ "application/xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xml", "xsl", "xsd", "rng"]
+ },
+ "application/xml-dtd": {
+ source: "iana",
+ compressible: true,
+ extensions: ["dtd"]
+ },
+ "application/xml-external-parsed-entity": {
+ source: "iana"
+ },
+ "application/xml-patch+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/xmpp+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/xop+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xop"]
+ },
+ "application/xproc+xml": {
+ source: "apache",
+ compressible: true,
+ extensions: ["xpl"]
+ },
+ "application/xslt+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xsl", "xslt"]
+ },
+ "application/xspf+xml": {
+ source: "apache",
+ compressible: true,
+ extensions: ["xspf"]
+ },
+ "application/xv+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["mxml", "xhvml", "xvml", "xvm"]
+ },
+ "application/yang": {
+ source: "iana",
+ extensions: ["yang"]
+ },
+ "application/yang-data+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/yang-data+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/yang-patch+json": {
+ source: "iana",
+ compressible: true
+ },
+ "application/yang-patch+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "application/yin+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["yin"]
+ },
+ "application/zip": {
+ source: "iana",
+ compressible: false,
+ extensions: ["zip"]
+ },
+ "application/zlib": {
+ source: "iana"
+ },
+ "application/zstd": {
+ source: "iana"
+ },
+ "audio/1d-interleaved-parityfec": {
+ source: "iana"
+ },
+ "audio/32kadpcm": {
+ source: "iana"
+ },
+ "audio/3gpp": {
+ source: "iana",
+ compressible: false,
+ extensions: ["3gpp"]
+ },
+ "audio/3gpp2": {
+ source: "iana"
+ },
+ "audio/aac": {
+ source: "iana"
+ },
+ "audio/ac3": {
+ source: "iana"
+ },
+ "audio/adpcm": {
+ source: "apache",
+ extensions: ["adp"]
+ },
+ "audio/amr": {
+ source: "iana",
+ extensions: ["amr"]
+ },
+ "audio/amr-wb": {
+ source: "iana"
+ },
+ "audio/amr-wb+": {
+ source: "iana"
+ },
+ "audio/aptx": {
+ source: "iana"
+ },
+ "audio/asc": {
+ source: "iana"
+ },
+ "audio/atrac-advanced-lossless": {
+ source: "iana"
+ },
+ "audio/atrac-x": {
+ source: "iana"
+ },
+ "audio/atrac3": {
+ source: "iana"
+ },
+ "audio/basic": {
+ source: "iana",
+ compressible: false,
+ extensions: ["au", "snd"]
+ },
+ "audio/bv16": {
+ source: "iana"
+ },
+ "audio/bv32": {
+ source: "iana"
+ },
+ "audio/clearmode": {
+ source: "iana"
+ },
+ "audio/cn": {
+ source: "iana"
+ },
+ "audio/dat12": {
+ source: "iana"
+ },
+ "audio/dls": {
+ source: "iana"
+ },
+ "audio/dsr-es201108": {
+ source: "iana"
+ },
+ "audio/dsr-es202050": {
+ source: "iana"
+ },
+ "audio/dsr-es202211": {
+ source: "iana"
+ },
+ "audio/dsr-es202212": {
+ source: "iana"
+ },
+ "audio/dv": {
+ source: "iana"
+ },
+ "audio/dvi4": {
+ source: "iana"
+ },
+ "audio/eac3": {
+ source: "iana"
+ },
+ "audio/encaprtp": {
+ source: "iana"
+ },
+ "audio/evrc": {
+ source: "iana"
+ },
+ "audio/evrc-qcp": {
+ source: "iana"
+ },
+ "audio/evrc0": {
+ source: "iana"
+ },
+ "audio/evrc1": {
+ source: "iana"
+ },
+ "audio/evrcb": {
+ source: "iana"
+ },
+ "audio/evrcb0": {
+ source: "iana"
+ },
+ "audio/evrcb1": {
+ source: "iana"
+ },
+ "audio/evrcnw": {
+ source: "iana"
+ },
+ "audio/evrcnw0": {
+ source: "iana"
+ },
+ "audio/evrcnw1": {
+ source: "iana"
+ },
+ "audio/evrcwb": {
+ source: "iana"
+ },
+ "audio/evrcwb0": {
+ source: "iana"
+ },
+ "audio/evrcwb1": {
+ source: "iana"
+ },
+ "audio/evs": {
+ source: "iana"
+ },
+ "audio/flexfec": {
+ source: "iana"
+ },
+ "audio/fwdred": {
+ source: "iana"
+ },
+ "audio/g711-0": {
+ source: "iana"
+ },
+ "audio/g719": {
+ source: "iana"
+ },
+ "audio/g722": {
+ source: "iana"
+ },
+ "audio/g7221": {
+ source: "iana"
+ },
+ "audio/g723": {
+ source: "iana"
+ },
+ "audio/g726-16": {
+ source: "iana"
+ },
+ "audio/g726-24": {
+ source: "iana"
+ },
+ "audio/g726-32": {
+ source: "iana"
+ },
+ "audio/g726-40": {
+ source: "iana"
+ },
+ "audio/g728": {
+ source: "iana"
+ },
+ "audio/g729": {
+ source: "iana"
+ },
+ "audio/g7291": {
+ source: "iana"
+ },
+ "audio/g729d": {
+ source: "iana"
+ },
+ "audio/g729e": {
+ source: "iana"
+ },
+ "audio/gsm": {
+ source: "iana"
+ },
+ "audio/gsm-efr": {
+ source: "iana"
+ },
+ "audio/gsm-hr-08": {
+ source: "iana"
+ },
+ "audio/ilbc": {
+ source: "iana"
+ },
+ "audio/ip-mr_v2.5": {
+ source: "iana"
+ },
+ "audio/isac": {
+ source: "apache"
+ },
+ "audio/l16": {
+ source: "iana"
+ },
+ "audio/l20": {
+ source: "iana"
+ },
+ "audio/l24": {
+ source: "iana",
+ compressible: false
+ },
+ "audio/l8": {
+ source: "iana"
+ },
+ "audio/lpc": {
+ source: "iana"
+ },
+ "audio/melp": {
+ source: "iana"
+ },
+ "audio/melp1200": {
+ source: "iana"
+ },
+ "audio/melp2400": {
+ source: "iana"
+ },
+ "audio/melp600": {
+ source: "iana"
+ },
+ "audio/mhas": {
+ source: "iana"
+ },
+ "audio/midi": {
+ source: "apache",
+ extensions: ["mid", "midi", "kar", "rmi"]
+ },
+ "audio/mobile-xmf": {
+ source: "iana",
+ extensions: ["mxmf"]
+ },
+ "audio/mp3": {
+ compressible: false,
+ extensions: ["mp3"]
+ },
+ "audio/mp4": {
+ source: "iana",
+ compressible: false,
+ extensions: ["m4a", "mp4a"]
+ },
+ "audio/mp4a-latm": {
+ source: "iana"
+ },
+ "audio/mpa": {
+ source: "iana"
+ },
+ "audio/mpa-robust": {
+ source: "iana"
+ },
+ "audio/mpeg": {
+ source: "iana",
+ compressible: false,
+ extensions: ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"]
+ },
+ "audio/mpeg4-generic": {
+ source: "iana"
+ },
+ "audio/musepack": {
+ source: "apache"
+ },
+ "audio/ogg": {
+ source: "iana",
+ compressible: false,
+ extensions: ["oga", "ogg", "spx", "opus"]
+ },
+ "audio/opus": {
+ source: "iana"
+ },
+ "audio/parityfec": {
+ source: "iana"
+ },
+ "audio/pcma": {
+ source: "iana"
+ },
+ "audio/pcma-wb": {
+ source: "iana"
+ },
+ "audio/pcmu": {
+ source: "iana"
+ },
+ "audio/pcmu-wb": {
+ source: "iana"
+ },
+ "audio/prs.sid": {
+ source: "iana"
+ },
+ "audio/qcelp": {
+ source: "iana"
+ },
+ "audio/raptorfec": {
+ source: "iana"
+ },
+ "audio/red": {
+ source: "iana"
+ },
+ "audio/rtp-enc-aescm128": {
+ source: "iana"
+ },
+ "audio/rtp-midi": {
+ source: "iana"
+ },
+ "audio/rtploopback": {
+ source: "iana"
+ },
+ "audio/rtx": {
+ source: "iana"
+ },
+ "audio/s3m": {
+ source: "apache",
+ extensions: ["s3m"]
+ },
+ "audio/scip": {
+ source: "iana"
+ },
+ "audio/silk": {
+ source: "apache",
+ extensions: ["sil"]
+ },
+ "audio/smv": {
+ source: "iana"
+ },
+ "audio/smv-qcp": {
+ source: "iana"
+ },
+ "audio/smv0": {
+ source: "iana"
+ },
+ "audio/sofa": {
+ source: "iana"
+ },
+ "audio/sp-midi": {
+ source: "iana"
+ },
+ "audio/speex": {
+ source: "iana"
+ },
+ "audio/t140c": {
+ source: "iana"
+ },
+ "audio/t38": {
+ source: "iana"
+ },
+ "audio/telephone-event": {
+ source: "iana"
+ },
+ "audio/tetra_acelp": {
+ source: "iana"
+ },
+ "audio/tetra_acelp_bb": {
+ source: "iana"
+ },
+ "audio/tone": {
+ source: "iana"
+ },
+ "audio/tsvcis": {
+ source: "iana"
+ },
+ "audio/uemclip": {
+ source: "iana"
+ },
+ "audio/ulpfec": {
+ source: "iana"
+ },
+ "audio/usac": {
+ source: "iana"
+ },
+ "audio/vdvi": {
+ source: "iana"
+ },
+ "audio/vmr-wb": {
+ source: "iana"
+ },
+ "audio/vnd.3gpp.iufp": {
+ source: "iana"
+ },
+ "audio/vnd.4sb": {
+ source: "iana"
+ },
+ "audio/vnd.audiokoz": {
+ source: "iana"
+ },
+ "audio/vnd.celp": {
+ source: "iana"
+ },
+ "audio/vnd.cisco.nse": {
+ source: "iana"
+ },
+ "audio/vnd.cmles.radio-events": {
+ source: "iana"
+ },
+ "audio/vnd.cns.anp1": {
+ source: "iana"
+ },
+ "audio/vnd.cns.inf1": {
+ source: "iana"
+ },
+ "audio/vnd.dece.audio": {
+ source: "iana",
+ extensions: ["uva", "uvva"]
+ },
+ "audio/vnd.digital-winds": {
+ source: "iana",
+ extensions: ["eol"]
+ },
+ "audio/vnd.dlna.adts": {
+ source: "iana"
+ },
+ "audio/vnd.dolby.heaac.1": {
+ source: "iana"
+ },
+ "audio/vnd.dolby.heaac.2": {
+ source: "iana"
+ },
+ "audio/vnd.dolby.mlp": {
+ source: "iana"
+ },
+ "audio/vnd.dolby.mps": {
+ source: "iana"
+ },
+ "audio/vnd.dolby.pl2": {
+ source: "iana"
+ },
+ "audio/vnd.dolby.pl2x": {
+ source: "iana"
+ },
+ "audio/vnd.dolby.pl2z": {
+ source: "iana"
+ },
+ "audio/vnd.dolby.pulse.1": {
+ source: "iana"
+ },
+ "audio/vnd.dra": {
+ source: "iana",
+ extensions: ["dra"]
+ },
+ "audio/vnd.dts": {
+ source: "iana",
+ extensions: ["dts"]
+ },
+ "audio/vnd.dts.hd": {
+ source: "iana",
+ extensions: ["dtshd"]
+ },
+ "audio/vnd.dts.uhd": {
+ source: "iana"
+ },
+ "audio/vnd.dvb.file": {
+ source: "iana"
+ },
+ "audio/vnd.everad.plj": {
+ source: "iana"
+ },
+ "audio/vnd.hns.audio": {
+ source: "iana"
+ },
+ "audio/vnd.lucent.voice": {
+ source: "iana",
+ extensions: ["lvp"]
+ },
+ "audio/vnd.ms-playready.media.pya": {
+ source: "iana",
+ extensions: ["pya"]
+ },
+ "audio/vnd.nokia.mobile-xmf": {
+ source: "iana"
+ },
+ "audio/vnd.nortel.vbk": {
+ source: "iana"
+ },
+ "audio/vnd.nuera.ecelp4800": {
+ source: "iana",
+ extensions: ["ecelp4800"]
+ },
+ "audio/vnd.nuera.ecelp7470": {
+ source: "iana",
+ extensions: ["ecelp7470"]
+ },
+ "audio/vnd.nuera.ecelp9600": {
+ source: "iana",
+ extensions: ["ecelp9600"]
+ },
+ "audio/vnd.octel.sbc": {
+ source: "iana"
+ },
+ "audio/vnd.presonus.multitrack": {
+ source: "iana"
+ },
+ "audio/vnd.qcelp": {
+ source: "iana"
+ },
+ "audio/vnd.rhetorex.32kadpcm": {
+ source: "iana"
+ },
+ "audio/vnd.rip": {
+ source: "iana",
+ extensions: ["rip"]
+ },
+ "audio/vnd.rn-realaudio": {
+ compressible: false
+ },
+ "audio/vnd.sealedmedia.softseal.mpeg": {
+ source: "iana"
+ },
+ "audio/vnd.vmx.cvsd": {
+ source: "iana"
+ },
+ "audio/vnd.wave": {
+ compressible: false
+ },
+ "audio/vorbis": {
+ source: "iana",
+ compressible: false
+ },
+ "audio/vorbis-config": {
+ source: "iana"
+ },
+ "audio/wav": {
+ compressible: false,
+ extensions: ["wav"]
+ },
+ "audio/wave": {
+ compressible: false,
+ extensions: ["wav"]
+ },
+ "audio/webm": {
+ source: "apache",
+ compressible: false,
+ extensions: ["weba"]
+ },
+ "audio/x-aac": {
+ source: "apache",
+ compressible: false,
+ extensions: ["aac"]
+ },
+ "audio/x-aiff": {
+ source: "apache",
+ extensions: ["aif", "aiff", "aifc"]
+ },
+ "audio/x-caf": {
+ source: "apache",
+ compressible: false,
+ extensions: ["caf"]
+ },
+ "audio/x-flac": {
+ source: "apache",
+ extensions: ["flac"]
+ },
+ "audio/x-m4a": {
+ source: "nginx",
+ extensions: ["m4a"]
+ },
+ "audio/x-matroska": {
+ source: "apache",
+ extensions: ["mka"]
+ },
+ "audio/x-mpegurl": {
+ source: "apache",
+ extensions: ["m3u"]
+ },
+ "audio/x-ms-wax": {
+ source: "apache",
+ extensions: ["wax"]
+ },
+ "audio/x-ms-wma": {
+ source: "apache",
+ extensions: ["wma"]
+ },
+ "audio/x-pn-realaudio": {
+ source: "apache",
+ extensions: ["ram", "ra"]
+ },
+ "audio/x-pn-realaudio-plugin": {
+ source: "apache",
+ extensions: ["rmp"]
+ },
+ "audio/x-realaudio": {
+ source: "nginx",
+ extensions: ["ra"]
+ },
+ "audio/x-tta": {
+ source: "apache"
+ },
+ "audio/x-wav": {
+ source: "apache",
+ extensions: ["wav"]
+ },
+ "audio/xm": {
+ source: "apache",
+ extensions: ["xm"]
+ },
+ "chemical/x-cdx": {
+ source: "apache",
+ extensions: ["cdx"]
+ },
+ "chemical/x-cif": {
+ source: "apache",
+ extensions: ["cif"]
+ },
+ "chemical/x-cmdf": {
+ source: "apache",
+ extensions: ["cmdf"]
+ },
+ "chemical/x-cml": {
+ source: "apache",
+ extensions: ["cml"]
+ },
+ "chemical/x-csml": {
+ source: "apache",
+ extensions: ["csml"]
+ },
+ "chemical/x-pdb": {
+ source: "apache"
+ },
+ "chemical/x-xyz": {
+ source: "apache",
+ extensions: ["xyz"]
+ },
+ "font/collection": {
+ source: "iana",
+ extensions: ["ttc"]
+ },
+ "font/otf": {
+ source: "iana",
+ compressible: true,
+ extensions: ["otf"]
+ },
+ "font/sfnt": {
+ source: "iana"
+ },
+ "font/ttf": {
+ source: "iana",
+ compressible: true,
+ extensions: ["ttf"]
+ },
+ "font/woff": {
+ source: "iana",
+ extensions: ["woff"]
+ },
+ "font/woff2": {
+ source: "iana",
+ extensions: ["woff2"]
+ },
+ "image/aces": {
+ source: "iana",
+ extensions: ["exr"]
+ },
+ "image/apng": {
+ compressible: false,
+ extensions: ["apng"]
+ },
+ "image/avci": {
+ source: "iana",
+ extensions: ["avci"]
+ },
+ "image/avcs": {
+ source: "iana",
+ extensions: ["avcs"]
+ },
+ "image/avif": {
+ source: "iana",
+ compressible: false,
+ extensions: ["avif"]
+ },
+ "image/bmp": {
+ source: "iana",
+ compressible: true,
+ extensions: ["bmp"]
+ },
+ "image/cgm": {
+ source: "iana",
+ extensions: ["cgm"]
+ },
+ "image/dicom-rle": {
+ source: "iana",
+ extensions: ["drle"]
+ },
+ "image/emf": {
+ source: "iana",
+ extensions: ["emf"]
+ },
+ "image/fits": {
+ source: "iana",
+ extensions: ["fits"]
+ },
+ "image/g3fax": {
+ source: "iana",
+ extensions: ["g3"]
+ },
+ "image/gif": {
+ source: "iana",
+ compressible: false,
+ extensions: ["gif"]
+ },
+ "image/heic": {
+ source: "iana",
+ extensions: ["heic"]
+ },
+ "image/heic-sequence": {
+ source: "iana",
+ extensions: ["heics"]
+ },
+ "image/heif": {
+ source: "iana",
+ extensions: ["heif"]
+ },
+ "image/heif-sequence": {
+ source: "iana",
+ extensions: ["heifs"]
+ },
+ "image/hej2k": {
+ source: "iana",
+ extensions: ["hej2"]
+ },
+ "image/hsj2": {
+ source: "iana",
+ extensions: ["hsj2"]
+ },
+ "image/ief": {
+ source: "iana",
+ extensions: ["ief"]
+ },
+ "image/jls": {
+ source: "iana",
+ extensions: ["jls"]
+ },
+ "image/jp2": {
+ source: "iana",
+ compressible: false,
+ extensions: ["jp2", "jpg2"]
+ },
+ "image/jpeg": {
+ source: "iana",
+ compressible: false,
+ extensions: ["jpeg", "jpg", "jpe"]
+ },
+ "image/jph": {
+ source: "iana",
+ extensions: ["jph"]
+ },
+ "image/jphc": {
+ source: "iana",
+ extensions: ["jhc"]
+ },
+ "image/jpm": {
+ source: "iana",
+ compressible: false,
+ extensions: ["jpm"]
+ },
+ "image/jpx": {
+ source: "iana",
+ compressible: false,
+ extensions: ["jpx", "jpf"]
+ },
+ "image/jxr": {
+ source: "iana",
+ extensions: ["jxr"]
+ },
+ "image/jxra": {
+ source: "iana",
+ extensions: ["jxra"]
+ },
+ "image/jxrs": {
+ source: "iana",
+ extensions: ["jxrs"]
+ },
+ "image/jxs": {
+ source: "iana",
+ extensions: ["jxs"]
+ },
+ "image/jxsc": {
+ source: "iana",
+ extensions: ["jxsc"]
+ },
+ "image/jxsi": {
+ source: "iana",
+ extensions: ["jxsi"]
+ },
+ "image/jxss": {
+ source: "iana",
+ extensions: ["jxss"]
+ },
+ "image/ktx": {
+ source: "iana",
+ extensions: ["ktx"]
+ },
+ "image/ktx2": {
+ source: "iana",
+ extensions: ["ktx2"]
+ },
+ "image/naplps": {
+ source: "iana"
+ },
+ "image/pjpeg": {
+ compressible: false
+ },
+ "image/png": {
+ source: "iana",
+ compressible: false,
+ extensions: ["png"]
+ },
+ "image/prs.btif": {
+ source: "iana",
+ extensions: ["btif"]
+ },
+ "image/prs.pti": {
+ source: "iana",
+ extensions: ["pti"]
+ },
+ "image/pwg-raster": {
+ source: "iana"
+ },
+ "image/sgi": {
+ source: "apache",
+ extensions: ["sgi"]
+ },
+ "image/svg+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["svg", "svgz"]
+ },
+ "image/t38": {
+ source: "iana",
+ extensions: ["t38"]
+ },
+ "image/tiff": {
+ source: "iana",
+ compressible: false,
+ extensions: ["tif", "tiff"]
+ },
+ "image/tiff-fx": {
+ source: "iana",
+ extensions: ["tfx"]
+ },
+ "image/vnd.adobe.photoshop": {
+ source: "iana",
+ compressible: true,
+ extensions: ["psd"]
+ },
+ "image/vnd.airzip.accelerator.azv": {
+ source: "iana",
+ extensions: ["azv"]
+ },
+ "image/vnd.cns.inf2": {
+ source: "iana"
+ },
+ "image/vnd.dece.graphic": {
+ source: "iana",
+ extensions: ["uvi", "uvvi", "uvg", "uvvg"]
+ },
+ "image/vnd.djvu": {
+ source: "iana",
+ extensions: ["djvu", "djv"]
+ },
+ "image/vnd.dvb.subtitle": {
+ source: "iana",
+ extensions: ["sub"]
+ },
+ "image/vnd.dwg": {
+ source: "iana",
+ extensions: ["dwg"]
+ },
+ "image/vnd.dxf": {
+ source: "iana",
+ extensions: ["dxf"]
+ },
+ "image/vnd.fastbidsheet": {
+ source: "iana",
+ extensions: ["fbs"]
+ },
+ "image/vnd.fpx": {
+ source: "iana",
+ extensions: ["fpx"]
+ },
+ "image/vnd.fst": {
+ source: "iana",
+ extensions: ["fst"]
+ },
+ "image/vnd.fujixerox.edmics-mmr": {
+ source: "iana",
+ extensions: ["mmr"]
+ },
+ "image/vnd.fujixerox.edmics-rlc": {
+ source: "iana",
+ extensions: ["rlc"]
+ },
+ "image/vnd.globalgraphics.pgb": {
+ source: "iana"
+ },
+ "image/vnd.microsoft.icon": {
+ source: "iana",
+ compressible: true,
+ extensions: ["ico"]
+ },
+ "image/vnd.mix": {
+ source: "iana"
+ },
+ "image/vnd.mozilla.apng": {
+ source: "iana"
+ },
+ "image/vnd.ms-dds": {
+ compressible: true,
+ extensions: ["dds"]
+ },
+ "image/vnd.ms-modi": {
+ source: "iana",
+ extensions: ["mdi"]
+ },
+ "image/vnd.ms-photo": {
+ source: "apache",
+ extensions: ["wdp"]
+ },
+ "image/vnd.net-fpx": {
+ source: "iana",
+ extensions: ["npx"]
+ },
+ "image/vnd.pco.b16": {
+ source: "iana",
+ extensions: ["b16"]
+ },
+ "image/vnd.radiance": {
+ source: "iana"
+ },
+ "image/vnd.sealed.png": {
+ source: "iana"
+ },
+ "image/vnd.sealedmedia.softseal.gif": {
+ source: "iana"
+ },
+ "image/vnd.sealedmedia.softseal.jpg": {
+ source: "iana"
+ },
+ "image/vnd.svf": {
+ source: "iana"
+ },
+ "image/vnd.tencent.tap": {
+ source: "iana",
+ extensions: ["tap"]
+ },
+ "image/vnd.valve.source.texture": {
+ source: "iana",
+ extensions: ["vtf"]
+ },
+ "image/vnd.wap.wbmp": {
+ source: "iana",
+ extensions: ["wbmp"]
+ },
+ "image/vnd.xiff": {
+ source: "iana",
+ extensions: ["xif"]
+ },
+ "image/vnd.zbrush.pcx": {
+ source: "iana",
+ extensions: ["pcx"]
+ },
+ "image/webp": {
+ source: "apache",
+ extensions: ["webp"]
+ },
+ "image/wmf": {
+ source: "iana",
+ extensions: ["wmf"]
+ },
+ "image/x-3ds": {
+ source: "apache",
+ extensions: ["3ds"]
+ },
+ "image/x-cmu-raster": {
+ source: "apache",
+ extensions: ["ras"]
+ },
+ "image/x-cmx": {
+ source: "apache",
+ extensions: ["cmx"]
+ },
+ "image/x-freehand": {
+ source: "apache",
+ extensions: ["fh", "fhc", "fh4", "fh5", "fh7"]
+ },
+ "image/x-icon": {
+ source: "apache",
+ compressible: true,
+ extensions: ["ico"]
+ },
+ "image/x-jng": {
+ source: "nginx",
+ extensions: ["jng"]
+ },
+ "image/x-mrsid-image": {
+ source: "apache",
+ extensions: ["sid"]
+ },
+ "image/x-ms-bmp": {
+ source: "nginx",
+ compressible: true,
+ extensions: ["bmp"]
+ },
+ "image/x-pcx": {
+ source: "apache",
+ extensions: ["pcx"]
+ },
+ "image/x-pict": {
+ source: "apache",
+ extensions: ["pic", "pct"]
+ },
+ "image/x-portable-anymap": {
+ source: "apache",
+ extensions: ["pnm"]
+ },
+ "image/x-portable-bitmap": {
+ source: "apache",
+ extensions: ["pbm"]
+ },
+ "image/x-portable-graymap": {
+ source: "apache",
+ extensions: ["pgm"]
+ },
+ "image/x-portable-pixmap": {
+ source: "apache",
+ extensions: ["ppm"]
+ },
+ "image/x-rgb": {
+ source: "apache",
+ extensions: ["rgb"]
+ },
+ "image/x-tga": {
+ source: "apache",
+ extensions: ["tga"]
+ },
+ "image/x-xbitmap": {
+ source: "apache",
+ extensions: ["xbm"]
+ },
+ "image/x-xcf": {
+ compressible: false
+ },
+ "image/x-xpixmap": {
+ source: "apache",
+ extensions: ["xpm"]
+ },
+ "image/x-xwindowdump": {
+ source: "apache",
+ extensions: ["xwd"]
+ },
+ "message/cpim": {
+ source: "iana"
+ },
+ "message/delivery-status": {
+ source: "iana"
+ },
+ "message/disposition-notification": {
+ source: "iana",
+ extensions: [
+ "disposition-notification"
+ ]
+ },
+ "message/external-body": {
+ source: "iana"
+ },
+ "message/feedback-report": {
+ source: "iana"
+ },
+ "message/global": {
+ source: "iana",
+ extensions: ["u8msg"]
+ },
+ "message/global-delivery-status": {
+ source: "iana",
+ extensions: ["u8dsn"]
+ },
+ "message/global-disposition-notification": {
+ source: "iana",
+ extensions: ["u8mdn"]
+ },
+ "message/global-headers": {
+ source: "iana",
+ extensions: ["u8hdr"]
+ },
+ "message/http": {
+ source: "iana",
+ compressible: false
+ },
+ "message/imdn+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "message/news": {
+ source: "iana"
+ },
+ "message/partial": {
+ source: "iana",
+ compressible: false
+ },
+ "message/rfc822": {
+ source: "iana",
+ compressible: true,
+ extensions: ["eml", "mime"]
+ },
+ "message/s-http": {
+ source: "iana"
+ },
+ "message/sip": {
+ source: "iana"
+ },
+ "message/sipfrag": {
+ source: "iana"
+ },
+ "message/tracking-status": {
+ source: "iana"
+ },
+ "message/vnd.si.simp": {
+ source: "iana"
+ },
+ "message/vnd.wfa.wsc": {
+ source: "iana",
+ extensions: ["wsc"]
+ },
+ "model/3mf": {
+ source: "iana",
+ extensions: ["3mf"]
+ },
+ "model/e57": {
+ source: "iana"
+ },
+ "model/gltf+json": {
+ source: "iana",
+ compressible: true,
+ extensions: ["gltf"]
+ },
+ "model/gltf-binary": {
+ source: "iana",
+ compressible: true,
+ extensions: ["glb"]
+ },
+ "model/iges": {
+ source: "iana",
+ compressible: false,
+ extensions: ["igs", "iges"]
+ },
+ "model/mesh": {
+ source: "iana",
+ compressible: false,
+ extensions: ["msh", "mesh", "silo"]
+ },
+ "model/mtl": {
+ source: "iana",
+ extensions: ["mtl"]
+ },
+ "model/obj": {
+ source: "iana",
+ extensions: ["obj"]
+ },
+ "model/step": {
+ source: "iana"
+ },
+ "model/step+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["stpx"]
+ },
+ "model/step+zip": {
+ source: "iana",
+ compressible: false,
+ extensions: ["stpz"]
+ },
+ "model/step-xml+zip": {
+ source: "iana",
+ compressible: false,
+ extensions: ["stpxz"]
+ },
+ "model/stl": {
+ source: "iana",
+ extensions: ["stl"]
+ },
+ "model/vnd.collada+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["dae"]
+ },
+ "model/vnd.dwf": {
+ source: "iana",
+ extensions: ["dwf"]
+ },
+ "model/vnd.flatland.3dml": {
+ source: "iana"
+ },
+ "model/vnd.gdl": {
+ source: "iana",
+ extensions: ["gdl"]
+ },
+ "model/vnd.gs-gdl": {
+ source: "apache"
+ },
+ "model/vnd.gs.gdl": {
+ source: "iana"
+ },
+ "model/vnd.gtw": {
+ source: "iana",
+ extensions: ["gtw"]
+ },
+ "model/vnd.moml+xml": {
+ source: "iana",
+ compressible: true
+ },
+ "model/vnd.mts": {
+ source: "iana",
+ extensions: ["mts"]
+ },
+ "model/vnd.opengex": {
+ source: "iana",
+ extensions: ["ogex"]
+ },
+ "model/vnd.parasolid.transmit.binary": {
+ source: "iana",
+ extensions: ["x_b"]
+ },
+ "model/vnd.parasolid.transmit.text": {
+ source: "iana",
+ extensions: ["x_t"]
+ },
+ "model/vnd.pytha.pyox": {
+ source: "iana"
+ },
+ "model/vnd.rosette.annotated-data-model": {
+ source: "iana"
+ },
+ "model/vnd.sap.vds": {
+ source: "iana",
+ extensions: ["vds"]
+ },
+ "model/vnd.usdz+zip": {
+ source: "iana",
+ compressible: false,
+ extensions: ["usdz"]
+ },
+ "model/vnd.valve.source.compiled-map": {
+ source: "iana",
+ extensions: ["bsp"]
+ },
+ "model/vnd.vtu": {
+ source: "iana",
+ extensions: ["vtu"]
+ },
+ "model/vrml": {
+ source: "iana",
+ compressible: false,
+ extensions: ["wrl", "vrml"]
+ },
+ "model/x3d+binary": {
+ source: "apache",
+ compressible: false,
+ extensions: ["x3db", "x3dbz"]
+ },
+ "model/x3d+fastinfoset": {
+ source: "iana",
+ extensions: ["x3db"]
+ },
+ "model/x3d+vrml": {
+ source: "apache",
+ compressible: false,
+ extensions: ["x3dv", "x3dvz"]
+ },
+ "model/x3d+xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["x3d", "x3dz"]
+ },
+ "model/x3d-vrml": {
+ source: "iana",
+ extensions: ["x3dv"]
+ },
+ "multipart/alternative": {
+ source: "iana",
+ compressible: false
+ },
+ "multipart/appledouble": {
+ source: "iana"
+ },
+ "multipart/byteranges": {
+ source: "iana"
+ },
+ "multipart/digest": {
+ source: "iana"
+ },
+ "multipart/encrypted": {
+ source: "iana",
+ compressible: false
+ },
+ "multipart/form-data": {
+ source: "iana",
+ compressible: false
+ },
+ "multipart/header-set": {
+ source: "iana"
+ },
+ "multipart/mixed": {
+ source: "iana"
+ },
+ "multipart/multilingual": {
+ source: "iana"
+ },
+ "multipart/parallel": {
+ source: "iana"
+ },
+ "multipart/related": {
+ source: "iana",
+ compressible: false
+ },
+ "multipart/report": {
+ source: "iana"
+ },
+ "multipart/signed": {
+ source: "iana",
+ compressible: false
+ },
+ "multipart/vnd.bint.med-plus": {
+ source: "iana"
+ },
+ "multipart/voice-message": {
+ source: "iana"
+ },
+ "multipart/x-mixed-replace": {
+ source: "iana"
+ },
+ "text/1d-interleaved-parityfec": {
+ source: "iana"
+ },
+ "text/cache-manifest": {
+ source: "iana",
+ compressible: true,
+ extensions: ["appcache", "manifest"]
+ },
+ "text/calendar": {
+ source: "iana",
+ extensions: ["ics", "ifb"]
+ },
+ "text/calender": {
+ compressible: true
+ },
+ "text/cmd": {
+ compressible: true
+ },
+ "text/coffeescript": {
+ extensions: ["coffee", "litcoffee"]
+ },
+ "text/cql": {
+ source: "iana"
+ },
+ "text/cql-expression": {
+ source: "iana"
+ },
+ "text/cql-identifier": {
+ source: "iana"
+ },
+ "text/css": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true,
+ extensions: ["css"]
+ },
+ "text/csv": {
+ source: "iana",
+ compressible: true,
+ extensions: ["csv"]
+ },
+ "text/csv-schema": {
+ source: "iana"
+ },
+ "text/directory": {
+ source: "iana"
+ },
+ "text/dns": {
+ source: "iana"
+ },
+ "text/ecmascript": {
+ source: "iana"
+ },
+ "text/encaprtp": {
+ source: "iana"
+ },
+ "text/enriched": {
+ source: "iana"
+ },
+ "text/fhirpath": {
+ source: "iana"
+ },
+ "text/flexfec": {
+ source: "iana"
+ },
+ "text/fwdred": {
+ source: "iana"
+ },
+ "text/gff3": {
+ source: "iana"
+ },
+ "text/grammar-ref-list": {
+ source: "iana"
+ },
+ "text/html": {
+ source: "iana",
+ compressible: true,
+ extensions: ["html", "htm", "shtml"]
+ },
+ "text/jade": {
+ extensions: ["jade"]
+ },
+ "text/javascript": {
+ source: "iana",
+ compressible: true
+ },
+ "text/jcr-cnd": {
+ source: "iana"
+ },
+ "text/jsx": {
+ compressible: true,
+ extensions: ["jsx"]
+ },
+ "text/less": {
+ compressible: true,
+ extensions: ["less"]
+ },
+ "text/markdown": {
+ source: "iana",
+ compressible: true,
+ extensions: ["markdown", "md"]
+ },
+ "text/mathml": {
+ source: "nginx",
+ extensions: ["mml"]
+ },
+ "text/mdx": {
+ compressible: true,
+ extensions: ["mdx"]
+ },
+ "text/mizar": {
+ source: "iana"
+ },
+ "text/n3": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true,
+ extensions: ["n3"]
+ },
+ "text/parameters": {
+ source: "iana",
+ charset: "UTF-8"
+ },
+ "text/parityfec": {
+ source: "iana"
+ },
+ "text/plain": {
+ source: "iana",
+ compressible: true,
+ extensions: ["txt", "text", "conf", "def", "list", "log", "in", "ini"]
+ },
+ "text/provenance-notation": {
+ source: "iana",
+ charset: "UTF-8"
+ },
+ "text/prs.fallenstein.rst": {
+ source: "iana"
+ },
+ "text/prs.lines.tag": {
+ source: "iana",
+ extensions: ["dsc"]
+ },
+ "text/prs.prop.logic": {
+ source: "iana"
+ },
+ "text/raptorfec": {
+ source: "iana"
+ },
+ "text/red": {
+ source: "iana"
+ },
+ "text/rfc822-headers": {
+ source: "iana"
+ },
+ "text/richtext": {
+ source: "iana",
+ compressible: true,
+ extensions: ["rtx"]
+ },
+ "text/rtf": {
+ source: "iana",
+ compressible: true,
+ extensions: ["rtf"]
+ },
+ "text/rtp-enc-aescm128": {
+ source: "iana"
+ },
+ "text/rtploopback": {
+ source: "iana"
+ },
+ "text/rtx": {
+ source: "iana"
+ },
+ "text/sgml": {
+ source: "iana",
+ extensions: ["sgml", "sgm"]
+ },
+ "text/shaclc": {
+ source: "iana"
+ },
+ "text/shex": {
+ source: "iana",
+ extensions: ["shex"]
+ },
+ "text/slim": {
+ extensions: ["slim", "slm"]
+ },
+ "text/spdx": {
+ source: "iana",
+ extensions: ["spdx"]
+ },
+ "text/strings": {
+ source: "iana"
+ },
+ "text/stylus": {
+ extensions: ["stylus", "styl"]
+ },
+ "text/t140": {
+ source: "iana"
+ },
+ "text/tab-separated-values": {
+ source: "iana",
+ compressible: true,
+ extensions: ["tsv"]
+ },
+ "text/troff": {
+ source: "iana",
+ extensions: ["t", "tr", "roff", "man", "me", "ms"]
+ },
+ "text/turtle": {
+ source: "iana",
+ charset: "UTF-8",
+ extensions: ["ttl"]
+ },
+ "text/ulpfec": {
+ source: "iana"
+ },
+ "text/uri-list": {
+ source: "iana",
+ compressible: true,
+ extensions: ["uri", "uris", "urls"]
+ },
+ "text/vcard": {
+ source: "iana",
+ compressible: true,
+ extensions: ["vcard"]
+ },
+ "text/vnd.a": {
+ source: "iana"
+ },
+ "text/vnd.abc": {
+ source: "iana"
+ },
+ "text/vnd.ascii-art": {
+ source: "iana"
+ },
+ "text/vnd.curl": {
+ source: "iana",
+ extensions: ["curl"]
+ },
+ "text/vnd.curl.dcurl": {
+ source: "apache",
+ extensions: ["dcurl"]
+ },
+ "text/vnd.curl.mcurl": {
+ source: "apache",
+ extensions: ["mcurl"]
+ },
+ "text/vnd.curl.scurl": {
+ source: "apache",
+ extensions: ["scurl"]
+ },
+ "text/vnd.debian.copyright": {
+ source: "iana",
+ charset: "UTF-8"
+ },
+ "text/vnd.dmclientscript": {
+ source: "iana"
+ },
+ "text/vnd.dvb.subtitle": {
+ source: "iana",
+ extensions: ["sub"]
+ },
+ "text/vnd.esmertec.theme-descriptor": {
+ source: "iana",
+ charset: "UTF-8"
+ },
+ "text/vnd.familysearch.gedcom": {
+ source: "iana",
+ extensions: ["ged"]
+ },
+ "text/vnd.ficlab.flt": {
+ source: "iana"
+ },
+ "text/vnd.fly": {
+ source: "iana",
+ extensions: ["fly"]
+ },
+ "text/vnd.fmi.flexstor": {
+ source: "iana",
+ extensions: ["flx"]
+ },
+ "text/vnd.gml": {
+ source: "iana"
+ },
+ "text/vnd.graphviz": {
+ source: "iana",
+ extensions: ["gv"]
+ },
+ "text/vnd.hans": {
+ source: "iana"
+ },
+ "text/vnd.hgl": {
+ source: "iana"
+ },
+ "text/vnd.in3d.3dml": {
+ source: "iana",
+ extensions: ["3dml"]
+ },
+ "text/vnd.in3d.spot": {
+ source: "iana",
+ extensions: ["spot"]
+ },
+ "text/vnd.iptc.newsml": {
+ source: "iana"
+ },
+ "text/vnd.iptc.nitf": {
+ source: "iana"
+ },
+ "text/vnd.latex-z": {
+ source: "iana"
+ },
+ "text/vnd.motorola.reflex": {
+ source: "iana"
+ },
+ "text/vnd.ms-mediapackage": {
+ source: "iana"
+ },
+ "text/vnd.net2phone.commcenter.command": {
+ source: "iana"
+ },
+ "text/vnd.radisys.msml-basic-layout": {
+ source: "iana"
+ },
+ "text/vnd.senx.warpscript": {
+ source: "iana"
+ },
+ "text/vnd.si.uricatalogue": {
+ source: "iana"
+ },
+ "text/vnd.sosi": {
+ source: "iana"
+ },
+ "text/vnd.sun.j2me.app-descriptor": {
+ source: "iana",
+ charset: "UTF-8",
+ extensions: ["jad"]
+ },
+ "text/vnd.trolltech.linguist": {
+ source: "iana",
+ charset: "UTF-8"
+ },
+ "text/vnd.wap.si": {
+ source: "iana"
+ },
+ "text/vnd.wap.sl": {
+ source: "iana"
+ },
+ "text/vnd.wap.wml": {
+ source: "iana",
+ extensions: ["wml"]
+ },
+ "text/vnd.wap.wmlscript": {
+ source: "iana",
+ extensions: ["wmls"]
+ },
+ "text/vtt": {
+ source: "iana",
+ charset: "UTF-8",
+ compressible: true,
+ extensions: ["vtt"]
+ },
+ "text/x-asm": {
+ source: "apache",
+ extensions: ["s", "asm"]
+ },
+ "text/x-c": {
+ source: "apache",
+ extensions: ["c", "cc", "cxx", "cpp", "h", "hh", "dic"]
+ },
+ "text/x-component": {
+ source: "nginx",
+ extensions: ["htc"]
+ },
+ "text/x-fortran": {
+ source: "apache",
+ extensions: ["f", "for", "f77", "f90"]
+ },
+ "text/x-gwt-rpc": {
+ compressible: true
+ },
+ "text/x-handlebars-template": {
+ extensions: ["hbs"]
+ },
+ "text/x-java-source": {
+ source: "apache",
+ extensions: ["java"]
+ },
+ "text/x-jquery-tmpl": {
+ compressible: true
+ },
+ "text/x-lua": {
+ extensions: ["lua"]
+ },
+ "text/x-markdown": {
+ compressible: true,
+ extensions: ["mkd"]
+ },
+ "text/x-nfo": {
+ source: "apache",
+ extensions: ["nfo"]
+ },
+ "text/x-opml": {
+ source: "apache",
+ extensions: ["opml"]
+ },
+ "text/x-org": {
+ compressible: true,
+ extensions: ["org"]
+ },
+ "text/x-pascal": {
+ source: "apache",
+ extensions: ["p", "pas"]
+ },
+ "text/x-processing": {
+ compressible: true,
+ extensions: ["pde"]
+ },
+ "text/x-sass": {
+ extensions: ["sass"]
+ },
+ "text/x-scss": {
+ extensions: ["scss"]
+ },
+ "text/x-setext": {
+ source: "apache",
+ extensions: ["etx"]
+ },
+ "text/x-sfv": {
+ source: "apache",
+ extensions: ["sfv"]
+ },
+ "text/x-suse-ymp": {
+ compressible: true,
+ extensions: ["ymp"]
+ },
+ "text/x-uuencode": {
+ source: "apache",
+ extensions: ["uu"]
+ },
+ "text/x-vcalendar": {
+ source: "apache",
+ extensions: ["vcs"]
+ },
+ "text/x-vcard": {
+ source: "apache",
+ extensions: ["vcf"]
+ },
+ "text/xml": {
+ source: "iana",
+ compressible: true,
+ extensions: ["xml"]
+ },
+ "text/xml-external-parsed-entity": {
+ source: "iana"
+ },
+ "text/yaml": {
+ compressible: true,
+ extensions: ["yaml", "yml"]
+ },
+ "video/1d-interleaved-parityfec": {
+ source: "iana"
+ },
+ "video/3gpp": {
+ source: "iana",
+ extensions: ["3gp", "3gpp"]
+ },
+ "video/3gpp-tt": {
+ source: "iana"
+ },
+ "video/3gpp2": {
+ source: "iana",
+ extensions: ["3g2"]
+ },
+ "video/av1": {
+ source: "iana"
+ },
+ "video/bmpeg": {
+ source: "iana"
+ },
+ "video/bt656": {
+ source: "iana"
+ },
+ "video/celb": {
+ source: "iana"
+ },
+ "video/dv": {
+ source: "iana"
+ },
+ "video/encaprtp": {
+ source: "iana"
+ },
+ "video/ffv1": {
+ source: "iana"
+ },
+ "video/flexfec": {
+ source: "iana"
+ },
+ "video/h261": {
+ source: "iana",
+ extensions: ["h261"]
+ },
+ "video/h263": {
+ source: "iana",
+ extensions: ["h263"]
+ },
+ "video/h263-1998": {
+ source: "iana"
+ },
+ "video/h263-2000": {
+ source: "iana"
+ },
+ "video/h264": {
+ source: "iana",
+ extensions: ["h264"]
+ },
+ "video/h264-rcdo": {
+ source: "iana"
+ },
+ "video/h264-svc": {
+ source: "iana"
+ },
+ "video/h265": {
+ source: "iana"
+ },
+ "video/iso.segment": {
+ source: "iana",
+ extensions: ["m4s"]
+ },
+ "video/jpeg": {
+ source: "iana",
+ extensions: ["jpgv"]
+ },
+ "video/jpeg2000": {
+ source: "iana"
+ },
+ "video/jpm": {
+ source: "apache",
+ extensions: ["jpm", "jpgm"]
+ },
+ "video/jxsv": {
+ source: "iana"
+ },
+ "video/mj2": {
+ source: "iana",
+ extensions: ["mj2", "mjp2"]
+ },
+ "video/mp1s": {
+ source: "iana"
+ },
+ "video/mp2p": {
+ source: "iana"
+ },
+ "video/mp2t": {
+ source: "iana",
+ extensions: ["ts"]
+ },
+ "video/mp4": {
+ source: "iana",
+ compressible: false,
+ extensions: ["mp4", "mp4v", "mpg4"]
+ },
+ "video/mp4v-es": {
+ source: "iana"
+ },
+ "video/mpeg": {
+ source: "iana",
+ compressible: false,
+ extensions: ["mpeg", "mpg", "mpe", "m1v", "m2v"]
+ },
+ "video/mpeg4-generic": {
+ source: "iana"
+ },
+ "video/mpv": {
+ source: "iana"
+ },
+ "video/nv": {
+ source: "iana"
+ },
+ "video/ogg": {
+ source: "iana",
+ compressible: false,
+ extensions: ["ogv"]
+ },
+ "video/parityfec": {
+ source: "iana"
+ },
+ "video/pointer": {
+ source: "iana"
+ },
+ "video/quicktime": {
+ source: "iana",
+ compressible: false,
+ extensions: ["qt", "mov"]
+ },
+ "video/raptorfec": {
+ source: "iana"
+ },
+ "video/raw": {
+ source: "iana"
+ },
+ "video/rtp-enc-aescm128": {
+ source: "iana"
+ },
+ "video/rtploopback": {
+ source: "iana"
+ },
+ "video/rtx": {
+ source: "iana"
+ },
+ "video/scip": {
+ source: "iana"
+ },
+ "video/smpte291": {
+ source: "iana"
+ },
+ "video/smpte292m": {
+ source: "iana"
+ },
+ "video/ulpfec": {
+ source: "iana"
+ },
+ "video/vc1": {
+ source: "iana"
+ },
+ "video/vc2": {
+ source: "iana"
+ },
+ "video/vnd.cctv": {
+ source: "iana"
+ },
+ "video/vnd.dece.hd": {
+ source: "iana",
+ extensions: ["uvh", "uvvh"]
+ },
+ "video/vnd.dece.mobile": {
+ source: "iana",
+ extensions: ["uvm", "uvvm"]
+ },
+ "video/vnd.dece.mp4": {
+ source: "iana"
+ },
+ "video/vnd.dece.pd": {
+ source: "iana",
+ extensions: ["uvp", "uvvp"]
+ },
+ "video/vnd.dece.sd": {
+ source: "iana",
+ extensions: ["uvs", "uvvs"]
+ },
+ "video/vnd.dece.video": {
+ source: "iana",
+ extensions: ["uvv", "uvvv"]
+ },
+ "video/vnd.directv.mpeg": {
+ source: "iana"
+ },
+ "video/vnd.directv.mpeg-tts": {
+ source: "iana"
+ },
+ "video/vnd.dlna.mpeg-tts": {
+ source: "iana"
+ },
+ "video/vnd.dvb.file": {
+ source: "iana",
+ extensions: ["dvb"]
+ },
+ "video/vnd.fvt": {
+ source: "iana",
+ extensions: ["fvt"]
+ },
+ "video/vnd.hns.video": {
+ source: "iana"
+ },
+ "video/vnd.iptvforum.1dparityfec-1010": {
+ source: "iana"
+ },
+ "video/vnd.iptvforum.1dparityfec-2005": {
+ source: "iana"
+ },
+ "video/vnd.iptvforum.2dparityfec-1010": {
+ source: "iana"
+ },
+ "video/vnd.iptvforum.2dparityfec-2005": {
+ source: "iana"
+ },
+ "video/vnd.iptvforum.ttsavc": {
+ source: "iana"
+ },
+ "video/vnd.iptvforum.ttsmpeg2": {
+ source: "iana"
+ },
+ "video/vnd.motorola.video": {
+ source: "iana"
+ },
+ "video/vnd.motorola.videop": {
+ source: "iana"
+ },
+ "video/vnd.mpegurl": {
+ source: "iana",
+ extensions: ["mxu", "m4u"]
+ },
+ "video/vnd.ms-playready.media.pyv": {
+ source: "iana",
+ extensions: ["pyv"]
+ },
+ "video/vnd.nokia.interleaved-multimedia": {
+ source: "iana"
+ },
+ "video/vnd.nokia.mp4vr": {
+ source: "iana"
+ },
+ "video/vnd.nokia.videovoip": {
+ source: "iana"
+ },
+ "video/vnd.objectvideo": {
+ source: "iana"
+ },
+ "video/vnd.radgamettools.bink": {
+ source: "iana"
+ },
+ "video/vnd.radgamettools.smacker": {
+ source: "iana"
+ },
+ "video/vnd.sealed.mpeg1": {
+ source: "iana"
+ },
+ "video/vnd.sealed.mpeg4": {
+ source: "iana"
+ },
+ "video/vnd.sealed.swf": {
+ source: "iana"
+ },
+ "video/vnd.sealedmedia.softseal.mov": {
+ source: "iana"
+ },
+ "video/vnd.uvvu.mp4": {
+ source: "iana",
+ extensions: ["uvu", "uvvu"]
+ },
+ "video/vnd.vivo": {
+ source: "iana",
+ extensions: ["viv"]
+ },
+ "video/vnd.youtube.yt": {
+ source: "iana"
+ },
+ "video/vp8": {
+ source: "iana"
+ },
+ "video/vp9": {
+ source: "iana"
+ },
+ "video/webm": {
+ source: "apache",
+ compressible: false,
+ extensions: ["webm"]
+ },
+ "video/x-f4v": {
+ source: "apache",
+ extensions: ["f4v"]
+ },
+ "video/x-fli": {
+ source: "apache",
+ extensions: ["fli"]
+ },
+ "video/x-flv": {
+ source: "apache",
+ compressible: false,
+ extensions: ["flv"]
+ },
+ "video/x-m4v": {
+ source: "apache",
+ extensions: ["m4v"]
+ },
+ "video/x-matroska": {
+ source: "apache",
+ compressible: false,
+ extensions: ["mkv", "mk3d", "mks"]
+ },
+ "video/x-mng": {
+ source: "apache",
+ extensions: ["mng"]
+ },
+ "video/x-ms-asf": {
+ source: "apache",
+ extensions: ["asf", "asx"]
+ },
+ "video/x-ms-vob": {
+ source: "apache",
+ extensions: ["vob"]
+ },
+ "video/x-ms-wm": {
+ source: "apache",
+ extensions: ["wm"]
+ },
+ "video/x-ms-wmv": {
+ source: "apache",
+ compressible: false,
+ extensions: ["wmv"]
+ },
+ "video/x-ms-wmx": {
+ source: "apache",
+ extensions: ["wmx"]
+ },
+ "video/x-ms-wvx": {
+ source: "apache",
+ extensions: ["wvx"]
+ },
+ "video/x-msvideo": {
+ source: "apache",
+ extensions: ["avi"]
+ },
+ "video/x-sgi-movie": {
+ source: "apache",
+ extensions: ["movie"]
+ },
+ "video/x-smv": {
+ source: "apache",
+ extensions: ["smv"]
+ },
+ "x-conference/x-cooltalk": {
+ source: "apache",
+ extensions: ["ice"]
+ },
+ "x-shader/x-fragment": {
+ compressible: true
+ },
+ "x-shader/x-vertex": {
+ compressible: true
+ }
+ };
+ }
+});
+
+// node_modules/mime-db/index.js
+var require_mime_db = __commonJS({
+ "node_modules/mime-db/index.js"(exports2, module2) {
+ module2.exports = require_db();
+ }
+});
+
+// node_modules/mime-types/index.js
+var require_mime_types = __commonJS({
+ "node_modules/mime-types/index.js"(exports2) {
+ "use strict";
+ var db = require_mime_db();
+ var extname = require("path").extname;
+ var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/;
+ var TEXT_TYPE_REGEXP = /^text\//i;
+ exports2.charset = charset;
+ exports2.charsets = { lookup: charset };
+ exports2.contentType = contentType;
+ exports2.extension = extension;
+ exports2.extensions = /* @__PURE__ */ Object.create(null);
+ exports2.lookup = lookup;
+ exports2.types = /* @__PURE__ */ Object.create(null);
+ populateMaps(exports2.extensions, exports2.types);
+ function charset(type) {
+ if (!type || typeof type !== "string") {
+ return false;
+ }
+ var match = EXTRACT_TYPE_REGEXP.exec(type);
+ var mime = match && db[match[1].toLowerCase()];
+ if (mime && mime.charset) {
+ return mime.charset;
+ }
+ if (match && TEXT_TYPE_REGEXP.test(match[1])) {
+ return "UTF-8";
+ }
+ return false;
+ }
+ function contentType(str) {
+ if (!str || typeof str !== "string") {
+ return false;
+ }
+ var mime = str.indexOf("/") === -1 ? exports2.lookup(str) : str;
+ if (!mime) {
+ return false;
+ }
+ if (mime.indexOf("charset") === -1) {
+ var charset2 = exports2.charset(mime);
+ if (charset2)
+ mime += "; charset=" + charset2.toLowerCase();
+ }
+ return mime;
+ }
+ function extension(type) {
+ if (!type || typeof type !== "string") {
+ return false;
+ }
+ var match = EXTRACT_TYPE_REGEXP.exec(type);
+ var exts = match && exports2.extensions[match[1].toLowerCase()];
+ if (!exts || !exts.length) {
+ return false;
+ }
+ return exts[0];
+ }
+ function lookup(path) {
+ if (!path || typeof path !== "string") {
+ return false;
+ }
+ var extension2 = extname("x." + path).toLowerCase().substr(1);
+ if (!extension2) {
+ return false;
+ }
+ return exports2.types[extension2] || false;
+ }
+ function populateMaps(extensions, types) {
+ var preference = ["nginx", "apache", void 0, "iana"];
+ Object.keys(db).forEach(function forEachMimeType(type) {
+ var mime = db[type];
+ var exts = mime.extensions;
+ if (!exts || !exts.length) {
+ return;
+ }
+ extensions[type] = exts;
+ for (var i = 0; i < exts.length; i++) {
+ var extension2 = exts[i];
+ if (types[extension2]) {
+ var from = preference.indexOf(db[types[extension2]].source);
+ var to = preference.indexOf(mime.source);
+ if (types[extension2] !== "application/octet-stream" && (from > to || from === to && types[extension2].substr(0, 12) === "application/")) {
+ continue;
+ }
+ }
+ types[extension2] = type;
+ }
+ });
+ }
+ }
+});
+
+// node_modules/type-is/index.js
+var require_type_is = __commonJS({
+ "node_modules/type-is/index.js"(exports2, module2) {
+ "use strict";
+ var typer = require_media_typer();
+ var mime = require_mime_types();
+ module2.exports = typeofrequest;
+ module2.exports.is = typeis;
+ module2.exports.hasBody = hasbody;
+ module2.exports.normalize = normalize;
+ module2.exports.match = mimeMatch;
+ function typeis(value, types_) {
+ var i;
+ var types = types_;
+ var val = tryNormalizeType(value);
+ if (!val) {
+ return false;
+ }
+ if (types && !Array.isArray(types)) {
+ types = new Array(arguments.length - 1);
+ for (i = 0; i < types.length; i++) {
+ types[i] = arguments[i + 1];
+ }
+ }
+ if (!types || !types.length) {
+ return val;
+ }
+ var type;
+ for (i = 0; i < types.length; i++) {
+ if (mimeMatch(normalize(type = types[i]), val)) {
+ return type[0] === "+" || type.indexOf("*") !== -1 ? val : type;
+ }
+ }
+ return false;
+ }
+ function hasbody(req) {
+ return req.headers["transfer-encoding"] !== void 0 || !isNaN(req.headers["content-length"]);
+ }
+ function typeofrequest(req, types_) {
+ var types = types_;
+ if (!hasbody(req)) {
+ return null;
+ }
+ if (arguments.length > 2) {
+ types = new Array(arguments.length - 1);
+ for (var i = 0; i < types.length; i++) {
+ types[i] = arguments[i + 1];
+ }
+ }
+ var value = req.headers["content-type"];
+ return typeis(value, types);
+ }
+ function normalize(type) {
+ if (typeof type !== "string") {
+ return false;
+ }
+ switch (type) {
+ case "urlencoded":
+ return "application/x-www-form-urlencoded";
+ case "multipart":
+ return "multipart/*";
+ }
+ if (type[0] === "+") {
+ return "*/*" + type;
+ }
+ return type.indexOf("/") === -1 ? mime.lookup(type) : type;
+ }
+ function mimeMatch(expected, actual) {
+ if (expected === false) {
+ return false;
+ }
+ var actualParts = actual.split("/");
+ var expectedParts = expected.split("/");
+ if (actualParts.length !== 2 || expectedParts.length !== 2) {
+ return false;
+ }
+ if (expectedParts[0] !== "*" && expectedParts[0] !== actualParts[0]) {
+ return false;
+ }
+ if (expectedParts[1].substr(0, 2) === "*+") {
+ return expectedParts[1].length <= actualParts[1].length + 1 && expectedParts[1].substr(1) === actualParts[1].substr(1 - expectedParts[1].length);
+ }
+ if (expectedParts[1] !== "*" && expectedParts[1] !== actualParts[1]) {
+ return false;
+ }
+ return true;
+ }
+ function normalizeType(value) {
+ var type = typer.parse(value);
+ type.parameters = void 0;
+ return typer.format(type);
+ }
+ function tryNormalizeType(value) {
+ if (!value) {
+ return null;
+ }
+ try {
+ return normalizeType(value);
+ } catch (err) {
+ return null;
+ }
+ }
+ }
+});
+
+// node_modules/body-parser/lib/types/json.js
+var require_json = __commonJS({
+ "node_modules/body-parser/lib/types/json.js"(exports2, module2) {
+ "use strict";
+ var bytes = require_bytes();
+ var contentType = require_content_type();
+ var createError = require_http_errors();
+ var debug = require_src()("body-parser:json");
+ var read = require_read();
+ var typeis = require_type_is();
+ module2.exports = json;
+ var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*([^\x20\x09\x0a\x0d])/;
+ var JSON_SYNTAX_CHAR = "#";
+ var JSON_SYNTAX_REGEXP = /#+/g;
+ function json(options) {
+ var opts = options || {};
+ var limit = typeof opts.limit !== "number" ? bytes.parse(opts.limit || "100kb") : opts.limit;
+ var inflate = opts.inflate !== false;
+ var reviver = opts.reviver;
+ var strict = opts.strict !== false;
+ var type = opts.type || "application/json";
+ var verify = opts.verify || false;
+ if (verify !== false && typeof verify !== "function") {
+ throw new TypeError("option verify must be function");
+ }
+ var shouldParse = typeof type !== "function" ? typeChecker(type) : type;
+ function parse(body) {
+ if (body.length === 0) {
+ return {};
+ }
+ if (strict) {
+ var first = firstchar(body);
+ if (first !== "{" && first !== "[") {
+ debug("strict violation");
+ throw createStrictSyntaxError(body, first);
+ }
+ }
+ try {
+ debug("parse json");
+ return JSON.parse(body, reviver);
+ } catch (e) {
+ throw normalizeJsonSyntaxError(e, {
+ message: e.message,
+ stack: e.stack
+ });
+ }
+ }
+ return function jsonParser(req, res, next) {
+ if (req._body) {
+ debug("body already parsed");
+ next();
+ return;
+ }
+ req.body = req.body || {};
+ if (!typeis.hasBody(req)) {
+ debug("skip empty body");
+ next();
+ return;
+ }
+ debug("content-type %j", req.headers["content-type"]);
+ if (!shouldParse(req)) {
+ debug("skip parsing");
+ next();
+ return;
+ }
+ var charset = getCharset(req) || "utf-8";
+ if (charset.slice(0, 4) !== "utf-") {
+ debug("invalid charset");
+ next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', {
+ charset,
+ type: "charset.unsupported"
+ }));
+ return;
+ }
+ read(req, res, next, parse, debug, {
+ encoding: charset,
+ inflate,
+ limit,
+ verify
+ });
+ };
+ }
+ function createStrictSyntaxError(str, char) {
+ var index = str.indexOf(char);
+ var partial = "";
+ if (index !== -1) {
+ partial = str.substring(0, index) + JSON_SYNTAX_CHAR;
+ for (var i = index + 1; i < str.length; i++) {
+ partial += JSON_SYNTAX_CHAR;
+ }
+ }
+ try {
+ JSON.parse(partial);
+ throw new SyntaxError("strict violation");
+ } catch (e) {
+ return normalizeJsonSyntaxError(e, {
+ message: e.message.replace(JSON_SYNTAX_REGEXP, function(placeholder) {
+ return str.substring(index, index + placeholder.length);
+ }),
+ stack: e.stack
+ });
+ }
+ }
+ function firstchar(str) {
+ var match = FIRST_CHAR_REGEXP.exec(str);
+ return match ? match[1] : void 0;
+ }
+ function getCharset(req) {
+ try {
+ return (contentType.parse(req).parameters.charset || "").toLowerCase();
+ } catch (e) {
+ return void 0;
+ }
+ }
+ function normalizeJsonSyntaxError(error, obj) {
+ var keys = Object.getOwnPropertyNames(error);
+ for (var i = 0; i < keys.length; i++) {
+ var key = keys[i];
+ if (key !== "stack" && key !== "message") {
+ delete error[key];
+ }
+ }
+ error.stack = obj.stack.replace(error.message, obj.message);
+ error.message = obj.message;
+ return error;
+ }
+ function typeChecker(type) {
+ return function checkType(req) {
+ return Boolean(typeis(req, type));
+ };
+ }
+ }
+});
+
+// node_modules/body-parser/lib/types/raw.js
+var require_raw = __commonJS({
+ "node_modules/body-parser/lib/types/raw.js"(exports2, module2) {
+ "use strict";
+ var bytes = require_bytes();
+ var debug = require_src()("body-parser:raw");
+ var read = require_read();
+ var typeis = require_type_is();
+ module2.exports = raw;
+ function raw(options) {
+ var opts = options || {};
+ var inflate = opts.inflate !== false;
+ var limit = typeof opts.limit !== "number" ? bytes.parse(opts.limit || "100kb") : opts.limit;
+ var type = opts.type || "application/octet-stream";
+ var verify = opts.verify || false;
+ if (verify !== false && typeof verify !== "function") {
+ throw new TypeError("option verify must be function");
+ }
+ var shouldParse = typeof type !== "function" ? typeChecker(type) : type;
+ function parse(buf) {
+ return buf;
+ }
+ return function rawParser(req, res, next) {
+ if (req._body) {
+ debug("body already parsed");
+ next();
+ return;
+ }
+ req.body = req.body || {};
+ if (!typeis.hasBody(req)) {
+ debug("skip empty body");
+ next();
+ return;
+ }
+ debug("content-type %j", req.headers["content-type"]);
+ if (!shouldParse(req)) {
+ debug("skip parsing");
+ next();
+ return;
+ }
+ read(req, res, next, parse, debug, {
+ encoding: null,
+ inflate,
+ limit,
+ verify
+ });
+ };
+ }
+ function typeChecker(type) {
+ return function checkType(req) {
+ return Boolean(typeis(req, type));
+ };
+ }
+ }
+});
+
+// node_modules/body-parser/lib/types/text.js
+var require_text = __commonJS({
+ "node_modules/body-parser/lib/types/text.js"(exports2, module2) {
+ "use strict";
+ var bytes = require_bytes();
+ var contentType = require_content_type();
+ var debug = require_src()("body-parser:text");
+ var read = require_read();
+ var typeis = require_type_is();
+ module2.exports = text;
+ function text(options) {
+ var opts = options || {};
+ var defaultCharset = opts.defaultCharset || "utf-8";
+ var inflate = opts.inflate !== false;
+ var limit = typeof opts.limit !== "number" ? bytes.parse(opts.limit || "100kb") : opts.limit;
+ var type = opts.type || "text/plain";
+ var verify = opts.verify || false;
+ if (verify !== false && typeof verify !== "function") {
+ throw new TypeError("option verify must be function");
+ }
+ var shouldParse = typeof type !== "function" ? typeChecker(type) : type;
+ function parse(buf) {
+ return buf;
+ }
+ return function textParser(req, res, next) {
+ if (req._body) {
+ debug("body already parsed");
+ next();
+ return;
+ }
+ req.body = req.body || {};
+ if (!typeis.hasBody(req)) {
+ debug("skip empty body");
+ next();
+ return;
+ }
+ debug("content-type %j", req.headers["content-type"]);
+ if (!shouldParse(req)) {
+ debug("skip parsing");
+ next();
+ return;
+ }
+ var charset = getCharset(req) || defaultCharset;
+ read(req, res, next, parse, debug, {
+ encoding: charset,
+ inflate,
+ limit,
+ verify
+ });
+ };
+ }
+ function getCharset(req) {
+ try {
+ return (contentType.parse(req).parameters.charset || "").toLowerCase();
+ } catch (e) {
+ return void 0;
+ }
+ }
+ function typeChecker(type) {
+ return function checkType(req) {
+ return Boolean(typeis(req, type));
+ };
+ }
+ }
+});
+
+// node_modules/es-errors/index.js
+var require_es_errors = __commonJS({
+ "node_modules/es-errors/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = Error;
+ }
+});
+
+// node_modules/es-errors/eval.js
+var require_eval = __commonJS({
+ "node_modules/es-errors/eval.js"(exports2, module2) {
+ "use strict";
+ module2.exports = EvalError;
+ }
+});
+
+// node_modules/es-errors/range.js
+var require_range = __commonJS({
+ "node_modules/es-errors/range.js"(exports2, module2) {
+ "use strict";
+ module2.exports = RangeError;
+ }
+});
+
+// node_modules/es-errors/ref.js
+var require_ref = __commonJS({
+ "node_modules/es-errors/ref.js"(exports2, module2) {
+ "use strict";
+ module2.exports = ReferenceError;
+ }
+});
+
+// node_modules/es-errors/syntax.js
+var require_syntax = __commonJS({
+ "node_modules/es-errors/syntax.js"(exports2, module2) {
+ "use strict";
+ module2.exports = SyntaxError;
+ }
+});
+
+// node_modules/es-errors/type.js
+var require_type = __commonJS({
+ "node_modules/es-errors/type.js"(exports2, module2) {
+ "use strict";
+ module2.exports = TypeError;
+ }
+});
+
+// node_modules/es-errors/uri.js
+var require_uri = __commonJS({
+ "node_modules/es-errors/uri.js"(exports2, module2) {
+ "use strict";
+ module2.exports = URIError;
+ }
+});
+
+// node_modules/has-symbols/shams.js
+var require_shams = __commonJS({
+ "node_modules/has-symbols/shams.js"(exports2, module2) {
+ "use strict";
+ module2.exports = function hasSymbols() {
+ if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") {
+ return false;
+ }
+ if (typeof Symbol.iterator === "symbol") {
+ return true;
+ }
+ var obj = {};
+ var sym = Symbol("test");
+ var symObj = Object(sym);
+ if (typeof sym === "string") {
+ return false;
+ }
+ if (Object.prototype.toString.call(sym) !== "[object Symbol]") {
+ return false;
+ }
+ if (Object.prototype.toString.call(symObj) !== "[object Symbol]") {
+ return false;
+ }
+ var symVal = 42;
+ obj[sym] = symVal;
+ for (sym in obj) {
+ return false;
+ }
+ if (typeof Object.keys === "function" && Object.keys(obj).length !== 0) {
+ return false;
+ }
+ if (typeof Object.getOwnPropertyNames === "function" && Object.getOwnPropertyNames(obj).length !== 0) {
+ return false;
+ }
+ var syms = Object.getOwnPropertySymbols(obj);
+ if (syms.length !== 1 || syms[0] !== sym) {
+ return false;
+ }
+ if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {
+ return false;
+ }
+ if (typeof Object.getOwnPropertyDescriptor === "function") {
+ var descriptor = Object.getOwnPropertyDescriptor(obj, sym);
+ if (descriptor.value !== symVal || descriptor.enumerable !== true) {
+ return false;
+ }
+ }
+ return true;
+ };
+ }
+});
+
+// node_modules/has-symbols/index.js
+var require_has_symbols = __commonJS({
+ "node_modules/has-symbols/index.js"(exports2, module2) {
+ "use strict";
+ var origSymbol = typeof Symbol !== "undefined" && Symbol;
+ var hasSymbolSham = require_shams();
+ module2.exports = function hasNativeSymbols() {
+ if (typeof origSymbol !== "function") {
+ return false;
+ }
+ if (typeof Symbol !== "function") {
+ return false;
+ }
+ if (typeof origSymbol("foo") !== "symbol") {
+ return false;
+ }
+ if (typeof Symbol("bar") !== "symbol") {
+ return false;
+ }
+ return hasSymbolSham();
+ };
+ }
+});
+
+// node_modules/has-proto/index.js
+var require_has_proto = __commonJS({
+ "node_modules/has-proto/index.js"(exports2, module2) {
+ "use strict";
+ var test = {
+ __proto__: null,
+ foo: {}
+ };
+ var $Object = Object;
+ module2.exports = function hasProto() {
+ return { __proto__: test }.foo === test.foo && !(test instanceof $Object);
+ };
+ }
+});
+
+// node_modules/function-bind/implementation.js
+var require_implementation = __commonJS({
+ "node_modules/function-bind/implementation.js"(exports2, module2) {
+ "use strict";
+ var ERROR_MESSAGE = "Function.prototype.bind called on incompatible ";
+ var toStr = Object.prototype.toString;
+ var max = Math.max;
+ var funcType = "[object Function]";
+ var concatty = function concatty2(a, b) {
+ var arr = [];
+ for (var i = 0; i < a.length; i += 1) {
+ arr[i] = a[i];
+ }
+ for (var j = 0; j < b.length; j += 1) {
+ arr[j + a.length] = b[j];
+ }
+ return arr;
+ };
+ var slicy = function slicy2(arrLike, offset) {
+ var arr = [];
+ for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {
+ arr[j] = arrLike[i];
+ }
+ return arr;
+ };
+ var joiny = function(arr, joiner) {
+ var str = "";
+ for (var i = 0; i < arr.length; i += 1) {
+ str += arr[i];
+ if (i + 1 < arr.length) {
+ str += joiner;
+ }
+ }
+ return str;
+ };
+ module2.exports = function bind(that) {
+ var target = this;
+ if (typeof target !== "function" || toStr.apply(target) !== funcType) {
+ throw new TypeError(ERROR_MESSAGE + target);
+ }
+ var args = slicy(arguments, 1);
+ var bound;
+ var binder = function() {
+ if (this instanceof bound) {
+ var result = target.apply(
+ this,
+ concatty(args, arguments)
+ );
+ if (Object(result) === result) {
+ return result;
+ }
+ return this;
+ }
+ return target.apply(
+ that,
+ concatty(args, arguments)
+ );
+ };
+ var boundLength = max(0, target.length - args.length);
+ var boundArgs = [];
+ for (var i = 0; i < boundLength; i++) {
+ boundArgs[i] = "$" + i;
+ }
+ bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder);
+ if (target.prototype) {
+ var Empty = function Empty2() {
+ };
+ Empty.prototype = target.prototype;
+ bound.prototype = new Empty();
+ Empty.prototype = null;
+ }
+ return bound;
+ };
+ }
+});
+
+// node_modules/function-bind/index.js
+var require_function_bind = __commonJS({
+ "node_modules/function-bind/index.js"(exports2, module2) {
+ "use strict";
+ var implementation = require_implementation();
+ module2.exports = Function.prototype.bind || implementation;
+ }
+});
+
+// node_modules/hasown/index.js
+var require_hasown = __commonJS({
+ "node_modules/hasown/index.js"(exports2, module2) {
+ "use strict";
+ var call = Function.prototype.call;
+ var $hasOwn = Object.prototype.hasOwnProperty;
+ var bind = require_function_bind();
+ module2.exports = bind.call(call, $hasOwn);
+ }
+});
+
+// node_modules/get-intrinsic/index.js
+var require_get_intrinsic = __commonJS({
+ "node_modules/get-intrinsic/index.js"(exports2, module2) {
+ "use strict";
+ var undefined2;
+ var $Error = require_es_errors();
+ var $EvalError = require_eval();
+ var $RangeError = require_range();
+ var $ReferenceError = require_ref();
+ var $SyntaxError = require_syntax();
+ var $TypeError = require_type();
+ var $URIError = require_uri();
+ var $Function = Function;
+ var getEvalledConstructor = function(expressionSyntax) {
+ try {
+ return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")();
+ } catch (e) {
+ }
+ };
+ var $gOPD = Object.getOwnPropertyDescriptor;
+ if ($gOPD) {
+ try {
+ $gOPD({}, "");
+ } catch (e) {
+ $gOPD = null;
+ }
+ }
+ var throwTypeError = function() {
+ throw new $TypeError();
+ };
+ var ThrowTypeError = $gOPD ? function() {
+ try {
+ arguments.callee;
+ return throwTypeError;
+ } catch (calleeThrows) {
+ try {
+ return $gOPD(arguments, "callee").get;
+ } catch (gOPDthrows) {
+ return throwTypeError;
+ }
+ }
+ }() : throwTypeError;
+ var hasSymbols = require_has_symbols()();
+ var hasProto = require_has_proto()();
+ var getProto = Object.getPrototypeOf || (hasProto ? function(x) {
+ return x.__proto__;
+ } : null);
+ var needsEval = {};
+ var TypedArray = typeof Uint8Array === "undefined" || !getProto ? undefined2 : getProto(Uint8Array);
+ var INTRINSICS = {
+ __proto__: null,
+ "%AggregateError%": typeof AggregateError === "undefined" ? undefined2 : AggregateError,
+ "%Array%": Array,
+ "%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined2 : ArrayBuffer,
+ "%ArrayIteratorPrototype%": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined2,
+ "%AsyncFromSyncIteratorPrototype%": undefined2,
+ "%AsyncFunction%": needsEval,
+ "%AsyncGenerator%": needsEval,
+ "%AsyncGeneratorFunction%": needsEval,
+ "%AsyncIteratorPrototype%": needsEval,
+ "%Atomics%": typeof Atomics === "undefined" ? undefined2 : Atomics,
+ "%BigInt%": typeof BigInt === "undefined" ? undefined2 : BigInt,
+ "%BigInt64Array%": typeof BigInt64Array === "undefined" ? undefined2 : BigInt64Array,
+ "%BigUint64Array%": typeof BigUint64Array === "undefined" ? undefined2 : BigUint64Array,
+ "%Boolean%": Boolean,
+ "%DataView%": typeof DataView === "undefined" ? undefined2 : DataView,
+ "%Date%": Date,
+ "%decodeURI%": decodeURI,
+ "%decodeURIComponent%": decodeURIComponent,
+ "%encodeURI%": encodeURI,
+ "%encodeURIComponent%": encodeURIComponent,
+ "%Error%": $Error,
+ "%eval%": eval,
+ // eslint-disable-line no-eval
+ "%EvalError%": $EvalError,
+ "%Float32Array%": typeof Float32Array === "undefined" ? undefined2 : Float32Array,
+ "%Float64Array%": typeof Float64Array === "undefined" ? undefined2 : Float64Array,
+ "%FinalizationRegistry%": typeof FinalizationRegistry === "undefined" ? undefined2 : FinalizationRegistry,
+ "%Function%": $Function,
+ "%GeneratorFunction%": needsEval,
+ "%Int8Array%": typeof Int8Array === "undefined" ? undefined2 : Int8Array,
+ "%Int16Array%": typeof Int16Array === "undefined" ? undefined2 : Int16Array,
+ "%Int32Array%": typeof Int32Array === "undefined" ? undefined2 : Int32Array,
+ "%isFinite%": isFinite,
+ "%isNaN%": isNaN,
+ "%IteratorPrototype%": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined2,
+ "%JSON%": typeof JSON === "object" ? JSON : undefined2,
+ "%Map%": typeof Map === "undefined" ? undefined2 : Map,
+ "%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Map())[Symbol.iterator]()),
+ "%Math%": Math,
+ "%Number%": Number,
+ "%Object%": Object,
+ "%parseFloat%": parseFloat,
+ "%parseInt%": parseInt,
+ "%Promise%": typeof Promise === "undefined" ? undefined2 : Promise,
+ "%Proxy%": typeof Proxy === "undefined" ? undefined2 : Proxy,
+ "%RangeError%": $RangeError,
+ "%ReferenceError%": $ReferenceError,
+ "%Reflect%": typeof Reflect === "undefined" ? undefined2 : Reflect,
+ "%RegExp%": RegExp,
+ "%Set%": typeof Set === "undefined" ? undefined2 : Set,
+ "%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Set())[Symbol.iterator]()),
+ "%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined2 : SharedArrayBuffer,
+ "%String%": String,
+ "%StringIteratorPrototype%": hasSymbols && getProto ? getProto(""[Symbol.iterator]()) : undefined2,
+ "%Symbol%": hasSymbols ? Symbol : undefined2,
+ "%SyntaxError%": $SyntaxError,
+ "%ThrowTypeError%": ThrowTypeError,
+ "%TypedArray%": TypedArray,
+ "%TypeError%": $TypeError,
+ "%Uint8Array%": typeof Uint8Array === "undefined" ? undefined2 : Uint8Array,
+ "%Uint8ClampedArray%": typeof Uint8ClampedArray === "undefined" ? undefined2 : Uint8ClampedArray,
+ "%Uint16Array%": typeof Uint16Array === "undefined" ? undefined2 : Uint16Array,
+ "%Uint32Array%": typeof Uint32Array === "undefined" ? undefined2 : Uint32Array,
+ "%URIError%": $URIError,
+ "%WeakMap%": typeof WeakMap === "undefined" ? undefined2 : WeakMap,
+ "%WeakRef%": typeof WeakRef === "undefined" ? undefined2 : WeakRef,
+ "%WeakSet%": typeof WeakSet === "undefined" ? undefined2 : WeakSet
+ };
+ if (getProto) {
+ try {
+ null.error;
+ } catch (e) {
+ errorProto = getProto(getProto(e));
+ INTRINSICS["%Error.prototype%"] = errorProto;
+ }
+ }
+ var errorProto;
+ var doEval = function doEval2(name) {
+ var value;
+ if (name === "%AsyncFunction%") {
+ value = getEvalledConstructor("async function () {}");
+ } else if (name === "%GeneratorFunction%") {
+ value = getEvalledConstructor("function* () {}");
+ } else if (name === "%AsyncGeneratorFunction%") {
+ value = getEvalledConstructor("async function* () {}");
+ } else if (name === "%AsyncGenerator%") {
+ var fn = doEval2("%AsyncGeneratorFunction%");
+ if (fn) {
+ value = fn.prototype;
+ }
+ } else if (name === "%AsyncIteratorPrototype%") {
+ var gen = doEval2("%AsyncGenerator%");
+ if (gen && getProto) {
+ value = getProto(gen.prototype);
+ }
+ }
+ INTRINSICS[name] = value;
+ return value;
+ };
+ var LEGACY_ALIASES = {
+ __proto__: null,
+ "%ArrayBufferPrototype%": ["ArrayBuffer", "prototype"],
+ "%ArrayPrototype%": ["Array", "prototype"],
+ "%ArrayProto_entries%": ["Array", "prototype", "entries"],
+ "%ArrayProto_forEach%": ["Array", "prototype", "forEach"],
+ "%ArrayProto_keys%": ["Array", "prototype", "keys"],
+ "%ArrayProto_values%": ["Array", "prototype", "values"],
+ "%AsyncFunctionPrototype%": ["AsyncFunction", "prototype"],
+ "%AsyncGenerator%": ["AsyncGeneratorFunction", "prototype"],
+ "%AsyncGeneratorPrototype%": ["AsyncGeneratorFunction", "prototype", "prototype"],
+ "%BooleanPrototype%": ["Boolean", "prototype"],
+ "%DataViewPrototype%": ["DataView", "prototype"],
+ "%DatePrototype%": ["Date", "prototype"],
+ "%ErrorPrototype%": ["Error", "prototype"],
+ "%EvalErrorPrototype%": ["EvalError", "prototype"],
+ "%Float32ArrayPrototype%": ["Float32Array", "prototype"],
+ "%Float64ArrayPrototype%": ["Float64Array", "prototype"],
+ "%FunctionPrototype%": ["Function", "prototype"],
+ "%Generator%": ["GeneratorFunction", "prototype"],
+ "%GeneratorPrototype%": ["GeneratorFunction", "prototype", "prototype"],
+ "%Int8ArrayPrototype%": ["Int8Array", "prototype"],
+ "%Int16ArrayPrototype%": ["Int16Array", "prototype"],
+ "%Int32ArrayPrototype%": ["Int32Array", "prototype"],
+ "%JSONParse%": ["JSON", "parse"],
+ "%JSONStringify%": ["JSON", "stringify"],
+ "%MapPrototype%": ["Map", "prototype"],
+ "%NumberPrototype%": ["Number", "prototype"],
+ "%ObjectPrototype%": ["Object", "prototype"],
+ "%ObjProto_toString%": ["Object", "prototype", "toString"],
+ "%ObjProto_valueOf%": ["Object", "prototype", "valueOf"],
+ "%PromisePrototype%": ["Promise", "prototype"],
+ "%PromiseProto_then%": ["Promise", "prototype", "then"],
+ "%Promise_all%": ["Promise", "all"],
+ "%Promise_reject%": ["Promise", "reject"],
+ "%Promise_resolve%": ["Promise", "resolve"],
+ "%RangeErrorPrototype%": ["RangeError", "prototype"],
+ "%ReferenceErrorPrototype%": ["ReferenceError", "prototype"],
+ "%RegExpPrototype%": ["RegExp", "prototype"],
+ "%SetPrototype%": ["Set", "prototype"],
+ "%SharedArrayBufferPrototype%": ["SharedArrayBuffer", "prototype"],
+ "%StringPrototype%": ["String", "prototype"],
+ "%SymbolPrototype%": ["Symbol", "prototype"],
+ "%SyntaxErrorPrototype%": ["SyntaxError", "prototype"],
+ "%TypedArrayPrototype%": ["TypedArray", "prototype"],
+ "%TypeErrorPrototype%": ["TypeError", "prototype"],
+ "%Uint8ArrayPrototype%": ["Uint8Array", "prototype"],
+ "%Uint8ClampedArrayPrototype%": ["Uint8ClampedArray", "prototype"],
+ "%Uint16ArrayPrototype%": ["Uint16Array", "prototype"],
+ "%Uint32ArrayPrototype%": ["Uint32Array", "prototype"],
+ "%URIErrorPrototype%": ["URIError", "prototype"],
+ "%WeakMapPrototype%": ["WeakMap", "prototype"],
+ "%WeakSetPrototype%": ["WeakSet", "prototype"]
+ };
+ var bind = require_function_bind();
+ var hasOwn = require_hasown();
+ var $concat = bind.call(Function.call, Array.prototype.concat);
+ var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
+ var $replace = bind.call(Function.call, String.prototype.replace);
+ var $strSlice = bind.call(Function.call, String.prototype.slice);
+ var $exec = bind.call(Function.call, RegExp.prototype.exec);
+ var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
+ var reEscapeChar = /\\(\\)?/g;
+ var stringToPath = function stringToPath2(string) {
+ var first = $strSlice(string, 0, 1);
+ var last = $strSlice(string, -1);
+ if (first === "%" && last !== "%") {
+ throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`");
+ } else if (last === "%" && first !== "%") {
+ throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`");
+ }
+ var result = [];
+ $replace(string, rePropName, function(match, number, quote, subString) {
+ result[result.length] = quote ? $replace(subString, reEscapeChar, "$1") : number || match;
+ });
+ return result;
+ };
+ var getBaseIntrinsic = function getBaseIntrinsic2(name, allowMissing) {
+ var intrinsicName = name;
+ var alias;
+ if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
+ alias = LEGACY_ALIASES[intrinsicName];
+ intrinsicName = "%" + alias[0] + "%";
+ }
+ if (hasOwn(INTRINSICS, intrinsicName)) {
+ var value = INTRINSICS[intrinsicName];
+ if (value === needsEval) {
+ value = doEval(intrinsicName);
+ }
+ if (typeof value === "undefined" && !allowMissing) {
+ throw new $TypeError("intrinsic " + name + " exists, but is not available. Please file an issue!");
+ }
+ return {
+ alias,
+ name: intrinsicName,
+ value
+ };
+ }
+ throw new $SyntaxError("intrinsic " + name + " does not exist!");
+ };
+ module2.exports = function GetIntrinsic(name, allowMissing) {
+ if (typeof name !== "string" || name.length === 0) {
+ throw new $TypeError("intrinsic name must be a non-empty string");
+ }
+ if (arguments.length > 1 && typeof allowMissing !== "boolean") {
+ throw new $TypeError('"allowMissing" argument must be a boolean');
+ }
+ if ($exec(/^%?[^%]*%?$/, name) === null) {
+ throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name");
+ }
+ var parts = stringToPath(name);
+ var intrinsicBaseName = parts.length > 0 ? parts[0] : "";
+ var intrinsic = getBaseIntrinsic("%" + intrinsicBaseName + "%", allowMissing);
+ var intrinsicRealName = intrinsic.name;
+ var value = intrinsic.value;
+ var skipFurtherCaching = false;
+ var alias = intrinsic.alias;
+ if (alias) {
+ intrinsicBaseName = alias[0];
+ $spliceApply(parts, $concat([0, 1], alias));
+ }
+ for (var i = 1, isOwn = true; i < parts.length; i += 1) {
+ var part = parts[i];
+ var first = $strSlice(part, 0, 1);
+ var last = $strSlice(part, -1);
+ if ((first === '"' || first === "'" || first === "`" || (last === '"' || last === "'" || last === "`")) && first !== last) {
+ throw new $SyntaxError("property names with quotes must have matching quotes");
+ }
+ if (part === "constructor" || !isOwn) {
+ skipFurtherCaching = true;
+ }
+ intrinsicBaseName += "." + part;
+ intrinsicRealName = "%" + intrinsicBaseName + "%";
+ if (hasOwn(INTRINSICS, intrinsicRealName)) {
+ value = INTRINSICS[intrinsicRealName];
+ } else if (value != null) {
+ if (!(part in value)) {
+ if (!allowMissing) {
+ throw new $TypeError("base intrinsic for " + name + " exists, but the property is not available.");
+ }
+ return void 0;
+ }
+ if ($gOPD && i + 1 >= parts.length) {
+ var desc = $gOPD(value, part);
+ isOwn = !!desc;
+ if (isOwn && "get" in desc && !("originalValue" in desc.get)) {
+ value = desc.get;
+ } else {
+ value = value[part];
+ }
+ } else {
+ isOwn = hasOwn(value, part);
+ value = value[part];
+ }
+ if (isOwn && !skipFurtherCaching) {
+ INTRINSICS[intrinsicRealName] = value;
+ }
+ }
+ }
+ return value;
+ };
+ }
+});
+
+// node_modules/es-define-property/index.js
+var require_es_define_property = __commonJS({
+ "node_modules/es-define-property/index.js"(exports2, module2) {
+ "use strict";
+ var GetIntrinsic = require_get_intrinsic();
+ var $defineProperty = GetIntrinsic("%Object.defineProperty%", true) || false;
+ if ($defineProperty) {
+ try {
+ $defineProperty({}, "a", { value: 1 });
+ } catch (e) {
+ $defineProperty = false;
+ }
+ }
+ module2.exports = $defineProperty;
+ }
+});
+
+// node_modules/gopd/index.js
+var require_gopd = __commonJS({
+ "node_modules/gopd/index.js"(exports2, module2) {
+ "use strict";
+ var GetIntrinsic = require_get_intrinsic();
+ var $gOPD = GetIntrinsic("%Object.getOwnPropertyDescriptor%", true);
+ if ($gOPD) {
+ try {
+ $gOPD([], "length");
+ } catch (e) {
+ $gOPD = null;
+ }
+ }
+ module2.exports = $gOPD;
+ }
+});
+
+// node_modules/define-data-property/index.js
+var require_define_data_property = __commonJS({
+ "node_modules/define-data-property/index.js"(exports2, module2) {
+ "use strict";
+ var $defineProperty = require_es_define_property();
+ var $SyntaxError = require_syntax();
+ var $TypeError = require_type();
+ var gopd = require_gopd();
+ module2.exports = function defineDataProperty(obj, property, value) {
+ if (!obj || typeof obj !== "object" && typeof obj !== "function") {
+ throw new $TypeError("`obj` must be an object or a function`");
+ }
+ if (typeof property !== "string" && typeof property !== "symbol") {
+ throw new $TypeError("`property` must be a string or a symbol`");
+ }
+ if (arguments.length > 3 && typeof arguments[3] !== "boolean" && arguments[3] !== null) {
+ throw new $TypeError("`nonEnumerable`, if provided, must be a boolean or null");
+ }
+ if (arguments.length > 4 && typeof arguments[4] !== "boolean" && arguments[4] !== null) {
+ throw new $TypeError("`nonWritable`, if provided, must be a boolean or null");
+ }
+ if (arguments.length > 5 && typeof arguments[5] !== "boolean" && arguments[5] !== null) {
+ throw new $TypeError("`nonConfigurable`, if provided, must be a boolean or null");
+ }
+ if (arguments.length > 6 && typeof arguments[6] !== "boolean") {
+ throw new $TypeError("`loose`, if provided, must be a boolean");
+ }
+ var nonEnumerable = arguments.length > 3 ? arguments[3] : null;
+ var nonWritable = arguments.length > 4 ? arguments[4] : null;
+ var nonConfigurable = arguments.length > 5 ? arguments[5] : null;
+ var loose = arguments.length > 6 ? arguments[6] : false;
+ var desc = !!gopd && gopd(obj, property);
+ if ($defineProperty) {
+ $defineProperty(obj, property, {
+ configurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,
+ enumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,
+ value,
+ writable: nonWritable === null && desc ? desc.writable : !nonWritable
+ });
+ } else if (loose || !nonEnumerable && !nonWritable && !nonConfigurable) {
+ obj[property] = value;
+ } else {
+ throw new $SyntaxError("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");
+ }
+ };
+ }
+});
+
+// node_modules/has-property-descriptors/index.js
+var require_has_property_descriptors = __commonJS({
+ "node_modules/has-property-descriptors/index.js"(exports2, module2) {
+ "use strict";
+ var $defineProperty = require_es_define_property();
+ var hasPropertyDescriptors = function hasPropertyDescriptors2() {
+ return !!$defineProperty;
+ };
+ hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {
+ if (!$defineProperty) {
+ return null;
+ }
+ try {
+ return $defineProperty([], "length", { value: 1 }).length !== 1;
+ } catch (e) {
+ return true;
+ }
+ };
+ module2.exports = hasPropertyDescriptors;
+ }
+});
+
+// node_modules/set-function-length/index.js
+var require_set_function_length = __commonJS({
+ "node_modules/set-function-length/index.js"(exports2, module2) {
+ "use strict";
+ var GetIntrinsic = require_get_intrinsic();
+ var define2 = require_define_data_property();
+ var hasDescriptors = require_has_property_descriptors()();
+ var gOPD = require_gopd();
+ var $TypeError = require_type();
+ var $floor = GetIntrinsic("%Math.floor%");
+ module2.exports = function setFunctionLength(fn, length) {
+ if (typeof fn !== "function") {
+ throw new $TypeError("`fn` is not a function");
+ }
+ if (typeof length !== "number" || length < 0 || length > 4294967295 || $floor(length) !== length) {
+ throw new $TypeError("`length` must be a positive 32-bit integer");
+ }
+ var loose = arguments.length > 2 && !!arguments[2];
+ var functionLengthIsConfigurable = true;
+ var functionLengthIsWritable = true;
+ if ("length" in fn && gOPD) {
+ var desc = gOPD(fn, "length");
+ if (desc && !desc.configurable) {
+ functionLengthIsConfigurable = false;
+ }
+ if (desc && !desc.writable) {
+ functionLengthIsWritable = false;
+ }
+ }
+ if (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {
+ if (hasDescriptors) {
+ define2(
+ /** @type {Parameters[0]} */
+ fn,
+ "length",
+ length,
+ true,
+ true
+ );
+ } else {
+ define2(
+ /** @type {Parameters[0]} */
+ fn,
+ "length",
+ length
+ );
+ }
+ }
+ return fn;
+ };
+ }
+});
+
+// node_modules/call-bind/index.js
+var require_call_bind = __commonJS({
+ "node_modules/call-bind/index.js"(exports2, module2) {
+ "use strict";
+ var bind = require_function_bind();
+ var GetIntrinsic = require_get_intrinsic();
+ var setFunctionLength = require_set_function_length();
+ var $TypeError = require_type();
+ var $apply = GetIntrinsic("%Function.prototype.apply%");
+ var $call = GetIntrinsic("%Function.prototype.call%");
+ var $reflectApply = GetIntrinsic("%Reflect.apply%", true) || bind.call($call, $apply);
+ var $defineProperty = require_es_define_property();
+ var $max = GetIntrinsic("%Math.max%");
+ module2.exports = function callBind(originalFunction) {
+ if (typeof originalFunction !== "function") {
+ throw new $TypeError("a function is required");
+ }
+ var func = $reflectApply(bind, $call, arguments);
+ return setFunctionLength(
+ func,
+ 1 + $max(0, originalFunction.length - (arguments.length - 1)),
+ true
+ );
+ };
+ var applyBind = function applyBind2() {
+ return $reflectApply(bind, $apply, arguments);
+ };
+ if ($defineProperty) {
+ $defineProperty(module2.exports, "apply", { value: applyBind });
+ } else {
+ module2.exports.apply = applyBind;
+ }
+ }
+});
+
+// node_modules/call-bind/callBound.js
+var require_callBound = __commonJS({
+ "node_modules/call-bind/callBound.js"(exports2, module2) {
+ "use strict";
+ var GetIntrinsic = require_get_intrinsic();
+ var callBind = require_call_bind();
+ var $indexOf = callBind(GetIntrinsic("String.prototype.indexOf"));
+ module2.exports = function callBoundIntrinsic(name, allowMissing) {
+ var intrinsic = GetIntrinsic(name, !!allowMissing);
+ if (typeof intrinsic === "function" && $indexOf(name, ".prototype.") > -1) {
+ return callBind(intrinsic);
+ }
+ return intrinsic;
+ };
+ }
+});
+
+// node_modules/object-inspect/util.inspect.js
+var require_util_inspect = __commonJS({
+ "node_modules/object-inspect/util.inspect.js"(exports2, module2) {
+ module2.exports = require("util").inspect;
+ }
+});
+
+// node_modules/object-inspect/index.js
+var require_object_inspect = __commonJS({
+ "node_modules/object-inspect/index.js"(exports2, module2) {
+ var hasMap = typeof Map === "function" && Map.prototype;
+ var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, "size") : null;
+ var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === "function" ? mapSizeDescriptor.get : null;
+ var mapForEach = hasMap && Map.prototype.forEach;
+ var hasSet = typeof Set === "function" && Set.prototype;
+ var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, "size") : null;
+ var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === "function" ? setSizeDescriptor.get : null;
+ var setForEach = hasSet && Set.prototype.forEach;
+ var hasWeakMap = typeof WeakMap === "function" && WeakMap.prototype;
+ var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;
+ var hasWeakSet = typeof WeakSet === "function" && WeakSet.prototype;
+ var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;
+ var hasWeakRef = typeof WeakRef === "function" && WeakRef.prototype;
+ var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;
+ var booleanValueOf = Boolean.prototype.valueOf;
+ var objectToString = Object.prototype.toString;
+ var functionToString = Function.prototype.toString;
+ var $match = String.prototype.match;
+ var $slice = String.prototype.slice;
+ var $replace = String.prototype.replace;
+ var $toUpperCase = String.prototype.toUpperCase;
+ var $toLowerCase = String.prototype.toLowerCase;
+ var $test = RegExp.prototype.test;
+ var $concat = Array.prototype.concat;
+ var $join = Array.prototype.join;
+ var $arrSlice = Array.prototype.slice;
+ var $floor = Math.floor;
+ var bigIntValueOf = typeof BigInt === "function" ? BigInt.prototype.valueOf : null;
+ var gOPS = Object.getOwnPropertySymbols;
+ var symToString = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? Symbol.prototype.toString : null;
+ var hasShammedSymbols = typeof Symbol === "function" && typeof Symbol.iterator === "object";
+ var toStringTag = typeof Symbol === "function" && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? "object" : "symbol") ? Symbol.toStringTag : null;
+ var isEnumerable = Object.prototype.propertyIsEnumerable;
+ var gPO = (typeof Reflect === "function" ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function(O) {
+ return O.__proto__;
+ } : null);
+ function addNumericSeparator(num, str) {
+ if (num === Infinity || num === -Infinity || num !== num || num && num > -1e3 && num < 1e3 || $test.call(/e/, str)) {
+ return str;
+ }
+ var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;
+ if (typeof num === "number") {
+ var int = num < 0 ? -$floor(-num) : $floor(num);
+ if (int !== num) {
+ var intStr = String(int);
+ var dec = $slice.call(str, intStr.length + 1);
+ return $replace.call(intStr, sepRegex, "$&_") + "." + $replace.call($replace.call(dec, /([0-9]{3})/g, "$&_"), /_$/, "");
+ }
+ }
+ return $replace.call(str, sepRegex, "$&_");
+ }
+ var utilInspect = require_util_inspect();
+ var inspectCustom = utilInspect.custom;
+ var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;
+ var quotes = {
+ __proto__: null,
+ "double": '"',
+ single: "'"
+ };
+ var quoteREs = {
+ __proto__: null,
+ "double": /(["\\])/g,
+ single: /(['\\])/g
+ };
+ module2.exports = function inspect_(obj, options, depth, seen) {
+ var opts = options || {};
+ if (has(opts, "quoteStyle") && !has(quotes, opts.quoteStyle)) {
+ throw new TypeError('option "quoteStyle" must be "single" or "double"');
+ }
+ if (has(opts, "maxStringLength") && (typeof opts.maxStringLength === "number" ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity : opts.maxStringLength !== null)) {
+ throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');
+ }
+ var customInspect = has(opts, "customInspect") ? opts.customInspect : true;
+ if (typeof customInspect !== "boolean" && customInspect !== "symbol") {
+ throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");
+ }
+ if (has(opts, "indent") && opts.indent !== null && opts.indent !== " " && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)) {
+ throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');
+ }
+ if (has(opts, "numericSeparator") && typeof opts.numericSeparator !== "boolean") {
+ throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');
+ }
+ var numericSeparator = opts.numericSeparator;
+ if (typeof obj === "undefined") {
+ return "undefined";
+ }
+ if (obj === null) {
+ return "null";
+ }
+ if (typeof obj === "boolean") {
+ return obj ? "true" : "false";
+ }
+ if (typeof obj === "string") {
+ return inspectString(obj, opts);
+ }
+ if (typeof obj === "number") {
+ if (obj === 0) {
+ return Infinity / obj > 0 ? "0" : "-0";
+ }
+ var str = String(obj);
+ return numericSeparator ? addNumericSeparator(obj, str) : str;
+ }
+ if (typeof obj === "bigint") {
+ var bigIntStr = String(obj) + "n";
+ return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;
+ }
+ var maxDepth = typeof opts.depth === "undefined" ? 5 : opts.depth;
+ if (typeof depth === "undefined") {
+ depth = 0;
+ }
+ if (depth >= maxDepth && maxDepth > 0 && typeof obj === "object") {
+ return isArray(obj) ? "[Array]" : "[Object]";
+ }
+ var indent = getIndent(opts, depth);
+ if (typeof seen === "undefined") {
+ seen = [];
+ } else if (indexOf(seen, obj) >= 0) {
+ return "[Circular]";
+ }
+ function inspect(value, from, noIndent) {
+ if (from) {
+ seen = $arrSlice.call(seen);
+ seen.push(from);
+ }
+ if (noIndent) {
+ var newOpts = {
+ depth: opts.depth
+ };
+ if (has(opts, "quoteStyle")) {
+ newOpts.quoteStyle = opts.quoteStyle;
+ }
+ return inspect_(value, newOpts, depth + 1, seen);
+ }
+ return inspect_(value, opts, depth + 1, seen);
+ }
+ if (typeof obj === "function" && !isRegExp(obj)) {
+ var name = nameOf(obj);
+ var keys = arrObjKeys(obj, inspect);
+ return "[Function" + (name ? ": " + name : " (anonymous)") + "]" + (keys.length > 0 ? " { " + $join.call(keys, ", ") + " }" : "");
+ }
+ if (isSymbol(obj)) {
+ var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, "$1") : symToString.call(obj);
+ return typeof obj === "object" && !hasShammedSymbols ? markBoxed(symString) : symString;
+ }
+ if (isElement(obj)) {
+ var s = "<" + $toLowerCase.call(String(obj.nodeName));
+ var attrs = obj.attributes || [];
+ for (var i = 0; i < attrs.length; i++) {
+ s += " " + attrs[i].name + "=" + wrapQuotes(quote(attrs[i].value), "double", opts);
+ }
+ s += ">";
+ if (obj.childNodes && obj.childNodes.length) {
+ s += "...";
+ }
+ s += "" + $toLowerCase.call(String(obj.nodeName)) + ">";
+ return s;
+ }
+ if (isArray(obj)) {
+ if (obj.length === 0) {
+ return "[]";
+ }
+ var xs = arrObjKeys(obj, inspect);
+ if (indent && !singleLineValues(xs)) {
+ return "[" + indentedJoin(xs, indent) + "]";
+ }
+ return "[ " + $join.call(xs, ", ") + " ]";
+ }
+ if (isError(obj)) {
+ var parts = arrObjKeys(obj, inspect);
+ if (!("cause" in Error.prototype) && "cause" in obj && !isEnumerable.call(obj, "cause")) {
+ return "{ [" + String(obj) + "] " + $join.call($concat.call("[cause]: " + inspect(obj.cause), parts), ", ") + " }";
+ }
+ if (parts.length === 0) {
+ return "[" + String(obj) + "]";
+ }
+ return "{ [" + String(obj) + "] " + $join.call(parts, ", ") + " }";
+ }
+ if (typeof obj === "object" && customInspect) {
+ if (inspectSymbol && typeof obj[inspectSymbol] === "function" && utilInspect) {
+ return utilInspect(obj, { depth: maxDepth - depth });
+ } else if (customInspect !== "symbol" && typeof obj.inspect === "function") {
+ return obj.inspect();
+ }
+ }
+ if (isMap(obj)) {
+ var mapParts = [];
+ if (mapForEach) {
+ mapForEach.call(obj, function(value, key) {
+ mapParts.push(inspect(key, obj, true) + " => " + inspect(value, obj));
+ });
+ }
+ return collectionOf("Map", mapSize.call(obj), mapParts, indent);
+ }
+ if (isSet(obj)) {
+ var setParts = [];
+ if (setForEach) {
+ setForEach.call(obj, function(value) {
+ setParts.push(inspect(value, obj));
+ });
+ }
+ return collectionOf("Set", setSize.call(obj), setParts, indent);
+ }
+ if (isWeakMap(obj)) {
+ return weakCollectionOf("WeakMap");
+ }
+ if (isWeakSet(obj)) {
+ return weakCollectionOf("WeakSet");
+ }
+ if (isWeakRef(obj)) {
+ return weakCollectionOf("WeakRef");
+ }
+ if (isNumber(obj)) {
+ return markBoxed(inspect(Number(obj)));
+ }
+ if (isBigInt(obj)) {
+ return markBoxed(inspect(bigIntValueOf.call(obj)));
+ }
+ if (isBoolean(obj)) {
+ return markBoxed(booleanValueOf.call(obj));
+ }
+ if (isString(obj)) {
+ return markBoxed(inspect(String(obj)));
+ }
+ if (typeof window !== "undefined" && obj === window) {
+ return "{ [object Window] }";
+ }
+ if (typeof globalThis !== "undefined" && obj === globalThis || typeof global !== "undefined" && obj === global) {
+ return "{ [object globalThis] }";
+ }
+ if (!isDate(obj) && !isRegExp(obj)) {
+ var ys = arrObjKeys(obj, inspect);
+ var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;
+ var protoTag = obj instanceof Object ? "" : "null prototype";
+ var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? "Object" : "";
+ var constructorTag = isPlainObject || typeof obj.constructor !== "function" ? "" : obj.constructor.name ? obj.constructor.name + " " : "";
+ var tag = constructorTag + (stringTag || protoTag ? "[" + $join.call($concat.call([], stringTag || [], protoTag || []), ": ") + "] " : "");
+ if (ys.length === 0) {
+ return tag + "{}";
+ }
+ if (indent) {
+ return tag + "{" + indentedJoin(ys, indent) + "}";
+ }
+ return tag + "{ " + $join.call(ys, ", ") + " }";
+ }
+ return String(obj);
+ };
+ function wrapQuotes(s, defaultStyle, opts) {
+ var style = opts.quoteStyle || defaultStyle;
+ var quoteChar = quotes[style];
+ return quoteChar + s + quoteChar;
+ }
+ function quote(s) {
+ return $replace.call(String(s), /"/g, """);
+ }
+ function isArray(obj) {
+ return toStr(obj) === "[object Array]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj));
+ }
+ function isDate(obj) {
+ return toStr(obj) === "[object Date]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj));
+ }
+ function isRegExp(obj) {
+ return toStr(obj) === "[object RegExp]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj));
+ }
+ function isError(obj) {
+ return toStr(obj) === "[object Error]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj));
+ }
+ function isString(obj) {
+ return toStr(obj) === "[object String]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj));
+ }
+ function isNumber(obj) {
+ return toStr(obj) === "[object Number]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj));
+ }
+ function isBoolean(obj) {
+ return toStr(obj) === "[object Boolean]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj));
+ }
+ function isSymbol(obj) {
+ if (hasShammedSymbols) {
+ return obj && typeof obj === "object" && obj instanceof Symbol;
+ }
+ if (typeof obj === "symbol") {
+ return true;
+ }
+ if (!obj || typeof obj !== "object" || !symToString) {
+ return false;
+ }
+ try {
+ symToString.call(obj);
+ return true;
+ } catch (e) {
+ }
+ return false;
+ }
+ function isBigInt(obj) {
+ if (!obj || typeof obj !== "object" || !bigIntValueOf) {
+ return false;
+ }
+ try {
+ bigIntValueOf.call(obj);
+ return true;
+ } catch (e) {
+ }
+ return false;
+ }
+ var hasOwn = Object.prototype.hasOwnProperty || function(key) {
+ return key in this;
+ };
+ function has(obj, key) {
+ return hasOwn.call(obj, key);
+ }
+ function toStr(obj) {
+ return objectToString.call(obj);
+ }
+ function nameOf(f) {
+ if (f.name) {
+ return f.name;
+ }
+ var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/);
+ if (m) {
+ return m[1];
+ }
+ return null;
+ }
+ function indexOf(xs, x) {
+ if (xs.indexOf) {
+ return xs.indexOf(x);
+ }
+ for (var i = 0, l = xs.length; i < l; i++) {
+ if (xs[i] === x) {
+ return i;
+ }
+ }
+ return -1;
+ }
+ function isMap(x) {
+ if (!mapSize || !x || typeof x !== "object") {
+ return false;
+ }
+ try {
+ mapSize.call(x);
+ try {
+ setSize.call(x);
+ } catch (s) {
+ return true;
+ }
+ return x instanceof Map;
+ } catch (e) {
+ }
+ return false;
+ }
+ function isWeakMap(x) {
+ if (!weakMapHas || !x || typeof x !== "object") {
+ return false;
+ }
+ try {
+ weakMapHas.call(x, weakMapHas);
+ try {
+ weakSetHas.call(x, weakSetHas);
+ } catch (s) {
+ return true;
+ }
+ return x instanceof WeakMap;
+ } catch (e) {
+ }
+ return false;
+ }
+ function isWeakRef(x) {
+ if (!weakRefDeref || !x || typeof x !== "object") {
+ return false;
+ }
+ try {
+ weakRefDeref.call(x);
+ return true;
+ } catch (e) {
+ }
+ return false;
+ }
+ function isSet(x) {
+ if (!setSize || !x || typeof x !== "object") {
+ return false;
+ }
+ try {
+ setSize.call(x);
+ try {
+ mapSize.call(x);
+ } catch (m) {
+ return true;
+ }
+ return x instanceof Set;
+ } catch (e) {
+ }
+ return false;
+ }
+ function isWeakSet(x) {
+ if (!weakSetHas || !x || typeof x !== "object") {
+ return false;
+ }
+ try {
+ weakSetHas.call(x, weakSetHas);
+ try {
+ weakMapHas.call(x, weakMapHas);
+ } catch (s) {
+ return true;
+ }
+ return x instanceof WeakSet;
+ } catch (e) {
+ }
+ return false;
+ }
+ function isElement(x) {
+ if (!x || typeof x !== "object") {
+ return false;
+ }
+ if (typeof HTMLElement !== "undefined" && x instanceof HTMLElement) {
+ return true;
+ }
+ return typeof x.nodeName === "string" && typeof x.getAttribute === "function";
+ }
+ function inspectString(str, opts) {
+ if (str.length > opts.maxStringLength) {
+ var remaining = str.length - opts.maxStringLength;
+ var trailer = "... " + remaining + " more character" + (remaining > 1 ? "s" : "");
+ return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;
+ }
+ var quoteRE = quoteREs[opts.quoteStyle || "single"];
+ quoteRE.lastIndex = 0;
+ var s = $replace.call($replace.call(str, quoteRE, "\\$1"), /[\x00-\x1f]/g, lowbyte);
+ return wrapQuotes(s, "single", opts);
+ }
+ function lowbyte(c) {
+ var n = c.charCodeAt(0);
+ var x = {
+ 8: "b",
+ 9: "t",
+ 10: "n",
+ 12: "f",
+ 13: "r"
+ }[n];
+ if (x) {
+ return "\\" + x;
+ }
+ return "\\x" + (n < 16 ? "0" : "") + $toUpperCase.call(n.toString(16));
+ }
+ function markBoxed(str) {
+ return "Object(" + str + ")";
+ }
+ function weakCollectionOf(type) {
+ return type + " { ? }";
+ }
+ function collectionOf(type, size, entries, indent) {
+ var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ", ");
+ return type + " (" + size + ") {" + joinedEntries + "}";
+ }
+ function singleLineValues(xs) {
+ for (var i = 0; i < xs.length; i++) {
+ if (indexOf(xs[i], "\n") >= 0) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function getIndent(opts, depth) {
+ var baseIndent;
+ if (opts.indent === " ") {
+ baseIndent = " ";
+ } else if (typeof opts.indent === "number" && opts.indent > 0) {
+ baseIndent = $join.call(Array(opts.indent + 1), " ");
+ } else {
+ return null;
+ }
+ return {
+ base: baseIndent,
+ prev: $join.call(Array(depth + 1), baseIndent)
+ };
+ }
+ function indentedJoin(xs, indent) {
+ if (xs.length === 0) {
+ return "";
+ }
+ var lineJoiner = "\n" + indent.prev + indent.base;
+ return lineJoiner + $join.call(xs, "," + lineJoiner) + "\n" + indent.prev;
+ }
+ function arrObjKeys(obj, inspect) {
+ var isArr = isArray(obj);
+ var xs = [];
+ if (isArr) {
+ xs.length = obj.length;
+ for (var i = 0; i < obj.length; i++) {
+ xs[i] = has(obj, i) ? inspect(obj[i], obj) : "";
+ }
+ }
+ var syms = typeof gOPS === "function" ? gOPS(obj) : [];
+ var symMap;
+ if (hasShammedSymbols) {
+ symMap = {};
+ for (var k = 0; k < syms.length; k++) {
+ symMap["$" + syms[k]] = syms[k];
+ }
+ }
+ for (var key in obj) {
+ if (!has(obj, key)) {
+ continue;
+ }
+ if (isArr && String(Number(key)) === key && key < obj.length) {
+ continue;
+ }
+ if (hasShammedSymbols && symMap["$" + key] instanceof Symbol) {
+ continue;
+ } else if ($test.call(/[^\w$]/, key)) {
+ xs.push(inspect(key, obj) + ": " + inspect(obj[key], obj));
+ } else {
+ xs.push(key + ": " + inspect(obj[key], obj));
+ }
+ }
+ if (typeof gOPS === "function") {
+ for (var j = 0; j < syms.length; j++) {
+ if (isEnumerable.call(obj, syms[j])) {
+ xs.push("[" + inspect(syms[j]) + "]: " + inspect(obj[syms[j]], obj));
+ }
+ }
+ }
+ return xs;
+ }
+ }
+});
+
+// node_modules/side-channel/index.js
+var require_side_channel = __commonJS({
+ "node_modules/side-channel/index.js"(exports2, module2) {
+ "use strict";
+ var GetIntrinsic = require_get_intrinsic();
+ var callBound = require_callBound();
+ var inspect = require_object_inspect();
+ var $TypeError = require_type();
+ var $WeakMap = GetIntrinsic("%WeakMap%", true);
+ var $Map = GetIntrinsic("%Map%", true);
+ var $weakMapGet = callBound("WeakMap.prototype.get", true);
+ var $weakMapSet = callBound("WeakMap.prototype.set", true);
+ var $weakMapHas = callBound("WeakMap.prototype.has", true);
+ var $mapGet = callBound("Map.prototype.get", true);
+ var $mapSet = callBound("Map.prototype.set", true);
+ var $mapHas = callBound("Map.prototype.has", true);
+ var listGetNode = function(list, key) {
+ var prev = list;
+ var curr;
+ for (; (curr = prev.next) !== null; prev = curr) {
+ if (curr.key === key) {
+ prev.next = curr.next;
+ curr.next = /** @type {NonNullable} */
+ list.next;
+ list.next = curr;
+ return curr;
+ }
+ }
+ };
+ var listGet = function(objects, key) {
+ var node = listGetNode(objects, key);
+ return node && node.value;
+ };
+ var listSet = function(objects, key, value) {
+ var node = listGetNode(objects, key);
+ if (node) {
+ node.value = value;
+ } else {
+ objects.next = /** @type {import('.').ListNode} */
+ {
+ // eslint-disable-line no-param-reassign, no-extra-parens
+ key,
+ next: objects.next,
+ value
+ };
+ }
+ };
+ var listHas = function(objects, key) {
+ return !!listGetNode(objects, key);
+ };
+ module2.exports = function getSideChannel() {
+ var $wm;
+ var $m;
+ var $o;
+ var channel = {
+ assert: function(key) {
+ if (!channel.has(key)) {
+ throw new $TypeError("Side channel does not contain " + inspect(key));
+ }
+ },
+ get: function(key) {
+ if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) {
+ if ($wm) {
+ return $weakMapGet($wm, key);
+ }
+ } else if ($Map) {
+ if ($m) {
+ return $mapGet($m, key);
+ }
+ } else {
+ if ($o) {
+ return listGet($o, key);
+ }
+ }
+ },
+ has: function(key) {
+ if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) {
+ if ($wm) {
+ return $weakMapHas($wm, key);
+ }
+ } else if ($Map) {
+ if ($m) {
+ return $mapHas($m, key);
+ }
+ } else {
+ if ($o) {
+ return listHas($o, key);
+ }
+ }
+ return false;
+ },
+ set: function(key, value) {
+ if ($WeakMap && key && (typeof key === "object" || typeof key === "function")) {
+ if (!$wm) {
+ $wm = new $WeakMap();
+ }
+ $weakMapSet($wm, key, value);
+ } else if ($Map) {
+ if (!$m) {
+ $m = new $Map();
+ }
+ $mapSet($m, key, value);
+ } else {
+ if (!$o) {
+ $o = { key: {}, next: null };
+ }
+ listSet($o, key, value);
+ }
+ }
+ };
+ return channel;
+ };
+ }
+});
+
+// node_modules/qs/lib/formats.js
+var require_formats = __commonJS({
+ "node_modules/qs/lib/formats.js"(exports2, module2) {
+ "use strict";
+ var replace = String.prototype.replace;
+ var percentTwenties = /%20/g;
+ var Format = {
+ RFC1738: "RFC1738",
+ RFC3986: "RFC3986"
+ };
+ module2.exports = {
+ "default": Format.RFC3986,
+ formatters: {
+ RFC1738: function(value) {
+ return replace.call(value, percentTwenties, "+");
+ },
+ RFC3986: function(value) {
+ return String(value);
+ }
+ },
+ RFC1738: Format.RFC1738,
+ RFC3986: Format.RFC3986
+ };
+ }
+});
+
+// node_modules/qs/lib/utils.js
+var require_utils = __commonJS({
+ "node_modules/qs/lib/utils.js"(exports2, module2) {
+ "use strict";
+ var formats = require_formats();
+ var has = Object.prototype.hasOwnProperty;
+ var isArray = Array.isArray;
+ var hexTable = function() {
+ var array = [];
+ for (var i = 0; i < 256; ++i) {
+ array.push("%" + ((i < 16 ? "0" : "") + i.toString(16)).toUpperCase());
+ }
+ return array;
+ }();
+ var compactQueue = function compactQueue2(queue) {
+ while (queue.length > 1) {
+ var item = queue.pop();
+ var obj = item.obj[item.prop];
+ if (isArray(obj)) {
+ var compacted = [];
+ for (var j = 0; j < obj.length; ++j) {
+ if (typeof obj[j] !== "undefined") {
+ compacted.push(obj[j]);
+ }
+ }
+ item.obj[item.prop] = compacted;
+ }
+ }
+ };
+ var arrayToObject = function arrayToObject2(source, options) {
+ var obj = options && options.plainObjects ? /* @__PURE__ */ Object.create(null) : {};
+ for (var i = 0; i < source.length; ++i) {
+ if (typeof source[i] !== "undefined") {
+ obj[i] = source[i];
+ }
+ }
+ return obj;
+ };
+ var merge = function merge2(target, source, options) {
+ if (!source) {
+ return target;
+ }
+ if (typeof source !== "object") {
+ if (isArray(target)) {
+ target.push(source);
+ } else if (target && typeof target === "object") {
+ if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) {
+ target[source] = true;
+ }
+ } else {
+ return [target, source];
+ }
+ return target;
+ }
+ if (!target || typeof target !== "object") {
+ return [target].concat(source);
+ }
+ var mergeTarget = target;
+ if (isArray(target) && !isArray(source)) {
+ mergeTarget = arrayToObject(target, options);
+ }
+ if (isArray(target) && isArray(source)) {
+ source.forEach(function(item, i) {
+ if (has.call(target, i)) {
+ var targetItem = target[i];
+ if (targetItem && typeof targetItem === "object" && item && typeof item === "object") {
+ target[i] = merge2(targetItem, item, options);
+ } else {
+ target.push(item);
+ }
+ } else {
+ target[i] = item;
+ }
+ });
+ return target;
+ }
+ return Object.keys(source).reduce(function(acc, key) {
+ var value = source[key];
+ if (has.call(acc, key)) {
+ acc[key] = merge2(acc[key], value, options);
+ } else {
+ acc[key] = value;
+ }
+ return acc;
+ }, mergeTarget);
+ };
+ var assign = function assignSingleSource(target, source) {
+ return Object.keys(source).reduce(function(acc, key) {
+ acc[key] = source[key];
+ return acc;
+ }, target);
+ };
+ var decode = function(str, decoder, charset) {
+ var strWithoutPlus = str.replace(/\+/g, " ");
+ if (charset === "iso-8859-1") {
+ return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
+ }
+ try {
+ return decodeURIComponent(strWithoutPlus);
+ } catch (e) {
+ return strWithoutPlus;
+ }
+ };
+ var limit = 1024;
+ var encode = function encode2(str, defaultEncoder, charset, kind, format) {
+ if (str.length === 0) {
+ return str;
+ }
+ var string = str;
+ if (typeof str === "symbol") {
+ string = Symbol.prototype.toString.call(str);
+ } else if (typeof str !== "string") {
+ string = String(str);
+ }
+ if (charset === "iso-8859-1") {
+ return escape(string).replace(/%u[0-9a-f]{4}/gi, function($0) {
+ return "%26%23" + parseInt($0.slice(2), 16) + "%3B";
+ });
+ }
+ var out = "";
+ for (var j = 0; j < string.length; j += limit) {
+ var segment = string.length >= limit ? string.slice(j, j + limit) : string;
+ var arr = [];
+ for (var i = 0; i < segment.length; ++i) {
+ var c = segment.charCodeAt(i);
+ if (c === 45 || c === 46 || c === 95 || c === 126 || c >= 48 && c <= 57 || c >= 65 && c <= 90 || c >= 97 && c <= 122 || format === formats.RFC1738 && (c === 40 || c === 41)) {
+ arr[arr.length] = segment.charAt(i);
+ continue;
+ }
+ if (c < 128) {
+ arr[arr.length] = hexTable[c];
+ continue;
+ }
+ if (c < 2048) {
+ arr[arr.length] = hexTable[192 | c >> 6] + hexTable[128 | c & 63];
+ continue;
+ }
+ if (c < 55296 || c >= 57344) {
+ arr[arr.length] = hexTable[224 | c >> 12] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
+ continue;
+ }
+ i += 1;
+ c = 65536 + ((c & 1023) << 10 | segment.charCodeAt(i) & 1023);
+ arr[arr.length] = hexTable[240 | c >> 18] + hexTable[128 | c >> 12 & 63] + hexTable[128 | c >> 6 & 63] + hexTable[128 | c & 63];
+ }
+ out += arr.join("");
+ }
+ return out;
+ };
+ var compact = function compact2(value) {
+ var queue = [{ obj: { o: value }, prop: "o" }];
+ var refs = [];
+ for (var i = 0; i < queue.length; ++i) {
+ var item = queue[i];
+ var obj = item.obj[item.prop];
+ var keys = Object.keys(obj);
+ for (var j = 0; j < keys.length; ++j) {
+ var key = keys[j];
+ var val = obj[key];
+ if (typeof val === "object" && val !== null && refs.indexOf(val) === -1) {
+ queue.push({ obj, prop: key });
+ refs.push(val);
+ }
+ }
+ }
+ compactQueue(queue);
+ return value;
+ };
+ var isRegExp = function isRegExp2(obj) {
+ return Object.prototype.toString.call(obj) === "[object RegExp]";
+ };
+ var isBuffer = function isBuffer2(obj) {
+ if (!obj || typeof obj !== "object") {
+ return false;
+ }
+ return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
+ };
+ var combine = function combine2(a, b) {
+ return [].concat(a, b);
+ };
+ var maybeMap = function maybeMap2(val, fn) {
+ if (isArray(val)) {
+ var mapped = [];
+ for (var i = 0; i < val.length; i += 1) {
+ mapped.push(fn(val[i]));
+ }
+ return mapped;
+ }
+ return fn(val);
+ };
+ module2.exports = {
+ arrayToObject,
+ assign,
+ combine,
+ compact,
+ decode,
+ encode,
+ isBuffer,
+ isRegExp,
+ maybeMap,
+ merge
+ };
+ }
+});
+
+// node_modules/qs/lib/stringify.js
+var require_stringify = __commonJS({
+ "node_modules/qs/lib/stringify.js"(exports2, module2) {
+ "use strict";
+ var getSideChannel = require_side_channel();
+ var utils = require_utils();
+ var formats = require_formats();
+ var has = Object.prototype.hasOwnProperty;
+ var arrayPrefixGenerators = {
+ brackets: function brackets(prefix) {
+ return prefix + "[]";
+ },
+ comma: "comma",
+ indices: function indices(prefix, key) {
+ return prefix + "[" + key + "]";
+ },
+ repeat: function repeat(prefix) {
+ return prefix;
+ }
+ };
+ var isArray = Array.isArray;
+ var push = Array.prototype.push;
+ var pushToArray = function(arr, valueOrArray) {
+ push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);
+ };
+ var toISO = Date.prototype.toISOString;
+ var defaultFormat = formats["default"];
+ var defaults = {
+ addQueryPrefix: false,
+ allowDots: false,
+ allowEmptyArrays: false,
+ arrayFormat: "indices",
+ charset: "utf-8",
+ charsetSentinel: false,
+ delimiter: "&",
+ encode: true,
+ encodeDotInKeys: false,
+ encoder: utils.encode,
+ encodeValuesOnly: false,
+ format: defaultFormat,
+ formatter: formats.formatters[defaultFormat],
+ // deprecated
+ indices: false,
+ serializeDate: function serializeDate(date) {
+ return toISO.call(date);
+ },
+ skipNulls: false,
+ strictNullHandling: false
+ };
+ var isNonNullishPrimitive = function isNonNullishPrimitive2(v) {
+ return typeof v === "string" || typeof v === "number" || typeof v === "boolean" || typeof v === "symbol" || typeof v === "bigint";
+ };
+ var sentinel = {};
+ var stringify = function stringify2(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) {
+ var obj = object;
+ var tmpSc = sideChannel;
+ var step = 0;
+ var findFlag = false;
+ while ((tmpSc = tmpSc.get(sentinel)) !== void 0 && !findFlag) {
+ var pos = tmpSc.get(object);
+ step += 1;
+ if (typeof pos !== "undefined") {
+ if (pos === step) {
+ throw new RangeError("Cyclic object value");
+ } else {
+ findFlag = true;
+ }
+ }
+ if (typeof tmpSc.get(sentinel) === "undefined") {
+ step = 0;
+ }
+ }
+ if (typeof filter === "function") {
+ obj = filter(prefix, obj);
+ } else if (obj instanceof Date) {
+ obj = serializeDate(obj);
+ } else if (generateArrayPrefix === "comma" && isArray(obj)) {
+ obj = utils.maybeMap(obj, function(value2) {
+ if (value2 instanceof Date) {
+ return serializeDate(value2);
+ }
+ return value2;
+ });
+ }
+ if (obj === null) {
+ if (strictNullHandling) {
+ return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, "key", format) : prefix;
+ }
+ obj = "";
+ }
+ if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {
+ if (encoder) {
+ var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, "key", format);
+ return [formatter(keyValue) + "=" + formatter(encoder(obj, defaults.encoder, charset, "value", format))];
+ }
+ return [formatter(prefix) + "=" + formatter(String(obj))];
+ }
+ var values = [];
+ if (typeof obj === "undefined") {
+ return values;
+ }
+ var objKeys;
+ if (generateArrayPrefix === "comma" && isArray(obj)) {
+ if (encodeValuesOnly && encoder) {
+ obj = utils.maybeMap(obj, encoder);
+ }
+ objKeys = [{ value: obj.length > 0 ? obj.join(",") || null : void 0 }];
+ } else if (isArray(filter)) {
+ objKeys = filter;
+ } else {
+ var keys = Object.keys(obj);
+ objKeys = sort ? keys.sort(sort) : keys;
+ }
+ var encodedPrefix = encodeDotInKeys ? prefix.replace(/\./g, "%2E") : prefix;
+ var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + "[]" : encodedPrefix;
+ if (allowEmptyArrays && isArray(obj) && obj.length === 0) {
+ return adjustedPrefix + "[]";
+ }
+ for (var j = 0; j < objKeys.length; ++j) {
+ var key = objKeys[j];
+ var value = typeof key === "object" && typeof key.value !== "undefined" ? key.value : obj[key];
+ if (skipNulls && value === null) {
+ continue;
+ }
+ var encodedKey = allowDots && encodeDotInKeys ? key.replace(/\./g, "%2E") : key;
+ var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === "function" ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix : adjustedPrefix + (allowDots ? "." + encodedKey : "[" + encodedKey + "]");
+ sideChannel.set(object, step);
+ var valueSideChannel = getSideChannel();
+ valueSideChannel.set(sentinel, sideChannel);
+ pushToArray(values, stringify2(
+ value,
+ keyPrefix,
+ generateArrayPrefix,
+ commaRoundTrip,
+ allowEmptyArrays,
+ strictNullHandling,
+ skipNulls,
+ encodeDotInKeys,
+ generateArrayPrefix === "comma" && encodeValuesOnly && isArray(obj) ? null : encoder,
+ filter,
+ sort,
+ allowDots,
+ serializeDate,
+ format,
+ formatter,
+ encodeValuesOnly,
+ charset,
+ valueSideChannel
+ ));
+ }
+ return values;
+ };
+ var normalizeStringifyOptions = function normalizeStringifyOptions2(opts) {
+ if (!opts) {
+ return defaults;
+ }
+ if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") {
+ throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
+ }
+ if (typeof opts.encodeDotInKeys !== "undefined" && typeof opts.encodeDotInKeys !== "boolean") {
+ throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");
+ }
+ if (opts.encoder !== null && typeof opts.encoder !== "undefined" && typeof opts.encoder !== "function") {
+ throw new TypeError("Encoder has to be a function.");
+ }
+ var charset = opts.charset || defaults.charset;
+ if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") {
+ throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");
+ }
+ var format = formats["default"];
+ if (typeof opts.format !== "undefined") {
+ if (!has.call(formats.formatters, opts.format)) {
+ throw new TypeError("Unknown format option provided.");
+ }
+ format = opts.format;
+ }
+ var formatter = formats.formatters[format];
+ var filter = defaults.filter;
+ if (typeof opts.filter === "function" || isArray(opts.filter)) {
+ filter = opts.filter;
+ }
+ var arrayFormat;
+ if (opts.arrayFormat in arrayPrefixGenerators) {
+ arrayFormat = opts.arrayFormat;
+ } else if ("indices" in opts) {
+ arrayFormat = opts.indices ? "indices" : "repeat";
+ } else {
+ arrayFormat = defaults.arrayFormat;
+ }
+ if ("commaRoundTrip" in opts && typeof opts.commaRoundTrip !== "boolean") {
+ throw new TypeError("`commaRoundTrip` must be a boolean, or absent");
+ }
+ var allowDots = typeof opts.allowDots === "undefined" ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
+ return {
+ addQueryPrefix: typeof opts.addQueryPrefix === "boolean" ? opts.addQueryPrefix : defaults.addQueryPrefix,
+ allowDots,
+ allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
+ arrayFormat,
+ charset,
+ charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel,
+ commaRoundTrip: opts.commaRoundTrip,
+ delimiter: typeof opts.delimiter === "undefined" ? defaults.delimiter : opts.delimiter,
+ encode: typeof opts.encode === "boolean" ? opts.encode : defaults.encode,
+ encodeDotInKeys: typeof opts.encodeDotInKeys === "boolean" ? opts.encodeDotInKeys : defaults.encodeDotInKeys,
+ encoder: typeof opts.encoder === "function" ? opts.encoder : defaults.encoder,
+ encodeValuesOnly: typeof opts.encodeValuesOnly === "boolean" ? opts.encodeValuesOnly : defaults.encodeValuesOnly,
+ filter,
+ format,
+ formatter,
+ serializeDate: typeof opts.serializeDate === "function" ? opts.serializeDate : defaults.serializeDate,
+ skipNulls: typeof opts.skipNulls === "boolean" ? opts.skipNulls : defaults.skipNulls,
+ sort: typeof opts.sort === "function" ? opts.sort : null,
+ strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling
+ };
+ };
+ module2.exports = function(object, opts) {
+ var obj = object;
+ var options = normalizeStringifyOptions(opts);
+ var objKeys;
+ var filter;
+ if (typeof options.filter === "function") {
+ filter = options.filter;
+ obj = filter("", obj);
+ } else if (isArray(options.filter)) {
+ filter = options.filter;
+ objKeys = filter;
+ }
+ var keys = [];
+ if (typeof obj !== "object" || obj === null) {
+ return "";
+ }
+ var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];
+ var commaRoundTrip = generateArrayPrefix === "comma" && options.commaRoundTrip;
+ if (!objKeys) {
+ objKeys = Object.keys(obj);
+ }
+ if (options.sort) {
+ objKeys.sort(options.sort);
+ }
+ var sideChannel = getSideChannel();
+ for (var i = 0; i < objKeys.length; ++i) {
+ var key = objKeys[i];
+ if (options.skipNulls && obj[key] === null) {
+ continue;
+ }
+ pushToArray(keys, stringify(
+ obj[key],
+ key,
+ generateArrayPrefix,
+ commaRoundTrip,
+ options.allowEmptyArrays,
+ options.strictNullHandling,
+ options.skipNulls,
+ options.encodeDotInKeys,
+ options.encode ? options.encoder : null,
+ options.filter,
+ options.sort,
+ options.allowDots,
+ options.serializeDate,
+ options.format,
+ options.formatter,
+ options.encodeValuesOnly,
+ options.charset,
+ sideChannel
+ ));
+ }
+ var joined = keys.join(options.delimiter);
+ var prefix = options.addQueryPrefix === true ? "?" : "";
+ if (options.charsetSentinel) {
+ if (options.charset === "iso-8859-1") {
+ prefix += "utf8=%26%2310003%3B&";
+ } else {
+ prefix += "utf8=%E2%9C%93&";
+ }
+ }
+ return joined.length > 0 ? prefix + joined : "";
+ };
+ }
+});
+
+// node_modules/qs/lib/parse.js
+var require_parse = __commonJS({
+ "node_modules/qs/lib/parse.js"(exports2, module2) {
+ "use strict";
+ var utils = require_utils();
+ var has = Object.prototype.hasOwnProperty;
+ var isArray = Array.isArray;
+ var defaults = {
+ allowDots: false,
+ allowEmptyArrays: false,
+ allowPrototypes: false,
+ allowSparse: false,
+ arrayLimit: 20,
+ charset: "utf-8",
+ charsetSentinel: false,
+ comma: false,
+ decodeDotInKeys: false,
+ decoder: utils.decode,
+ delimiter: "&",
+ depth: 5,
+ duplicates: "combine",
+ ignoreQueryPrefix: false,
+ interpretNumericEntities: false,
+ parameterLimit: 1e3,
+ parseArrays: true,
+ plainObjects: false,
+ strictDepth: false,
+ strictNullHandling: false
+ };
+ var interpretNumericEntities = function(str) {
+ return str.replace(/(\d+);/g, function($0, numberStr) {
+ return String.fromCharCode(parseInt(numberStr, 10));
+ });
+ };
+ var parseArrayValue = function(val, options) {
+ if (val && typeof val === "string" && options.comma && val.indexOf(",") > -1) {
+ return val.split(",");
+ }
+ return val;
+ };
+ var isoSentinel = "utf8=%26%2310003%3B";
+ var charsetSentinel = "utf8=%E2%9C%93";
+ var parseValues = function parseQueryStringValues(str, options) {
+ var obj = { __proto__: null };
+ var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, "") : str;
+ cleanStr = cleanStr.replace(/%5B/gi, "[").replace(/%5D/gi, "]");
+ var limit = options.parameterLimit === Infinity ? void 0 : options.parameterLimit;
+ var parts = cleanStr.split(options.delimiter, limit);
+ var skipIndex = -1;
+ var i;
+ var charset = options.charset;
+ if (options.charsetSentinel) {
+ for (i = 0; i < parts.length; ++i) {
+ if (parts[i].indexOf("utf8=") === 0) {
+ if (parts[i] === charsetSentinel) {
+ charset = "utf-8";
+ } else if (parts[i] === isoSentinel) {
+ charset = "iso-8859-1";
+ }
+ skipIndex = i;
+ i = parts.length;
+ }
+ }
+ }
+ for (i = 0; i < parts.length; ++i) {
+ if (i === skipIndex) {
+ continue;
+ }
+ var part = parts[i];
+ var bracketEqualsPos = part.indexOf("]=");
+ var pos = bracketEqualsPos === -1 ? part.indexOf("=") : bracketEqualsPos + 1;
+ var key, val;
+ if (pos === -1) {
+ key = options.decoder(part, defaults.decoder, charset, "key");
+ val = options.strictNullHandling ? null : "";
+ } else {
+ key = options.decoder(part.slice(0, pos), defaults.decoder, charset, "key");
+ val = utils.maybeMap(
+ parseArrayValue(part.slice(pos + 1), options),
+ function(encodedVal) {
+ return options.decoder(encodedVal, defaults.decoder, charset, "value");
+ }
+ );
+ }
+ if (val && options.interpretNumericEntities && charset === "iso-8859-1") {
+ val = interpretNumericEntities(val);
+ }
+ if (part.indexOf("[]=") > -1) {
+ val = isArray(val) ? [val] : val;
+ }
+ var existing = has.call(obj, key);
+ if (existing && options.duplicates === "combine") {
+ obj[key] = utils.combine(obj[key], val);
+ } else if (!existing || options.duplicates === "last") {
+ obj[key] = val;
+ }
+ }
+ return obj;
+ };
+ var parseObject = function(chain, val, options, valuesParsed) {
+ var leaf = valuesParsed ? val : parseArrayValue(val, options);
+ for (var i = chain.length - 1; i >= 0; --i) {
+ var obj;
+ var root = chain[i];
+ if (root === "[]" && options.parseArrays) {
+ obj = options.allowEmptyArrays && (leaf === "" || options.strictNullHandling && leaf === null) ? [] : [].concat(leaf);
+ } else {
+ obj = options.plainObjects ? /* @__PURE__ */ Object.create(null) : {};
+ var cleanRoot = root.charAt(0) === "[" && root.charAt(root.length - 1) === "]" ? root.slice(1, -1) : root;
+ var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, ".") : cleanRoot;
+ var index = parseInt(decodedRoot, 10);
+ if (!options.parseArrays && decodedRoot === "") {
+ obj = { 0: leaf };
+ } else if (!isNaN(index) && root !== decodedRoot && String(index) === decodedRoot && index >= 0 && (options.parseArrays && index <= options.arrayLimit)) {
+ obj = [];
+ obj[index] = leaf;
+ } else if (decodedRoot !== "__proto__") {
+ obj[decodedRoot] = leaf;
+ }
+ }
+ leaf = obj;
+ }
+ return leaf;
+ };
+ var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {
+ if (!givenKey) {
+ return;
+ }
+ var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, "[$1]") : givenKey;
+ var brackets = /(\[[^[\]]*])/;
+ var child = /(\[[^[\]]*])/g;
+ var segment = options.depth > 0 && brackets.exec(key);
+ var parent = segment ? key.slice(0, segment.index) : key;
+ var keys = [];
+ if (parent) {
+ if (!options.plainObjects && has.call(Object.prototype, parent)) {
+ if (!options.allowPrototypes) {
+ return;
+ }
+ }
+ keys.push(parent);
+ }
+ var i = 0;
+ while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {
+ i += 1;
+ if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {
+ if (!options.allowPrototypes) {
+ return;
+ }
+ }
+ keys.push(segment[1]);
+ }
+ if (segment) {
+ if (options.strictDepth === true) {
+ throw new RangeError("Input depth exceeded depth option of " + options.depth + " and strictDepth is true");
+ }
+ keys.push("[" + key.slice(segment.index) + "]");
+ }
+ return parseObject(keys, val, options, valuesParsed);
+ };
+ var normalizeParseOptions = function normalizeParseOptions2(opts) {
+ if (!opts) {
+ return defaults;
+ }
+ if (typeof opts.allowEmptyArrays !== "undefined" && typeof opts.allowEmptyArrays !== "boolean") {
+ throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");
+ }
+ if (typeof opts.decodeDotInKeys !== "undefined" && typeof opts.decodeDotInKeys !== "boolean") {
+ throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");
+ }
+ if (opts.decoder !== null && typeof opts.decoder !== "undefined" && typeof opts.decoder !== "function") {
+ throw new TypeError("Decoder has to be a function.");
+ }
+ if (typeof opts.charset !== "undefined" && opts.charset !== "utf-8" && opts.charset !== "iso-8859-1") {
+ throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");
+ }
+ var charset = typeof opts.charset === "undefined" ? defaults.charset : opts.charset;
+ var duplicates = typeof opts.duplicates === "undefined" ? defaults.duplicates : opts.duplicates;
+ if (duplicates !== "combine" && duplicates !== "first" && duplicates !== "last") {
+ throw new TypeError("The duplicates option must be either combine, first, or last");
+ }
+ var allowDots = typeof opts.allowDots === "undefined" ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;
+ return {
+ allowDots,
+ allowEmptyArrays: typeof opts.allowEmptyArrays === "boolean" ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,
+ allowPrototypes: typeof opts.allowPrototypes === "boolean" ? opts.allowPrototypes : defaults.allowPrototypes,
+ allowSparse: typeof opts.allowSparse === "boolean" ? opts.allowSparse : defaults.allowSparse,
+ arrayLimit: typeof opts.arrayLimit === "number" ? opts.arrayLimit : defaults.arrayLimit,
+ charset,
+ charsetSentinel: typeof opts.charsetSentinel === "boolean" ? opts.charsetSentinel : defaults.charsetSentinel,
+ comma: typeof opts.comma === "boolean" ? opts.comma : defaults.comma,
+ decodeDotInKeys: typeof opts.decodeDotInKeys === "boolean" ? opts.decodeDotInKeys : defaults.decodeDotInKeys,
+ decoder: typeof opts.decoder === "function" ? opts.decoder : defaults.decoder,
+ delimiter: typeof opts.delimiter === "string" || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,
+ // eslint-disable-next-line no-implicit-coercion, no-extra-parens
+ depth: typeof opts.depth === "number" || opts.depth === false ? +opts.depth : defaults.depth,
+ duplicates,
+ ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
+ interpretNumericEntities: typeof opts.interpretNumericEntities === "boolean" ? opts.interpretNumericEntities : defaults.interpretNumericEntities,
+ parameterLimit: typeof opts.parameterLimit === "number" ? opts.parameterLimit : defaults.parameterLimit,
+ parseArrays: opts.parseArrays !== false,
+ plainObjects: typeof opts.plainObjects === "boolean" ? opts.plainObjects : defaults.plainObjects,
+ strictDepth: typeof opts.strictDepth === "boolean" ? !!opts.strictDepth : defaults.strictDepth,
+ strictNullHandling: typeof opts.strictNullHandling === "boolean" ? opts.strictNullHandling : defaults.strictNullHandling
+ };
+ };
+ module2.exports = function(str, opts) {
+ var options = normalizeParseOptions(opts);
+ if (str === "" || str === null || typeof str === "undefined") {
+ return options.plainObjects ? /* @__PURE__ */ Object.create(null) : {};
+ }
+ var tempObj = typeof str === "string" ? parseValues(str, options) : str;
+ var obj = options.plainObjects ? /* @__PURE__ */ Object.create(null) : {};
+ var keys = Object.keys(tempObj);
+ for (var i = 0; i < keys.length; ++i) {
+ var key = keys[i];
+ var newObj = parseKeys(key, tempObj[key], options, typeof str === "string");
+ obj = utils.merge(obj, newObj, options);
+ }
+ if (options.allowSparse === true) {
+ return obj;
+ }
+ return utils.compact(obj);
+ };
+ }
+});
+
+// node_modules/qs/lib/index.js
+var require_lib2 = __commonJS({
+ "node_modules/qs/lib/index.js"(exports2, module2) {
+ "use strict";
+ var stringify = require_stringify();
+ var parse = require_parse();
+ var formats = require_formats();
+ module2.exports = {
+ formats,
+ parse,
+ stringify
+ };
+ }
+});
+
+// node_modules/body-parser/lib/types/urlencoded.js
+var require_urlencoded = __commonJS({
+ "node_modules/body-parser/lib/types/urlencoded.js"(exports2, module2) {
+ "use strict";
+ var bytes = require_bytes();
+ var contentType = require_content_type();
+ var createError = require_http_errors();
+ var debug = require_src()("body-parser:urlencoded");
+ var deprecate = require_depd()("body-parser");
+ var read = require_read();
+ var typeis = require_type_is();
+ module2.exports = urlencoded;
+ var parsers = /* @__PURE__ */ Object.create(null);
+ function urlencoded(options) {
+ var opts = options || {};
+ if (opts.extended === void 0) {
+ deprecate("undefined extended: provide extended option");
+ }
+ var extended = opts.extended !== false;
+ var inflate = opts.inflate !== false;
+ var limit = typeof opts.limit !== "number" ? bytes.parse(opts.limit || "100kb") : opts.limit;
+ var type = opts.type || "application/x-www-form-urlencoded";
+ var verify = opts.verify || false;
+ var depth = typeof opts.depth !== "number" ? Number(opts.depth || 32) : opts.depth;
+ if (verify !== false && typeof verify !== "function") {
+ throw new TypeError("option verify must be function");
+ }
+ var queryparse = extended ? extendedparser(opts) : simpleparser(opts);
+ var shouldParse = typeof type !== "function" ? typeChecker(type) : type;
+ function parse(body) {
+ return body.length ? queryparse(body) : {};
+ }
+ return function urlencodedParser(req, res, next) {
+ if (req._body) {
+ debug("body already parsed");
+ next();
+ return;
+ }
+ req.body = req.body || {};
+ if (!typeis.hasBody(req)) {
+ debug("skip empty body");
+ next();
+ return;
+ }
+ debug("content-type %j", req.headers["content-type"]);
+ if (!shouldParse(req)) {
+ debug("skip parsing");
+ next();
+ return;
+ }
+ var charset = getCharset(req) || "utf-8";
+ if (charset !== "utf-8") {
+ debug("invalid charset");
+ next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', {
+ charset,
+ type: "charset.unsupported"
+ }));
+ return;
+ }
+ read(req, res, next, parse, debug, {
+ debug,
+ encoding: charset,
+ inflate,
+ limit,
+ verify,
+ depth
+ });
+ };
+ }
+ function extendedparser(options) {
+ var parameterLimit = options.parameterLimit !== void 0 ? options.parameterLimit : 1e3;
+ var depth = typeof options.depth !== "number" ? Number(options.depth || 32) : options.depth;
+ var parse = parser("qs");
+ if (isNaN(parameterLimit) || parameterLimit < 1) {
+ throw new TypeError("option parameterLimit must be a positive number");
+ }
+ if (isNaN(depth) || depth < 0) {
+ throw new TypeError("option depth must be a zero or a positive number");
+ }
+ if (isFinite(parameterLimit)) {
+ parameterLimit = parameterLimit | 0;
+ }
+ return function queryparse(body) {
+ var paramCount = parameterCount(body, parameterLimit);
+ if (paramCount === void 0) {
+ debug("too many parameters");
+ throw createError(413, "too many parameters", {
+ type: "parameters.too.many"
+ });
+ }
+ var arrayLimit = Math.max(100, paramCount);
+ debug("parse extended urlencoding");
+ try {
+ return parse(body, {
+ allowPrototypes: true,
+ arrayLimit,
+ depth,
+ strictDepth: true,
+ parameterLimit
+ });
+ } catch (err) {
+ if (err instanceof RangeError) {
+ throw createError(400, "The input exceeded the depth", {
+ type: "querystring.parse.rangeError"
+ });
+ } else {
+ throw err;
+ }
+ }
+ };
+ }
+ function getCharset(req) {
+ try {
+ return (contentType.parse(req).parameters.charset || "").toLowerCase();
+ } catch (e) {
+ return void 0;
+ }
+ }
+ function parameterCount(body, limit) {
+ var count = 0;
+ var index = 0;
+ while ((index = body.indexOf("&", index)) !== -1) {
+ count++;
+ index++;
+ if (count === limit) {
+ return void 0;
+ }
+ }
+ return count;
+ }
+ function parser(name) {
+ var mod = parsers[name];
+ if (mod !== void 0) {
+ return mod.parse;
+ }
+ switch (name) {
+ case "qs":
+ mod = require_lib2();
+ break;
+ case "querystring":
+ mod = require("querystring");
+ break;
+ }
+ parsers[name] = mod;
+ return mod.parse;
+ }
+ function simpleparser(options) {
+ var parameterLimit = options.parameterLimit !== void 0 ? options.parameterLimit : 1e3;
+ var parse = parser("querystring");
+ if (isNaN(parameterLimit) || parameterLimit < 1) {
+ throw new TypeError("option parameterLimit must be a positive number");
+ }
+ if (isFinite(parameterLimit)) {
+ parameterLimit = parameterLimit | 0;
+ }
+ return function queryparse(body) {
+ var paramCount = parameterCount(body, parameterLimit);
+ if (paramCount === void 0) {
+ debug("too many parameters");
+ throw createError(413, "too many parameters", {
+ type: "parameters.too.many"
+ });
+ }
+ debug("parse urlencoding");
+ return parse(body, void 0, void 0, { maxKeys: parameterLimit });
+ };
+ }
+ function typeChecker(type) {
+ return function checkType(req) {
+ return Boolean(typeis(req, type));
+ };
+ }
+ }
+});
+
+// node_modules/body-parser/index.js
+var require_body_parser = __commonJS({
+ "node_modules/body-parser/index.js"(exports2, module2) {
+ "use strict";
+ var deprecate = require_depd()("body-parser");
+ var parsers = /* @__PURE__ */ Object.create(null);
+ exports2 = module2.exports = deprecate.function(
+ bodyParser2,
+ "bodyParser: use individual json/urlencoded middlewares"
+ );
+ Object.defineProperty(exports2, "json", {
+ configurable: true,
+ enumerable: true,
+ get: createParserGetter("json")
+ });
+ Object.defineProperty(exports2, "raw", {
+ configurable: true,
+ enumerable: true,
+ get: createParserGetter("raw")
+ });
+ Object.defineProperty(exports2, "text", {
+ configurable: true,
+ enumerable: true,
+ get: createParserGetter("text")
+ });
+ Object.defineProperty(exports2, "urlencoded", {
+ configurable: true,
+ enumerable: true,
+ get: createParserGetter("urlencoded")
+ });
+ function bodyParser2(options) {
+ var opts = Object.create(options || null, {
+ type: {
+ configurable: true,
+ enumerable: true,
+ value: void 0,
+ writable: true
+ }
+ });
+ var _urlencoded = exports2.urlencoded(opts);
+ var _json = exports2.json(opts);
+ return function bodyParser3(req, res, next) {
+ _json(req, res, function(err) {
+ if (err)
+ return next(err);
+ _urlencoded(req, res, next);
+ });
+ };
+ }
+ function createParserGetter(name) {
+ return function get() {
+ return loadParser(name);
+ };
+ }
+ function loadParser(parserName) {
+ var parser = parsers[parserName];
+ if (parser !== void 0) {
+ return parser;
+ }
+ switch (parserName) {
+ case "json":
+ parser = require_json();
+ break;
+ case "raw":
+ parser = require_raw();
+ break;
+ case "text":
+ parser = require_text();
+ break;
+ case "urlencoded":
+ parser = require_urlencoded();
+ break;
+ }
+ return parsers[parserName] = parser;
+ }
+ }
+});
+
+// node_modules/merge-descriptors/index.js
+var require_merge_descriptors = __commonJS({
+ "node_modules/merge-descriptors/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = merge;
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ function merge(dest, src, redefine) {
+ if (!dest) {
+ throw new TypeError("argument dest is required");
+ }
+ if (!src) {
+ throw new TypeError("argument src is required");
+ }
+ if (redefine === void 0) {
+ redefine = true;
+ }
+ Object.getOwnPropertyNames(src).forEach(function forEachOwnPropertyName(name) {
+ if (!redefine && hasOwnProperty.call(dest, name)) {
+ return;
+ }
+ var descriptor = Object.getOwnPropertyDescriptor(src, name);
+ Object.defineProperty(dest, name, descriptor);
+ });
+ return dest;
+ }
+ }
+});
+
+// node_modules/encodeurl/index.js
+var require_encodeurl = __commonJS({
+ "node_modules/encodeurl/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = encodeUrl;
+ var ENCODE_CHARS_REGEXP = /(?:[^\x21\x23-\x3B\x3D\x3F-\x5F\x61-\x7A\x7C\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g;
+ var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g;
+ var UNMATCHED_SURROGATE_PAIR_REPLACE = "$1\uFFFD$2";
+ function encodeUrl(url) {
+ return String(url).replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE).replace(ENCODE_CHARS_REGEXP, encodeURI);
+ }
+ }
+});
+
+// node_modules/escape-html/index.js
+var require_escape_html = __commonJS({
+ "node_modules/escape-html/index.js"(exports2, module2) {
+ "use strict";
+ var matchHtmlRegExp = /["'&<>]/;
+ module2.exports = escapeHtml;
+ function escapeHtml(string) {
+ var str = "" + string;
+ var match = matchHtmlRegExp.exec(str);
+ if (!match) {
+ return str;
+ }
+ var escape2;
+ var html = "";
+ var index = 0;
+ var lastIndex = 0;
+ for (index = match.index; index < str.length; index++) {
+ switch (str.charCodeAt(index)) {
+ case 34:
+ escape2 = """;
+ break;
+ case 38:
+ escape2 = "&";
+ break;
+ case 39:
+ escape2 = "'";
+ break;
+ case 60:
+ escape2 = "<";
+ break;
+ case 62:
+ escape2 = ">";
+ break;
+ default:
+ continue;
+ }
+ if (lastIndex !== index) {
+ html += str.substring(lastIndex, index);
+ }
+ lastIndex = index + 1;
+ html += escape2;
+ }
+ return lastIndex !== index ? html + str.substring(lastIndex, index) : html;
+ }
+ }
+});
+
+// node_modules/parseurl/index.js
+var require_parseurl = __commonJS({
+ "node_modules/parseurl/index.js"(exports2, module2) {
+ "use strict";
+ var url = require("url");
+ var parse = url.parse;
+ var Url = url.Url;
+ module2.exports = parseurl;
+ module2.exports.original = originalurl;
+ function parseurl(req) {
+ var url2 = req.url;
+ if (url2 === void 0) {
+ return void 0;
+ }
+ var parsed = req._parsedUrl;
+ if (fresh(url2, parsed)) {
+ return parsed;
+ }
+ parsed = fastparse(url2);
+ parsed._raw = url2;
+ return req._parsedUrl = parsed;
+ }
+ function originalurl(req) {
+ var url2 = req.originalUrl;
+ if (typeof url2 !== "string") {
+ return parseurl(req);
+ }
+ var parsed = req._parsedOriginalUrl;
+ if (fresh(url2, parsed)) {
+ return parsed;
+ }
+ parsed = fastparse(url2);
+ parsed._raw = url2;
+ return req._parsedOriginalUrl = parsed;
+ }
+ function fastparse(str) {
+ if (typeof str !== "string" || str.charCodeAt(0) !== 47) {
+ return parse(str);
+ }
+ var pathname = str;
+ var query = null;
+ var search = null;
+ for (var i = 1; i < str.length; i++) {
+ switch (str.charCodeAt(i)) {
+ case 63:
+ if (search === null) {
+ pathname = str.substring(0, i);
+ query = str.substring(i + 1);
+ search = str.substring(i);
+ }
+ break;
+ case 9:
+ case 10:
+ case 12:
+ case 13:
+ case 32:
+ case 35:
+ case 160:
+ case 65279:
+ return parse(str);
+ }
+ }
+ var url2 = Url !== void 0 ? new Url() : {};
+ url2.path = str;
+ url2.href = str;
+ url2.pathname = pathname;
+ if (search !== null) {
+ url2.query = query;
+ url2.search = search;
+ }
+ return url2;
+ }
+ function fresh(url2, parsedUrl) {
+ return typeof parsedUrl === "object" && parsedUrl !== null && (Url === void 0 || parsedUrl instanceof Url) && parsedUrl._raw === url2;
+ }
+ }
+});
+
+// node_modules/finalhandler/index.js
+var require_finalhandler = __commonJS({
+ "node_modules/finalhandler/index.js"(exports2, module2) {
+ "use strict";
+ var debug = require_src()("finalhandler");
+ var encodeUrl = require_encodeurl();
+ var escapeHtml = require_escape_html();
+ var onFinished = require_on_finished();
+ var parseUrl = require_parseurl();
+ var statuses = require_statuses();
+ var unpipe = require_unpipe();
+ var DOUBLE_SPACE_REGEXP = /\x20{2}/g;
+ var NEWLINE_REGEXP = /\n/g;
+ var defer = typeof setImmediate === "function" ? setImmediate : function(fn) {
+ process.nextTick(fn.bind.apply(fn, arguments));
+ };
+ var isFinished = onFinished.isFinished;
+ function createHtmlDocument(message) {
+ var body = escapeHtml(message).replace(NEWLINE_REGEXP, "
").replace(DOUBLE_SPACE_REGEXP, " ");
+ return '\n\n\n\nError\n\n\n' + body + "
\n\n\n";
+ }
+ module2.exports = finalhandler;
+ function finalhandler(req, res, options) {
+ var opts = options || {};
+ var env = opts.env || process.env.NODE_ENV || "development";
+ var onerror = opts.onerror;
+ return function(err) {
+ var headers;
+ var msg;
+ var status;
+ if (!err && headersSent(res)) {
+ debug("cannot 404 after headers sent");
+ return;
+ }
+ if (err) {
+ status = getErrorStatusCode(err);
+ if (status === void 0) {
+ status = getResponseStatusCode(res);
+ } else {
+ headers = getErrorHeaders(err);
+ }
+ msg = getErrorMessage(err, status, env);
+ } else {
+ status = 404;
+ msg = "Cannot " + req.method + " " + encodeUrl(getResourceName(req));
+ }
+ debug("default %s", status);
+ if (err && onerror) {
+ defer(onerror, err, req, res);
+ }
+ if (headersSent(res)) {
+ debug("cannot %d after headers sent", status);
+ if (req.socket) {
+ req.socket.destroy();
+ }
+ return;
+ }
+ send(req, res, status, headers, msg);
+ };
+ }
+ function getErrorHeaders(err) {
+ if (!err.headers || typeof err.headers !== "object") {
+ return void 0;
+ }
+ var headers = /* @__PURE__ */ Object.create(null);
+ var keys = Object.keys(err.headers);
+ for (var i = 0; i < keys.length; i++) {
+ var key = keys[i];
+ headers[key] = err.headers[key];
+ }
+ return headers;
+ }
+ function getErrorMessage(err, status, env) {
+ var msg;
+ if (env !== "production") {
+ msg = err.stack;
+ if (!msg && typeof err.toString === "function") {
+ msg = err.toString();
+ }
+ }
+ return msg || statuses.message[status];
+ }
+ function getErrorStatusCode(err) {
+ if (typeof err.status === "number" && err.status >= 400 && err.status < 600) {
+ return err.status;
+ }
+ if (typeof err.statusCode === "number" && err.statusCode >= 400 && err.statusCode < 600) {
+ return err.statusCode;
+ }
+ return void 0;
+ }
+ function getResourceName(req) {
+ try {
+ return parseUrl.original(req).pathname;
+ } catch (e) {
+ return "resource";
+ }
+ }
+ function getResponseStatusCode(res) {
+ var status = res.statusCode;
+ if (typeof status !== "number" || status < 400 || status > 599) {
+ status = 500;
+ }
+ return status;
+ }
+ function headersSent(res) {
+ return typeof res.headersSent !== "boolean" ? Boolean(res._header) : res.headersSent;
+ }
+ function send(req, res, status, headers, message) {
+ function write() {
+ var body = createHtmlDocument(message);
+ res.statusCode = status;
+ if (req.httpVersionMajor < 2) {
+ res.statusMessage = statuses.message[status];
+ }
+ res.removeHeader("Content-Encoding");
+ res.removeHeader("Content-Language");
+ res.removeHeader("Content-Range");
+ setHeaders(res, headers);
+ res.setHeader("Content-Security-Policy", "default-src 'none'");
+ res.setHeader("X-Content-Type-Options", "nosniff");
+ res.setHeader("Content-Type", "text/html; charset=utf-8");
+ res.setHeader("Content-Length", Buffer.byteLength(body, "utf8"));
+ if (req.method === "HEAD") {
+ res.end();
+ return;
+ }
+ res.end(body, "utf8");
+ }
+ if (isFinished(req)) {
+ write();
+ return;
+ }
+ unpipe(req);
+ onFinished(req, write);
+ req.resume();
+ }
+ function setHeaders(res, headers) {
+ if (!headers) {
+ return;
+ }
+ var keys = Object.keys(headers);
+ for (var i = 0; i < keys.length; i++) {
+ var key = keys[i];
+ res.setHeader(key, headers[key]);
+ }
+ }
+ }
+});
+
+// node_modules/array-flatten/array-flatten.js
+var require_array_flatten = __commonJS({
+ "node_modules/array-flatten/array-flatten.js"(exports2, module2) {
+ "use strict";
+ module2.exports = arrayFlatten;
+ function flattenWithDepth(array, result, depth) {
+ for (var i = 0; i < array.length; i++) {
+ var value = array[i];
+ if (depth > 0 && Array.isArray(value)) {
+ flattenWithDepth(value, result, depth - 1);
+ } else {
+ result.push(value);
+ }
+ }
+ return result;
+ }
+ function flattenForever(array, result) {
+ for (var i = 0; i < array.length; i++) {
+ var value = array[i];
+ if (Array.isArray(value)) {
+ flattenForever(value, result);
+ } else {
+ result.push(value);
+ }
+ }
+ return result;
+ }
+ function arrayFlatten(array, depth) {
+ if (depth == null) {
+ return flattenForever(array, []);
+ }
+ return flattenWithDepth(array, [], depth);
+ }
+ }
+});
+
+// node_modules/path-to-regexp/index.js
+var require_path_to_regexp = __commonJS({
+ "node_modules/path-to-regexp/index.js"(exports2, module2) {
+ module2.exports = pathToRegexp;
+ var MATCHING_GROUP_REGEXP = /\\.|\((?:\?<(.*?)>)?(?!\?)/g;
+ function pathToRegexp(path, keys, options) {
+ options = options || {};
+ keys = keys || [];
+ var strict = options.strict;
+ var end = options.end !== false;
+ var flags = options.sensitive ? "" : "i";
+ var lookahead = options.lookahead !== false;
+ var extraOffset = 0;
+ var keysOffset = keys.length;
+ var i = 0;
+ var name = 0;
+ var pos = 0;
+ var backtrack = "";
+ var m;
+ if (path instanceof RegExp) {
+ while (m = MATCHING_GROUP_REGEXP.exec(path.source)) {
+ if (m[0][0] === "\\")
+ continue;
+ keys.push({
+ name: m[1] || name++,
+ optional: false,
+ offset: m.index
+ });
+ }
+ return path;
+ }
+ if (Array.isArray(path)) {
+ path = path.map(function(value) {
+ return pathToRegexp(value, keys, options).source;
+ });
+ return new RegExp(path.join("|"), flags);
+ }
+ path = path.replace(
+ /\\.|(\/)?(\.)?:(\w+)(\(.*?\))?(\*)?(\?)?|[.*]|\/\(/g,
+ function(match, slash, format, key, capture, star, optional, offset) {
+ pos = offset + match.length;
+ if (match[0] === "\\") {
+ backtrack += match;
+ return match;
+ }
+ if (match === ".") {
+ backtrack += "\\.";
+ extraOffset += 1;
+ return "\\.";
+ }
+ backtrack = slash || format ? "" : path.slice(pos, offset);
+ if (match === "*") {
+ extraOffset += 3;
+ return "(.*)";
+ }
+ if (match === "/(") {
+ backtrack += "/";
+ extraOffset += 2;
+ return "/(?:";
+ }
+ slash = slash || "";
+ format = format ? "\\." : "";
+ optional = optional || "";
+ capture = capture ? capture.replace(/\\.|\*/, function(m2) {
+ return m2 === "*" ? "(.*)" : m2;
+ }) : backtrack ? "((?:(?!/|" + backtrack + ").)+?)" : "([^/" + format + "]+?)";
+ keys.push({
+ name: key,
+ optional: !!optional,
+ offset: offset + extraOffset
+ });
+ var result = "(?:" + format + slash + capture + (star ? "((?:[/" + format + "].+?)?)" : "") + ")" + optional;
+ extraOffset += result.length - match.length;
+ return result;
+ }
+ );
+ while (m = MATCHING_GROUP_REGEXP.exec(path)) {
+ if (m[0][0] === "\\")
+ continue;
+ if (keysOffset + i === keys.length || keys[keysOffset + i].offset > m.index) {
+ keys.splice(keysOffset + i, 0, {
+ name: name++,
+ // Unnamed matching groups must be consistently linear.
+ optional: false,
+ offset: m.index
+ });
+ }
+ i++;
+ }
+ path += strict ? "" : path[path.length - 1] === "/" ? "?" : "/?";
+ if (end) {
+ path += "$";
+ } else if (path[path.length - 1] !== "/") {
+ path += lookahead ? "(?=/|$)" : "(?:/|$)";
+ }
+ return new RegExp("^" + path, flags);
+ }
+ }
+});
+
+// node_modules/express/lib/router/layer.js
+var require_layer = __commonJS({
+ "node_modules/express/lib/router/layer.js"(exports2, module2) {
+ "use strict";
+ var pathRegexp = require_path_to_regexp();
+ var debug = require_src()("express:router:layer");
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ module2.exports = Layer;
+ function Layer(path, options, fn) {
+ if (!(this instanceof Layer)) {
+ return new Layer(path, options, fn);
+ }
+ debug("new %o", path);
+ var opts = options || {};
+ this.handle = fn;
+ this.name = fn.name || "";
+ this.params = void 0;
+ this.path = void 0;
+ this.regexp = pathRegexp(path, this.keys = [], opts);
+ this.regexp.fast_star = path === "*";
+ this.regexp.fast_slash = path === "/" && opts.end === false;
+ }
+ Layer.prototype.handle_error = function handle_error(error, req, res, next) {
+ var fn = this.handle;
+ if (fn.length !== 4) {
+ return next(error);
+ }
+ try {
+ fn(error, req, res, next);
+ } catch (err) {
+ next(err);
+ }
+ };
+ Layer.prototype.handle_request = function handle(req, res, next) {
+ var fn = this.handle;
+ if (fn.length > 3) {
+ return next();
+ }
+ try {
+ fn(req, res, next);
+ } catch (err) {
+ next(err);
+ }
+ };
+ Layer.prototype.match = function match(path) {
+ var match2;
+ if (path != null) {
+ if (this.regexp.fast_slash) {
+ this.params = {};
+ this.path = "";
+ return true;
+ }
+ if (this.regexp.fast_star) {
+ this.params = { "0": decode_param(path) };
+ this.path = path;
+ return true;
+ }
+ match2 = this.regexp.exec(path);
+ }
+ if (!match2) {
+ this.params = void 0;
+ this.path = void 0;
+ return false;
+ }
+ this.params = {};
+ this.path = match2[0];
+ var keys = this.keys;
+ var params = this.params;
+ for (var i = 1; i < match2.length; i++) {
+ var key = keys[i - 1];
+ var prop = key.name;
+ var val = decode_param(match2[i]);
+ if (val !== void 0 || !hasOwnProperty.call(params, prop)) {
+ params[prop] = val;
+ }
+ }
+ return true;
+ };
+ function decode_param(val) {
+ if (typeof val !== "string" || val.length === 0) {
+ return val;
+ }
+ try {
+ return decodeURIComponent(val);
+ } catch (err) {
+ if (err instanceof URIError) {
+ err.message = "Failed to decode param '" + val + "'";
+ err.status = err.statusCode = 400;
+ }
+ throw err;
+ }
+ }
+ }
+});
+
+// node_modules/methods/index.js
+var require_methods = __commonJS({
+ "node_modules/methods/index.js"(exports2, module2) {
+ "use strict";
+ var http = require("http");
+ module2.exports = getCurrentNodeMethods() || getBasicNodeMethods();
+ function getCurrentNodeMethods() {
+ return http.METHODS && http.METHODS.map(function lowerCaseMethod(method) {
+ return method.toLowerCase();
+ });
+ }
+ function getBasicNodeMethods() {
+ return [
+ "get",
+ "post",
+ "put",
+ "head",
+ "delete",
+ "options",
+ "trace",
+ "copy",
+ "lock",
+ "mkcol",
+ "move",
+ "purge",
+ "propfind",
+ "proppatch",
+ "unlock",
+ "report",
+ "mkactivity",
+ "checkout",
+ "merge",
+ "m-search",
+ "notify",
+ "subscribe",
+ "unsubscribe",
+ "patch",
+ "search",
+ "connect"
+ ];
+ }
+ }
+});
+
+// node_modules/express/lib/router/route.js
+var require_route = __commonJS({
+ "node_modules/express/lib/router/route.js"(exports2, module2) {
+ "use strict";
+ var debug = require_src()("express:router:route");
+ var flatten = require_array_flatten();
+ var Layer = require_layer();
+ var methods = require_methods();
+ var slice = Array.prototype.slice;
+ var toString2 = Object.prototype.toString;
+ module2.exports = Route;
+ function Route(path) {
+ this.path = path;
+ this.stack = [];
+ debug("new %o", path);
+ this.methods = {};
+ }
+ Route.prototype._handles_method = function _handles_method(method) {
+ if (this.methods._all) {
+ return true;
+ }
+ var name = typeof method === "string" ? method.toLowerCase() : method;
+ if (name === "head" && !this.methods["head"]) {
+ name = "get";
+ }
+ return Boolean(this.methods[name]);
+ };
+ Route.prototype._options = function _options() {
+ var methods2 = Object.keys(this.methods);
+ if (this.methods.get && !this.methods.head) {
+ methods2.push("head");
+ }
+ for (var i = 0; i < methods2.length; i++) {
+ methods2[i] = methods2[i].toUpperCase();
+ }
+ return methods2;
+ };
+ Route.prototype.dispatch = function dispatch(req, res, done) {
+ var idx = 0;
+ var stack = this.stack;
+ var sync = 0;
+ if (stack.length === 0) {
+ return done();
+ }
+ var method = typeof req.method === "string" ? req.method.toLowerCase() : req.method;
+ if (method === "head" && !this.methods["head"]) {
+ method = "get";
+ }
+ req.route = this;
+ next();
+ function next(err) {
+ if (err && err === "route") {
+ return done();
+ }
+ if (err && err === "router") {
+ return done(err);
+ }
+ if (++sync > 100) {
+ return setImmediate(next, err);
+ }
+ var layer = stack[idx++];
+ if (!layer) {
+ return done(err);
+ }
+ if (layer.method && layer.method !== method) {
+ next(err);
+ } else if (err) {
+ layer.handle_error(err, req, res, next);
+ } else {
+ layer.handle_request(req, res, next);
+ }
+ sync = 0;
+ }
+ };
+ Route.prototype.all = function all() {
+ var handles = flatten(slice.call(arguments));
+ for (var i = 0; i < handles.length; i++) {
+ var handle = handles[i];
+ if (typeof handle !== "function") {
+ var type = toString2.call(handle);
+ var msg = "Route.all() requires a callback function but got a " + type;
+ throw new TypeError(msg);
+ }
+ var layer = Layer("/", {}, handle);
+ layer.method = void 0;
+ this.methods._all = true;
+ this.stack.push(layer);
+ }
+ return this;
+ };
+ methods.forEach(function(method) {
+ Route.prototype[method] = function() {
+ var handles = flatten(slice.call(arguments));
+ for (var i = 0; i < handles.length; i++) {
+ var handle = handles[i];
+ if (typeof handle !== "function") {
+ var type = toString2.call(handle);
+ var msg = "Route." + method + "() requires a callback function but got a " + type;
+ throw new Error(msg);
+ }
+ debug("%s %o", method, this.path);
+ var layer = Layer("/", {}, handle);
+ layer.method = method;
+ this.methods[method] = true;
+ this.stack.push(layer);
+ }
+ return this;
+ };
+ });
+ }
+});
+
+// node_modules/utils-merge/index.js
+var require_utils_merge = __commonJS({
+ "node_modules/utils-merge/index.js"(exports2, module2) {
+ exports2 = module2.exports = function(a, b) {
+ if (a && b) {
+ for (var key in b) {
+ a[key] = b[key];
+ }
+ }
+ return a;
+ };
+ }
+});
+
+// node_modules/express/lib/router/index.js
+var require_router = __commonJS({
+ "node_modules/express/lib/router/index.js"(exports2, module2) {
+ "use strict";
+ var Route = require_route();
+ var Layer = require_layer();
+ var methods = require_methods();
+ var mixin = require_utils_merge();
+ var debug = require_src()("express:router");
+ var deprecate = require_depd()("express");
+ var flatten = require_array_flatten();
+ var parseUrl = require_parseurl();
+ var setPrototypeOf = require_setprototypeof();
+ var objectRegExp = /^\[object (\S+)\]$/;
+ var slice = Array.prototype.slice;
+ var toString2 = Object.prototype.toString;
+ var proto = module2.exports = function(options) {
+ var opts = options || {};
+ function router(req, res, next) {
+ router.handle(req, res, next);
+ }
+ setPrototypeOf(router, proto);
+ router.params = {};
+ router._params = [];
+ router.caseSensitive = opts.caseSensitive;
+ router.mergeParams = opts.mergeParams;
+ router.strict = opts.strict;
+ router.stack = [];
+ return router;
+ };
+ proto.param = function param(name, fn) {
+ if (typeof name === "function") {
+ deprecate("router.param(fn): Refactor to use path params");
+ this._params.push(name);
+ return;
+ }
+ var params = this._params;
+ var len = params.length;
+ var ret;
+ if (name[0] === ":") {
+ deprecate("router.param(" + JSON.stringify(name) + ", fn): Use router.param(" + JSON.stringify(name.slice(1)) + ", fn) instead");
+ name = name.slice(1);
+ }
+ for (var i = 0; i < len; ++i) {
+ if (ret = params[i](name, fn)) {
+ fn = ret;
+ }
+ }
+ if ("function" !== typeof fn) {
+ throw new Error("invalid param() call for " + name + ", got " + fn);
+ }
+ (this.params[name] = this.params[name] || []).push(fn);
+ return this;
+ };
+ proto.handle = function handle(req, res, out) {
+ var self2 = this;
+ debug("dispatching %s %s", req.method, req.url);
+ var idx = 0;
+ var protohost = getProtohost(req.url) || "";
+ var removed = "";
+ var slashAdded = false;
+ var sync = 0;
+ var paramcalled = {};
+ var options = [];
+ var stack = self2.stack;
+ var parentParams = req.params;
+ var parentUrl = req.baseUrl || "";
+ var done = restore(out, req, "baseUrl", "next", "params");
+ req.next = next;
+ if (req.method === "OPTIONS") {
+ done = wrap(done, function(old, err) {
+ if (err || options.length === 0)
+ return old(err);
+ sendOptionsResponse(res, options, old);
+ });
+ }
+ req.baseUrl = parentUrl;
+ req.originalUrl = req.originalUrl || req.url;
+ next();
+ function next(err) {
+ var layerError = err === "route" ? null : err;
+ if (slashAdded) {
+ req.url = req.url.slice(1);
+ slashAdded = false;
+ }
+ if (removed.length !== 0) {
+ req.baseUrl = parentUrl;
+ req.url = protohost + removed + req.url.slice(protohost.length);
+ removed = "";
+ }
+ if (layerError === "router") {
+ setImmediate(done, null);
+ return;
+ }
+ if (idx >= stack.length) {
+ setImmediate(done, layerError);
+ return;
+ }
+ if (++sync > 100) {
+ return setImmediate(next, err);
+ }
+ var path = getPathname(req);
+ if (path == null) {
+ return done(layerError);
+ }
+ var layer;
+ var match;
+ var route;
+ while (match !== true && idx < stack.length) {
+ layer = stack[idx++];
+ match = matchLayer(layer, path);
+ route = layer.route;
+ if (typeof match !== "boolean") {
+ layerError = layerError || match;
+ }
+ if (match !== true) {
+ continue;
+ }
+ if (!route) {
+ continue;
+ }
+ if (layerError) {
+ match = false;
+ continue;
+ }
+ var method = req.method;
+ var has_method = route._handles_method(method);
+ if (!has_method && method === "OPTIONS") {
+ appendMethods(options, route._options());
+ }
+ if (!has_method && method !== "HEAD") {
+ match = false;
+ }
+ }
+ if (match !== true) {
+ return done(layerError);
+ }
+ if (route) {
+ req.route = route;
+ }
+ req.params = self2.mergeParams ? mergeParams(layer.params, parentParams) : layer.params;
+ var layerPath = layer.path;
+ self2.process_params(layer, paramcalled, req, res, function(err2) {
+ if (err2) {
+ next(layerError || err2);
+ } else if (route) {
+ layer.handle_request(req, res, next);
+ } else {
+ trim_prefix(layer, layerError, layerPath, path);
+ }
+ sync = 0;
+ });
+ }
+ function trim_prefix(layer, layerError, layerPath, path) {
+ if (layerPath.length !== 0) {
+ if (layerPath !== path.slice(0, layerPath.length)) {
+ next(layerError);
+ return;
+ }
+ var c = path[layerPath.length];
+ if (c && c !== "/" && c !== ".")
+ return next(layerError);
+ debug("trim prefix (%s) from url %s", layerPath, req.url);
+ removed = layerPath;
+ req.url = protohost + req.url.slice(protohost.length + removed.length);
+ if (!protohost && req.url[0] !== "/") {
+ req.url = "/" + req.url;
+ slashAdded = true;
+ }
+ req.baseUrl = parentUrl + (removed[removed.length - 1] === "/" ? removed.substring(0, removed.length - 1) : removed);
+ }
+ debug("%s %s : %s", layer.name, layerPath, req.originalUrl);
+ if (layerError) {
+ layer.handle_error(layerError, req, res, next);
+ } else {
+ layer.handle_request(req, res, next);
+ }
+ }
+ };
+ proto.process_params = function process_params(layer, called, req, res, done) {
+ var params = this.params;
+ var keys = layer.keys;
+ if (!keys || keys.length === 0) {
+ return done();
+ }
+ var i = 0;
+ var name;
+ var paramIndex = 0;
+ var key;
+ var paramVal;
+ var paramCallbacks;
+ var paramCalled;
+ function param(err) {
+ if (err) {
+ return done(err);
+ }
+ if (i >= keys.length) {
+ return done();
+ }
+ paramIndex = 0;
+ key = keys[i++];
+ name = key.name;
+ paramVal = req.params[name];
+ paramCallbacks = params[name];
+ paramCalled = called[name];
+ if (paramVal === void 0 || !paramCallbacks) {
+ return param();
+ }
+ if (paramCalled && (paramCalled.match === paramVal || paramCalled.error && paramCalled.error !== "route")) {
+ req.params[name] = paramCalled.value;
+ return param(paramCalled.error);
+ }
+ called[name] = paramCalled = {
+ error: null,
+ match: paramVal,
+ value: paramVal
+ };
+ paramCallback();
+ }
+ function paramCallback(err) {
+ var fn = paramCallbacks[paramIndex++];
+ paramCalled.value = req.params[key.name];
+ if (err) {
+ paramCalled.error = err;
+ param(err);
+ return;
+ }
+ if (!fn)
+ return param();
+ try {
+ fn(req, res, paramCallback, paramVal, key.name);
+ } catch (e) {
+ paramCallback(e);
+ }
+ }
+ param();
+ };
+ proto.use = function use(fn) {
+ var offset = 0;
+ var path = "/";
+ if (typeof fn !== "function") {
+ var arg = fn;
+ while (Array.isArray(arg) && arg.length !== 0) {
+ arg = arg[0];
+ }
+ if (typeof arg !== "function") {
+ offset = 1;
+ path = fn;
+ }
+ }
+ var callbacks = flatten(slice.call(arguments, offset));
+ if (callbacks.length === 0) {
+ throw new TypeError("Router.use() requires a middleware function");
+ }
+ for (var i = 0; i < callbacks.length; i++) {
+ var fn = callbacks[i];
+ if (typeof fn !== "function") {
+ throw new TypeError("Router.use() requires a middleware function but got a " + gettype(fn));
+ }
+ debug("use %o %s", path, fn.name || "");
+ var layer = new Layer(path, {
+ sensitive: this.caseSensitive,
+ strict: false,
+ end: false
+ }, fn);
+ layer.route = void 0;
+ this.stack.push(layer);
+ }
+ return this;
+ };
+ proto.route = function route(path) {
+ var route2 = new Route(path);
+ var layer = new Layer(path, {
+ sensitive: this.caseSensitive,
+ strict: this.strict,
+ end: true
+ }, route2.dispatch.bind(route2));
+ layer.route = route2;
+ this.stack.push(layer);
+ return route2;
+ };
+ methods.concat("all").forEach(function(method) {
+ proto[method] = function(path) {
+ var route = this.route(path);
+ route[method].apply(route, slice.call(arguments, 1));
+ return this;
+ };
+ });
+ function appendMethods(list, addition) {
+ for (var i = 0; i < addition.length; i++) {
+ var method = addition[i];
+ if (list.indexOf(method) === -1) {
+ list.push(method);
+ }
+ }
+ }
+ function getPathname(req) {
+ try {
+ return parseUrl(req).pathname;
+ } catch (err) {
+ return void 0;
+ }
+ }
+ function getProtohost(url) {
+ if (typeof url !== "string" || url.length === 0 || url[0] === "/") {
+ return void 0;
+ }
+ var searchIndex = url.indexOf("?");
+ var pathLength = searchIndex !== -1 ? searchIndex : url.length;
+ var fqdnIndex = url.slice(0, pathLength).indexOf("://");
+ return fqdnIndex !== -1 ? url.substring(0, url.indexOf("/", 3 + fqdnIndex)) : void 0;
+ }
+ function gettype(obj) {
+ var type = typeof obj;
+ if (type !== "object") {
+ return type;
+ }
+ return toString2.call(obj).replace(objectRegExp, "$1");
+ }
+ function matchLayer(layer, path) {
+ try {
+ return layer.match(path);
+ } catch (err) {
+ return err;
+ }
+ }
+ function mergeParams(params, parent) {
+ if (typeof parent !== "object" || !parent) {
+ return params;
+ }
+ var obj = mixin({}, parent);
+ if (!(0 in params) || !(0 in parent)) {
+ return mixin(obj, params);
+ }
+ var i = 0;
+ var o = 0;
+ while (i in params) {
+ i++;
+ }
+ while (o in parent) {
+ o++;
+ }
+ for (i--; i >= 0; i--) {
+ params[i + o] = params[i];
+ if (i < o) {
+ delete params[i];
+ }
+ }
+ return mixin(obj, params);
+ }
+ function restore(fn, obj) {
+ var props = new Array(arguments.length - 2);
+ var vals = new Array(arguments.length - 2);
+ for (var i = 0; i < props.length; i++) {
+ props[i] = arguments[i + 2];
+ vals[i] = obj[props[i]];
+ }
+ return function() {
+ for (var i2 = 0; i2 < props.length; i2++) {
+ obj[props[i2]] = vals[i2];
+ }
+ return fn.apply(this, arguments);
+ };
+ }
+ function sendOptionsResponse(res, options, next) {
+ try {
+ var body = options.join(",");
+ res.set("Allow", body);
+ res.send(body);
+ } catch (err) {
+ next(err);
+ }
+ }
+ function wrap(old, fn) {
+ return function proxy() {
+ var args = new Array(arguments.length + 1);
+ args[0] = old;
+ for (var i = 0, len = arguments.length; i < len; i++) {
+ args[i + 1] = arguments[i];
+ }
+ fn.apply(this, args);
+ };
+ }
+ }
+});
+
+// node_modules/express/lib/middleware/init.js
+var require_init = __commonJS({
+ "node_modules/express/lib/middleware/init.js"(exports2) {
+ "use strict";
+ var setPrototypeOf = require_setprototypeof();
+ exports2.init = function(app2) {
+ return function expressInit(req, res, next) {
+ if (app2.enabled("x-powered-by"))
+ res.setHeader("X-Powered-By", "Express");
+ req.res = res;
+ res.req = req;
+ req.next = next;
+ setPrototypeOf(req, app2.request);
+ setPrototypeOf(res, app2.response);
+ res.locals = res.locals || /* @__PURE__ */ Object.create(null);
+ next();
+ };
+ };
+ }
+});
+
+// node_modules/express/lib/middleware/query.js
+var require_query = __commonJS({
+ "node_modules/express/lib/middleware/query.js"(exports2, module2) {
+ "use strict";
+ var merge = require_utils_merge();
+ var parseUrl = require_parseurl();
+ var qs = require_lib2();
+ module2.exports = function query(options) {
+ var opts = merge({}, options);
+ var queryparse = qs.parse;
+ if (typeof options === "function") {
+ queryparse = options;
+ opts = void 0;
+ }
+ if (opts !== void 0 && opts.allowPrototypes === void 0) {
+ opts.allowPrototypes = true;
+ }
+ return function query2(req, res, next) {
+ if (!req.query) {
+ var val = parseUrl(req).query;
+ req.query = queryparse(val, opts);
+ }
+ next();
+ };
+ };
+ }
+});
+
+// node_modules/express/lib/view.js
+var require_view = __commonJS({
+ "node_modules/express/lib/view.js"(exports2, module2) {
+ "use strict";
+ var debug = require_src()("express:view");
+ var path = require("path");
+ var fs = require("fs");
+ var dirname = path.dirname;
+ var basename = path.basename;
+ var extname = path.extname;
+ var join = path.join;
+ var resolve = path.resolve;
+ module2.exports = View;
+ function View(name, options) {
+ var opts = options || {};
+ this.defaultEngine = opts.defaultEngine;
+ this.ext = extname(name);
+ this.name = name;
+ this.root = opts.root;
+ if (!this.ext && !this.defaultEngine) {
+ throw new Error("No default engine was specified and no extension was provided.");
+ }
+ var fileName = name;
+ if (!this.ext) {
+ this.ext = this.defaultEngine[0] !== "." ? "." + this.defaultEngine : this.defaultEngine;
+ fileName += this.ext;
+ }
+ if (!opts.engines[this.ext]) {
+ var mod = this.ext.slice(1);
+ debug('require "%s"', mod);
+ var fn = require(mod).__express;
+ if (typeof fn !== "function") {
+ throw new Error('Module "' + mod + '" does not provide a view engine.');
+ }
+ opts.engines[this.ext] = fn;
+ }
+ this.engine = opts.engines[this.ext];
+ this.path = this.lookup(fileName);
+ }
+ View.prototype.lookup = function lookup(name) {
+ var path2;
+ var roots = [].concat(this.root);
+ debug('lookup "%s"', name);
+ for (var i = 0; i < roots.length && !path2; i++) {
+ var root = roots[i];
+ var loc = resolve(root, name);
+ var dir = dirname(loc);
+ var file = basename(loc);
+ path2 = this.resolve(dir, file);
+ }
+ return path2;
+ };
+ View.prototype.render = function render(options, callback) {
+ debug('render "%s"', this.path);
+ this.engine(this.path, options, callback);
+ };
+ View.prototype.resolve = function resolve2(dir, file) {
+ var ext = this.ext;
+ var path2 = join(dir, file);
+ var stat = tryStat(path2);
+ if (stat && stat.isFile()) {
+ return path2;
+ }
+ path2 = join(dir, basename(file, ext), "index" + ext);
+ stat = tryStat(path2);
+ if (stat && stat.isFile()) {
+ return path2;
+ }
+ };
+ function tryStat(path2) {
+ debug('stat "%s"', path2);
+ try {
+ return fs.statSync(path2);
+ } catch (e) {
+ return void 0;
+ }
+ }
+ }
+});
+
+// node_modules/safe-buffer/index.js
+var require_safe_buffer = __commonJS({
+ "node_modules/safe-buffer/index.js"(exports2, module2) {
+ var buffer = require("buffer");
+ var Buffer2 = buffer.Buffer;
+ function copyProps(src, dst) {
+ for (var key in src) {
+ dst[key] = src[key];
+ }
+ }
+ if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) {
+ module2.exports = buffer;
+ } else {
+ copyProps(buffer, exports2);
+ exports2.Buffer = SafeBuffer;
+ }
+ function SafeBuffer(arg, encodingOrOffset, length) {
+ return Buffer2(arg, encodingOrOffset, length);
+ }
+ SafeBuffer.prototype = Object.create(Buffer2.prototype);
+ copyProps(Buffer2, SafeBuffer);
+ SafeBuffer.from = function(arg, encodingOrOffset, length) {
+ if (typeof arg === "number") {
+ throw new TypeError("Argument must not be a number");
+ }
+ return Buffer2(arg, encodingOrOffset, length);
+ };
+ SafeBuffer.alloc = function(size, fill, encoding) {
+ if (typeof size !== "number") {
+ throw new TypeError("Argument must be a number");
+ }
+ var buf = Buffer2(size);
+ if (fill !== void 0) {
+ if (typeof encoding === "string") {
+ buf.fill(fill, encoding);
+ } else {
+ buf.fill(fill);
+ }
+ } else {
+ buf.fill(0);
+ }
+ return buf;
+ };
+ SafeBuffer.allocUnsafe = function(size) {
+ if (typeof size !== "number") {
+ throw new TypeError("Argument must be a number");
+ }
+ return Buffer2(size);
+ };
+ SafeBuffer.allocUnsafeSlow = function(size) {
+ if (typeof size !== "number") {
+ throw new TypeError("Argument must be a number");
+ }
+ return buffer.SlowBuffer(size);
+ };
+ }
+});
+
+// node_modules/content-disposition/index.js
+var require_content_disposition = __commonJS({
+ "node_modules/content-disposition/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = contentDisposition;
+ module2.exports.parse = parse;
+ var basename = require("path").basename;
+ var Buffer2 = require_safe_buffer().Buffer;
+ var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g;
+ var HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/;
+ var HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g;
+ var NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g;
+ var QESC_REGEXP = /\\([\u0000-\u007f])/g;
+ var QUOTE_REGEXP = /([\\"])/g;
+ var PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g;
+ var TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/;
+ var TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/;
+ var EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/;
+ var DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;
+ function contentDisposition(filename, options) {
+ var opts = options || {};
+ var type = opts.type || "attachment";
+ var params = createparams(filename, opts.fallback);
+ return format(new ContentDisposition(type, params));
+ }
+ function createparams(filename, fallback) {
+ if (filename === void 0) {
+ return;
+ }
+ var params = {};
+ if (typeof filename !== "string") {
+ throw new TypeError("filename must be a string");
+ }
+ if (fallback === void 0) {
+ fallback = true;
+ }
+ if (typeof fallback !== "string" && typeof fallback !== "boolean") {
+ throw new TypeError("fallback must be a string or boolean");
+ }
+ if (typeof fallback === "string" && NON_LATIN1_REGEXP.test(fallback)) {
+ throw new TypeError("fallback must be ISO-8859-1 string");
+ }
+ var name = basename(filename);
+ var isQuotedString = TEXT_REGEXP.test(name);
+ var fallbackName = typeof fallback !== "string" ? fallback && getlatin1(name) : basename(fallback);
+ var hasFallback = typeof fallbackName === "string" && fallbackName !== name;
+ if (hasFallback || !isQuotedString || HEX_ESCAPE_REGEXP.test(name)) {
+ params["filename*"] = name;
+ }
+ if (isQuotedString || hasFallback) {
+ params.filename = hasFallback ? fallbackName : name;
+ }
+ return params;
+ }
+ function format(obj) {
+ var parameters = obj.parameters;
+ var type = obj.type;
+ if (!type || typeof type !== "string" || !TOKEN_REGEXP.test(type)) {
+ throw new TypeError("invalid type");
+ }
+ var string = String(type).toLowerCase();
+ if (parameters && typeof parameters === "object") {
+ var param;
+ var params = Object.keys(parameters).sort();
+ for (var i = 0; i < params.length; i++) {
+ param = params[i];
+ var val = param.substr(-1) === "*" ? ustring(parameters[param]) : qstring(parameters[param]);
+ string += "; " + param + "=" + val;
+ }
+ }
+ return string;
+ }
+ function decodefield(str) {
+ var match = EXT_VALUE_REGEXP.exec(str);
+ if (!match) {
+ throw new TypeError("invalid extended field value");
+ }
+ var charset = match[1].toLowerCase();
+ var encoded = match[2];
+ var value;
+ var binary = encoded.replace(HEX_ESCAPE_REPLACE_REGEXP, pdecode);
+ switch (charset) {
+ case "iso-8859-1":
+ value = getlatin1(binary);
+ break;
+ case "utf-8":
+ value = Buffer2.from(binary, "binary").toString("utf8");
+ break;
+ default:
+ throw new TypeError("unsupported charset in extended field");
+ }
+ return value;
+ }
+ function getlatin1(val) {
+ return String(val).replace(NON_LATIN1_REGEXP, "?");
+ }
+ function parse(string) {
+ if (!string || typeof string !== "string") {
+ throw new TypeError("argument string is required");
+ }
+ var match = DISPOSITION_TYPE_REGEXP.exec(string);
+ if (!match) {
+ throw new TypeError("invalid type format");
+ }
+ var index = match[0].length;
+ var type = match[1].toLowerCase();
+ var key;
+ var names = [];
+ var params = {};
+ var value;
+ index = PARAM_REGEXP.lastIndex = match[0].substr(-1) === ";" ? index - 1 : index;
+ while (match = PARAM_REGEXP.exec(string)) {
+ if (match.index !== index) {
+ throw new TypeError("invalid parameter format");
+ }
+ index += match[0].length;
+ key = match[1].toLowerCase();
+ value = match[2];
+ if (names.indexOf(key) !== -1) {
+ throw new TypeError("invalid duplicate parameter");
+ }
+ names.push(key);
+ if (key.indexOf("*") + 1 === key.length) {
+ key = key.slice(0, -1);
+ value = decodefield(value);
+ params[key] = value;
+ continue;
+ }
+ if (typeof params[key] === "string") {
+ continue;
+ }
+ if (value[0] === '"') {
+ value = value.substr(1, value.length - 2).replace(QESC_REGEXP, "$1");
+ }
+ params[key] = value;
+ }
+ if (index !== -1 && index !== string.length) {
+ throw new TypeError("invalid parameter format");
+ }
+ return new ContentDisposition(type, params);
+ }
+ function pdecode(str, hex) {
+ return String.fromCharCode(parseInt(hex, 16));
+ }
+ function pencode(char) {
+ return "%" + String(char).charCodeAt(0).toString(16).toUpperCase();
+ }
+ function qstring(val) {
+ var str = String(val);
+ return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"';
+ }
+ function ustring(val) {
+ var str = String(val);
+ var encoded = encodeURIComponent(str).replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode);
+ return "UTF-8''" + encoded;
+ }
+ function ContentDisposition(type, parameters) {
+ this.type = type;
+ this.parameters = parameters;
+ }
+ }
+});
+
+// node_modules/send/node_modules/encodeurl/index.js
+var require_encodeurl2 = __commonJS({
+ "node_modules/send/node_modules/encodeurl/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = encodeUrl;
+ var ENCODE_CHARS_REGEXP = /(?:[^\x21\x25\x26-\x3B\x3D\x3F-\x5B\x5D\x5F\x61-\x7A\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g;
+ var UNMATCHED_SURROGATE_PAIR_REGEXP = /(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g;
+ var UNMATCHED_SURROGATE_PAIR_REPLACE = "$1\uFFFD$2";
+ function encodeUrl(url) {
+ return String(url).replace(UNMATCHED_SURROGATE_PAIR_REGEXP, UNMATCHED_SURROGATE_PAIR_REPLACE).replace(ENCODE_CHARS_REGEXP, encodeURI);
+ }
+ }
+});
+
+// node_modules/etag/index.js
+var require_etag = __commonJS({
+ "node_modules/etag/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = etag;
+ var crypto2 = require("crypto");
+ var Stats = require("fs").Stats;
+ var toString2 = Object.prototype.toString;
+ function entitytag(entity) {
+ if (entity.length === 0) {
+ return '"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"';
+ }
+ var hash = crypto2.createHash("sha1").update(entity, "utf8").digest("base64").substring(0, 27);
+ var len = typeof entity === "string" ? Buffer.byteLength(entity, "utf8") : entity.length;
+ return '"' + len.toString(16) + "-" + hash + '"';
+ }
+ function etag(entity, options) {
+ if (entity == null) {
+ throw new TypeError("argument entity is required");
+ }
+ var isStats = isstats(entity);
+ var weak = options && typeof options.weak === "boolean" ? options.weak : isStats;
+ if (!isStats && typeof entity !== "string" && !Buffer.isBuffer(entity)) {
+ throw new TypeError("argument entity must be string, Buffer, or fs.Stats");
+ }
+ var tag = isStats ? stattag(entity) : entitytag(entity);
+ return weak ? "W/" + tag : tag;
+ }
+ function isstats(obj) {
+ if (typeof Stats === "function" && obj instanceof Stats) {
+ return true;
+ }
+ return obj && typeof obj === "object" && "ctime" in obj && toString2.call(obj.ctime) === "[object Date]" && "mtime" in obj && toString2.call(obj.mtime) === "[object Date]" && "ino" in obj && typeof obj.ino === "number" && "size" in obj && typeof obj.size === "number";
+ }
+ function stattag(stat) {
+ var mtime = stat.mtime.getTime().toString(16);
+ var size = stat.size.toString(16);
+ return '"' + size + "-" + mtime + '"';
+ }
+ }
+});
+
+// node_modules/fresh/index.js
+var require_fresh = __commonJS({
+ "node_modules/fresh/index.js"(exports2, module2) {
+ "use strict";
+ var CACHE_CONTROL_NO_CACHE_REGEXP = /(?:^|,)\s*?no-cache\s*?(?:,|$)/;
+ module2.exports = fresh;
+ function fresh(reqHeaders, resHeaders) {
+ var modifiedSince = reqHeaders["if-modified-since"];
+ var noneMatch = reqHeaders["if-none-match"];
+ if (!modifiedSince && !noneMatch) {
+ return false;
+ }
+ var cacheControl = reqHeaders["cache-control"];
+ if (cacheControl && CACHE_CONTROL_NO_CACHE_REGEXP.test(cacheControl)) {
+ return false;
+ }
+ if (noneMatch && noneMatch !== "*") {
+ var etag = resHeaders["etag"];
+ if (!etag) {
+ return false;
+ }
+ var etagStale = true;
+ var matches = parseTokenList(noneMatch);
+ for (var i = 0; i < matches.length; i++) {
+ var match = matches[i];
+ if (match === etag || match === "W/" + etag || "W/" + match === etag) {
+ etagStale = false;
+ break;
+ }
+ }
+ if (etagStale) {
+ return false;
+ }
+ }
+ if (modifiedSince) {
+ var lastModified = resHeaders["last-modified"];
+ var modifiedStale = !lastModified || !(parseHttpDate(lastModified) <= parseHttpDate(modifiedSince));
+ if (modifiedStale) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function parseHttpDate(date) {
+ var timestamp = date && Date.parse(date);
+ return typeof timestamp === "number" ? timestamp : NaN;
+ }
+ function parseTokenList(str) {
+ var end = 0;
+ var list = [];
+ var start = 0;
+ for (var i = 0, len = str.length; i < len; i++) {
+ switch (str.charCodeAt(i)) {
+ case 32:
+ if (start === end) {
+ start = end = i + 1;
+ }
+ break;
+ case 44:
+ list.push(str.substring(start, end));
+ start = end = i + 1;
+ break;
+ default:
+ end = i + 1;
+ break;
+ }
+ }
+ list.push(str.substring(start, end));
+ return list;
+ }
+ }
+});
+
+// node_modules/mime/types.json
+var require_types = __commonJS({
+ "node_modules/mime/types.json"(exports2, module2) {
+ module2.exports = { "application/andrew-inset": ["ez"], "application/applixware": ["aw"], "application/atom+xml": ["atom"], "application/atomcat+xml": ["atomcat"], "application/atomsvc+xml": ["atomsvc"], "application/bdoc": ["bdoc"], "application/ccxml+xml": ["ccxml"], "application/cdmi-capability": ["cdmia"], "application/cdmi-container": ["cdmic"], "application/cdmi-domain": ["cdmid"], "application/cdmi-object": ["cdmio"], "application/cdmi-queue": ["cdmiq"], "application/cu-seeme": ["cu"], "application/dash+xml": ["mpd"], "application/davmount+xml": ["davmount"], "application/docbook+xml": ["dbk"], "application/dssc+der": ["dssc"], "application/dssc+xml": ["xdssc"], "application/ecmascript": ["ecma"], "application/emma+xml": ["emma"], "application/epub+zip": ["epub"], "application/exi": ["exi"], "application/font-tdpfr": ["pfr"], "application/font-woff": [], "application/font-woff2": [], "application/geo+json": ["geojson"], "application/gml+xml": ["gml"], "application/gpx+xml": ["gpx"], "application/gxf": ["gxf"], "application/gzip": ["gz"], "application/hyperstudio": ["stk"], "application/inkml+xml": ["ink", "inkml"], "application/ipfix": ["ipfix"], "application/java-archive": ["jar", "war", "ear"], "application/java-serialized-object": ["ser"], "application/java-vm": ["class"], "application/javascript": ["js", "mjs"], "application/json": ["json", "map"], "application/json5": ["json5"], "application/jsonml+json": ["jsonml"], "application/ld+json": ["jsonld"], "application/lost+xml": ["lostxml"], "application/mac-binhex40": ["hqx"], "application/mac-compactpro": ["cpt"], "application/mads+xml": ["mads"], "application/manifest+json": ["webmanifest"], "application/marc": ["mrc"], "application/marcxml+xml": ["mrcx"], "application/mathematica": ["ma", "nb", "mb"], "application/mathml+xml": ["mathml"], "application/mbox": ["mbox"], "application/mediaservercontrol+xml": ["mscml"], "application/metalink+xml": ["metalink"], "application/metalink4+xml": ["meta4"], "application/mets+xml": ["mets"], "application/mods+xml": ["mods"], "application/mp21": ["m21", "mp21"], "application/mp4": ["mp4s", "m4p"], "application/msword": ["doc", "dot"], "application/mxf": ["mxf"], "application/octet-stream": ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"], "application/oda": ["oda"], "application/oebps-package+xml": ["opf"], "application/ogg": ["ogx"], "application/omdoc+xml": ["omdoc"], "application/onenote": ["onetoc", "onetoc2", "onetmp", "onepkg"], "application/oxps": ["oxps"], "application/patch-ops-error+xml": ["xer"], "application/pdf": ["pdf"], "application/pgp-encrypted": ["pgp"], "application/pgp-signature": ["asc", "sig"], "application/pics-rules": ["prf"], "application/pkcs10": ["p10"], "application/pkcs7-mime": ["p7m", "p7c"], "application/pkcs7-signature": ["p7s"], "application/pkcs8": ["p8"], "application/pkix-attr-cert": ["ac"], "application/pkix-cert": ["cer"], "application/pkix-crl": ["crl"], "application/pkix-pkipath": ["pkipath"], "application/pkixcmp": ["pki"], "application/pls+xml": ["pls"], "application/postscript": ["ai", "eps", "ps"], "application/prs.cww": ["cww"], "application/pskc+xml": ["pskcxml"], "application/raml+yaml": ["raml"], "application/rdf+xml": ["rdf"], "application/reginfo+xml": ["rif"], "application/relax-ng-compact-syntax": ["rnc"], "application/resource-lists+xml": ["rl"], "application/resource-lists-diff+xml": ["rld"], "application/rls-services+xml": ["rs"], "application/rpki-ghostbusters": ["gbr"], "application/rpki-manifest": ["mft"], "application/rpki-roa": ["roa"], "application/rsd+xml": ["rsd"], "application/rss+xml": ["rss"], "application/rtf": ["rtf"], "application/sbml+xml": ["sbml"], "application/scvp-cv-request": ["scq"], "application/scvp-cv-response": ["scs"], "application/scvp-vp-request": ["spq"], "application/scvp-vp-response": ["spp"], "application/sdp": ["sdp"], "application/set-payment-initiation": ["setpay"], "application/set-registration-initiation": ["setreg"], "application/shf+xml": ["shf"], "application/smil+xml": ["smi", "smil"], "application/sparql-query": ["rq"], "application/sparql-results+xml": ["srx"], "application/srgs": ["gram"], "application/srgs+xml": ["grxml"], "application/sru+xml": ["sru"], "application/ssdl+xml": ["ssdl"], "application/ssml+xml": ["ssml"], "application/tei+xml": ["tei", "teicorpus"], "application/thraud+xml": ["tfi"], "application/timestamped-data": ["tsd"], "application/vnd.3gpp.pic-bw-large": ["plb"], "application/vnd.3gpp.pic-bw-small": ["psb"], "application/vnd.3gpp.pic-bw-var": ["pvb"], "application/vnd.3gpp2.tcap": ["tcap"], "application/vnd.3m.post-it-notes": ["pwn"], "application/vnd.accpac.simply.aso": ["aso"], "application/vnd.accpac.simply.imp": ["imp"], "application/vnd.acucobol": ["acu"], "application/vnd.acucorp": ["atc", "acutc"], "application/vnd.adobe.air-application-installer-package+zip": ["air"], "application/vnd.adobe.formscentral.fcdt": ["fcdt"], "application/vnd.adobe.fxp": ["fxp", "fxpl"], "application/vnd.adobe.xdp+xml": ["xdp"], "application/vnd.adobe.xfdf": ["xfdf"], "application/vnd.ahead.space": ["ahead"], "application/vnd.airzip.filesecure.azf": ["azf"], "application/vnd.airzip.filesecure.azs": ["azs"], "application/vnd.amazon.ebook": ["azw"], "application/vnd.americandynamics.acc": ["acc"], "application/vnd.amiga.ami": ["ami"], "application/vnd.android.package-archive": ["apk"], "application/vnd.anser-web-certificate-issue-initiation": ["cii"], "application/vnd.anser-web-funds-transfer-initiation": ["fti"], "application/vnd.antix.game-component": ["atx"], "application/vnd.apple.installer+xml": ["mpkg"], "application/vnd.apple.mpegurl": ["m3u8"], "application/vnd.apple.pkpass": ["pkpass"], "application/vnd.aristanetworks.swi": ["swi"], "application/vnd.astraea-software.iota": ["iota"], "application/vnd.audiograph": ["aep"], "application/vnd.blueice.multipass": ["mpm"], "application/vnd.bmi": ["bmi"], "application/vnd.businessobjects": ["rep"], "application/vnd.chemdraw+xml": ["cdxml"], "application/vnd.chipnuts.karaoke-mmd": ["mmd"], "application/vnd.cinderella": ["cdy"], "application/vnd.claymore": ["cla"], "application/vnd.cloanto.rp9": ["rp9"], "application/vnd.clonk.c4group": ["c4g", "c4d", "c4f", "c4p", "c4u"], "application/vnd.cluetrust.cartomobile-config": ["c11amc"], "application/vnd.cluetrust.cartomobile-config-pkg": ["c11amz"], "application/vnd.commonspace": ["csp"], "application/vnd.contact.cmsg": ["cdbcmsg"], "application/vnd.cosmocaller": ["cmc"], "application/vnd.crick.clicker": ["clkx"], "application/vnd.crick.clicker.keyboard": ["clkk"], "application/vnd.crick.clicker.palette": ["clkp"], "application/vnd.crick.clicker.template": ["clkt"], "application/vnd.crick.clicker.wordbank": ["clkw"], "application/vnd.criticaltools.wbs+xml": ["wbs"], "application/vnd.ctc-posml": ["pml"], "application/vnd.cups-ppd": ["ppd"], "application/vnd.curl.car": ["car"], "application/vnd.curl.pcurl": ["pcurl"], "application/vnd.dart": ["dart"], "application/vnd.data-vision.rdz": ["rdz"], "application/vnd.dece.data": ["uvf", "uvvf", "uvd", "uvvd"], "application/vnd.dece.ttml+xml": ["uvt", "uvvt"], "application/vnd.dece.unspecified": ["uvx", "uvvx"], "application/vnd.dece.zip": ["uvz", "uvvz"], "application/vnd.denovo.fcselayout-link": ["fe_launch"], "application/vnd.dna": ["dna"], "application/vnd.dolby.mlp": ["mlp"], "application/vnd.dpgraph": ["dpg"], "application/vnd.dreamfactory": ["dfac"], "application/vnd.ds-keypoint": ["kpxx"], "application/vnd.dvb.ait": ["ait"], "application/vnd.dvb.service": ["svc"], "application/vnd.dynageo": ["geo"], "application/vnd.ecowin.chart": ["mag"], "application/vnd.enliven": ["nml"], "application/vnd.epson.esf": ["esf"], "application/vnd.epson.msf": ["msf"], "application/vnd.epson.quickanime": ["qam"], "application/vnd.epson.salt": ["slt"], "application/vnd.epson.ssf": ["ssf"], "application/vnd.eszigno3+xml": ["es3", "et3"], "application/vnd.ezpix-album": ["ez2"], "application/vnd.ezpix-package": ["ez3"], "application/vnd.fdf": ["fdf"], "application/vnd.fdsn.mseed": ["mseed"], "application/vnd.fdsn.seed": ["seed", "dataless"], "application/vnd.flographit": ["gph"], "application/vnd.fluxtime.clip": ["ftc"], "application/vnd.framemaker": ["fm", "frame", "maker", "book"], "application/vnd.frogans.fnc": ["fnc"], "application/vnd.frogans.ltf": ["ltf"], "application/vnd.fsc.weblaunch": ["fsc"], "application/vnd.fujitsu.oasys": ["oas"], "application/vnd.fujitsu.oasys2": ["oa2"], "application/vnd.fujitsu.oasys3": ["oa3"], "application/vnd.fujitsu.oasysgp": ["fg5"], "application/vnd.fujitsu.oasysprs": ["bh2"], "application/vnd.fujixerox.ddd": ["ddd"], "application/vnd.fujixerox.docuworks": ["xdw"], "application/vnd.fujixerox.docuworks.binder": ["xbd"], "application/vnd.fuzzysheet": ["fzs"], "application/vnd.genomatix.tuxedo": ["txd"], "application/vnd.geogebra.file": ["ggb"], "application/vnd.geogebra.tool": ["ggt"], "application/vnd.geometry-explorer": ["gex", "gre"], "application/vnd.geonext": ["gxt"], "application/vnd.geoplan": ["g2w"], "application/vnd.geospace": ["g3w"], "application/vnd.gmx": ["gmx"], "application/vnd.google-apps.document": ["gdoc"], "application/vnd.google-apps.presentation": ["gslides"], "application/vnd.google-apps.spreadsheet": ["gsheet"], "application/vnd.google-earth.kml+xml": ["kml"], "application/vnd.google-earth.kmz": ["kmz"], "application/vnd.grafeq": ["gqf", "gqs"], "application/vnd.groove-account": ["gac"], "application/vnd.groove-help": ["ghf"], "application/vnd.groove-identity-message": ["gim"], "application/vnd.groove-injector": ["grv"], "application/vnd.groove-tool-message": ["gtm"], "application/vnd.groove-tool-template": ["tpl"], "application/vnd.groove-vcard": ["vcg"], "application/vnd.hal+xml": ["hal"], "application/vnd.handheld-entertainment+xml": ["zmm"], "application/vnd.hbci": ["hbci"], "application/vnd.hhe.lesson-player": ["les"], "application/vnd.hp-hpgl": ["hpgl"], "application/vnd.hp-hpid": ["hpid"], "application/vnd.hp-hps": ["hps"], "application/vnd.hp-jlyt": ["jlt"], "application/vnd.hp-pcl": ["pcl"], "application/vnd.hp-pclxl": ["pclxl"], "application/vnd.hydrostatix.sof-data": ["sfd-hdstx"], "application/vnd.ibm.minipay": ["mpy"], "application/vnd.ibm.modcap": ["afp", "listafp", "list3820"], "application/vnd.ibm.rights-management": ["irm"], "application/vnd.ibm.secure-container": ["sc"], "application/vnd.iccprofile": ["icc", "icm"], "application/vnd.igloader": ["igl"], "application/vnd.immervision-ivp": ["ivp"], "application/vnd.immervision-ivu": ["ivu"], "application/vnd.insors.igm": ["igm"], "application/vnd.intercon.formnet": ["xpw", "xpx"], "application/vnd.intergeo": ["i2g"], "application/vnd.intu.qbo": ["qbo"], "application/vnd.intu.qfx": ["qfx"], "application/vnd.ipunplugged.rcprofile": ["rcprofile"], "application/vnd.irepository.package+xml": ["irp"], "application/vnd.is-xpr": ["xpr"], "application/vnd.isac.fcs": ["fcs"], "application/vnd.jam": ["jam"], "application/vnd.jcp.javame.midlet-rms": ["rms"], "application/vnd.jisp": ["jisp"], "application/vnd.joost.joda-archive": ["joda"], "application/vnd.kahootz": ["ktz", "ktr"], "application/vnd.kde.karbon": ["karbon"], "application/vnd.kde.kchart": ["chrt"], "application/vnd.kde.kformula": ["kfo"], "application/vnd.kde.kivio": ["flw"], "application/vnd.kde.kontour": ["kon"], "application/vnd.kde.kpresenter": ["kpr", "kpt"], "application/vnd.kde.kspread": ["ksp"], "application/vnd.kde.kword": ["kwd", "kwt"], "application/vnd.kenameaapp": ["htke"], "application/vnd.kidspiration": ["kia"], "application/vnd.kinar": ["kne", "knp"], "application/vnd.koan": ["skp", "skd", "skt", "skm"], "application/vnd.kodak-descriptor": ["sse"], "application/vnd.las.las+xml": ["lasxml"], "application/vnd.llamagraphics.life-balance.desktop": ["lbd"], "application/vnd.llamagraphics.life-balance.exchange+xml": ["lbe"], "application/vnd.lotus-1-2-3": ["123"], "application/vnd.lotus-approach": ["apr"], "application/vnd.lotus-freelance": ["pre"], "application/vnd.lotus-notes": ["nsf"], "application/vnd.lotus-organizer": ["org"], "application/vnd.lotus-screencam": ["scm"], "application/vnd.lotus-wordpro": ["lwp"], "application/vnd.macports.portpkg": ["portpkg"], "application/vnd.mcd": ["mcd"], "application/vnd.medcalcdata": ["mc1"], "application/vnd.mediastation.cdkey": ["cdkey"], "application/vnd.mfer": ["mwf"], "application/vnd.mfmp": ["mfm"], "application/vnd.micrografx.flo": ["flo"], "application/vnd.micrografx.igx": ["igx"], "application/vnd.mif": ["mif"], "application/vnd.mobius.daf": ["daf"], "application/vnd.mobius.dis": ["dis"], "application/vnd.mobius.mbk": ["mbk"], "application/vnd.mobius.mqy": ["mqy"], "application/vnd.mobius.msl": ["msl"], "application/vnd.mobius.plc": ["plc"], "application/vnd.mobius.txf": ["txf"], "application/vnd.mophun.application": ["mpn"], "application/vnd.mophun.certificate": ["mpc"], "application/vnd.mozilla.xul+xml": ["xul"], "application/vnd.ms-artgalry": ["cil"], "application/vnd.ms-cab-compressed": ["cab"], "application/vnd.ms-excel": ["xls", "xlm", "xla", "xlc", "xlt", "xlw"], "application/vnd.ms-excel.addin.macroenabled.12": ["xlam"], "application/vnd.ms-excel.sheet.binary.macroenabled.12": ["xlsb"], "application/vnd.ms-excel.sheet.macroenabled.12": ["xlsm"], "application/vnd.ms-excel.template.macroenabled.12": ["xltm"], "application/vnd.ms-fontobject": ["eot"], "application/vnd.ms-htmlhelp": ["chm"], "application/vnd.ms-ims": ["ims"], "application/vnd.ms-lrm": ["lrm"], "application/vnd.ms-officetheme": ["thmx"], "application/vnd.ms-outlook": ["msg"], "application/vnd.ms-pki.seccat": ["cat"], "application/vnd.ms-pki.stl": ["stl"], "application/vnd.ms-powerpoint": ["ppt", "pps", "pot"], "application/vnd.ms-powerpoint.addin.macroenabled.12": ["ppam"], "application/vnd.ms-powerpoint.presentation.macroenabled.12": ["pptm"], "application/vnd.ms-powerpoint.slide.macroenabled.12": ["sldm"], "application/vnd.ms-powerpoint.slideshow.macroenabled.12": ["ppsm"], "application/vnd.ms-powerpoint.template.macroenabled.12": ["potm"], "application/vnd.ms-project": ["mpp", "mpt"], "application/vnd.ms-word.document.macroenabled.12": ["docm"], "application/vnd.ms-word.template.macroenabled.12": ["dotm"], "application/vnd.ms-works": ["wps", "wks", "wcm", "wdb"], "application/vnd.ms-wpl": ["wpl"], "application/vnd.ms-xpsdocument": ["xps"], "application/vnd.mseq": ["mseq"], "application/vnd.musician": ["mus"], "application/vnd.muvee.style": ["msty"], "application/vnd.mynfc": ["taglet"], "application/vnd.neurolanguage.nlu": ["nlu"], "application/vnd.nitf": ["ntf", "nitf"], "application/vnd.noblenet-directory": ["nnd"], "application/vnd.noblenet-sealer": ["nns"], "application/vnd.noblenet-web": ["nnw"], "application/vnd.nokia.n-gage.data": ["ngdat"], "application/vnd.nokia.n-gage.symbian.install": ["n-gage"], "application/vnd.nokia.radio-preset": ["rpst"], "application/vnd.nokia.radio-presets": ["rpss"], "application/vnd.novadigm.edm": ["edm"], "application/vnd.novadigm.edx": ["edx"], "application/vnd.novadigm.ext": ["ext"], "application/vnd.oasis.opendocument.chart": ["odc"], "application/vnd.oasis.opendocument.chart-template": ["otc"], "application/vnd.oasis.opendocument.database": ["odb"], "application/vnd.oasis.opendocument.formula": ["odf"], "application/vnd.oasis.opendocument.formula-template": ["odft"], "application/vnd.oasis.opendocument.graphics": ["odg"], "application/vnd.oasis.opendocument.graphics-template": ["otg"], "application/vnd.oasis.opendocument.image": ["odi"], "application/vnd.oasis.opendocument.image-template": ["oti"], "application/vnd.oasis.opendocument.presentation": ["odp"], "application/vnd.oasis.opendocument.presentation-template": ["otp"], "application/vnd.oasis.opendocument.spreadsheet": ["ods"], "application/vnd.oasis.opendocument.spreadsheet-template": ["ots"], "application/vnd.oasis.opendocument.text": ["odt"], "application/vnd.oasis.opendocument.text-master": ["odm"], "application/vnd.oasis.opendocument.text-template": ["ott"], "application/vnd.oasis.opendocument.text-web": ["oth"], "application/vnd.olpc-sugar": ["xo"], "application/vnd.oma.dd2+xml": ["dd2"], "application/vnd.openofficeorg.extension": ["oxt"], "application/vnd.openxmlformats-officedocument.presentationml.presentation": ["pptx"], "application/vnd.openxmlformats-officedocument.presentationml.slide": ["sldx"], "application/vnd.openxmlformats-officedocument.presentationml.slideshow": ["ppsx"], "application/vnd.openxmlformats-officedocument.presentationml.template": ["potx"], "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": ["xlsx"], "application/vnd.openxmlformats-officedocument.spreadsheetml.template": ["xltx"], "application/vnd.openxmlformats-officedocument.wordprocessingml.document": ["docx"], "application/vnd.openxmlformats-officedocument.wordprocessingml.template": ["dotx"], "application/vnd.osgeo.mapguide.package": ["mgp"], "application/vnd.osgi.dp": ["dp"], "application/vnd.osgi.subsystem": ["esa"], "application/vnd.palm": ["pdb", "pqa", "oprc"], "application/vnd.pawaafile": ["paw"], "application/vnd.pg.format": ["str"], "application/vnd.pg.osasli": ["ei6"], "application/vnd.picsel": ["efif"], "application/vnd.pmi.widget": ["wg"], "application/vnd.pocketlearn": ["plf"], "application/vnd.powerbuilder6": ["pbd"], "application/vnd.previewsystems.box": ["box"], "application/vnd.proteus.magazine": ["mgz"], "application/vnd.publishare-delta-tree": ["qps"], "application/vnd.pvi.ptid1": ["ptid"], "application/vnd.quark.quarkxpress": ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"], "application/vnd.realvnc.bed": ["bed"], "application/vnd.recordare.musicxml": ["mxl"], "application/vnd.recordare.musicxml+xml": ["musicxml"], "application/vnd.rig.cryptonote": ["cryptonote"], "application/vnd.rim.cod": ["cod"], "application/vnd.rn-realmedia": ["rm"], "application/vnd.rn-realmedia-vbr": ["rmvb"], "application/vnd.route66.link66+xml": ["link66"], "application/vnd.sailingtracker.track": ["st"], "application/vnd.seemail": ["see"], "application/vnd.sema": ["sema"], "application/vnd.semd": ["semd"], "application/vnd.semf": ["semf"], "application/vnd.shana.informed.formdata": ["ifm"], "application/vnd.shana.informed.formtemplate": ["itp"], "application/vnd.shana.informed.interchange": ["iif"], "application/vnd.shana.informed.package": ["ipk"], "application/vnd.simtech-mindmapper": ["twd", "twds"], "application/vnd.smaf": ["mmf"], "application/vnd.smart.teacher": ["teacher"], "application/vnd.solent.sdkm+xml": ["sdkm", "sdkd"], "application/vnd.spotfire.dxp": ["dxp"], "application/vnd.spotfire.sfs": ["sfs"], "application/vnd.stardivision.calc": ["sdc"], "application/vnd.stardivision.draw": ["sda"], "application/vnd.stardivision.impress": ["sdd"], "application/vnd.stardivision.math": ["smf"], "application/vnd.stardivision.writer": ["sdw", "vor"], "application/vnd.stardivision.writer-global": ["sgl"], "application/vnd.stepmania.package": ["smzip"], "application/vnd.stepmania.stepchart": ["sm"], "application/vnd.sun.wadl+xml": ["wadl"], "application/vnd.sun.xml.calc": ["sxc"], "application/vnd.sun.xml.calc.template": ["stc"], "application/vnd.sun.xml.draw": ["sxd"], "application/vnd.sun.xml.draw.template": ["std"], "application/vnd.sun.xml.impress": ["sxi"], "application/vnd.sun.xml.impress.template": ["sti"], "application/vnd.sun.xml.math": ["sxm"], "application/vnd.sun.xml.writer": ["sxw"], "application/vnd.sun.xml.writer.global": ["sxg"], "application/vnd.sun.xml.writer.template": ["stw"], "application/vnd.sus-calendar": ["sus", "susp"], "application/vnd.svd": ["svd"], "application/vnd.symbian.install": ["sis", "sisx"], "application/vnd.syncml+xml": ["xsm"], "application/vnd.syncml.dm+wbxml": ["bdm"], "application/vnd.syncml.dm+xml": ["xdm"], "application/vnd.tao.intent-module-archive": ["tao"], "application/vnd.tcpdump.pcap": ["pcap", "cap", "dmp"], "application/vnd.tmobile-livetv": ["tmo"], "application/vnd.trid.tpt": ["tpt"], "application/vnd.triscape.mxs": ["mxs"], "application/vnd.trueapp": ["tra"], "application/vnd.ufdl": ["ufd", "ufdl"], "application/vnd.uiq.theme": ["utz"], "application/vnd.umajin": ["umj"], "application/vnd.unity": ["unityweb"], "application/vnd.uoml+xml": ["uoml"], "application/vnd.vcx": ["vcx"], "application/vnd.visio": ["vsd", "vst", "vss", "vsw"], "application/vnd.visionary": ["vis"], "application/vnd.vsf": ["vsf"], "application/vnd.wap.wbxml": ["wbxml"], "application/vnd.wap.wmlc": ["wmlc"], "application/vnd.wap.wmlscriptc": ["wmlsc"], "application/vnd.webturbo": ["wtb"], "application/vnd.wolfram.player": ["nbp"], "application/vnd.wordperfect": ["wpd"], "application/vnd.wqd": ["wqd"], "application/vnd.wt.stf": ["stf"], "application/vnd.xara": ["xar"], "application/vnd.xfdl": ["xfdl"], "application/vnd.yamaha.hv-dic": ["hvd"], "application/vnd.yamaha.hv-script": ["hvs"], "application/vnd.yamaha.hv-voice": ["hvp"], "application/vnd.yamaha.openscoreformat": ["osf"], "application/vnd.yamaha.openscoreformat.osfpvg+xml": ["osfpvg"], "application/vnd.yamaha.smaf-audio": ["saf"], "application/vnd.yamaha.smaf-phrase": ["spf"], "application/vnd.yellowriver-custom-menu": ["cmp"], "application/vnd.zul": ["zir", "zirz"], "application/vnd.zzazz.deck+xml": ["zaz"], "application/voicexml+xml": ["vxml"], "application/wasm": ["wasm"], "application/widget": ["wgt"], "application/winhlp": ["hlp"], "application/wsdl+xml": ["wsdl"], "application/wspolicy+xml": ["wspolicy"], "application/x-7z-compressed": ["7z"], "application/x-abiword": ["abw"], "application/x-ace-compressed": ["ace"], "application/x-apple-diskimage": [], "application/x-arj": ["arj"], "application/x-authorware-bin": ["aab", "x32", "u32", "vox"], "application/x-authorware-map": ["aam"], "application/x-authorware-seg": ["aas"], "application/x-bcpio": ["bcpio"], "application/x-bdoc": [], "application/x-bittorrent": ["torrent"], "application/x-blorb": ["blb", "blorb"], "application/x-bzip": ["bz"], "application/x-bzip2": ["bz2", "boz"], "application/x-cbr": ["cbr", "cba", "cbt", "cbz", "cb7"], "application/x-cdlink": ["vcd"], "application/x-cfs-compressed": ["cfs"], "application/x-chat": ["chat"], "application/x-chess-pgn": ["pgn"], "application/x-chrome-extension": ["crx"], "application/x-cocoa": ["cco"], "application/x-conference": ["nsc"], "application/x-cpio": ["cpio"], "application/x-csh": ["csh"], "application/x-debian-package": ["udeb"], "application/x-dgc-compressed": ["dgc"], "application/x-director": ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"], "application/x-doom": ["wad"], "application/x-dtbncx+xml": ["ncx"], "application/x-dtbook+xml": ["dtb"], "application/x-dtbresource+xml": ["res"], "application/x-dvi": ["dvi"], "application/x-envoy": ["evy"], "application/x-eva": ["eva"], "application/x-font-bdf": ["bdf"], "application/x-font-ghostscript": ["gsf"], "application/x-font-linux-psf": ["psf"], "application/x-font-pcf": ["pcf"], "application/x-font-snf": ["snf"], "application/x-font-type1": ["pfa", "pfb", "pfm", "afm"], "application/x-freearc": ["arc"], "application/x-futuresplash": ["spl"], "application/x-gca-compressed": ["gca"], "application/x-glulx": ["ulx"], "application/x-gnumeric": ["gnumeric"], "application/x-gramps-xml": ["gramps"], "application/x-gtar": ["gtar"], "application/x-hdf": ["hdf"], "application/x-httpd-php": ["php"], "application/x-install-instructions": ["install"], "application/x-iso9660-image": [], "application/x-java-archive-diff": ["jardiff"], "application/x-java-jnlp-file": ["jnlp"], "application/x-latex": ["latex"], "application/x-lua-bytecode": ["luac"], "application/x-lzh-compressed": ["lzh", "lha"], "application/x-makeself": ["run"], "application/x-mie": ["mie"], "application/x-mobipocket-ebook": ["prc", "mobi"], "application/x-ms-application": ["application"], "application/x-ms-shortcut": ["lnk"], "application/x-ms-wmd": ["wmd"], "application/x-ms-wmz": ["wmz"], "application/x-ms-xbap": ["xbap"], "application/x-msaccess": ["mdb"], "application/x-msbinder": ["obd"], "application/x-mscardfile": ["crd"], "application/x-msclip": ["clp"], "application/x-msdos-program": [], "application/x-msdownload": ["com", "bat"], "application/x-msmediaview": ["mvb", "m13", "m14"], "application/x-msmetafile": ["wmf", "emf", "emz"], "application/x-msmoney": ["mny"], "application/x-mspublisher": ["pub"], "application/x-msschedule": ["scd"], "application/x-msterminal": ["trm"], "application/x-mswrite": ["wri"], "application/x-netcdf": ["nc", "cdf"], "application/x-ns-proxy-autoconfig": ["pac"], "application/x-nzb": ["nzb"], "application/x-perl": ["pl", "pm"], "application/x-pilot": [], "application/x-pkcs12": ["p12", "pfx"], "application/x-pkcs7-certificates": ["p7b", "spc"], "application/x-pkcs7-certreqresp": ["p7r"], "application/x-rar-compressed": ["rar"], "application/x-redhat-package-manager": ["rpm"], "application/x-research-info-systems": ["ris"], "application/x-sea": ["sea"], "application/x-sh": ["sh"], "application/x-shar": ["shar"], "application/x-shockwave-flash": ["swf"], "application/x-silverlight-app": ["xap"], "application/x-sql": ["sql"], "application/x-stuffit": ["sit"], "application/x-stuffitx": ["sitx"], "application/x-subrip": ["srt"], "application/x-sv4cpio": ["sv4cpio"], "application/x-sv4crc": ["sv4crc"], "application/x-t3vm-image": ["t3"], "application/x-tads": ["gam"], "application/x-tar": ["tar"], "application/x-tcl": ["tcl", "tk"], "application/x-tex": ["tex"], "application/x-tex-tfm": ["tfm"], "application/x-texinfo": ["texinfo", "texi"], "application/x-tgif": ["obj"], "application/x-ustar": ["ustar"], "application/x-virtualbox-hdd": ["hdd"], "application/x-virtualbox-ova": ["ova"], "application/x-virtualbox-ovf": ["ovf"], "application/x-virtualbox-vbox": ["vbox"], "application/x-virtualbox-vbox-extpack": ["vbox-extpack"], "application/x-virtualbox-vdi": ["vdi"], "application/x-virtualbox-vhd": ["vhd"], "application/x-virtualbox-vmdk": ["vmdk"], "application/x-wais-source": ["src"], "application/x-web-app-manifest+json": ["webapp"], "application/x-x509-ca-cert": ["der", "crt", "pem"], "application/x-xfig": ["fig"], "application/x-xliff+xml": ["xlf"], "application/x-xpinstall": ["xpi"], "application/x-xz": ["xz"], "application/x-zmachine": ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"], "application/xaml+xml": ["xaml"], "application/xcap-diff+xml": ["xdf"], "application/xenc+xml": ["xenc"], "application/xhtml+xml": ["xhtml", "xht"], "application/xml": ["xml", "xsl", "xsd", "rng"], "application/xml-dtd": ["dtd"], "application/xop+xml": ["xop"], "application/xproc+xml": ["xpl"], "application/xslt+xml": ["xslt"], "application/xspf+xml": ["xspf"], "application/xv+xml": ["mxml", "xhvml", "xvml", "xvm"], "application/yang": ["yang"], "application/yin+xml": ["yin"], "application/zip": ["zip"], "audio/3gpp": [], "audio/adpcm": ["adp"], "audio/basic": ["au", "snd"], "audio/midi": ["mid", "midi", "kar", "rmi"], "audio/mp3": [], "audio/mp4": ["m4a", "mp4a"], "audio/mpeg": ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"], "audio/ogg": ["oga", "ogg", "spx"], "audio/s3m": ["s3m"], "audio/silk": ["sil"], "audio/vnd.dece.audio": ["uva", "uvva"], "audio/vnd.digital-winds": ["eol"], "audio/vnd.dra": ["dra"], "audio/vnd.dts": ["dts"], "audio/vnd.dts.hd": ["dtshd"], "audio/vnd.lucent.voice": ["lvp"], "audio/vnd.ms-playready.media.pya": ["pya"], "audio/vnd.nuera.ecelp4800": ["ecelp4800"], "audio/vnd.nuera.ecelp7470": ["ecelp7470"], "audio/vnd.nuera.ecelp9600": ["ecelp9600"], "audio/vnd.rip": ["rip"], "audio/wav": ["wav"], "audio/wave": [], "audio/webm": ["weba"], "audio/x-aac": ["aac"], "audio/x-aiff": ["aif", "aiff", "aifc"], "audio/x-caf": ["caf"], "audio/x-flac": ["flac"], "audio/x-m4a": [], "audio/x-matroska": ["mka"], "audio/x-mpegurl": ["m3u"], "audio/x-ms-wax": ["wax"], "audio/x-ms-wma": ["wma"], "audio/x-pn-realaudio": ["ram", "ra"], "audio/x-pn-realaudio-plugin": ["rmp"], "audio/x-realaudio": [], "audio/x-wav": [], "audio/xm": ["xm"], "chemical/x-cdx": ["cdx"], "chemical/x-cif": ["cif"], "chemical/x-cmdf": ["cmdf"], "chemical/x-cml": ["cml"], "chemical/x-csml": ["csml"], "chemical/x-xyz": ["xyz"], "font/collection": ["ttc"], "font/otf": ["otf"], "font/ttf": ["ttf"], "font/woff": ["woff"], "font/woff2": ["woff2"], "image/apng": ["apng"], "image/bmp": ["bmp"], "image/cgm": ["cgm"], "image/g3fax": ["g3"], "image/gif": ["gif"], "image/ief": ["ief"], "image/jp2": ["jp2", "jpg2"], "image/jpeg": ["jpeg", "jpg", "jpe"], "image/jpm": ["jpm"], "image/jpx": ["jpx", "jpf"], "image/ktx": ["ktx"], "image/png": ["png"], "image/prs.btif": ["btif"], "image/sgi": ["sgi"], "image/svg+xml": ["svg", "svgz"], "image/tiff": ["tiff", "tif"], "image/vnd.adobe.photoshop": ["psd"], "image/vnd.dece.graphic": ["uvi", "uvvi", "uvg", "uvvg"], "image/vnd.djvu": ["djvu", "djv"], "image/vnd.dvb.subtitle": [], "image/vnd.dwg": ["dwg"], "image/vnd.dxf": ["dxf"], "image/vnd.fastbidsheet": ["fbs"], "image/vnd.fpx": ["fpx"], "image/vnd.fst": ["fst"], "image/vnd.fujixerox.edmics-mmr": ["mmr"], "image/vnd.fujixerox.edmics-rlc": ["rlc"], "image/vnd.ms-modi": ["mdi"], "image/vnd.ms-photo": ["wdp"], "image/vnd.net-fpx": ["npx"], "image/vnd.wap.wbmp": ["wbmp"], "image/vnd.xiff": ["xif"], "image/webp": ["webp"], "image/x-3ds": ["3ds"], "image/x-cmu-raster": ["ras"], "image/x-cmx": ["cmx"], "image/x-freehand": ["fh", "fhc", "fh4", "fh5", "fh7"], "image/x-icon": ["ico"], "image/x-jng": ["jng"], "image/x-mrsid-image": ["sid"], "image/x-ms-bmp": [], "image/x-pcx": ["pcx"], "image/x-pict": ["pic", "pct"], "image/x-portable-anymap": ["pnm"], "image/x-portable-bitmap": ["pbm"], "image/x-portable-graymap": ["pgm"], "image/x-portable-pixmap": ["ppm"], "image/x-rgb": ["rgb"], "image/x-tga": ["tga"], "image/x-xbitmap": ["xbm"], "image/x-xpixmap": ["xpm"], "image/x-xwindowdump": ["xwd"], "message/rfc822": ["eml", "mime"], "model/gltf+json": ["gltf"], "model/gltf-binary": ["glb"], "model/iges": ["igs", "iges"], "model/mesh": ["msh", "mesh", "silo"], "model/vnd.collada+xml": ["dae"], "model/vnd.dwf": ["dwf"], "model/vnd.gdl": ["gdl"], "model/vnd.gtw": ["gtw"], "model/vnd.mts": ["mts"], "model/vnd.vtu": ["vtu"], "model/vrml": ["wrl", "vrml"], "model/x3d+binary": ["x3db", "x3dbz"], "model/x3d+vrml": ["x3dv", "x3dvz"], "model/x3d+xml": ["x3d", "x3dz"], "text/cache-manifest": ["appcache", "manifest"], "text/calendar": ["ics", "ifb"], "text/coffeescript": ["coffee", "litcoffee"], "text/css": ["css"], "text/csv": ["csv"], "text/hjson": ["hjson"], "text/html": ["html", "htm", "shtml"], "text/jade": ["jade"], "text/jsx": ["jsx"], "text/less": ["less"], "text/markdown": ["markdown", "md"], "text/mathml": ["mml"], "text/n3": ["n3"], "text/plain": ["txt", "text", "conf", "def", "list", "log", "in", "ini"], "text/prs.lines.tag": ["dsc"], "text/richtext": ["rtx"], "text/rtf": [], "text/sgml": ["sgml", "sgm"], "text/slim": ["slim", "slm"], "text/stylus": ["stylus", "styl"], "text/tab-separated-values": ["tsv"], "text/troff": ["t", "tr", "roff", "man", "me", "ms"], "text/turtle": ["ttl"], "text/uri-list": ["uri", "uris", "urls"], "text/vcard": ["vcard"], "text/vnd.curl": ["curl"], "text/vnd.curl.dcurl": ["dcurl"], "text/vnd.curl.mcurl": ["mcurl"], "text/vnd.curl.scurl": ["scurl"], "text/vnd.dvb.subtitle": ["sub"], "text/vnd.fly": ["fly"], "text/vnd.fmi.flexstor": ["flx"], "text/vnd.graphviz": ["gv"], "text/vnd.in3d.3dml": ["3dml"], "text/vnd.in3d.spot": ["spot"], "text/vnd.sun.j2me.app-descriptor": ["jad"], "text/vnd.wap.wml": ["wml"], "text/vnd.wap.wmlscript": ["wmls"], "text/vtt": ["vtt"], "text/x-asm": ["s", "asm"], "text/x-c": ["c", "cc", "cxx", "cpp", "h", "hh", "dic"], "text/x-component": ["htc"], "text/x-fortran": ["f", "for", "f77", "f90"], "text/x-handlebars-template": ["hbs"], "text/x-java-source": ["java"], "text/x-lua": ["lua"], "text/x-markdown": ["mkd"], "text/x-nfo": ["nfo"], "text/x-opml": ["opml"], "text/x-org": [], "text/x-pascal": ["p", "pas"], "text/x-processing": ["pde"], "text/x-sass": ["sass"], "text/x-scss": ["scss"], "text/x-setext": ["etx"], "text/x-sfv": ["sfv"], "text/x-suse-ymp": ["ymp"], "text/x-uuencode": ["uu"], "text/x-vcalendar": ["vcs"], "text/x-vcard": ["vcf"], "text/xml": [], "text/yaml": ["yaml", "yml"], "video/3gpp": ["3gp", "3gpp"], "video/3gpp2": ["3g2"], "video/h261": ["h261"], "video/h263": ["h263"], "video/h264": ["h264"], "video/jpeg": ["jpgv"], "video/jpm": ["jpgm"], "video/mj2": ["mj2", "mjp2"], "video/mp2t": ["ts"], "video/mp4": ["mp4", "mp4v", "mpg4"], "video/mpeg": ["mpeg", "mpg", "mpe", "m1v", "m2v"], "video/ogg": ["ogv"], "video/quicktime": ["qt", "mov"], "video/vnd.dece.hd": ["uvh", "uvvh"], "video/vnd.dece.mobile": ["uvm", "uvvm"], "video/vnd.dece.pd": ["uvp", "uvvp"], "video/vnd.dece.sd": ["uvs", "uvvs"], "video/vnd.dece.video": ["uvv", "uvvv"], "video/vnd.dvb.file": ["dvb"], "video/vnd.fvt": ["fvt"], "video/vnd.mpegurl": ["mxu", "m4u"], "video/vnd.ms-playready.media.pyv": ["pyv"], "video/vnd.uvvu.mp4": ["uvu", "uvvu"], "video/vnd.vivo": ["viv"], "video/webm": ["webm"], "video/x-f4v": ["f4v"], "video/x-fli": ["fli"], "video/x-flv": ["flv"], "video/x-m4v": ["m4v"], "video/x-matroska": ["mkv", "mk3d", "mks"], "video/x-mng": ["mng"], "video/x-ms-asf": ["asf", "asx"], "video/x-ms-vob": ["vob"], "video/x-ms-wm": ["wm"], "video/x-ms-wmv": ["wmv"], "video/x-ms-wmx": ["wmx"], "video/x-ms-wvx": ["wvx"], "video/x-msvideo": ["avi"], "video/x-sgi-movie": ["movie"], "video/x-smv": ["smv"], "x-conference/x-cooltalk": ["ice"] };
+ }
+});
+
+// node_modules/mime/mime.js
+var require_mime = __commonJS({
+ "node_modules/mime/mime.js"(exports2, module2) {
+ var path = require("path");
+ var fs = require("fs");
+ function Mime() {
+ this.types = /* @__PURE__ */ Object.create(null);
+ this.extensions = /* @__PURE__ */ Object.create(null);
+ }
+ Mime.prototype.define = function(map) {
+ for (var type in map) {
+ var exts = map[type];
+ for (var i = 0; i < exts.length; i++) {
+ if (process.env.DEBUG_MIME && this.types[exts[i]]) {
+ console.warn((this._loading || "define()").replace(/.*\//, ""), 'changes "' + exts[i] + '" extension type from ' + this.types[exts[i]] + " to " + type);
+ }
+ this.types[exts[i]] = type;
+ }
+ if (!this.extensions[type]) {
+ this.extensions[type] = exts[0];
+ }
+ }
+ };
+ Mime.prototype.load = function(file) {
+ this._loading = file;
+ var map = {}, content = fs.readFileSync(file, "ascii"), lines = content.split(/[\r\n]+/);
+ lines.forEach(function(line) {
+ var fields = line.replace(/\s*#.*|^\s*|\s*$/g, "").split(/\s+/);
+ map[fields.shift()] = fields;
+ });
+ this.define(map);
+ this._loading = null;
+ };
+ Mime.prototype.lookup = function(path2, fallback) {
+ var ext = path2.replace(/^.*[\.\/\\]/, "").toLowerCase();
+ return this.types[ext] || fallback || this.default_type;
+ };
+ Mime.prototype.extension = function(mimeType) {
+ var type = mimeType.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase();
+ return this.extensions[type];
+ };
+ var mime = new Mime();
+ mime.define(require_types());
+ mime.default_type = mime.lookup("bin");
+ mime.Mime = Mime;
+ mime.charsets = {
+ lookup: function(mimeType, fallback) {
+ return /^text\/|^application\/(javascript|json)/.test(mimeType) ? "UTF-8" : fallback;
+ }
+ };
+ module2.exports = mime;
+ }
+});
+
+// node_modules/send/node_modules/ms/index.js
+var require_ms2 = __commonJS({
+ "node_modules/send/node_modules/ms/index.js"(exports2, module2) {
+ var s = 1e3;
+ var m = s * 60;
+ var h = m * 60;
+ var d = h * 24;
+ var w = d * 7;
+ var y = d * 365.25;
+ module2.exports = function(val, options) {
+ options = options || {};
+ var type = typeof val;
+ if (type === "string" && val.length > 0) {
+ return parse(val);
+ } else if (type === "number" && isFinite(val)) {
+ return options.long ? fmtLong(val) : fmtShort(val);
+ }
+ throw new Error(
+ "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
+ );
+ };
+ function parse(str) {
+ str = String(str);
+ if (str.length > 100) {
+ return;
+ }
+ var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
+ str
+ );
+ if (!match) {
+ return;
+ }
+ var n = parseFloat(match[1]);
+ var type = (match[2] || "ms").toLowerCase();
+ switch (type) {
+ case "years":
+ case "year":
+ case "yrs":
+ case "yr":
+ case "y":
+ return n * y;
+ case "weeks":
+ case "week":
+ case "w":
+ return n * w;
+ case "days":
+ case "day":
+ case "d":
+ return n * d;
+ case "hours":
+ case "hour":
+ case "hrs":
+ case "hr":
+ case "h":
+ return n * h;
+ case "minutes":
+ case "minute":
+ case "mins":
+ case "min":
+ case "m":
+ return n * m;
+ case "seconds":
+ case "second":
+ case "secs":
+ case "sec":
+ case "s":
+ return n * s;
+ case "milliseconds":
+ case "millisecond":
+ case "msecs":
+ case "msec":
+ case "ms":
+ return n;
+ default:
+ return void 0;
+ }
+ }
+ function fmtShort(ms) {
+ var msAbs = Math.abs(ms);
+ if (msAbs >= d) {
+ return Math.round(ms / d) + "d";
+ }
+ if (msAbs >= h) {
+ return Math.round(ms / h) + "h";
+ }
+ if (msAbs >= m) {
+ return Math.round(ms / m) + "m";
+ }
+ if (msAbs >= s) {
+ return Math.round(ms / s) + "s";
+ }
+ return ms + "ms";
+ }
+ function fmtLong(ms) {
+ var msAbs = Math.abs(ms);
+ if (msAbs >= d) {
+ return plural(ms, msAbs, d, "day");
+ }
+ if (msAbs >= h) {
+ return plural(ms, msAbs, h, "hour");
+ }
+ if (msAbs >= m) {
+ return plural(ms, msAbs, m, "minute");
+ }
+ if (msAbs >= s) {
+ return plural(ms, msAbs, s, "second");
+ }
+ return ms + " ms";
+ }
+ function plural(ms, msAbs, n, name) {
+ var isPlural = msAbs >= n * 1.5;
+ return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
+ }
+ }
+});
+
+// node_modules/range-parser/index.js
+var require_range_parser = __commonJS({
+ "node_modules/range-parser/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = rangeParser;
+ function rangeParser(size, str, options) {
+ if (typeof str !== "string") {
+ throw new TypeError("argument str must be a string");
+ }
+ var index = str.indexOf("=");
+ if (index === -1) {
+ return -2;
+ }
+ var arr = str.slice(index + 1).split(",");
+ var ranges = [];
+ ranges.type = str.slice(0, index);
+ for (var i = 0; i < arr.length; i++) {
+ var range = arr[i].split("-");
+ var start = parseInt(range[0], 10);
+ var end = parseInt(range[1], 10);
+ if (isNaN(start)) {
+ start = size - end;
+ end = size - 1;
+ } else if (isNaN(end)) {
+ end = size - 1;
+ }
+ if (end > size - 1) {
+ end = size - 1;
+ }
+ if (isNaN(start) || isNaN(end) || start > end || start < 0) {
+ continue;
+ }
+ ranges.push({
+ start,
+ end
+ });
+ }
+ if (ranges.length < 1) {
+ return -1;
+ }
+ return options && options.combine ? combineRanges(ranges) : ranges;
+ }
+ function combineRanges(ranges) {
+ var ordered = ranges.map(mapWithIndex).sort(sortByRangeStart);
+ for (var j = 0, i = 1; i < ordered.length; i++) {
+ var range = ordered[i];
+ var current = ordered[j];
+ if (range.start > current.end + 1) {
+ ordered[++j] = range;
+ } else if (range.end > current.end) {
+ current.end = range.end;
+ current.index = Math.min(current.index, range.index);
+ }
+ }
+ ordered.length = j + 1;
+ var combined = ordered.sort(sortByRangeIndex).map(mapWithoutIndex);
+ combined.type = ranges.type;
+ return combined;
+ }
+ function mapWithIndex(range, index) {
+ return {
+ start: range.start,
+ end: range.end,
+ index
+ };
+ }
+ function mapWithoutIndex(range) {
+ return {
+ start: range.start,
+ end: range.end
+ };
+ }
+ function sortByRangeIndex(a, b) {
+ return a.index - b.index;
+ }
+ function sortByRangeStart(a, b) {
+ return a.start - b.start;
+ }
+ }
+});
+
+// node_modules/send/index.js
+var require_send = __commonJS({
+ "node_modules/send/index.js"(exports2, module2) {
+ "use strict";
+ var createError = require_http_errors();
+ var debug = require_src()("send");
+ var deprecate = require_depd()("send");
+ var destroy = require_destroy();
+ var encodeUrl = require_encodeurl2();
+ var escapeHtml = require_escape_html();
+ var etag = require_etag();
+ var fresh = require_fresh();
+ var fs = require("fs");
+ var mime = require_mime();
+ var ms = require_ms2();
+ var onFinished = require_on_finished();
+ var parseRange = require_range_parser();
+ var path = require("path");
+ var statuses = require_statuses();
+ var Stream = require("stream");
+ var util = require("util");
+ var extname = path.extname;
+ var join = path.join;
+ var normalize = path.normalize;
+ var resolve = path.resolve;
+ var sep = path.sep;
+ var BYTES_RANGE_REGEXP = /^ *bytes=/;
+ var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1e3;
+ var UP_PATH_REGEXP = /(?:^|[\\/])\.\.(?:[\\/]|$)/;
+ module2.exports = send;
+ module2.exports.mime = mime;
+ function send(req, path2, options) {
+ return new SendStream(req, path2, options);
+ }
+ function SendStream(req, path2, options) {
+ Stream.call(this);
+ var opts = options || {};
+ this.options = opts;
+ this.path = path2;
+ this.req = req;
+ this._acceptRanges = opts.acceptRanges !== void 0 ? Boolean(opts.acceptRanges) : true;
+ this._cacheControl = opts.cacheControl !== void 0 ? Boolean(opts.cacheControl) : true;
+ this._etag = opts.etag !== void 0 ? Boolean(opts.etag) : true;
+ this._dotfiles = opts.dotfiles !== void 0 ? opts.dotfiles : "ignore";
+ if (this._dotfiles !== "ignore" && this._dotfiles !== "allow" && this._dotfiles !== "deny") {
+ throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"');
+ }
+ this._hidden = Boolean(opts.hidden);
+ if (opts.hidden !== void 0) {
+ deprecate("hidden: use dotfiles: '" + (this._hidden ? "allow" : "ignore") + "' instead");
+ }
+ if (opts.dotfiles === void 0) {
+ this._dotfiles = void 0;
+ }
+ this._extensions = opts.extensions !== void 0 ? normalizeList(opts.extensions, "extensions option") : [];
+ this._immutable = opts.immutable !== void 0 ? Boolean(opts.immutable) : false;
+ this._index = opts.index !== void 0 ? normalizeList(opts.index, "index option") : ["index.html"];
+ this._lastModified = opts.lastModified !== void 0 ? Boolean(opts.lastModified) : true;
+ this._maxage = opts.maxAge || opts.maxage;
+ this._maxage = typeof this._maxage === "string" ? ms(this._maxage) : Number(this._maxage);
+ this._maxage = !isNaN(this._maxage) ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) : 0;
+ this._root = opts.root ? resolve(opts.root) : null;
+ if (!this._root && opts.from) {
+ this.from(opts.from);
+ }
+ }
+ util.inherits(SendStream, Stream);
+ SendStream.prototype.etag = deprecate.function(function etag2(val) {
+ this._etag = Boolean(val);
+ debug("etag %s", this._etag);
+ return this;
+ }, "send.etag: pass etag as option");
+ SendStream.prototype.hidden = deprecate.function(function hidden(val) {
+ this._hidden = Boolean(val);
+ this._dotfiles = void 0;
+ debug("hidden %s", this._hidden);
+ return this;
+ }, "send.hidden: use dotfiles option");
+ SendStream.prototype.index = deprecate.function(function index(paths) {
+ var index2 = !paths ? [] : normalizeList(paths, "paths argument");
+ debug("index %o", paths);
+ this._index = index2;
+ return this;
+ }, "send.index: pass index as option");
+ SendStream.prototype.root = function root(path2) {
+ this._root = resolve(String(path2));
+ debug("root %s", this._root);
+ return this;
+ };
+ SendStream.prototype.from = deprecate.function(
+ SendStream.prototype.root,
+ "send.from: pass root as option"
+ );
+ SendStream.prototype.root = deprecate.function(
+ SendStream.prototype.root,
+ "send.root: pass root as option"
+ );
+ SendStream.prototype.maxage = deprecate.function(function maxage(maxAge) {
+ this._maxage = typeof maxAge === "string" ? ms(maxAge) : Number(maxAge);
+ this._maxage = !isNaN(this._maxage) ? Math.min(Math.max(0, this._maxage), MAX_MAXAGE) : 0;
+ debug("max-age %d", this._maxage);
+ return this;
+ }, "send.maxage: pass maxAge as option");
+ SendStream.prototype.error = function error(status, err) {
+ if (hasListeners(this, "error")) {
+ return this.emit("error", createHttpError(status, err));
+ }
+ var res = this.res;
+ var msg = statuses.message[status] || String(status);
+ var doc = createHtmlDocument("Error", escapeHtml(msg));
+ clearHeaders(res);
+ if (err && err.headers) {
+ setHeaders(res, err.headers);
+ }
+ res.statusCode = status;
+ res.setHeader("Content-Type", "text/html; charset=UTF-8");
+ res.setHeader("Content-Length", Buffer.byteLength(doc));
+ res.setHeader("Content-Security-Policy", "default-src 'none'");
+ res.setHeader("X-Content-Type-Options", "nosniff");
+ res.end(doc);
+ };
+ SendStream.prototype.hasTrailingSlash = function hasTrailingSlash() {
+ return this.path[this.path.length - 1] === "/";
+ };
+ SendStream.prototype.isConditionalGET = function isConditionalGET() {
+ return this.req.headers["if-match"] || this.req.headers["if-unmodified-since"] || this.req.headers["if-none-match"] || this.req.headers["if-modified-since"];
+ };
+ SendStream.prototype.isPreconditionFailure = function isPreconditionFailure() {
+ var req = this.req;
+ var res = this.res;
+ var match = req.headers["if-match"];
+ if (match) {
+ var etag2 = res.getHeader("ETag");
+ return !etag2 || match !== "*" && parseTokenList(match).every(function(match2) {
+ return match2 !== etag2 && match2 !== "W/" + etag2 && "W/" + match2 !== etag2;
+ });
+ }
+ var unmodifiedSince = parseHttpDate(req.headers["if-unmodified-since"]);
+ if (!isNaN(unmodifiedSince)) {
+ var lastModified = parseHttpDate(res.getHeader("Last-Modified"));
+ return isNaN(lastModified) || lastModified > unmodifiedSince;
+ }
+ return false;
+ };
+ SendStream.prototype.removeContentHeaderFields = function removeContentHeaderFields() {
+ var res = this.res;
+ res.removeHeader("Content-Encoding");
+ res.removeHeader("Content-Language");
+ res.removeHeader("Content-Length");
+ res.removeHeader("Content-Range");
+ res.removeHeader("Content-Type");
+ };
+ SendStream.prototype.notModified = function notModified() {
+ var res = this.res;
+ debug("not modified");
+ this.removeContentHeaderFields();
+ res.statusCode = 304;
+ res.end();
+ };
+ SendStream.prototype.headersAlreadySent = function headersAlreadySent() {
+ var err = new Error("Can't set headers after they are sent.");
+ debug("headers already sent");
+ this.error(500, err);
+ };
+ SendStream.prototype.isCachable = function isCachable() {
+ var statusCode = this.res.statusCode;
+ return statusCode >= 200 && statusCode < 300 || statusCode === 304;
+ };
+ SendStream.prototype.onStatError = function onStatError(error) {
+ switch (error.code) {
+ case "ENAMETOOLONG":
+ case "ENOENT":
+ case "ENOTDIR":
+ this.error(404, error);
+ break;
+ default:
+ this.error(500, error);
+ break;
+ }
+ };
+ SendStream.prototype.isFresh = function isFresh() {
+ return fresh(this.req.headers, {
+ etag: this.res.getHeader("ETag"),
+ "last-modified": this.res.getHeader("Last-Modified")
+ });
+ };
+ SendStream.prototype.isRangeFresh = function isRangeFresh() {
+ var ifRange = this.req.headers["if-range"];
+ if (!ifRange) {
+ return true;
+ }
+ if (ifRange.indexOf('"') !== -1) {
+ var etag2 = this.res.getHeader("ETag");
+ return Boolean(etag2 && ifRange.indexOf(etag2) !== -1);
+ }
+ var lastModified = this.res.getHeader("Last-Modified");
+ return parseHttpDate(lastModified) <= parseHttpDate(ifRange);
+ };
+ SendStream.prototype.redirect = function redirect(path2) {
+ var res = this.res;
+ if (hasListeners(this, "directory")) {
+ this.emit("directory", res, path2);
+ return;
+ }
+ if (this.hasTrailingSlash()) {
+ this.error(403);
+ return;
+ }
+ var loc = encodeUrl(collapseLeadingSlashes(this.path + "/"));
+ var doc = createHtmlDocument("Redirecting", "Redirecting to " + escapeHtml(loc));
+ res.statusCode = 301;
+ res.setHeader("Content-Type", "text/html; charset=UTF-8");
+ res.setHeader("Content-Length", Buffer.byteLength(doc));
+ res.setHeader("Content-Security-Policy", "default-src 'none'");
+ res.setHeader("X-Content-Type-Options", "nosniff");
+ res.setHeader("Location", loc);
+ res.end(doc);
+ };
+ SendStream.prototype.pipe = function pipe(res) {
+ var root = this._root;
+ this.res = res;
+ var path2 = decode(this.path);
+ if (path2 === -1) {
+ this.error(400);
+ return res;
+ }
+ if (~path2.indexOf("\0")) {
+ this.error(400);
+ return res;
+ }
+ var parts;
+ if (root !== null) {
+ if (path2) {
+ path2 = normalize("." + sep + path2);
+ }
+ if (UP_PATH_REGEXP.test(path2)) {
+ debug('malicious path "%s"', path2);
+ this.error(403);
+ return res;
+ }
+ parts = path2.split(sep);
+ path2 = normalize(join(root, path2));
+ } else {
+ if (UP_PATH_REGEXP.test(path2)) {
+ debug('malicious path "%s"', path2);
+ this.error(403);
+ return res;
+ }
+ parts = normalize(path2).split(sep);
+ path2 = resolve(path2);
+ }
+ if (containsDotFile(parts)) {
+ var access = this._dotfiles;
+ if (access === void 0) {
+ access = parts[parts.length - 1][0] === "." ? this._hidden ? "allow" : "ignore" : "allow";
+ }
+ debug('%s dotfile "%s"', access, path2);
+ switch (access) {
+ case "allow":
+ break;
+ case "deny":
+ this.error(403);
+ return res;
+ case "ignore":
+ default:
+ this.error(404);
+ return res;
+ }
+ }
+ if (this._index.length && this.hasTrailingSlash()) {
+ this.sendIndex(path2);
+ return res;
+ }
+ this.sendFile(path2);
+ return res;
+ };
+ SendStream.prototype.send = function send2(path2, stat) {
+ var len = stat.size;
+ var options = this.options;
+ var opts = {};
+ var res = this.res;
+ var req = this.req;
+ var ranges = req.headers.range;
+ var offset = options.start || 0;
+ if (headersSent(res)) {
+ this.headersAlreadySent();
+ return;
+ }
+ debug('pipe "%s"', path2);
+ this.setHeader(path2, stat);
+ this.type(path2);
+ if (this.isConditionalGET()) {
+ if (this.isPreconditionFailure()) {
+ this.error(412);
+ return;
+ }
+ if (this.isCachable() && this.isFresh()) {
+ this.notModified();
+ return;
+ }
+ }
+ len = Math.max(0, len - offset);
+ if (options.end !== void 0) {
+ var bytes = options.end - offset + 1;
+ if (len > bytes)
+ len = bytes;
+ }
+ if (this._acceptRanges && BYTES_RANGE_REGEXP.test(ranges)) {
+ ranges = parseRange(len, ranges, {
+ combine: true
+ });
+ if (!this.isRangeFresh()) {
+ debug("range stale");
+ ranges = -2;
+ }
+ if (ranges === -1) {
+ debug("range unsatisfiable");
+ res.setHeader("Content-Range", contentRange("bytes", len));
+ return this.error(416, {
+ headers: { "Content-Range": res.getHeader("Content-Range") }
+ });
+ }
+ if (ranges !== -2 && ranges.length === 1) {
+ debug("range %j", ranges);
+ res.statusCode = 206;
+ res.setHeader("Content-Range", contentRange("bytes", len, ranges[0]));
+ offset += ranges[0].start;
+ len = ranges[0].end - ranges[0].start + 1;
+ }
+ }
+ for (var prop in options) {
+ opts[prop] = options[prop];
+ }
+ opts.start = offset;
+ opts.end = Math.max(offset, offset + len - 1);
+ res.setHeader("Content-Length", len);
+ if (req.method === "HEAD") {
+ res.end();
+ return;
+ }
+ this.stream(path2, opts);
+ };
+ SendStream.prototype.sendFile = function sendFile(path2) {
+ var i = 0;
+ var self2 = this;
+ debug('stat "%s"', path2);
+ fs.stat(path2, function onstat(err, stat) {
+ if (err && err.code === "ENOENT" && !extname(path2) && path2[path2.length - 1] !== sep) {
+ return next(err);
+ }
+ if (err)
+ return self2.onStatError(err);
+ if (stat.isDirectory())
+ return self2.redirect(path2);
+ self2.emit("file", path2, stat);
+ self2.send(path2, stat);
+ });
+ function next(err) {
+ if (self2._extensions.length <= i) {
+ return err ? self2.onStatError(err) : self2.error(404);
+ }
+ var p = path2 + "." + self2._extensions[i++];
+ debug('stat "%s"', p);
+ fs.stat(p, function(err2, stat) {
+ if (err2)
+ return next(err2);
+ if (stat.isDirectory())
+ return next();
+ self2.emit("file", p, stat);
+ self2.send(p, stat);
+ });
+ }
+ };
+ SendStream.prototype.sendIndex = function sendIndex(path2) {
+ var i = -1;
+ var self2 = this;
+ function next(err) {
+ if (++i >= self2._index.length) {
+ if (err)
+ return self2.onStatError(err);
+ return self2.error(404);
+ }
+ var p = join(path2, self2._index[i]);
+ debug('stat "%s"', p);
+ fs.stat(p, function(err2, stat) {
+ if (err2)
+ return next(err2);
+ if (stat.isDirectory())
+ return next();
+ self2.emit("file", p, stat);
+ self2.send(p, stat);
+ });
+ }
+ next();
+ };
+ SendStream.prototype.stream = function stream(path2, options) {
+ var self2 = this;
+ var res = this.res;
+ var stream2 = fs.createReadStream(path2, options);
+ this.emit("stream", stream2);
+ stream2.pipe(res);
+ function cleanup() {
+ destroy(stream2, true);
+ }
+ onFinished(res, cleanup);
+ stream2.on("error", function onerror(err) {
+ cleanup();
+ self2.onStatError(err);
+ });
+ stream2.on("end", function onend() {
+ self2.emit("end");
+ });
+ };
+ SendStream.prototype.type = function type(path2) {
+ var res = this.res;
+ if (res.getHeader("Content-Type"))
+ return;
+ var type2 = mime.lookup(path2);
+ if (!type2) {
+ debug("no content-type");
+ return;
+ }
+ var charset = mime.charsets.lookup(type2);
+ debug("content-type %s", type2);
+ res.setHeader("Content-Type", type2 + (charset ? "; charset=" + charset : ""));
+ };
+ SendStream.prototype.setHeader = function setHeader(path2, stat) {
+ var res = this.res;
+ this.emit("headers", res, path2, stat);
+ if (this._acceptRanges && !res.getHeader("Accept-Ranges")) {
+ debug("accept ranges");
+ res.setHeader("Accept-Ranges", "bytes");
+ }
+ if (this._cacheControl && !res.getHeader("Cache-Control")) {
+ var cacheControl = "public, max-age=" + Math.floor(this._maxage / 1e3);
+ if (this._immutable) {
+ cacheControl += ", immutable";
+ }
+ debug("cache-control %s", cacheControl);
+ res.setHeader("Cache-Control", cacheControl);
+ }
+ if (this._lastModified && !res.getHeader("Last-Modified")) {
+ var modified = stat.mtime.toUTCString();
+ debug("modified %s", modified);
+ res.setHeader("Last-Modified", modified);
+ }
+ if (this._etag && !res.getHeader("ETag")) {
+ var val = etag(stat);
+ debug("etag %s", val);
+ res.setHeader("ETag", val);
+ }
+ };
+ function clearHeaders(res) {
+ var headers = getHeaderNames(res);
+ for (var i = 0; i < headers.length; i++) {
+ res.removeHeader(headers[i]);
+ }
+ }
+ function collapseLeadingSlashes(str) {
+ for (var i = 0; i < str.length; i++) {
+ if (str[i] !== "/") {
+ break;
+ }
+ }
+ return i > 1 ? "/" + str.substr(i) : str;
+ }
+ function containsDotFile(parts) {
+ for (var i = 0; i < parts.length; i++) {
+ var part = parts[i];
+ if (part.length > 1 && part[0] === ".") {
+ return true;
+ }
+ }
+ return false;
+ }
+ function contentRange(type, size, range) {
+ return type + " " + (range ? range.start + "-" + range.end : "*") + "/" + size;
+ }
+ function createHtmlDocument(title, body) {
+ return '\n\n\n\n' + title + "\n\n\n" + body + "
\n\n\n";
+ }
+ function createHttpError(status, err) {
+ if (!err) {
+ return createError(status);
+ }
+ return err instanceof Error ? createError(status, err, { expose: false }) : createError(status, err);
+ }
+ function decode(path2) {
+ try {
+ return decodeURIComponent(path2);
+ } catch (err) {
+ return -1;
+ }
+ }
+ function getHeaderNames(res) {
+ return typeof res.getHeaderNames !== "function" ? Object.keys(res._headers || {}) : res.getHeaderNames();
+ }
+ function hasListeners(emitter, type) {
+ var count = typeof emitter.listenerCount !== "function" ? emitter.listeners(type).length : emitter.listenerCount(type);
+ return count > 0;
+ }
+ function headersSent(res) {
+ return typeof res.headersSent !== "boolean" ? Boolean(res._header) : res.headersSent;
+ }
+ function normalizeList(val, name) {
+ var list = [].concat(val || []);
+ for (var i = 0; i < list.length; i++) {
+ if (typeof list[i] !== "string") {
+ throw new TypeError(name + " must be array of strings or false");
+ }
+ }
+ return list;
+ }
+ function parseHttpDate(date) {
+ var timestamp = date && Date.parse(date);
+ return typeof timestamp === "number" ? timestamp : NaN;
+ }
+ function parseTokenList(str) {
+ var end = 0;
+ var list = [];
+ var start = 0;
+ for (var i = 0, len = str.length; i < len; i++) {
+ switch (str.charCodeAt(i)) {
+ case 32:
+ if (start === end) {
+ start = end = i + 1;
+ }
+ break;
+ case 44:
+ if (start !== end) {
+ list.push(str.substring(start, end));
+ }
+ start = end = i + 1;
+ break;
+ default:
+ end = i + 1;
+ break;
+ }
+ }
+ if (start !== end) {
+ list.push(str.substring(start, end));
+ }
+ return list;
+ }
+ function setHeaders(res, headers) {
+ var keys = Object.keys(headers);
+ for (var i = 0; i < keys.length; i++) {
+ var key = keys[i];
+ res.setHeader(key, headers[key]);
+ }
+ }
+ }
+});
+
+// node_modules/forwarded/index.js
+var require_forwarded = __commonJS({
+ "node_modules/forwarded/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = forwarded;
+ function forwarded(req) {
+ if (!req) {
+ throw new TypeError("argument req is required");
+ }
+ var proxyAddrs = parse(req.headers["x-forwarded-for"] || "");
+ var socketAddr = getSocketAddr(req);
+ var addrs = [socketAddr].concat(proxyAddrs);
+ return addrs;
+ }
+ function getSocketAddr(req) {
+ return req.socket ? req.socket.remoteAddress : req.connection.remoteAddress;
+ }
+ function parse(header) {
+ var end = header.length;
+ var list = [];
+ var start = header.length;
+ for (var i = header.length - 1; i >= 0; i--) {
+ switch (header.charCodeAt(i)) {
+ case 32:
+ if (start === end) {
+ start = end = i;
+ }
+ break;
+ case 44:
+ if (start !== end) {
+ list.push(header.substring(start, end));
+ }
+ start = end = i;
+ break;
+ default:
+ start = i;
+ break;
+ }
+ }
+ if (start !== end) {
+ list.push(header.substring(start, end));
+ }
+ return list;
+ }
+ }
+});
+
+// node_modules/ipaddr.js/lib/ipaddr.js
+var require_ipaddr = __commonJS({
+ "node_modules/ipaddr.js/lib/ipaddr.js"(exports2, module2) {
+ (function() {
+ var expandIPv6, ipaddr, ipv4Part, ipv4Regexes, ipv6Part, ipv6Regexes, matchCIDR, root, zoneIndex;
+ ipaddr = {};
+ root = this;
+ if (typeof module2 !== "undefined" && module2 !== null && module2.exports) {
+ module2.exports = ipaddr;
+ } else {
+ root["ipaddr"] = ipaddr;
+ }
+ matchCIDR = function(first, second, partSize, cidrBits) {
+ var part, shift;
+ if (first.length !== second.length) {
+ throw new Error("ipaddr: cannot match CIDR for objects with different lengths");
+ }
+ part = 0;
+ while (cidrBits > 0) {
+ shift = partSize - cidrBits;
+ if (shift < 0) {
+ shift = 0;
+ }
+ if (first[part] >> shift !== second[part] >> shift) {
+ return false;
+ }
+ cidrBits -= partSize;
+ part += 1;
+ }
+ return true;
+ };
+ ipaddr.subnetMatch = function(address, rangeList, defaultName) {
+ var k, len, rangeName, rangeSubnets, subnet;
+ if (defaultName == null) {
+ defaultName = "unicast";
+ }
+ for (rangeName in rangeList) {
+ rangeSubnets = rangeList[rangeName];
+ if (rangeSubnets[0] && !(rangeSubnets[0] instanceof Array)) {
+ rangeSubnets = [rangeSubnets];
+ }
+ for (k = 0, len = rangeSubnets.length; k < len; k++) {
+ subnet = rangeSubnets[k];
+ if (address.kind() === subnet[0].kind()) {
+ if (address.match.apply(address, subnet)) {
+ return rangeName;
+ }
+ }
+ }
+ }
+ return defaultName;
+ };
+ ipaddr.IPv4 = function() {
+ function IPv4(octets) {
+ var k, len, octet;
+ if (octets.length !== 4) {
+ throw new Error("ipaddr: ipv4 octet count should be 4");
+ }
+ for (k = 0, len = octets.length; k < len; k++) {
+ octet = octets[k];
+ if (!(0 <= octet && octet <= 255)) {
+ throw new Error("ipaddr: ipv4 octet should fit in 8 bits");
+ }
+ }
+ this.octets = octets;
+ }
+ IPv4.prototype.kind = function() {
+ return "ipv4";
+ };
+ IPv4.prototype.toString = function() {
+ return this.octets.join(".");
+ };
+ IPv4.prototype.toNormalizedString = function() {
+ return this.toString();
+ };
+ IPv4.prototype.toByteArray = function() {
+ return this.octets.slice(0);
+ };
+ IPv4.prototype.match = function(other, cidrRange) {
+ var ref;
+ if (cidrRange === void 0) {
+ ref = other, other = ref[0], cidrRange = ref[1];
+ }
+ if (other.kind() !== "ipv4") {
+ throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");
+ }
+ return matchCIDR(this.octets, other.octets, 8, cidrRange);
+ };
+ IPv4.prototype.SpecialRanges = {
+ unspecified: [[new IPv4([0, 0, 0, 0]), 8]],
+ broadcast: [[new IPv4([255, 255, 255, 255]), 32]],
+ multicast: [[new IPv4([224, 0, 0, 0]), 4]],
+ linkLocal: [[new IPv4([169, 254, 0, 0]), 16]],
+ loopback: [[new IPv4([127, 0, 0, 0]), 8]],
+ carrierGradeNat: [[new IPv4([100, 64, 0, 0]), 10]],
+ "private": [[new IPv4([10, 0, 0, 0]), 8], [new IPv4([172, 16, 0, 0]), 12], [new IPv4([192, 168, 0, 0]), 16]],
+ reserved: [[new IPv4([192, 0, 0, 0]), 24], [new IPv4([192, 0, 2, 0]), 24], [new IPv4([192, 88, 99, 0]), 24], [new IPv4([198, 51, 100, 0]), 24], [new IPv4([203, 0, 113, 0]), 24], [new IPv4([240, 0, 0, 0]), 4]]
+ };
+ IPv4.prototype.range = function() {
+ return ipaddr.subnetMatch(this, this.SpecialRanges);
+ };
+ IPv4.prototype.toIPv4MappedAddress = function() {
+ return ipaddr.IPv6.parse("::ffff:" + this.toString());
+ };
+ IPv4.prototype.prefixLengthFromSubnetMask = function() {
+ var cidr, i, k, octet, stop, zeros, zerotable;
+ zerotable = {
+ 0: 8,
+ 128: 7,
+ 192: 6,
+ 224: 5,
+ 240: 4,
+ 248: 3,
+ 252: 2,
+ 254: 1,
+ 255: 0
+ };
+ cidr = 0;
+ stop = false;
+ for (i = k = 3; k >= 0; i = k += -1) {
+ octet = this.octets[i];
+ if (octet in zerotable) {
+ zeros = zerotable[octet];
+ if (stop && zeros !== 0) {
+ return null;
+ }
+ if (zeros !== 8) {
+ stop = true;
+ }
+ cidr += zeros;
+ } else {
+ return null;
+ }
+ }
+ return 32 - cidr;
+ };
+ return IPv4;
+ }();
+ ipv4Part = "(0?\\d+|0x[a-f0-9]+)";
+ ipv4Regexes = {
+ fourOctet: new RegExp("^" + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "$", "i"),
+ longValue: new RegExp("^" + ipv4Part + "$", "i")
+ };
+ ipaddr.IPv4.parser = function(string) {
+ var match, parseIntAuto, part, shift, value;
+ parseIntAuto = function(string2) {
+ if (string2[0] === "0" && string2[1] !== "x") {
+ return parseInt(string2, 8);
+ } else {
+ return parseInt(string2);
+ }
+ };
+ if (match = string.match(ipv4Regexes.fourOctet)) {
+ return function() {
+ var k, len, ref, results;
+ ref = match.slice(1, 6);
+ results = [];
+ for (k = 0, len = ref.length; k < len; k++) {
+ part = ref[k];
+ results.push(parseIntAuto(part));
+ }
+ return results;
+ }();
+ } else if (match = string.match(ipv4Regexes.longValue)) {
+ value = parseIntAuto(match[1]);
+ if (value > 4294967295 || value < 0) {
+ throw new Error("ipaddr: address outside defined range");
+ }
+ return function() {
+ var k, results;
+ results = [];
+ for (shift = k = 0; k <= 24; shift = k += 8) {
+ results.push(value >> shift & 255);
+ }
+ return results;
+ }().reverse();
+ } else {
+ return null;
+ }
+ };
+ ipaddr.IPv6 = function() {
+ function IPv6(parts, zoneId) {
+ var i, k, l, len, part, ref;
+ if (parts.length === 16) {
+ this.parts = [];
+ for (i = k = 0; k <= 14; i = k += 2) {
+ this.parts.push(parts[i] << 8 | parts[i + 1]);
+ }
+ } else if (parts.length === 8) {
+ this.parts = parts;
+ } else {
+ throw new Error("ipaddr: ipv6 part count should be 8 or 16");
+ }
+ ref = this.parts;
+ for (l = 0, len = ref.length; l < len; l++) {
+ part = ref[l];
+ if (!(0 <= part && part <= 65535)) {
+ throw new Error("ipaddr: ipv6 part should fit in 16 bits");
+ }
+ }
+ if (zoneId) {
+ this.zoneId = zoneId;
+ }
+ }
+ IPv6.prototype.kind = function() {
+ return "ipv6";
+ };
+ IPv6.prototype.toString = function() {
+ return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/, "::");
+ };
+ IPv6.prototype.toRFC5952String = function() {
+ var bestMatchIndex, bestMatchLength, match, regex, string;
+ regex = /((^|:)(0(:|$)){2,})/g;
+ string = this.toNormalizedString();
+ bestMatchIndex = 0;
+ bestMatchLength = -1;
+ while (match = regex.exec(string)) {
+ if (match[0].length > bestMatchLength) {
+ bestMatchIndex = match.index;
+ bestMatchLength = match[0].length;
+ }
+ }
+ if (bestMatchLength < 0) {
+ return string;
+ }
+ return string.substring(0, bestMatchIndex) + "::" + string.substring(bestMatchIndex + bestMatchLength);
+ };
+ IPv6.prototype.toByteArray = function() {
+ var bytes, k, len, part, ref;
+ bytes = [];
+ ref = this.parts;
+ for (k = 0, len = ref.length; k < len; k++) {
+ part = ref[k];
+ bytes.push(part >> 8);
+ bytes.push(part & 255);
+ }
+ return bytes;
+ };
+ IPv6.prototype.toNormalizedString = function() {
+ var addr, part, suffix;
+ addr = function() {
+ var k, len, ref, results;
+ ref = this.parts;
+ results = [];
+ for (k = 0, len = ref.length; k < len; k++) {
+ part = ref[k];
+ results.push(part.toString(16));
+ }
+ return results;
+ }.call(this).join(":");
+ suffix = "";
+ if (this.zoneId) {
+ suffix = "%" + this.zoneId;
+ }
+ return addr + suffix;
+ };
+ IPv6.prototype.toFixedLengthString = function() {
+ var addr, part, suffix;
+ addr = function() {
+ var k, len, ref, results;
+ ref = this.parts;
+ results = [];
+ for (k = 0, len = ref.length; k < len; k++) {
+ part = ref[k];
+ results.push(part.toString(16).padStart(4, "0"));
+ }
+ return results;
+ }.call(this).join(":");
+ suffix = "";
+ if (this.zoneId) {
+ suffix = "%" + this.zoneId;
+ }
+ return addr + suffix;
+ };
+ IPv6.prototype.match = function(other, cidrRange) {
+ var ref;
+ if (cidrRange === void 0) {
+ ref = other, other = ref[0], cidrRange = ref[1];
+ }
+ if (other.kind() !== "ipv6") {
+ throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");
+ }
+ return matchCIDR(this.parts, other.parts, 16, cidrRange);
+ };
+ IPv6.prototype.SpecialRanges = {
+ unspecified: [new IPv6([0, 0, 0, 0, 0, 0, 0, 0]), 128],
+ linkLocal: [new IPv6([65152, 0, 0, 0, 0, 0, 0, 0]), 10],
+ multicast: [new IPv6([65280, 0, 0, 0, 0, 0, 0, 0]), 8],
+ loopback: [new IPv6([0, 0, 0, 0, 0, 0, 0, 1]), 128],
+ uniqueLocal: [new IPv6([64512, 0, 0, 0, 0, 0, 0, 0]), 7],
+ ipv4Mapped: [new IPv6([0, 0, 0, 0, 0, 65535, 0, 0]), 96],
+ rfc6145: [new IPv6([0, 0, 0, 0, 65535, 0, 0, 0]), 96],
+ rfc6052: [new IPv6([100, 65435, 0, 0, 0, 0, 0, 0]), 96],
+ "6to4": [new IPv6([8194, 0, 0, 0, 0, 0, 0, 0]), 16],
+ teredo: [new IPv6([8193, 0, 0, 0, 0, 0, 0, 0]), 32],
+ reserved: [[new IPv6([8193, 3512, 0, 0, 0, 0, 0, 0]), 32]]
+ };
+ IPv6.prototype.range = function() {
+ return ipaddr.subnetMatch(this, this.SpecialRanges);
+ };
+ IPv6.prototype.isIPv4MappedAddress = function() {
+ return this.range() === "ipv4Mapped";
+ };
+ IPv6.prototype.toIPv4Address = function() {
+ var high, low, ref;
+ if (!this.isIPv4MappedAddress()) {
+ throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");
+ }
+ ref = this.parts.slice(-2), high = ref[0], low = ref[1];
+ return new ipaddr.IPv4([high >> 8, high & 255, low >> 8, low & 255]);
+ };
+ IPv6.prototype.prefixLengthFromSubnetMask = function() {
+ var cidr, i, k, part, stop, zeros, zerotable;
+ zerotable = {
+ 0: 16,
+ 32768: 15,
+ 49152: 14,
+ 57344: 13,
+ 61440: 12,
+ 63488: 11,
+ 64512: 10,
+ 65024: 9,
+ 65280: 8,
+ 65408: 7,
+ 65472: 6,
+ 65504: 5,
+ 65520: 4,
+ 65528: 3,
+ 65532: 2,
+ 65534: 1,
+ 65535: 0
+ };
+ cidr = 0;
+ stop = false;
+ for (i = k = 7; k >= 0; i = k += -1) {
+ part = this.parts[i];
+ if (part in zerotable) {
+ zeros = zerotable[part];
+ if (stop && zeros !== 0) {
+ return null;
+ }
+ if (zeros !== 16) {
+ stop = true;
+ }
+ cidr += zeros;
+ } else {
+ return null;
+ }
+ }
+ return 128 - cidr;
+ };
+ return IPv6;
+ }();
+ ipv6Part = "(?:[0-9a-f]+::?)+";
+ zoneIndex = "%[0-9a-z]{1,}";
+ ipv6Regexes = {
+ zoneIndex: new RegExp(zoneIndex, "i"),
+ "native": new RegExp("^(::)?(" + ipv6Part + ")?([0-9a-f]+)?(::)?(" + zoneIndex + ")?$", "i"),
+ transitional: new RegExp("^((?:" + ipv6Part + ")|(?:::)(?:" + ipv6Part + ")?)" + (ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part + "\\." + ipv4Part) + ("(" + zoneIndex + ")?$"), "i")
+ };
+ expandIPv6 = function(string, parts) {
+ var colonCount, lastColon, part, replacement, replacementCount, zoneId;
+ if (string.indexOf("::") !== string.lastIndexOf("::")) {
+ return null;
+ }
+ zoneId = (string.match(ipv6Regexes["zoneIndex"]) || [])[0];
+ if (zoneId) {
+ zoneId = zoneId.substring(1);
+ string = string.replace(/%.+$/, "");
+ }
+ colonCount = 0;
+ lastColon = -1;
+ while ((lastColon = string.indexOf(":", lastColon + 1)) >= 0) {
+ colonCount++;
+ }
+ if (string.substr(0, 2) === "::") {
+ colonCount--;
+ }
+ if (string.substr(-2, 2) === "::") {
+ colonCount--;
+ }
+ if (colonCount > parts) {
+ return null;
+ }
+ replacementCount = parts - colonCount;
+ replacement = ":";
+ while (replacementCount--) {
+ replacement += "0:";
+ }
+ string = string.replace("::", replacement);
+ if (string[0] === ":") {
+ string = string.slice(1);
+ }
+ if (string[string.length - 1] === ":") {
+ string = string.slice(0, -1);
+ }
+ parts = function() {
+ var k, len, ref, results;
+ ref = string.split(":");
+ results = [];
+ for (k = 0, len = ref.length; k < len; k++) {
+ part = ref[k];
+ results.push(parseInt(part, 16));
+ }
+ return results;
+ }();
+ return {
+ parts,
+ zoneId
+ };
+ };
+ ipaddr.IPv6.parser = function(string) {
+ var addr, k, len, match, octet, octets, zoneId;
+ if (ipv6Regexes["native"].test(string)) {
+ return expandIPv6(string, 8);
+ } else if (match = string.match(ipv6Regexes["transitional"])) {
+ zoneId = match[6] || "";
+ addr = expandIPv6(match[1].slice(0, -1) + zoneId, 6);
+ if (addr.parts) {
+ octets = [parseInt(match[2]), parseInt(match[3]), parseInt(match[4]), parseInt(match[5])];
+ for (k = 0, len = octets.length; k < len; k++) {
+ octet = octets[k];
+ if (!(0 <= octet && octet <= 255)) {
+ return null;
+ }
+ }
+ addr.parts.push(octets[0] << 8 | octets[1]);
+ addr.parts.push(octets[2] << 8 | octets[3]);
+ return {
+ parts: addr.parts,
+ zoneId: addr.zoneId
+ };
+ }
+ }
+ return null;
+ };
+ ipaddr.IPv4.isIPv4 = ipaddr.IPv6.isIPv6 = function(string) {
+ return this.parser(string) !== null;
+ };
+ ipaddr.IPv4.isValid = function(string) {
+ var e;
+ try {
+ new this(this.parser(string));
+ return true;
+ } catch (error1) {
+ e = error1;
+ return false;
+ }
+ };
+ ipaddr.IPv4.isValidFourPartDecimal = function(string) {
+ if (ipaddr.IPv4.isValid(string) && string.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/)) {
+ return true;
+ } else {
+ return false;
+ }
+ };
+ ipaddr.IPv6.isValid = function(string) {
+ var addr, e;
+ if (typeof string === "string" && string.indexOf(":") === -1) {
+ return false;
+ }
+ try {
+ addr = this.parser(string);
+ new this(addr.parts, addr.zoneId);
+ return true;
+ } catch (error1) {
+ e = error1;
+ return false;
+ }
+ };
+ ipaddr.IPv4.parse = function(string) {
+ var parts;
+ parts = this.parser(string);
+ if (parts === null) {
+ throw new Error("ipaddr: string is not formatted like ip address");
+ }
+ return new this(parts);
+ };
+ ipaddr.IPv6.parse = function(string) {
+ var addr;
+ addr = this.parser(string);
+ if (addr.parts === null) {
+ throw new Error("ipaddr: string is not formatted like ip address");
+ }
+ return new this(addr.parts, addr.zoneId);
+ };
+ ipaddr.IPv4.parseCIDR = function(string) {
+ var maskLength, match, parsed;
+ if (match = string.match(/^(.+)\/(\d+)$/)) {
+ maskLength = parseInt(match[2]);
+ if (maskLength >= 0 && maskLength <= 32) {
+ parsed = [this.parse(match[1]), maskLength];
+ Object.defineProperty(parsed, "toString", {
+ value: function() {
+ return this.join("/");
+ }
+ });
+ return parsed;
+ }
+ }
+ throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range");
+ };
+ ipaddr.IPv4.subnetMaskFromPrefixLength = function(prefix) {
+ var filledOctetCount, j, octets;
+ prefix = parseInt(prefix);
+ if (prefix < 0 || prefix > 32) {
+ throw new Error("ipaddr: invalid IPv4 prefix length");
+ }
+ octets = [0, 0, 0, 0];
+ j = 0;
+ filledOctetCount = Math.floor(prefix / 8);
+ while (j < filledOctetCount) {
+ octets[j] = 255;
+ j++;
+ }
+ if (filledOctetCount < 4) {
+ octets[filledOctetCount] = Math.pow(2, prefix % 8) - 1 << 8 - prefix % 8;
+ }
+ return new this(octets);
+ };
+ ipaddr.IPv4.broadcastAddressFromCIDR = function(string) {
+ var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets;
+ try {
+ cidr = this.parseCIDR(string);
+ ipInterfaceOctets = cidr[0].toByteArray();
+ subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray();
+ octets = [];
+ i = 0;
+ while (i < 4) {
+ octets.push(parseInt(ipInterfaceOctets[i], 10) | parseInt(subnetMaskOctets[i], 10) ^ 255);
+ i++;
+ }
+ return new this(octets);
+ } catch (error1) {
+ error = error1;
+ throw new Error("ipaddr: the address does not have IPv4 CIDR format");
+ }
+ };
+ ipaddr.IPv4.networkAddressFromCIDR = function(string) {
+ var cidr, error, i, ipInterfaceOctets, octets, subnetMaskOctets;
+ try {
+ cidr = this.parseCIDR(string);
+ ipInterfaceOctets = cidr[0].toByteArray();
+ subnetMaskOctets = this.subnetMaskFromPrefixLength(cidr[1]).toByteArray();
+ octets = [];
+ i = 0;
+ while (i < 4) {
+ octets.push(parseInt(ipInterfaceOctets[i], 10) & parseInt(subnetMaskOctets[i], 10));
+ i++;
+ }
+ return new this(octets);
+ } catch (error1) {
+ error = error1;
+ throw new Error("ipaddr: the address does not have IPv4 CIDR format");
+ }
+ };
+ ipaddr.IPv6.parseCIDR = function(string) {
+ var maskLength, match, parsed;
+ if (match = string.match(/^(.+)\/(\d+)$/)) {
+ maskLength = parseInt(match[2]);
+ if (maskLength >= 0 && maskLength <= 128) {
+ parsed = [this.parse(match[1]), maskLength];
+ Object.defineProperty(parsed, "toString", {
+ value: function() {
+ return this.join("/");
+ }
+ });
+ return parsed;
+ }
+ }
+ throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range");
+ };
+ ipaddr.isValid = function(string) {
+ return ipaddr.IPv6.isValid(string) || ipaddr.IPv4.isValid(string);
+ };
+ ipaddr.parse = function(string) {
+ if (ipaddr.IPv6.isValid(string)) {
+ return ipaddr.IPv6.parse(string);
+ } else if (ipaddr.IPv4.isValid(string)) {
+ return ipaddr.IPv4.parse(string);
+ } else {
+ throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format");
+ }
+ };
+ ipaddr.parseCIDR = function(string) {
+ var e;
+ try {
+ return ipaddr.IPv6.parseCIDR(string);
+ } catch (error1) {
+ e = error1;
+ try {
+ return ipaddr.IPv4.parseCIDR(string);
+ } catch (error12) {
+ e = error12;
+ throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format");
+ }
+ }
+ };
+ ipaddr.fromByteArray = function(bytes) {
+ var length;
+ length = bytes.length;
+ if (length === 4) {
+ return new ipaddr.IPv4(bytes);
+ } else if (length === 16) {
+ return new ipaddr.IPv6(bytes);
+ } else {
+ throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address");
+ }
+ };
+ ipaddr.process = function(string) {
+ var addr;
+ addr = this.parse(string);
+ if (addr.kind() === "ipv6" && addr.isIPv4MappedAddress()) {
+ return addr.toIPv4Address();
+ } else {
+ return addr;
+ }
+ };
+ }).call(exports2);
+ }
+});
+
+// node_modules/proxy-addr/index.js
+var require_proxy_addr = __commonJS({
+ "node_modules/proxy-addr/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = proxyaddr;
+ module2.exports.all = alladdrs;
+ module2.exports.compile = compile;
+ var forwarded = require_forwarded();
+ var ipaddr = require_ipaddr();
+ var DIGIT_REGEXP = /^[0-9]+$/;
+ var isip = ipaddr.isValid;
+ var parseip = ipaddr.parse;
+ var IP_RANGES = {
+ linklocal: ["169.254.0.0/16", "fe80::/10"],
+ loopback: ["127.0.0.1/8", "::1/128"],
+ uniquelocal: ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "fc00::/7"]
+ };
+ function alladdrs(req, trust) {
+ var addrs = forwarded(req);
+ if (!trust) {
+ return addrs;
+ }
+ if (typeof trust !== "function") {
+ trust = compile(trust);
+ }
+ for (var i = 0; i < addrs.length - 1; i++) {
+ if (trust(addrs[i], i))
+ continue;
+ addrs.length = i + 1;
+ }
+ return addrs;
+ }
+ function compile(val) {
+ if (!val) {
+ throw new TypeError("argument is required");
+ }
+ var trust;
+ if (typeof val === "string") {
+ trust = [val];
+ } else if (Array.isArray(val)) {
+ trust = val.slice();
+ } else {
+ throw new TypeError("unsupported trust argument");
+ }
+ for (var i = 0; i < trust.length; i++) {
+ val = trust[i];
+ if (!Object.prototype.hasOwnProperty.call(IP_RANGES, val)) {
+ continue;
+ }
+ val = IP_RANGES[val];
+ trust.splice.apply(trust, [i, 1].concat(val));
+ i += val.length - 1;
+ }
+ return compileTrust(compileRangeSubnets(trust));
+ }
+ function compileRangeSubnets(arr) {
+ var rangeSubnets = new Array(arr.length);
+ for (var i = 0; i < arr.length; i++) {
+ rangeSubnets[i] = parseipNotation(arr[i]);
+ }
+ return rangeSubnets;
+ }
+ function compileTrust(rangeSubnets) {
+ var len = rangeSubnets.length;
+ return len === 0 ? trustNone : len === 1 ? trustSingle(rangeSubnets[0]) : trustMulti(rangeSubnets);
+ }
+ function parseipNotation(note) {
+ var pos = note.lastIndexOf("/");
+ var str = pos !== -1 ? note.substring(0, pos) : note;
+ if (!isip(str)) {
+ throw new TypeError("invalid IP address: " + str);
+ }
+ var ip = parseip(str);
+ if (pos === -1 && ip.kind() === "ipv6" && ip.isIPv4MappedAddress()) {
+ ip = ip.toIPv4Address();
+ }
+ var max = ip.kind() === "ipv6" ? 128 : 32;
+ var range = pos !== -1 ? note.substring(pos + 1, note.length) : null;
+ if (range === null) {
+ range = max;
+ } else if (DIGIT_REGEXP.test(range)) {
+ range = parseInt(range, 10);
+ } else if (ip.kind() === "ipv4" && isip(range)) {
+ range = parseNetmask(range);
+ } else {
+ range = null;
+ }
+ if (range <= 0 || range > max) {
+ throw new TypeError("invalid range on address: " + note);
+ }
+ return [ip, range];
+ }
+ function parseNetmask(netmask) {
+ var ip = parseip(netmask);
+ var kind = ip.kind();
+ return kind === "ipv4" ? ip.prefixLengthFromSubnetMask() : null;
+ }
+ function proxyaddr(req, trust) {
+ if (!req) {
+ throw new TypeError("req argument is required");
+ }
+ if (!trust) {
+ throw new TypeError("trust argument is required");
+ }
+ var addrs = alladdrs(req, trust);
+ var addr = addrs[addrs.length - 1];
+ return addr;
+ }
+ function trustNone() {
+ return false;
+ }
+ function trustMulti(subnets) {
+ return function trust(addr) {
+ if (!isip(addr))
+ return false;
+ var ip = parseip(addr);
+ var ipconv;
+ var kind = ip.kind();
+ for (var i = 0; i < subnets.length; i++) {
+ var subnet = subnets[i];
+ var subnetip = subnet[0];
+ var subnetkind = subnetip.kind();
+ var subnetrange = subnet[1];
+ var trusted = ip;
+ if (kind !== subnetkind) {
+ if (subnetkind === "ipv4" && !ip.isIPv4MappedAddress()) {
+ continue;
+ }
+ if (!ipconv) {
+ ipconv = subnetkind === "ipv4" ? ip.toIPv4Address() : ip.toIPv4MappedAddress();
+ }
+ trusted = ipconv;
+ }
+ if (trusted.match(subnetip, subnetrange)) {
+ return true;
+ }
+ }
+ return false;
+ };
+ }
+ function trustSingle(subnet) {
+ var subnetip = subnet[0];
+ var subnetkind = subnetip.kind();
+ var subnetisipv4 = subnetkind === "ipv4";
+ var subnetrange = subnet[1];
+ return function trust(addr) {
+ if (!isip(addr))
+ return false;
+ var ip = parseip(addr);
+ var kind = ip.kind();
+ if (kind !== subnetkind) {
+ if (subnetisipv4 && !ip.isIPv4MappedAddress()) {
+ return false;
+ }
+ ip = subnetisipv4 ? ip.toIPv4Address() : ip.toIPv4MappedAddress();
+ }
+ return ip.match(subnetip, subnetrange);
+ };
+ }
+ }
+});
+
+// node_modules/express/lib/utils.js
+var require_utils2 = __commonJS({
+ "node_modules/express/lib/utils.js"(exports2) {
+ "use strict";
+ var Buffer2 = require_safe_buffer().Buffer;
+ var contentDisposition = require_content_disposition();
+ var contentType = require_content_type();
+ var deprecate = require_depd()("express");
+ var flatten = require_array_flatten();
+ var mime = require_send().mime;
+ var etag = require_etag();
+ var proxyaddr = require_proxy_addr();
+ var qs = require_lib2();
+ var querystring = require("querystring");
+ exports2.etag = createETagGenerator({ weak: false });
+ exports2.wetag = createETagGenerator({ weak: true });
+ exports2.isAbsolute = function(path) {
+ if ("/" === path[0])
+ return true;
+ if (":" === path[1] && ("\\" === path[2] || "/" === path[2]))
+ return true;
+ if ("\\\\" === path.substring(0, 2))
+ return true;
+ };
+ exports2.flatten = deprecate.function(
+ flatten,
+ "utils.flatten: use array-flatten npm module instead"
+ );
+ exports2.normalizeType = function(type) {
+ return ~type.indexOf("/") ? acceptParams(type) : { value: mime.lookup(type), params: {} };
+ };
+ exports2.normalizeTypes = function(types) {
+ var ret = [];
+ for (var i = 0; i < types.length; ++i) {
+ ret.push(exports2.normalizeType(types[i]));
+ }
+ return ret;
+ };
+ exports2.contentDisposition = deprecate.function(
+ contentDisposition,
+ "utils.contentDisposition: use content-disposition npm module instead"
+ );
+ function acceptParams(str) {
+ var parts = str.split(/ *; */);
+ var ret = { value: parts[0], quality: 1, params: {} };
+ for (var i = 1; i < parts.length; ++i) {
+ var pms = parts[i].split(/ *= */);
+ if ("q" === pms[0]) {
+ ret.quality = parseFloat(pms[1]);
+ } else {
+ ret.params[pms[0]] = pms[1];
+ }
+ }
+ return ret;
+ }
+ exports2.compileETag = function(val) {
+ var fn;
+ if (typeof val === "function") {
+ return val;
+ }
+ switch (val) {
+ case true:
+ case "weak":
+ fn = exports2.wetag;
+ break;
+ case false:
+ break;
+ case "strong":
+ fn = exports2.etag;
+ break;
+ default:
+ throw new TypeError("unknown value for etag function: " + val);
+ }
+ return fn;
+ };
+ exports2.compileQueryParser = function compileQueryParser(val) {
+ var fn;
+ if (typeof val === "function") {
+ return val;
+ }
+ switch (val) {
+ case true:
+ case "simple":
+ fn = querystring.parse;
+ break;
+ case false:
+ fn = newObject;
+ break;
+ case "extended":
+ fn = parseExtendedQueryString;
+ break;
+ default:
+ throw new TypeError("unknown value for query parser function: " + val);
+ }
+ return fn;
+ };
+ exports2.compileTrust = function(val) {
+ if (typeof val === "function")
+ return val;
+ if (val === true) {
+ return function() {
+ return true;
+ };
+ }
+ if (typeof val === "number") {
+ return function(a, i) {
+ return i < val;
+ };
+ }
+ if (typeof val === "string") {
+ val = val.split(",").map(function(v) {
+ return v.trim();
+ });
+ }
+ return proxyaddr.compile(val || []);
+ };
+ exports2.setCharset = function setCharset(type, charset) {
+ if (!type || !charset) {
+ return type;
+ }
+ var parsed = contentType.parse(type);
+ parsed.parameters.charset = charset;
+ return contentType.format(parsed);
+ };
+ function createETagGenerator(options) {
+ return function generateETag(body, encoding) {
+ var buf = !Buffer2.isBuffer(body) ? Buffer2.from(body, encoding) : body;
+ return etag(buf, options);
+ };
+ }
+ function parseExtendedQueryString(str) {
+ return qs.parse(str, {
+ allowPrototypes: true
+ });
+ }
+ function newObject() {
+ return {};
+ }
+ }
+});
+
+// node_modules/express/lib/application.js
+var require_application = __commonJS({
+ "node_modules/express/lib/application.js"(exports2, module2) {
+ "use strict";
+ var finalhandler = require_finalhandler();
+ var Router = require_router();
+ var methods = require_methods();
+ var middleware = require_init();
+ var query = require_query();
+ var debug = require_src()("express:application");
+ var View = require_view();
+ var http = require("http");
+ var compileETag = require_utils2().compileETag;
+ var compileQueryParser = require_utils2().compileQueryParser;
+ var compileTrust = require_utils2().compileTrust;
+ var deprecate = require_depd()("express");
+ var flatten = require_array_flatten();
+ var merge = require_utils_merge();
+ var resolve = require("path").resolve;
+ var setPrototypeOf = require_setprototypeof();
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
+ var slice = Array.prototype.slice;
+ var app2 = exports2 = module2.exports = {};
+ var trustProxyDefaultSymbol = "@@symbol:trust_proxy_default";
+ app2.init = function init() {
+ this.cache = {};
+ this.engines = {};
+ this.settings = {};
+ this.defaultConfiguration();
+ };
+ app2.defaultConfiguration = function defaultConfiguration() {
+ var env = process.env.NODE_ENV || "development";
+ this.enable("x-powered-by");
+ this.set("etag", "weak");
+ this.set("env", env);
+ this.set("query parser", "extended");
+ this.set("subdomain offset", 2);
+ this.set("trust proxy", false);
+ Object.defineProperty(this.settings, trustProxyDefaultSymbol, {
+ configurable: true,
+ value: true
+ });
+ debug("booting in %s mode", env);
+ this.on("mount", function onmount(parent) {
+ if (this.settings[trustProxyDefaultSymbol] === true && typeof parent.settings["trust proxy fn"] === "function") {
+ delete this.settings["trust proxy"];
+ delete this.settings["trust proxy fn"];
+ }
+ setPrototypeOf(this.request, parent.request);
+ setPrototypeOf(this.response, parent.response);
+ setPrototypeOf(this.engines, parent.engines);
+ setPrototypeOf(this.settings, parent.settings);
+ });
+ this.locals = /* @__PURE__ */ Object.create(null);
+ this.mountpath = "/";
+ this.locals.settings = this.settings;
+ this.set("view", View);
+ this.set("views", resolve("views"));
+ this.set("jsonp callback name", "callback");
+ if (env === "production") {
+ this.enable("view cache");
+ }
+ Object.defineProperty(this, "router", {
+ get: function() {
+ throw new Error("'app.router' is deprecated!\nPlease see the 3.x to 4.x migration guide for details on how to update your app.");
+ }
+ });
+ };
+ app2.lazyrouter = function lazyrouter() {
+ if (!this._router) {
+ this._router = new Router({
+ caseSensitive: this.enabled("case sensitive routing"),
+ strict: this.enabled("strict routing")
+ });
+ this._router.use(query(this.get("query parser fn")));
+ this._router.use(middleware.init(this));
+ }
+ };
+ app2.handle = function handle(req, res, callback) {
+ var router = this._router;
+ var done = callback || finalhandler(req, res, {
+ env: this.get("env"),
+ onerror: logerror.bind(this)
+ });
+ if (!router) {
+ debug("no routes defined on app");
+ done();
+ return;
+ }
+ router.handle(req, res, done);
+ };
+ app2.use = function use(fn) {
+ var offset = 0;
+ var path = "/";
+ if (typeof fn !== "function") {
+ var arg = fn;
+ while (Array.isArray(arg) && arg.length !== 0) {
+ arg = arg[0];
+ }
+ if (typeof arg !== "function") {
+ offset = 1;
+ path = fn;
+ }
+ }
+ var fns = flatten(slice.call(arguments, offset));
+ if (fns.length === 0) {
+ throw new TypeError("app.use() requires a middleware function");
+ }
+ this.lazyrouter();
+ var router = this._router;
+ fns.forEach(function(fn2) {
+ if (!fn2 || !fn2.handle || !fn2.set) {
+ return router.use(path, fn2);
+ }
+ debug(".use app under %s", path);
+ fn2.mountpath = path;
+ fn2.parent = this;
+ router.use(path, function mounted_app(req, res, next) {
+ var orig = req.app;
+ fn2.handle(req, res, function(err) {
+ setPrototypeOf(req, orig.request);
+ setPrototypeOf(res, orig.response);
+ next(err);
+ });
+ });
+ fn2.emit("mount", this);
+ }, this);
+ return this;
+ };
+ app2.route = function route(path) {
+ this.lazyrouter();
+ return this._router.route(path);
+ };
+ app2.engine = function engine(ext, fn) {
+ if (typeof fn !== "function") {
+ throw new Error("callback function required");
+ }
+ var extension = ext[0] !== "." ? "." + ext : ext;
+ this.engines[extension] = fn;
+ return this;
+ };
+ app2.param = function param(name, fn) {
+ this.lazyrouter();
+ if (Array.isArray(name)) {
+ for (var i = 0; i < name.length; i++) {
+ this.param(name[i], fn);
+ }
+ return this;
+ }
+ this._router.param(name, fn);
+ return this;
+ };
+ app2.set = function set(setting, val) {
+ if (arguments.length === 1) {
+ var settings = this.settings;
+ while (settings && settings !== Object.prototype) {
+ if (hasOwnProperty.call(settings, setting)) {
+ return settings[setting];
+ }
+ settings = Object.getPrototypeOf(settings);
+ }
+ return void 0;
+ }
+ debug('set "%s" to %o', setting, val);
+ this.settings[setting] = val;
+ switch (setting) {
+ case "etag":
+ this.set("etag fn", compileETag(val));
+ break;
+ case "query parser":
+ this.set("query parser fn", compileQueryParser(val));
+ break;
+ case "trust proxy":
+ this.set("trust proxy fn", compileTrust(val));
+ Object.defineProperty(this.settings, trustProxyDefaultSymbol, {
+ configurable: true,
+ value: false
+ });
+ break;
+ }
+ return this;
+ };
+ app2.path = function path() {
+ return this.parent ? this.parent.path() + this.mountpath : "";
+ };
+ app2.enabled = function enabled(setting) {
+ return Boolean(this.set(setting));
+ };
+ app2.disabled = function disabled(setting) {
+ return !this.set(setting);
+ };
+ app2.enable = function enable(setting) {
+ return this.set(setting, true);
+ };
+ app2.disable = function disable(setting) {
+ return this.set(setting, false);
+ };
+ methods.forEach(function(method) {
+ app2[method] = function(path) {
+ if (method === "get" && arguments.length === 1) {
+ return this.set(path);
+ }
+ this.lazyrouter();
+ var route = this._router.route(path);
+ route[method].apply(route, slice.call(arguments, 1));
+ return this;
+ };
+ });
+ app2.all = function all(path) {
+ this.lazyrouter();
+ var route = this._router.route(path);
+ var args = slice.call(arguments, 1);
+ for (var i = 0; i < methods.length; i++) {
+ route[methods[i]].apply(route, args);
+ }
+ return this;
+ };
+ app2.del = deprecate.function(app2.delete, "app.del: Use app.delete instead");
+ app2.render = function render(name, options, callback) {
+ var cache = this.cache;
+ var done = callback;
+ var engines = this.engines;
+ var opts = options;
+ var renderOptions = {};
+ var view;
+ if (typeof options === "function") {
+ done = options;
+ opts = {};
+ }
+ merge(renderOptions, this.locals);
+ if (opts._locals) {
+ merge(renderOptions, opts._locals);
+ }
+ merge(renderOptions, opts);
+ if (renderOptions.cache == null) {
+ renderOptions.cache = this.enabled("view cache");
+ }
+ if (renderOptions.cache) {
+ view = cache[name];
+ }
+ if (!view) {
+ var View2 = this.get("view");
+ view = new View2(name, {
+ defaultEngine: this.get("view engine"),
+ root: this.get("views"),
+ engines
+ });
+ if (!view.path) {
+ var dirs = Array.isArray(view.root) && view.root.length > 1 ? 'directories "' + view.root.slice(0, -1).join('", "') + '" or "' + view.root[view.root.length - 1] + '"' : 'directory "' + view.root + '"';
+ var err = new Error('Failed to lookup view "' + name + '" in views ' + dirs);
+ err.view = view;
+ return done(err);
+ }
+ if (renderOptions.cache) {
+ cache[name] = view;
+ }
+ }
+ tryRender(view, renderOptions, done);
+ };
+ app2.listen = function listen() {
+ var server = http.createServer(this);
+ return server.listen.apply(server, arguments);
+ };
+ function logerror(err) {
+ if (this.get("env") !== "test")
+ console.error(err.stack || err.toString());
+ }
+ function tryRender(view, options, callback) {
+ try {
+ view.render(options, callback);
+ } catch (err) {
+ callback(err);
+ }
+ }
+ }
+});
+
+// node_modules/negotiator/lib/charset.js
+var require_charset = __commonJS({
+ "node_modules/negotiator/lib/charset.js"(exports2, module2) {
+ "use strict";
+ module2.exports = preferredCharsets;
+ module2.exports.preferredCharsets = preferredCharsets;
+ var simpleCharsetRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
+ function parseAcceptCharset(accept) {
+ var accepts = accept.split(",");
+ for (var i = 0, j = 0; i < accepts.length; i++) {
+ var charset = parseCharset(accepts[i].trim(), i);
+ if (charset) {
+ accepts[j++] = charset;
+ }
+ }
+ accepts.length = j;
+ return accepts;
+ }
+ function parseCharset(str, i) {
+ var match = simpleCharsetRegExp.exec(str);
+ if (!match)
+ return null;
+ var charset = match[1];
+ var q = 1;
+ if (match[2]) {
+ var params = match[2].split(";");
+ for (var j = 0; j < params.length; j++) {
+ var p = params[j].trim().split("=");
+ if (p[0] === "q") {
+ q = parseFloat(p[1]);
+ break;
+ }
+ }
+ }
+ return {
+ charset,
+ q,
+ i
+ };
+ }
+ function getCharsetPriority(charset, accepted, index) {
+ var priority = { o: -1, q: 0, s: 0 };
+ for (var i = 0; i < accepted.length; i++) {
+ var spec = specify(charset, accepted[i], index);
+ if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
+ priority = spec;
+ }
+ }
+ return priority;
+ }
+ function specify(charset, spec, index) {
+ var s = 0;
+ if (spec.charset.toLowerCase() === charset.toLowerCase()) {
+ s |= 1;
+ } else if (spec.charset !== "*") {
+ return null;
+ }
+ return {
+ i: index,
+ o: spec.i,
+ q: spec.q,
+ s
+ };
+ }
+ function preferredCharsets(accept, provided) {
+ var accepts = parseAcceptCharset(accept === void 0 ? "*" : accept || "");
+ if (!provided) {
+ return accepts.filter(isQuality).sort(compareSpecs).map(getFullCharset);
+ }
+ var priorities = provided.map(function getPriority(type, index) {
+ return getCharsetPriority(type, accepts, index);
+ });
+ return priorities.filter(isQuality).sort(compareSpecs).map(function getCharset(priority) {
+ return provided[priorities.indexOf(priority)];
+ });
+ }
+ function compareSpecs(a, b) {
+ return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
+ }
+ function getFullCharset(spec) {
+ return spec.charset;
+ }
+ function isQuality(spec) {
+ return spec.q > 0;
+ }
+ }
+});
+
+// node_modules/negotiator/lib/encoding.js
+var require_encoding = __commonJS({
+ "node_modules/negotiator/lib/encoding.js"(exports2, module2) {
+ "use strict";
+ module2.exports = preferredEncodings;
+ module2.exports.preferredEncodings = preferredEncodings;
+ var simpleEncodingRegExp = /^\s*([^\s;]+)\s*(?:;(.*))?$/;
+ function parseAcceptEncoding(accept) {
+ var accepts = accept.split(",");
+ var hasIdentity = false;
+ var minQuality = 1;
+ for (var i = 0, j = 0; i < accepts.length; i++) {
+ var encoding = parseEncoding(accepts[i].trim(), i);
+ if (encoding) {
+ accepts[j++] = encoding;
+ hasIdentity = hasIdentity || specify("identity", encoding);
+ minQuality = Math.min(minQuality, encoding.q || 1);
+ }
+ }
+ if (!hasIdentity) {
+ accepts[j++] = {
+ encoding: "identity",
+ q: minQuality,
+ i
+ };
+ }
+ accepts.length = j;
+ return accepts;
+ }
+ function parseEncoding(str, i) {
+ var match = simpleEncodingRegExp.exec(str);
+ if (!match)
+ return null;
+ var encoding = match[1];
+ var q = 1;
+ if (match[2]) {
+ var params = match[2].split(";");
+ for (var j = 0; j < params.length; j++) {
+ var p = params[j].trim().split("=");
+ if (p[0] === "q") {
+ q = parseFloat(p[1]);
+ break;
+ }
+ }
+ }
+ return {
+ encoding,
+ q,
+ i
+ };
+ }
+ function getEncodingPriority(encoding, accepted, index) {
+ var priority = { o: -1, q: 0, s: 0 };
+ for (var i = 0; i < accepted.length; i++) {
+ var spec = specify(encoding, accepted[i], index);
+ if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
+ priority = spec;
+ }
+ }
+ return priority;
+ }
+ function specify(encoding, spec, index) {
+ var s = 0;
+ if (spec.encoding.toLowerCase() === encoding.toLowerCase()) {
+ s |= 1;
+ } else if (spec.encoding !== "*") {
+ return null;
+ }
+ return {
+ i: index,
+ o: spec.i,
+ q: spec.q,
+ s
+ };
+ }
+ function preferredEncodings(accept, provided) {
+ var accepts = parseAcceptEncoding(accept || "");
+ if (!provided) {
+ return accepts.filter(isQuality).sort(compareSpecs).map(getFullEncoding);
+ }
+ var priorities = provided.map(function getPriority(type, index) {
+ return getEncodingPriority(type, accepts, index);
+ });
+ return priorities.filter(isQuality).sort(compareSpecs).map(function getEncoding(priority) {
+ return provided[priorities.indexOf(priority)];
+ });
+ }
+ function compareSpecs(a, b) {
+ return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
+ }
+ function getFullEncoding(spec) {
+ return spec.encoding;
+ }
+ function isQuality(spec) {
+ return spec.q > 0;
+ }
+ }
+});
+
+// node_modules/negotiator/lib/language.js
+var require_language = __commonJS({
+ "node_modules/negotiator/lib/language.js"(exports2, module2) {
+ "use strict";
+ module2.exports = preferredLanguages;
+ module2.exports.preferredLanguages = preferredLanguages;
+ var simpleLanguageRegExp = /^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;
+ function parseAcceptLanguage(accept) {
+ var accepts = accept.split(",");
+ for (var i = 0, j = 0; i < accepts.length; i++) {
+ var language = parseLanguage(accepts[i].trim(), i);
+ if (language) {
+ accepts[j++] = language;
+ }
+ }
+ accepts.length = j;
+ return accepts;
+ }
+ function parseLanguage(str, i) {
+ var match = simpleLanguageRegExp.exec(str);
+ if (!match)
+ return null;
+ var prefix = match[1];
+ var suffix = match[2];
+ var full = prefix;
+ if (suffix)
+ full += "-" + suffix;
+ var q = 1;
+ if (match[3]) {
+ var params = match[3].split(";");
+ for (var j = 0; j < params.length; j++) {
+ var p = params[j].split("=");
+ if (p[0] === "q")
+ q = parseFloat(p[1]);
+ }
+ }
+ return {
+ prefix,
+ suffix,
+ q,
+ i,
+ full
+ };
+ }
+ function getLanguagePriority(language, accepted, index) {
+ var priority = { o: -1, q: 0, s: 0 };
+ for (var i = 0; i < accepted.length; i++) {
+ var spec = specify(language, accepted[i], index);
+ if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
+ priority = spec;
+ }
+ }
+ return priority;
+ }
+ function specify(language, spec, index) {
+ var p = parseLanguage(language);
+ if (!p)
+ return null;
+ var s = 0;
+ if (spec.full.toLowerCase() === p.full.toLowerCase()) {
+ s |= 4;
+ } else if (spec.prefix.toLowerCase() === p.full.toLowerCase()) {
+ s |= 2;
+ } else if (spec.full.toLowerCase() === p.prefix.toLowerCase()) {
+ s |= 1;
+ } else if (spec.full !== "*") {
+ return null;
+ }
+ return {
+ i: index,
+ o: spec.i,
+ q: spec.q,
+ s
+ };
+ }
+ function preferredLanguages(accept, provided) {
+ var accepts = parseAcceptLanguage(accept === void 0 ? "*" : accept || "");
+ if (!provided) {
+ return accepts.filter(isQuality).sort(compareSpecs).map(getFullLanguage);
+ }
+ var priorities = provided.map(function getPriority(type, index) {
+ return getLanguagePriority(type, accepts, index);
+ });
+ return priorities.filter(isQuality).sort(compareSpecs).map(function getLanguage(priority) {
+ return provided[priorities.indexOf(priority)];
+ });
+ }
+ function compareSpecs(a, b) {
+ return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
+ }
+ function getFullLanguage(spec) {
+ return spec.full;
+ }
+ function isQuality(spec) {
+ return spec.q > 0;
+ }
+ }
+});
+
+// node_modules/negotiator/lib/mediaType.js
+var require_mediaType = __commonJS({
+ "node_modules/negotiator/lib/mediaType.js"(exports2, module2) {
+ "use strict";
+ module2.exports = preferredMediaTypes;
+ module2.exports.preferredMediaTypes = preferredMediaTypes;
+ var simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;
+ function parseAccept(accept) {
+ var accepts = splitMediaTypes(accept);
+ for (var i = 0, j = 0; i < accepts.length; i++) {
+ var mediaType = parseMediaType(accepts[i].trim(), i);
+ if (mediaType) {
+ accepts[j++] = mediaType;
+ }
+ }
+ accepts.length = j;
+ return accepts;
+ }
+ function parseMediaType(str, i) {
+ var match = simpleMediaTypeRegExp.exec(str);
+ if (!match)
+ return null;
+ var params = /* @__PURE__ */ Object.create(null);
+ var q = 1;
+ var subtype = match[2];
+ var type = match[1];
+ if (match[3]) {
+ var kvps = splitParameters(match[3]).map(splitKeyValuePair);
+ for (var j = 0; j < kvps.length; j++) {
+ var pair = kvps[j];
+ var key = pair[0].toLowerCase();
+ var val = pair[1];
+ var value = val && val[0] === '"' && val[val.length - 1] === '"' ? val.substr(1, val.length - 2) : val;
+ if (key === "q") {
+ q = parseFloat(value);
+ break;
+ }
+ params[key] = value;
+ }
+ }
+ return {
+ type,
+ subtype,
+ params,
+ q,
+ i
+ };
+ }
+ function getMediaTypePriority(type, accepted, index) {
+ var priority = { o: -1, q: 0, s: 0 };
+ for (var i = 0; i < accepted.length; i++) {
+ var spec = specify(type, accepted[i], index);
+ if (spec && (priority.s - spec.s || priority.q - spec.q || priority.o - spec.o) < 0) {
+ priority = spec;
+ }
+ }
+ return priority;
+ }
+ function specify(type, spec, index) {
+ var p = parseMediaType(type);
+ var s = 0;
+ if (!p) {
+ return null;
+ }
+ if (spec.type.toLowerCase() == p.type.toLowerCase()) {
+ s |= 4;
+ } else if (spec.type != "*") {
+ return null;
+ }
+ if (spec.subtype.toLowerCase() == p.subtype.toLowerCase()) {
+ s |= 2;
+ } else if (spec.subtype != "*") {
+ return null;
+ }
+ var keys = Object.keys(spec.params);
+ if (keys.length > 0) {
+ if (keys.every(function(k) {
+ return spec.params[k] == "*" || (spec.params[k] || "").toLowerCase() == (p.params[k] || "").toLowerCase();
+ })) {
+ s |= 1;
+ } else {
+ return null;
+ }
+ }
+ return {
+ i: index,
+ o: spec.i,
+ q: spec.q,
+ s
+ };
+ }
+ function preferredMediaTypes(accept, provided) {
+ var accepts = parseAccept(accept === void 0 ? "*/*" : accept || "");
+ if (!provided) {
+ return accepts.filter(isQuality).sort(compareSpecs).map(getFullType);
+ }
+ var priorities = provided.map(function getPriority(type, index) {
+ return getMediaTypePriority(type, accepts, index);
+ });
+ return priorities.filter(isQuality).sort(compareSpecs).map(function getType(priority) {
+ return provided[priorities.indexOf(priority)];
+ });
+ }
+ function compareSpecs(a, b) {
+ return b.q - a.q || b.s - a.s || a.o - b.o || a.i - b.i || 0;
+ }
+ function getFullType(spec) {
+ return spec.type + "/" + spec.subtype;
+ }
+ function isQuality(spec) {
+ return spec.q > 0;
+ }
+ function quoteCount(string) {
+ var count = 0;
+ var index = 0;
+ while ((index = string.indexOf('"', index)) !== -1) {
+ count++;
+ index++;
+ }
+ return count;
+ }
+ function splitKeyValuePair(str) {
+ var index = str.indexOf("=");
+ var key;
+ var val;
+ if (index === -1) {
+ key = str;
+ } else {
+ key = str.substr(0, index);
+ val = str.substr(index + 1);
+ }
+ return [key, val];
+ }
+ function splitMediaTypes(accept) {
+ var accepts = accept.split(",");
+ for (var i = 1, j = 0; i < accepts.length; i++) {
+ if (quoteCount(accepts[j]) % 2 == 0) {
+ accepts[++j] = accepts[i];
+ } else {
+ accepts[j] += "," + accepts[i];
+ }
+ }
+ accepts.length = j + 1;
+ return accepts;
+ }
+ function splitParameters(str) {
+ var parameters = str.split(";");
+ for (var i = 1, j = 0; i < parameters.length; i++) {
+ if (quoteCount(parameters[j]) % 2 == 0) {
+ parameters[++j] = parameters[i];
+ } else {
+ parameters[j] += ";" + parameters[i];
+ }
+ }
+ parameters.length = j + 1;
+ for (var i = 0; i < parameters.length; i++) {
+ parameters[i] = parameters[i].trim();
+ }
+ return parameters;
+ }
+ }
+});
+
+// node_modules/negotiator/index.js
+var require_negotiator = __commonJS({
+ "node_modules/negotiator/index.js"(exports2, module2) {
+ "use strict";
+ var preferredCharsets = require_charset();
+ var preferredEncodings = require_encoding();
+ var preferredLanguages = require_language();
+ var preferredMediaTypes = require_mediaType();
+ module2.exports = Negotiator;
+ module2.exports.Negotiator = Negotiator;
+ function Negotiator(request) {
+ if (!(this instanceof Negotiator)) {
+ return new Negotiator(request);
+ }
+ this.request = request;
+ }
+ Negotiator.prototype.charset = function charset(available) {
+ var set = this.charsets(available);
+ return set && set[0];
+ };
+ Negotiator.prototype.charsets = function charsets(available) {
+ return preferredCharsets(this.request.headers["accept-charset"], available);
+ };
+ Negotiator.prototype.encoding = function encoding(available) {
+ var set = this.encodings(available);
+ return set && set[0];
+ };
+ Negotiator.prototype.encodings = function encodings(available) {
+ return preferredEncodings(this.request.headers["accept-encoding"], available);
+ };
+ Negotiator.prototype.language = function language(available) {
+ var set = this.languages(available);
+ return set && set[0];
+ };
+ Negotiator.prototype.languages = function languages(available) {
+ return preferredLanguages(this.request.headers["accept-language"], available);
+ };
+ Negotiator.prototype.mediaType = function mediaType(available) {
+ var set = this.mediaTypes(available);
+ return set && set[0];
+ };
+ Negotiator.prototype.mediaTypes = function mediaTypes(available) {
+ return preferredMediaTypes(this.request.headers.accept, available);
+ };
+ Negotiator.prototype.preferredCharset = Negotiator.prototype.charset;
+ Negotiator.prototype.preferredCharsets = Negotiator.prototype.charsets;
+ Negotiator.prototype.preferredEncoding = Negotiator.prototype.encoding;
+ Negotiator.prototype.preferredEncodings = Negotiator.prototype.encodings;
+ Negotiator.prototype.preferredLanguage = Negotiator.prototype.language;
+ Negotiator.prototype.preferredLanguages = Negotiator.prototype.languages;
+ Negotiator.prototype.preferredMediaType = Negotiator.prototype.mediaType;
+ Negotiator.prototype.preferredMediaTypes = Negotiator.prototype.mediaTypes;
+ }
+});
+
+// node_modules/accepts/index.js
+var require_accepts = __commonJS({
+ "node_modules/accepts/index.js"(exports2, module2) {
+ "use strict";
+ var Negotiator = require_negotiator();
+ var mime = require_mime_types();
+ module2.exports = Accepts;
+ function Accepts(req) {
+ if (!(this instanceof Accepts)) {
+ return new Accepts(req);
+ }
+ this.headers = req.headers;
+ this.negotiator = new Negotiator(req);
+ }
+ Accepts.prototype.type = Accepts.prototype.types = function(types_) {
+ var types = types_;
+ if (types && !Array.isArray(types)) {
+ types = new Array(arguments.length);
+ for (var i = 0; i < types.length; i++) {
+ types[i] = arguments[i];
+ }
+ }
+ if (!types || types.length === 0) {
+ return this.negotiator.mediaTypes();
+ }
+ if (!this.headers.accept) {
+ return types[0];
+ }
+ var mimes = types.map(extToMime);
+ var accepts = this.negotiator.mediaTypes(mimes.filter(validMime));
+ var first = accepts[0];
+ return first ? types[mimes.indexOf(first)] : false;
+ };
+ Accepts.prototype.encoding = Accepts.prototype.encodings = function(encodings_) {
+ var encodings = encodings_;
+ if (encodings && !Array.isArray(encodings)) {
+ encodings = new Array(arguments.length);
+ for (var i = 0; i < encodings.length; i++) {
+ encodings[i] = arguments[i];
+ }
+ }
+ if (!encodings || encodings.length === 0) {
+ return this.negotiator.encodings();
+ }
+ return this.negotiator.encodings(encodings)[0] || false;
+ };
+ Accepts.prototype.charset = Accepts.prototype.charsets = function(charsets_) {
+ var charsets = charsets_;
+ if (charsets && !Array.isArray(charsets)) {
+ charsets = new Array(arguments.length);
+ for (var i = 0; i < charsets.length; i++) {
+ charsets[i] = arguments[i];
+ }
+ }
+ if (!charsets || charsets.length === 0) {
+ return this.negotiator.charsets();
+ }
+ return this.negotiator.charsets(charsets)[0] || false;
+ };
+ Accepts.prototype.lang = Accepts.prototype.langs = Accepts.prototype.language = Accepts.prototype.languages = function(languages_) {
+ var languages = languages_;
+ if (languages && !Array.isArray(languages)) {
+ languages = new Array(arguments.length);
+ for (var i = 0; i < languages.length; i++) {
+ languages[i] = arguments[i];
+ }
+ }
+ if (!languages || languages.length === 0) {
+ return this.negotiator.languages();
+ }
+ return this.negotiator.languages(languages)[0] || false;
+ };
+ function extToMime(type) {
+ return type.indexOf("/") === -1 ? mime.lookup(type) : type;
+ }
+ function validMime(type) {
+ return typeof type === "string";
+ }
+ }
+});
+
+// node_modules/express/lib/request.js
+var require_request = __commonJS({
+ "node_modules/express/lib/request.js"(exports2, module2) {
+ "use strict";
+ var accepts = require_accepts();
+ var deprecate = require_depd()("express");
+ var isIP = require("net").isIP;
+ var typeis = require_type_is();
+ var http = require("http");
+ var fresh = require_fresh();
+ var parseRange = require_range_parser();
+ var parse = require_parseurl();
+ var proxyaddr = require_proxy_addr();
+ var req = Object.create(http.IncomingMessage.prototype);
+ module2.exports = req;
+ req.get = req.header = function header(name) {
+ if (!name) {
+ throw new TypeError("name argument is required to req.get");
+ }
+ if (typeof name !== "string") {
+ throw new TypeError("name must be a string to req.get");
+ }
+ var lc = name.toLowerCase();
+ switch (lc) {
+ case "referer":
+ case "referrer":
+ return this.headers.referrer || this.headers.referer;
+ default:
+ return this.headers[lc];
+ }
+ };
+ req.accepts = function() {
+ var accept = accepts(this);
+ return accept.types.apply(accept, arguments);
+ };
+ req.acceptsEncodings = function() {
+ var accept = accepts(this);
+ return accept.encodings.apply(accept, arguments);
+ };
+ req.acceptsEncoding = deprecate.function(
+ req.acceptsEncodings,
+ "req.acceptsEncoding: Use acceptsEncodings instead"
+ );
+ req.acceptsCharsets = function() {
+ var accept = accepts(this);
+ return accept.charsets.apply(accept, arguments);
+ };
+ req.acceptsCharset = deprecate.function(
+ req.acceptsCharsets,
+ "req.acceptsCharset: Use acceptsCharsets instead"
+ );
+ req.acceptsLanguages = function() {
+ var accept = accepts(this);
+ return accept.languages.apply(accept, arguments);
+ };
+ req.acceptsLanguage = deprecate.function(
+ req.acceptsLanguages,
+ "req.acceptsLanguage: Use acceptsLanguages instead"
+ );
+ req.range = function range(size, options) {
+ var range2 = this.get("Range");
+ if (!range2)
+ return;
+ return parseRange(size, range2, options);
+ };
+ req.param = function param(name, defaultValue) {
+ var params = this.params || {};
+ var body = this.body || {};
+ var query = this.query || {};
+ var args = arguments.length === 1 ? "name" : "name, default";
+ deprecate("req.param(" + args + "): Use req.params, req.body, or req.query instead");
+ if (null != params[name] && params.hasOwnProperty(name))
+ return params[name];
+ if (null != body[name])
+ return body[name];
+ if (null != query[name])
+ return query[name];
+ return defaultValue;
+ };
+ req.is = function is(types) {
+ var arr = types;
+ if (!Array.isArray(types)) {
+ arr = new Array(arguments.length);
+ for (var i = 0; i < arr.length; i++) {
+ arr[i] = arguments[i];
+ }
+ }
+ return typeis(this, arr);
+ };
+ defineGetter(req, "protocol", function protocol() {
+ var proto = this.connection.encrypted ? "https" : "http";
+ var trust = this.app.get("trust proxy fn");
+ if (!trust(this.connection.remoteAddress, 0)) {
+ return proto;
+ }
+ var header = this.get("X-Forwarded-Proto") || proto;
+ var index = header.indexOf(",");
+ return index !== -1 ? header.substring(0, index).trim() : header.trim();
+ });
+ defineGetter(req, "secure", function secure() {
+ return this.protocol === "https";
+ });
+ defineGetter(req, "ip", function ip() {
+ var trust = this.app.get("trust proxy fn");
+ return proxyaddr(this, trust);
+ });
+ defineGetter(req, "ips", function ips() {
+ var trust = this.app.get("trust proxy fn");
+ var addrs = proxyaddr.all(this, trust);
+ addrs.reverse().pop();
+ return addrs;
+ });
+ defineGetter(req, "subdomains", function subdomains() {
+ var hostname = this.hostname;
+ if (!hostname)
+ return [];
+ var offset = this.app.get("subdomain offset");
+ var subdomains2 = !isIP(hostname) ? hostname.split(".").reverse() : [hostname];
+ return subdomains2.slice(offset);
+ });
+ defineGetter(req, "path", function path() {
+ return parse(this).pathname;
+ });
+ defineGetter(req, "hostname", function hostname() {
+ var trust = this.app.get("trust proxy fn");
+ var host = this.get("X-Forwarded-Host");
+ if (!host || !trust(this.connection.remoteAddress, 0)) {
+ host = this.get("Host");
+ } else if (host.indexOf(",") !== -1) {
+ host = host.substring(0, host.indexOf(",")).trimRight();
+ }
+ if (!host)
+ return;
+ var offset = host[0] === "[" ? host.indexOf("]") + 1 : 0;
+ var index = host.indexOf(":", offset);
+ return index !== -1 ? host.substring(0, index) : host;
+ });
+ defineGetter(req, "host", deprecate.function(function host() {
+ return this.hostname;
+ }, "req.host: Use req.hostname instead"));
+ defineGetter(req, "fresh", function() {
+ var method = this.method;
+ var res = this.res;
+ var status = res.statusCode;
+ if ("GET" !== method && "HEAD" !== method)
+ return false;
+ if (status >= 200 && status < 300 || 304 === status) {
+ return fresh(this.headers, {
+ "etag": res.get("ETag"),
+ "last-modified": res.get("Last-Modified")
+ });
+ }
+ return false;
+ });
+ defineGetter(req, "stale", function stale() {
+ return !this.fresh;
+ });
+ defineGetter(req, "xhr", function xhr() {
+ var val = this.get("X-Requested-With") || "";
+ return val.toLowerCase() === "xmlhttprequest";
+ });
+ function defineGetter(obj, name, getter) {
+ Object.defineProperty(obj, name, {
+ configurable: true,
+ enumerable: true,
+ get: getter
+ });
+ }
+ }
+});
+
+// node_modules/cookie-signature/index.js
+var require_cookie_signature = __commonJS({
+ "node_modules/cookie-signature/index.js"(exports2) {
+ var crypto2 = require("crypto");
+ exports2.sign = function(val, secret) {
+ if ("string" != typeof val)
+ throw new TypeError("Cookie value must be provided as a string.");
+ if ("string" != typeof secret)
+ throw new TypeError("Secret string must be provided.");
+ return val + "." + crypto2.createHmac("sha256", secret).update(val).digest("base64").replace(/\=+$/, "");
+ };
+ exports2.unsign = function(val, secret) {
+ if ("string" != typeof val)
+ throw new TypeError("Signed cookie string must be provided.");
+ if ("string" != typeof secret)
+ throw new TypeError("Secret string must be provided.");
+ var str = val.slice(0, val.lastIndexOf(".")), mac = exports2.sign(str, secret);
+ return sha1(mac) == sha1(val) ? str : false;
+ };
+ function sha1(str) {
+ return crypto2.createHash("sha1").update(str).digest("hex");
+ }
+ }
+});
+
+// node_modules/cookie/index.js
+var require_cookie = __commonJS({
+ "node_modules/cookie/index.js"(exports2) {
+ "use strict";
+ exports2.parse = parse;
+ exports2.serialize = serialize;
+ var __toString = Object.prototype.toString;
+ var cookieNameRegExp = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
+ var cookieValueRegExp = /^("?)[\u0021\u0023-\u002B\u002D-\u003A\u003C-\u005B\u005D-\u007E]*\1$/;
+ var domainValueRegExp = /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;
+ var pathValueRegExp = /^[\u0020-\u003A\u003D-\u007E]*$/;
+ function parse(str, opt) {
+ if (typeof str !== "string") {
+ throw new TypeError("argument str must be a string");
+ }
+ var obj = {};
+ var len = str.length;
+ if (len < 2)
+ return obj;
+ var dec = opt && opt.decode || decode;
+ var index = 0;
+ var eqIdx = 0;
+ var endIdx = 0;
+ do {
+ eqIdx = str.indexOf("=", index);
+ if (eqIdx === -1)
+ break;
+ endIdx = str.indexOf(";", index);
+ if (endIdx === -1) {
+ endIdx = len;
+ } else if (eqIdx > endIdx) {
+ index = str.lastIndexOf(";", eqIdx - 1) + 1;
+ continue;
+ }
+ var keyStartIdx = startIndex(str, index, eqIdx);
+ var keyEndIdx = endIndex(str, eqIdx, keyStartIdx);
+ var key = str.slice(keyStartIdx, keyEndIdx);
+ if (!obj.hasOwnProperty(key)) {
+ var valStartIdx = startIndex(str, eqIdx + 1, endIdx);
+ var valEndIdx = endIndex(str, endIdx, valStartIdx);
+ if (str.charCodeAt(valStartIdx) === 34 && str.charCodeAt(valEndIdx - 1) === 34) {
+ valStartIdx++;
+ valEndIdx--;
+ }
+ var val = str.slice(valStartIdx, valEndIdx);
+ obj[key] = tryDecode(val, dec);
+ }
+ index = endIdx + 1;
+ } while (index < len);
+ return obj;
+ }
+ function startIndex(str, index, max) {
+ do {
+ var code = str.charCodeAt(index);
+ if (code !== 32 && code !== 9)
+ return index;
+ } while (++index < max);
+ return max;
+ }
+ function endIndex(str, index, min) {
+ while (index > min) {
+ var code = str.charCodeAt(--index);
+ if (code !== 32 && code !== 9)
+ return index + 1;
+ }
+ return min;
+ }
+ function serialize(name, val, opt) {
+ var enc = opt && opt.encode || encodeURIComponent;
+ if (typeof enc !== "function") {
+ throw new TypeError("option encode is invalid");
+ }
+ if (!cookieNameRegExp.test(name)) {
+ throw new TypeError("argument name is invalid");
+ }
+ var value = enc(val);
+ if (!cookieValueRegExp.test(value)) {
+ throw new TypeError("argument val is invalid");
+ }
+ var str = name + "=" + value;
+ if (!opt)
+ return str;
+ if (null != opt.maxAge) {
+ var maxAge = Math.floor(opt.maxAge);
+ if (!isFinite(maxAge)) {
+ throw new TypeError("option maxAge is invalid");
+ }
+ str += "; Max-Age=" + maxAge;
+ }
+ if (opt.domain) {
+ if (!domainValueRegExp.test(opt.domain)) {
+ throw new TypeError("option domain is invalid");
+ }
+ str += "; Domain=" + opt.domain;
+ }
+ if (opt.path) {
+ if (!pathValueRegExp.test(opt.path)) {
+ throw new TypeError("option path is invalid");
+ }
+ str += "; Path=" + opt.path;
+ }
+ if (opt.expires) {
+ var expires = opt.expires;
+ if (!isDate(expires) || isNaN(expires.valueOf())) {
+ throw new TypeError("option expires is invalid");
+ }
+ str += "; Expires=" + expires.toUTCString();
+ }
+ if (opt.httpOnly) {
+ str += "; HttpOnly";
+ }
+ if (opt.secure) {
+ str += "; Secure";
+ }
+ if (opt.partitioned) {
+ str += "; Partitioned";
+ }
+ if (opt.priority) {
+ var priority = typeof opt.priority === "string" ? opt.priority.toLowerCase() : opt.priority;
+ switch (priority) {
+ case "low":
+ str += "; Priority=Low";
+ break;
+ case "medium":
+ str += "; Priority=Medium";
+ break;
+ case "high":
+ str += "; Priority=High";
+ break;
+ default:
+ throw new TypeError("option priority is invalid");
+ }
+ }
+ if (opt.sameSite) {
+ var sameSite = typeof opt.sameSite === "string" ? opt.sameSite.toLowerCase() : opt.sameSite;
+ switch (sameSite) {
+ case true:
+ str += "; SameSite=Strict";
+ break;
+ case "lax":
+ str += "; SameSite=Lax";
+ break;
+ case "strict":
+ str += "; SameSite=Strict";
+ break;
+ case "none":
+ str += "; SameSite=None";
+ break;
+ default:
+ throw new TypeError("option sameSite is invalid");
+ }
+ }
+ return str;
+ }
+ function decode(str) {
+ return str.indexOf("%") !== -1 ? decodeURIComponent(str) : str;
+ }
+ function isDate(val) {
+ return __toString.call(val) === "[object Date]";
+ }
+ function tryDecode(str, decode2) {
+ try {
+ return decode2(str);
+ } catch (e) {
+ return str;
+ }
+ }
+ }
+});
+
+// node_modules/vary/index.js
+var require_vary = __commonJS({
+ "node_modules/vary/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = vary;
+ module2.exports.append = append;
+ var FIELD_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
+ function append(header, field) {
+ if (typeof header !== "string") {
+ throw new TypeError("header argument is required");
+ }
+ if (!field) {
+ throw new TypeError("field argument is required");
+ }
+ var fields = !Array.isArray(field) ? parse(String(field)) : field;
+ for (var j = 0; j < fields.length; j++) {
+ if (!FIELD_NAME_REGEXP.test(fields[j])) {
+ throw new TypeError("field argument contains an invalid header name");
+ }
+ }
+ if (header === "*") {
+ return header;
+ }
+ var val = header;
+ var vals = parse(header.toLowerCase());
+ if (fields.indexOf("*") !== -1 || vals.indexOf("*") !== -1) {
+ return "*";
+ }
+ for (var i = 0; i < fields.length; i++) {
+ var fld = fields[i].toLowerCase();
+ if (vals.indexOf(fld) === -1) {
+ vals.push(fld);
+ val = val ? val + ", " + fields[i] : fields[i];
+ }
+ }
+ return val;
+ }
+ function parse(header) {
+ var end = 0;
+ var list = [];
+ var start = 0;
+ for (var i = 0, len = header.length; i < len; i++) {
+ switch (header.charCodeAt(i)) {
+ case 32:
+ if (start === end) {
+ start = end = i + 1;
+ }
+ break;
+ case 44:
+ list.push(header.substring(start, end));
+ start = end = i + 1;
+ break;
+ default:
+ end = i + 1;
+ break;
+ }
+ }
+ list.push(header.substring(start, end));
+ return list;
+ }
+ function vary(res, field) {
+ if (!res || !res.getHeader || !res.setHeader) {
+ throw new TypeError("res argument is required");
+ }
+ var val = res.getHeader("Vary") || "";
+ var header = Array.isArray(val) ? val.join(", ") : String(val);
+ if (val = append(header, field)) {
+ res.setHeader("Vary", val);
+ }
+ }
+ }
+});
+
+// node_modules/express/lib/response.js
+var require_response = __commonJS({
+ "node_modules/express/lib/response.js"(exports2, module2) {
+ "use strict";
+ var Buffer2 = require_safe_buffer().Buffer;
+ var contentDisposition = require_content_disposition();
+ var createError = require_http_errors();
+ var deprecate = require_depd()("express");
+ var encodeUrl = require_encodeurl();
+ var escapeHtml = require_escape_html();
+ var http = require("http");
+ var isAbsolute = require_utils2().isAbsolute;
+ var onFinished = require_on_finished();
+ var path = require("path");
+ var statuses = require_statuses();
+ var merge = require_utils_merge();
+ var sign = require_cookie_signature().sign;
+ var normalizeType = require_utils2().normalizeType;
+ var normalizeTypes = require_utils2().normalizeTypes;
+ var setCharset = require_utils2().setCharset;
+ var cookie = require_cookie();
+ var send = require_send();
+ var extname = path.extname;
+ var mime = send.mime;
+ var resolve = path.resolve;
+ var vary = require_vary();
+ var res = Object.create(http.ServerResponse.prototype);
+ module2.exports = res;
+ var charsetRegExp = /;\s*charset\s*=/;
+ res.status = function status(code) {
+ if ((typeof code === "string" || Math.floor(code) !== code) && code > 99 && code < 1e3) {
+ deprecate("res.status(" + JSON.stringify(code) + "): use res.status(" + Math.floor(code) + ") instead");
+ }
+ this.statusCode = code;
+ return this;
+ };
+ res.links = function(links) {
+ var link = this.get("Link") || "";
+ if (link)
+ link += ", ";
+ return this.set("Link", link + Object.keys(links).map(function(rel) {
+ return "<" + links[rel] + '>; rel="' + rel + '"';
+ }).join(", "));
+ };
+ res.send = function send2(body) {
+ var chunk = body;
+ var encoding;
+ var req = this.req;
+ var type;
+ var app2 = this.app;
+ if (arguments.length === 2) {
+ if (typeof arguments[0] !== "number" && typeof arguments[1] === "number") {
+ deprecate("res.send(body, status): Use res.status(status).send(body) instead");
+ this.statusCode = arguments[1];
+ } else {
+ deprecate("res.send(status, body): Use res.status(status).send(body) instead");
+ this.statusCode = arguments[0];
+ chunk = arguments[1];
+ }
+ }
+ if (typeof chunk === "number" && arguments.length === 1) {
+ if (!this.get("Content-Type")) {
+ this.type("txt");
+ }
+ deprecate("res.send(status): Use res.sendStatus(status) instead");
+ this.statusCode = chunk;
+ chunk = statuses.message[chunk];
+ }
+ switch (typeof chunk) {
+ case "string":
+ if (!this.get("Content-Type")) {
+ this.type("html");
+ }
+ break;
+ case "boolean":
+ case "number":
+ case "object":
+ if (chunk === null) {
+ chunk = "";
+ } else if (Buffer2.isBuffer(chunk)) {
+ if (!this.get("Content-Type")) {
+ this.type("bin");
+ }
+ } else {
+ return this.json(chunk);
+ }
+ break;
+ }
+ if (typeof chunk === "string") {
+ encoding = "utf8";
+ type = this.get("Content-Type");
+ if (typeof type === "string") {
+ this.set("Content-Type", setCharset(type, "utf-8"));
+ }
+ }
+ var etagFn = app2.get("etag fn");
+ var generateETag = !this.get("ETag") && typeof etagFn === "function";
+ var len;
+ if (chunk !== void 0) {
+ if (Buffer2.isBuffer(chunk)) {
+ len = chunk.length;
+ } else if (!generateETag && chunk.length < 1e3) {
+ len = Buffer2.byteLength(chunk, encoding);
+ } else {
+ chunk = Buffer2.from(chunk, encoding);
+ encoding = void 0;
+ len = chunk.length;
+ }
+ this.set("Content-Length", len);
+ }
+ var etag;
+ if (generateETag && len !== void 0) {
+ if (etag = etagFn(chunk, encoding)) {
+ this.set("ETag", etag);
+ }
+ }
+ if (req.fresh)
+ this.statusCode = 304;
+ if (204 === this.statusCode || 304 === this.statusCode) {
+ this.removeHeader("Content-Type");
+ this.removeHeader("Content-Length");
+ this.removeHeader("Transfer-Encoding");
+ chunk = "";
+ }
+ if (this.statusCode === 205) {
+ this.set("Content-Length", "0");
+ this.removeHeader("Transfer-Encoding");
+ chunk = "";
+ }
+ if (req.method === "HEAD") {
+ this.end();
+ } else {
+ this.end(chunk, encoding);
+ }
+ return this;
+ };
+ res.json = function json(obj) {
+ var val = obj;
+ if (arguments.length === 2) {
+ if (typeof arguments[1] === "number") {
+ deprecate("res.json(obj, status): Use res.status(status).json(obj) instead");
+ this.statusCode = arguments[1];
+ } else {
+ deprecate("res.json(status, obj): Use res.status(status).json(obj) instead");
+ this.statusCode = arguments[0];
+ val = arguments[1];
+ }
+ }
+ var app2 = this.app;
+ var escape2 = app2.get("json escape");
+ var replacer = app2.get("json replacer");
+ var spaces = app2.get("json spaces");
+ var body = stringify(val, replacer, spaces, escape2);
+ if (!this.get("Content-Type")) {
+ this.set("Content-Type", "application/json");
+ }
+ return this.send(body);
+ };
+ res.jsonp = function jsonp(obj) {
+ var val = obj;
+ if (arguments.length === 2) {
+ if (typeof arguments[1] === "number") {
+ deprecate("res.jsonp(obj, status): Use res.status(status).jsonp(obj) instead");
+ this.statusCode = arguments[1];
+ } else {
+ deprecate("res.jsonp(status, obj): Use res.status(status).jsonp(obj) instead");
+ this.statusCode = arguments[0];
+ val = arguments[1];
+ }
+ }
+ var app2 = this.app;
+ var escape2 = app2.get("json escape");
+ var replacer = app2.get("json replacer");
+ var spaces = app2.get("json spaces");
+ var body = stringify(val, replacer, spaces, escape2);
+ var callback = this.req.query[app2.get("jsonp callback name")];
+ if (!this.get("Content-Type")) {
+ this.set("X-Content-Type-Options", "nosniff");
+ this.set("Content-Type", "application/json");
+ }
+ if (Array.isArray(callback)) {
+ callback = callback[0];
+ }
+ if (typeof callback === "string" && callback.length !== 0) {
+ this.set("X-Content-Type-Options", "nosniff");
+ this.set("Content-Type", "text/javascript");
+ callback = callback.replace(/[^\[\]\w$.]/g, "");
+ if (body === void 0) {
+ body = "";
+ } else if (typeof body === "string") {
+ body = body.replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
+ }
+ body = "/**/ typeof " + callback + " === 'function' && " + callback + "(" + body + ");";
+ }
+ return this.send(body);
+ };
+ res.sendStatus = function sendStatus(statusCode) {
+ var body = statuses.message[statusCode] || String(statusCode);
+ this.statusCode = statusCode;
+ this.type("txt");
+ return this.send(body);
+ };
+ res.sendFile = function sendFile(path2, options, callback) {
+ var done = callback;
+ var req = this.req;
+ var res2 = this;
+ var next = req.next;
+ var opts = options || {};
+ if (!path2) {
+ throw new TypeError("path argument is required to res.sendFile");
+ }
+ if (typeof path2 !== "string") {
+ throw new TypeError("path must be a string to res.sendFile");
+ }
+ if (typeof options === "function") {
+ done = options;
+ opts = {};
+ }
+ if (!opts.root && !isAbsolute(path2)) {
+ throw new TypeError("path must be absolute or specify root to res.sendFile");
+ }
+ var pathname = encodeURI(path2);
+ var file = send(req, pathname, opts);
+ sendfile(res2, file, opts, function(err) {
+ if (done)
+ return done(err);
+ if (err && err.code === "EISDIR")
+ return next();
+ if (err && err.code !== "ECONNABORTED" && err.syscall !== "write") {
+ next(err);
+ }
+ });
+ };
+ res.sendfile = function(path2, options, callback) {
+ var done = callback;
+ var req = this.req;
+ var res2 = this;
+ var next = req.next;
+ var opts = options || {};
+ if (typeof options === "function") {
+ done = options;
+ opts = {};
+ }
+ var file = send(req, path2, opts);
+ sendfile(res2, file, opts, function(err) {
+ if (done)
+ return done(err);
+ if (err && err.code === "EISDIR")
+ return next();
+ if (err && err.code !== "ECONNABORTED" && err.syscall !== "write") {
+ next(err);
+ }
+ });
+ };
+ res.sendfile = deprecate.function(
+ res.sendfile,
+ "res.sendfile: Use res.sendFile instead"
+ );
+ res.download = function download(path2, filename, options, callback) {
+ var done = callback;
+ var name = filename;
+ var opts = options || null;
+ if (typeof filename === "function") {
+ done = filename;
+ name = null;
+ opts = null;
+ } else if (typeof options === "function") {
+ done = options;
+ opts = null;
+ }
+ if (typeof filename === "object" && (typeof options === "function" || options === void 0)) {
+ name = null;
+ opts = filename;
+ }
+ var headers = {
+ "Content-Disposition": contentDisposition(name || path2)
+ };
+ if (opts && opts.headers) {
+ var keys = Object.keys(opts.headers);
+ for (var i = 0; i < keys.length; i++) {
+ var key = keys[i];
+ if (key.toLowerCase() !== "content-disposition") {
+ headers[key] = opts.headers[key];
+ }
+ }
+ }
+ opts = Object.create(opts);
+ opts.headers = headers;
+ var fullPath = !opts.root ? resolve(path2) : path2;
+ return this.sendFile(fullPath, opts, done);
+ };
+ res.contentType = res.type = function contentType(type) {
+ var ct = type.indexOf("/") === -1 ? mime.lookup(type) : type;
+ return this.set("Content-Type", ct);
+ };
+ res.format = function(obj) {
+ var req = this.req;
+ var next = req.next;
+ var keys = Object.keys(obj).filter(function(v) {
+ return v !== "default";
+ });
+ var key = keys.length > 0 ? req.accepts(keys) : false;
+ this.vary("Accept");
+ if (key) {
+ this.set("Content-Type", normalizeType(key).value);
+ obj[key](req, this, next);
+ } else if (obj.default) {
+ obj.default(req, this, next);
+ } else {
+ next(createError(406, {
+ types: normalizeTypes(keys).map(function(o) {
+ return o.value;
+ })
+ }));
+ }
+ return this;
+ };
+ res.attachment = function attachment(filename) {
+ if (filename) {
+ this.type(extname(filename));
+ }
+ this.set("Content-Disposition", contentDisposition(filename));
+ return this;
+ };
+ res.append = function append(field, val) {
+ var prev = this.get(field);
+ var value = val;
+ if (prev) {
+ value = Array.isArray(prev) ? prev.concat(val) : Array.isArray(val) ? [prev].concat(val) : [prev, val];
+ }
+ return this.set(field, value);
+ };
+ res.set = res.header = function header(field, val) {
+ if (arguments.length === 2) {
+ var value = Array.isArray(val) ? val.map(String) : String(val);
+ if (field.toLowerCase() === "content-type") {
+ if (Array.isArray(value)) {
+ throw new TypeError("Content-Type cannot be set to an Array");
+ }
+ if (!charsetRegExp.test(value)) {
+ var charset = mime.charsets.lookup(value.split(";")[0]);
+ if (charset)
+ value += "; charset=" + charset.toLowerCase();
+ }
+ }
+ this.setHeader(field, value);
+ } else {
+ for (var key in field) {
+ this.set(key, field[key]);
+ }
+ }
+ return this;
+ };
+ res.get = function(field) {
+ return this.getHeader(field);
+ };
+ res.clearCookie = function clearCookie(name, options) {
+ if (options) {
+ if (options.maxAge) {
+ deprecate('res.clearCookie: Passing "options.maxAge" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.');
+ }
+ if (options.expires) {
+ deprecate('res.clearCookie: Passing "options.expires" is deprecated. In v5.0.0 of Express, this option will be ignored, as res.clearCookie will automatically set cookies to expire immediately. Please update your code to omit this option.');
+ }
+ }
+ var opts = merge({ expires: /* @__PURE__ */ new Date(1), path: "/" }, options);
+ return this.cookie(name, "", opts);
+ };
+ res.cookie = function(name, value, options) {
+ var opts = merge({}, options);
+ var secret = this.req.secret;
+ var signed = opts.signed;
+ if (signed && !secret) {
+ throw new Error('cookieParser("secret") required for signed cookies');
+ }
+ var val = typeof value === "object" ? "j:" + JSON.stringify(value) : String(value);
+ if (signed) {
+ val = "s:" + sign(val, secret);
+ }
+ if (opts.maxAge != null) {
+ var maxAge = opts.maxAge - 0;
+ if (!isNaN(maxAge)) {
+ opts.expires = new Date(Date.now() + maxAge);
+ opts.maxAge = Math.floor(maxAge / 1e3);
+ }
+ }
+ if (opts.path == null) {
+ opts.path = "/";
+ }
+ this.append("Set-Cookie", cookie.serialize(name, String(val), opts));
+ return this;
+ };
+ res.location = function location(url) {
+ var loc;
+ if (url === "back") {
+ deprecate('res.location("back"): use res.location(req.get("Referrer") || "/") and refer to https://dub.sh/security-redirect for best practices');
+ loc = this.req.get("Referrer") || "/";
+ } else {
+ loc = String(url);
+ }
+ return this.set("Location", encodeUrl(loc));
+ };
+ res.redirect = function redirect(url) {
+ var address = url;
+ var body;
+ var status = 302;
+ if (arguments.length === 2) {
+ if (typeof arguments[0] === "number") {
+ status = arguments[0];
+ address = arguments[1];
+ } else {
+ deprecate("res.redirect(url, status): Use res.redirect(status, url) instead");
+ status = arguments[1];
+ }
+ }
+ address = this.location(address).get("Location");
+ this.format({
+ text: function() {
+ body = statuses.message[status] + ". Redirecting to " + address;
+ },
+ html: function() {
+ var u = escapeHtml(address);
+ body = "" + statuses.message[status] + ". Redirecting to " + u + "
";
+ },
+ default: function() {
+ body = "";
+ }
+ });
+ this.statusCode = status;
+ this.set("Content-Length", Buffer2.byteLength(body));
+ if (this.req.method === "HEAD") {
+ this.end();
+ } else {
+ this.end(body);
+ }
+ };
+ res.vary = function(field) {
+ if (!field || Array.isArray(field) && !field.length) {
+ deprecate("res.vary(): Provide a field name");
+ return this;
+ }
+ vary(this, field);
+ return this;
+ };
+ res.render = function render(view, options, callback) {
+ var app2 = this.req.app;
+ var done = callback;
+ var opts = options || {};
+ var req = this.req;
+ var self2 = this;
+ if (typeof options === "function") {
+ done = options;
+ opts = {};
+ }
+ opts._locals = self2.locals;
+ done = done || function(err, str) {
+ if (err)
+ return req.next(err);
+ self2.send(str);
+ };
+ app2.render(view, opts, done);
+ };
+ function sendfile(res2, file, options, callback) {
+ var done = false;
+ var streaming;
+ function onaborted() {
+ if (done)
+ return;
+ done = true;
+ var err = new Error("Request aborted");
+ err.code = "ECONNABORTED";
+ callback(err);
+ }
+ function ondirectory() {
+ if (done)
+ return;
+ done = true;
+ var err = new Error("EISDIR, read");
+ err.code = "EISDIR";
+ callback(err);
+ }
+ function onerror(err) {
+ if (done)
+ return;
+ done = true;
+ callback(err);
+ }
+ function onend() {
+ if (done)
+ return;
+ done = true;
+ callback();
+ }
+ function onfile() {
+ streaming = false;
+ }
+ function onfinish(err) {
+ if (err && err.code === "ECONNRESET")
+ return onaborted();
+ if (err)
+ return onerror(err);
+ if (done)
+ return;
+ setImmediate(function() {
+ if (streaming !== false && !done) {
+ onaborted();
+ return;
+ }
+ if (done)
+ return;
+ done = true;
+ callback();
+ });
+ }
+ function onstream() {
+ streaming = true;
+ }
+ file.on("directory", ondirectory);
+ file.on("end", onend);
+ file.on("error", onerror);
+ file.on("file", onfile);
+ file.on("stream", onstream);
+ onFinished(res2, onfinish);
+ if (options.headers) {
+ file.on("headers", function headers(res3) {
+ var obj = options.headers;
+ var keys = Object.keys(obj);
+ for (var i = 0; i < keys.length; i++) {
+ var k = keys[i];
+ res3.setHeader(k, obj[k]);
+ }
+ });
+ }
+ file.pipe(res2);
+ }
+ function stringify(value, replacer, spaces, escape2) {
+ var json = replacer || spaces ? JSON.stringify(value, replacer, spaces) : JSON.stringify(value);
+ if (escape2 && typeof json === "string") {
+ json = json.replace(/[<>&]/g, function(c) {
+ switch (c.charCodeAt(0)) {
+ case 60:
+ return "\\u003c";
+ case 62:
+ return "\\u003e";
+ case 38:
+ return "\\u0026";
+ default:
+ return c;
+ }
+ });
+ }
+ return json;
+ }
+ }
+});
+
+// node_modules/serve-static/index.js
+var require_serve_static = __commonJS({
+ "node_modules/serve-static/index.js"(exports2, module2) {
+ "use strict";
+ var encodeUrl = require_encodeurl();
+ var escapeHtml = require_escape_html();
+ var parseUrl = require_parseurl();
+ var resolve = require("path").resolve;
+ var send = require_send();
+ var url = require("url");
+ module2.exports = serveStatic;
+ module2.exports.mime = send.mime;
+ function serveStatic(root, options) {
+ if (!root) {
+ throw new TypeError("root path required");
+ }
+ if (typeof root !== "string") {
+ throw new TypeError("root path must be a string");
+ }
+ var opts = Object.create(options || null);
+ var fallthrough = opts.fallthrough !== false;
+ var redirect = opts.redirect !== false;
+ var setHeaders = opts.setHeaders;
+ if (setHeaders && typeof setHeaders !== "function") {
+ throw new TypeError("option setHeaders must be function");
+ }
+ opts.maxage = opts.maxage || opts.maxAge || 0;
+ opts.root = resolve(root);
+ var onDirectory = redirect ? createRedirectDirectoryListener() : createNotFoundDirectoryListener();
+ return function serveStatic2(req, res, next) {
+ if (req.method !== "GET" && req.method !== "HEAD") {
+ if (fallthrough) {
+ return next();
+ }
+ res.statusCode = 405;
+ res.setHeader("Allow", "GET, HEAD");
+ res.setHeader("Content-Length", "0");
+ res.end();
+ return;
+ }
+ var forwardError = !fallthrough;
+ var originalUrl = parseUrl.original(req);
+ var path = parseUrl(req).pathname;
+ if (path === "/" && originalUrl.pathname.substr(-1) !== "/") {
+ path = "";
+ }
+ var stream = send(req, path, opts);
+ stream.on("directory", onDirectory);
+ if (setHeaders) {
+ stream.on("headers", setHeaders);
+ }
+ if (fallthrough) {
+ stream.on("file", function onFile() {
+ forwardError = true;
+ });
+ }
+ stream.on("error", function error(err) {
+ if (forwardError || !(err.statusCode < 500)) {
+ next(err);
+ return;
+ }
+ next();
+ });
+ stream.pipe(res);
+ };
+ }
+ function collapseLeadingSlashes(str) {
+ for (var i = 0; i < str.length; i++) {
+ if (str.charCodeAt(i) !== 47) {
+ break;
+ }
+ }
+ return i > 1 ? "/" + str.substr(i) : str;
+ }
+ function createHtmlDocument(title, body) {
+ return '\n\n\n\n' + title + "\n\n\n" + body + "
\n\n\n";
+ }
+ function createNotFoundDirectoryListener() {
+ return function notFound() {
+ this.error(404);
+ };
+ }
+ function createRedirectDirectoryListener() {
+ return function redirect(res) {
+ if (this.hasTrailingSlash()) {
+ this.error(404);
+ return;
+ }
+ var originalUrl = parseUrl.original(this.req);
+ originalUrl.path = null;
+ originalUrl.pathname = collapseLeadingSlashes(originalUrl.pathname + "/");
+ var loc = encodeUrl(url.format(originalUrl));
+ var doc = createHtmlDocument("Redirecting", "Redirecting to " + escapeHtml(loc));
+ res.statusCode = 301;
+ res.setHeader("Content-Type", "text/html; charset=UTF-8");
+ res.setHeader("Content-Length", Buffer.byteLength(doc));
+ res.setHeader("Content-Security-Policy", "default-src 'none'");
+ res.setHeader("X-Content-Type-Options", "nosniff");
+ res.setHeader("Location", loc);
+ res.end(doc);
+ };
+ }
+ }
+});
+
+// node_modules/express/lib/express.js
+var require_express = __commonJS({
+ "node_modules/express/lib/express.js"(exports2, module2) {
+ "use strict";
+ var bodyParser2 = require_body_parser();
+ var EventEmitter = require("events").EventEmitter;
+ var mixin = require_merge_descriptors();
+ var proto = require_application();
+ var Route = require_route();
+ var Router = require_router();
+ var req = require_request();
+ var res = require_response();
+ exports2 = module2.exports = createApplication;
+ function createApplication() {
+ var app2 = function(req2, res2, next) {
+ app2.handle(req2, res2, next);
+ };
+ mixin(app2, EventEmitter.prototype, false);
+ mixin(app2, proto, false);
+ app2.request = Object.create(req, {
+ app: { configurable: true, enumerable: true, writable: true, value: app2 }
+ });
+ app2.response = Object.create(res, {
+ app: { configurable: true, enumerable: true, writable: true, value: app2 }
+ });
+ app2.init();
+ return app2;
+ }
+ exports2.application = proto;
+ exports2.request = req;
+ exports2.response = res;
+ exports2.Route = Route;
+ exports2.Router = Router;
+ exports2.json = bodyParser2.json;
+ exports2.query = require_query();
+ exports2.raw = bodyParser2.raw;
+ exports2.static = require_serve_static();
+ exports2.text = bodyParser2.text;
+ exports2.urlencoded = bodyParser2.urlencoded;
+ var removedMiddlewares = [
+ "bodyParser",
+ "compress",
+ "cookieSession",
+ "session",
+ "logger",
+ "cookieParser",
+ "favicon",
+ "responseTime",
+ "errorHandler",
+ "timeout",
+ "methodOverride",
+ "vhost",
+ "csrf",
+ "directory",
+ "limit",
+ "multipart",
+ "staticCache"
+ ];
+ removedMiddlewares.forEach(function(name) {
+ Object.defineProperty(exports2, name, {
+ get: function() {
+ throw new Error("Most middleware (like " + name + ") is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.");
+ },
+ configurable: true
+ });
+ });
+ }
+});
+
+// node_modules/express/index.js
+var require_express2 = __commonJS({
+ "node_modules/express/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = require_express();
+ }
+});
+
+// node_modules/@lit-protocol/lit-node-client-nodejs/node_modules/tslib/tslib.es6.js
+var tslib_es6_exports = {};
+__export(tslib_es6_exports, {
+ __assign: () => __assign,
+ __asyncDelegator: () => __asyncDelegator,
+ __asyncGenerator: () => __asyncGenerator,
+ __asyncValues: () => __asyncValues,
+ __await: () => __await,
+ __awaiter: () => __awaiter,
+ __classPrivateFieldGet: () => __classPrivateFieldGet,
+ __classPrivateFieldSet: () => __classPrivateFieldSet,
+ __createBinding: () => __createBinding,
+ __decorate: () => __decorate,
+ __exportStar: () => __exportStar,
+ __extends: () => __extends,
+ __generator: () => __generator,
+ __importDefault: () => __importDefault,
+ __importStar: () => __importStar,
+ __makeTemplateObject: () => __makeTemplateObject,
+ __metadata: () => __metadata,
+ __param: () => __param,
+ __read: () => __read,
+ __rest: () => __rest,
+ __spread: () => __spread,
+ __spreadArrays: () => __spreadArrays,
+ __values: () => __values
+});
+function __extends(d, b) {
+ extendStatics(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+function __rest(s, e) {
+ var t = {};
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+}
+function __decorate(decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ r = Reflect.decorate(decorators, target, key, desc);
+ else
+ for (var i = decorators.length - 1; i >= 0; i--)
+ if (d = decorators[i])
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+function __param(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+}
+function __metadata(metadataKey, metadataValue) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(metadataKey, metadataValue);
+}
+function __awaiter(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+}
+function __generator(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+}
+function __createBinding(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+}
+function __exportStar(m, exports2) {
+ for (var p in m)
+ if (p !== "default" && !exports2.hasOwnProperty(p))
+ exports2[p] = m[p];
+}
+function __values(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m)
+ return m.call(o);
+ if (o && typeof o.length === "number")
+ return {
+ next: function() {
+ if (o && i >= o.length)
+ o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+}
+function __read(o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m)
+ return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
+ ar.push(r.value);
+ } catch (error) {
+ e = { error };
+ } finally {
+ try {
+ if (r && !r.done && (m = i["return"]))
+ m.call(i);
+ } finally {
+ if (e)
+ throw e.error;
+ }
+ }
+ return ar;
+}
+function __spread() {
+ for (var ar = [], i = 0; i < arguments.length; i++)
+ ar = ar.concat(__read(arguments[i]));
+ return ar;
+}
+function __spreadArrays() {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
+ s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+}
+function __await(v) {
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
+}
+function __asyncGenerator(thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i;
+ function verb(n) {
+ if (g[n])
+ i[n] = function(v) {
+ return new Promise(function(a, b) {
+ q.push([n, v, a, b]) > 1 || resume(n, v);
+ });
+ };
+ }
+ function resume(n, v) {
+ try {
+ step(g[n](v));
+ } catch (e) {
+ settle(q[0][3], e);
+ }
+ }
+ function step(r) {
+ r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
+ }
+ function fulfill(value) {
+ resume("next", value);
+ }
+ function reject(value) {
+ resume("throw", value);
+ }
+ function settle(f, v) {
+ if (f(v), q.shift(), q.length)
+ resume(q[0][0], q[0][1]);
+ }
+}
+function __asyncDelegator(o) {
+ var i, p;
+ return i = {}, verb("next"), verb("throw", function(e) {
+ throw e;
+ }), verb("return"), i[Symbol.iterator] = function() {
+ return this;
+ }, i;
+ function verb(n, f) {
+ i[n] = o[n] ? function(v) {
+ return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v;
+ } : f;
+ }
+}
+function __asyncValues(o) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator], i;
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i);
+ function verb(n) {
+ i[n] = o[n] && function(v) {
+ return new Promise(function(resolve, reject) {
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
+ });
+ };
+ }
+ function settle(resolve, reject, d, v) {
+ Promise.resolve(v).then(function(v2) {
+ resolve({ value: v2, done: d });
+ }, reject);
+ }
+}
+function __makeTemplateObject(cooked, raw) {
+ if (Object.defineProperty) {
+ Object.defineProperty(cooked, "raw", { value: raw });
+ } else {
+ cooked.raw = raw;
+ }
+ return cooked;
+}
+function __importStar(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (Object.hasOwnProperty.call(mod, k))
+ result[k] = mod[k];
+ }
+ result.default = mod;
+ return result;
+}
+function __importDefault(mod) {
+ return mod && mod.__esModule ? mod : { default: mod };
+}
+function __classPrivateFieldGet(receiver, privateMap) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to get private field on non-instance");
+ }
+ return privateMap.get(receiver);
+}
+function __classPrivateFieldSet(receiver, privateMap, value) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to set private field on non-instance");
+ }
+ privateMap.set(receiver, value);
+ return value;
+}
+var extendStatics, __assign;
+var init_tslib_es6 = __esm({
+ "node_modules/@lit-protocol/lit-node-client-nodejs/node_modules/tslib/tslib.es6.js"() {
+ extendStatics = function(d, b) {
+ extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (b2.hasOwnProperty(p))
+ d2[p] = b2[p];
+ };
+ return extendStatics(d, b);
+ };
+ __assign = function() {
+ __assign = Object.assign || function __assign13(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+ };
+ }
+});
+
+// node_modules/webidl-conversions/lib/index.js
+var require_lib3 = __commonJS({
+ "node_modules/webidl-conversions/lib/index.js"(exports2, module2) {
+ "use strict";
+ var conversions = {};
+ module2.exports = conversions;
+ function sign(x) {
+ return x < 0 ? -1 : 1;
+ }
+ function evenRound(x) {
+ if (x % 1 === 0.5 && (x & 1) === 0) {
+ return Math.floor(x);
+ } else {
+ return Math.round(x);
+ }
+ }
+ function createNumberConversion(bitLength, typeOpts) {
+ if (!typeOpts.unsigned) {
+ --bitLength;
+ }
+ const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength);
+ const upperBound = Math.pow(2, bitLength) - 1;
+ const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength);
+ const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1);
+ return function(V, opts) {
+ if (!opts)
+ opts = {};
+ let x = +V;
+ if (opts.enforceRange) {
+ if (!Number.isFinite(x)) {
+ throw new TypeError("Argument is not a finite number");
+ }
+ x = sign(x) * Math.floor(Math.abs(x));
+ if (x < lowerBound || x > upperBound) {
+ throw new TypeError("Argument is not in byte range");
+ }
+ return x;
+ }
+ if (!isNaN(x) && opts.clamp) {
+ x = evenRound(x);
+ if (x < lowerBound)
+ x = lowerBound;
+ if (x > upperBound)
+ x = upperBound;
+ return x;
+ }
+ if (!Number.isFinite(x) || x === 0) {
+ return 0;
+ }
+ x = sign(x) * Math.floor(Math.abs(x));
+ x = x % moduloVal;
+ if (!typeOpts.unsigned && x >= moduloBound) {
+ return x - moduloVal;
+ } else if (typeOpts.unsigned) {
+ if (x < 0) {
+ x += moduloVal;
+ } else if (x === -0) {
+ return 0;
+ }
+ }
+ return x;
+ };
+ }
+ conversions["void"] = function() {
+ return void 0;
+ };
+ conversions["boolean"] = function(val) {
+ return !!val;
+ };
+ conversions["byte"] = createNumberConversion(8, { unsigned: false });
+ conversions["octet"] = createNumberConversion(8, { unsigned: true });
+ conversions["short"] = createNumberConversion(16, { unsigned: false });
+ conversions["unsigned short"] = createNumberConversion(16, { unsigned: true });
+ conversions["long"] = createNumberConversion(32, { unsigned: false });
+ conversions["unsigned long"] = createNumberConversion(32, { unsigned: true });
+ conversions["long long"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 });
+ conversions["unsigned long long"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 });
+ conversions["double"] = function(V) {
+ const x = +V;
+ if (!Number.isFinite(x)) {
+ throw new TypeError("Argument is not a finite floating-point value");
+ }
+ return x;
+ };
+ conversions["unrestricted double"] = function(V) {
+ const x = +V;
+ if (isNaN(x)) {
+ throw new TypeError("Argument is NaN");
+ }
+ return x;
+ };
+ conversions["float"] = conversions["double"];
+ conversions["unrestricted float"] = conversions["unrestricted double"];
+ conversions["DOMString"] = function(V, opts) {
+ if (!opts)
+ opts = {};
+ if (opts.treatNullAsEmptyString && V === null) {
+ return "";
+ }
+ return String(V);
+ };
+ conversions["ByteString"] = function(V, opts) {
+ const x = String(V);
+ let c = void 0;
+ for (let i = 0; (c = x.codePointAt(i)) !== void 0; ++i) {
+ if (c > 255) {
+ throw new TypeError("Argument is not a valid bytestring");
+ }
+ }
+ return x;
+ };
+ conversions["USVString"] = function(V) {
+ const S = String(V);
+ const n = S.length;
+ const U = [];
+ for (let i = 0; i < n; ++i) {
+ const c = S.charCodeAt(i);
+ if (c < 55296 || c > 57343) {
+ U.push(String.fromCodePoint(c));
+ } else if (56320 <= c && c <= 57343) {
+ U.push(String.fromCodePoint(65533));
+ } else {
+ if (i === n - 1) {
+ U.push(String.fromCodePoint(65533));
+ } else {
+ const d = S.charCodeAt(i + 1);
+ if (56320 <= d && d <= 57343) {
+ const a = c & 1023;
+ const b = d & 1023;
+ U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b));
+ ++i;
+ } else {
+ U.push(String.fromCodePoint(65533));
+ }
+ }
+ }
+ }
+ return U.join("");
+ };
+ conversions["Date"] = function(V, opts) {
+ if (!(V instanceof Date)) {
+ throw new TypeError("Argument is not a Date object");
+ }
+ if (isNaN(V)) {
+ return void 0;
+ }
+ return V;
+ };
+ conversions["RegExp"] = function(V, opts) {
+ if (!(V instanceof RegExp)) {
+ V = new RegExp(V);
+ }
+ return V;
+ };
+ }
+});
+
+// node_modules/whatwg-url/lib/utils.js
+var require_utils3 = __commonJS({
+ "node_modules/whatwg-url/lib/utils.js"(exports2, module2) {
+ "use strict";
+ module2.exports.mixin = function mixin(target, source) {
+ const keys = Object.getOwnPropertyNames(source);
+ for (let i = 0; i < keys.length; ++i) {
+ Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i]));
+ }
+ };
+ module2.exports.wrapperSymbol = Symbol("wrapper");
+ module2.exports.implSymbol = Symbol("impl");
+ module2.exports.wrapperForImpl = function(impl) {
+ return impl[module2.exports.wrapperSymbol];
+ };
+ module2.exports.implForWrapper = function(wrapper) {
+ return wrapper[module2.exports.implSymbol];
+ };
+ }
+});
+
+// node_modules/tr46/lib/mappingTable.json
+var require_mappingTable = __commonJS({
+ "node_modules/tr46/lib/mappingTable.json"(exports2, module2) {
+ module2.exports = [[[0, 44], "disallowed_STD3_valid"], [[45, 46], "valid"], [[47, 47], "disallowed_STD3_valid"], [[48, 57], "valid"], [[58, 64], "disallowed_STD3_valid"], [[65, 65], "mapped", [97]], [[66, 66], "mapped", [98]], [[67, 67], "mapped", [99]], [[68, 68], "mapped", [100]], [[69, 69], "mapped", [101]], [[70, 70], "mapped", [102]], [[71, 71], "mapped", [103]], [[72, 72], "mapped", [104]], [[73, 73], "mapped", [105]], [[74, 74], "mapped", [106]], [[75, 75], "mapped", [107]], [[76, 76], "mapped", [108]], [[77, 77], "mapped", [109]], [[78, 78], "mapped", [110]], [[79, 79], "mapped", [111]], [[80, 80], "mapped", [112]], [[81, 81], "mapped", [113]], [[82, 82], "mapped", [114]], [[83, 83], "mapped", [115]], [[84, 84], "mapped", [116]], [[85, 85], "mapped", [117]], [[86, 86], "mapped", [118]], [[87, 87], "mapped", [119]], [[88, 88], "mapped", [120]], [[89, 89], "mapped", [121]], [[90, 90], "mapped", [122]], [[91, 96], "disallowed_STD3_valid"], [[97, 122], "valid"], [[123, 127], "disallowed_STD3_valid"], [[128, 159], "disallowed"], [[160, 160], "disallowed_STD3_mapped", [32]], [[161, 167], "valid", [], "NV8"], [[168, 168], "disallowed_STD3_mapped", [32, 776]], [[169, 169], "valid", [], "NV8"], [[170, 170], "mapped", [97]], [[171, 172], "valid", [], "NV8"], [[173, 173], "ignored"], [[174, 174], "valid", [], "NV8"], [[175, 175], "disallowed_STD3_mapped", [32, 772]], [[176, 177], "valid", [], "NV8"], [[178, 178], "mapped", [50]], [[179, 179], "mapped", [51]], [[180, 180], "disallowed_STD3_mapped", [32, 769]], [[181, 181], "mapped", [956]], [[182, 182], "valid", [], "NV8"], [[183, 183], "valid"], [[184, 184], "disallowed_STD3_mapped", [32, 807]], [[185, 185], "mapped", [49]], [[186, 186], "mapped", [111]], [[187, 187], "valid", [], "NV8"], [[188, 188], "mapped", [49, 8260, 52]], [[189, 189], "mapped", [49, 8260, 50]], [[190, 190], "mapped", [51, 8260, 52]], [[191, 191], "valid", [], "NV8"], [[192, 192], "mapped", [224]], [[193, 193], "mapped", [225]], [[194, 194], "mapped", [226]], [[195, 195], "mapped", [227]], [[196, 196], "mapped", [228]], [[197, 197], "mapped", [229]], [[198, 198], "mapped", [230]], [[199, 199], "mapped", [231]], [[200, 200], "mapped", [232]], [[201, 201], "mapped", [233]], [[202, 202], "mapped", [234]], [[203, 203], "mapped", [235]], [[204, 204], "mapped", [236]], [[205, 205], "mapped", [237]], [[206, 206], "mapped", [238]], [[207, 207], "mapped", [239]], [[208, 208], "mapped", [240]], [[209, 209], "mapped", [241]], [[210, 210], "mapped", [242]], [[211, 211], "mapped", [243]], [[212, 212], "mapped", [244]], [[213, 213], "mapped", [245]], [[214, 214], "mapped", [246]], [[215, 215], "valid", [], "NV8"], [[216, 216], "mapped", [248]], [[217, 217], "mapped", [249]], [[218, 218], "mapped", [250]], [[219, 219], "mapped", [251]], [[220, 220], "mapped", [252]], [[221, 221], "mapped", [253]], [[222, 222], "mapped", [254]], [[223, 223], "deviation", [115, 115]], [[224, 246], "valid"], [[247, 247], "valid", [], "NV8"], [[248, 255], "valid"], [[256, 256], "mapped", [257]], [[257, 257], "valid"], [[258, 258], "mapped", [259]], [[259, 259], "valid"], [[260, 260], "mapped", [261]], [[261, 261], "valid"], [[262, 262], "mapped", [263]], [[263, 263], "valid"], [[264, 264], "mapped", [265]], [[265, 265], "valid"], [[266, 266], "mapped", [267]], [[267, 267], "valid"], [[268, 268], "mapped", [269]], [[269, 269], "valid"], [[270, 270], "mapped", [271]], [[271, 271], "valid"], [[272, 272], "mapped", [273]], [[273, 273], "valid"], [[274, 274], "mapped", [275]], [[275, 275], "valid"], [[276, 276], "mapped", [277]], [[277, 277], "valid"], [[278, 278], "mapped", [279]], [[279, 279], "valid"], [[280, 280], "mapped", [281]], [[281, 281], "valid"], [[282, 282], "mapped", [283]], [[283, 283], "valid"], [[284, 284], "mapped", [285]], [[285, 285], "valid"], [[286, 286], "mapped", [287]], [[287, 287], "valid"], [[288, 288], "mapped", [289]], [[289, 289], "valid"], [[290, 290], "mapped", [291]], [[291, 291], "valid"], [[292, 292], "mapped", [293]], [[293, 293], "valid"], [[294, 294], "mapped", [295]], [[295, 295], "valid"], [[296, 296], "mapped", [297]], [[297, 297], "valid"], [[298, 298], "mapped", [299]], [[299, 299], "valid"], [[300, 300], "mapped", [301]], [[301, 301], "valid"], [[302, 302], "mapped", [303]], [[303, 303], "valid"], [[304, 304], "mapped", [105, 775]], [[305, 305], "valid"], [[306, 307], "mapped", [105, 106]], [[308, 308], "mapped", [309]], [[309, 309], "valid"], [[310, 310], "mapped", [311]], [[311, 312], "valid"], [[313, 313], "mapped", [314]], [[314, 314], "valid"], [[315, 315], "mapped", [316]], [[316, 316], "valid"], [[317, 317], "mapped", [318]], [[318, 318], "valid"], [[319, 320], "mapped", [108, 183]], [[321, 321], "mapped", [322]], [[322, 322], "valid"], [[323, 323], "mapped", [324]], [[324, 324], "valid"], [[325, 325], "mapped", [326]], [[326, 326], "valid"], [[327, 327], "mapped", [328]], [[328, 328], "valid"], [[329, 329], "mapped", [700, 110]], [[330, 330], "mapped", [331]], [[331, 331], "valid"], [[332, 332], "mapped", [333]], [[333, 333], "valid"], [[334, 334], "mapped", [335]], [[335, 335], "valid"], [[336, 336], "mapped", [337]], [[337, 337], "valid"], [[338, 338], "mapped", [339]], [[339, 339], "valid"], [[340, 340], "mapped", [341]], [[341, 341], "valid"], [[342, 342], "mapped", [343]], [[343, 343], "valid"], [[344, 344], "mapped", [345]], [[345, 345], "valid"], [[346, 346], "mapped", [347]], [[347, 347], "valid"], [[348, 348], "mapped", [349]], [[349, 349], "valid"], [[350, 350], "mapped", [351]], [[351, 351], "valid"], [[352, 352], "mapped", [353]], [[353, 353], "valid"], [[354, 354], "mapped", [355]], [[355, 355], "valid"], [[356, 356], "mapped", [357]], [[357, 357], "valid"], [[358, 358], "mapped", [359]], [[359, 359], "valid"], [[360, 360], "mapped", [361]], [[361, 361], "valid"], [[362, 362], "mapped", [363]], [[363, 363], "valid"], [[364, 364], "mapped", [365]], [[365, 365], "valid"], [[366, 366], "mapped", [367]], [[367, 367], "valid"], [[368, 368], "mapped", [369]], [[369, 369], "valid"], [[370, 370], "mapped", [371]], [[371, 371], "valid"], [[372, 372], "mapped", [373]], [[373, 373], "valid"], [[374, 374], "mapped", [375]], [[375, 375], "valid"], [[376, 376], "mapped", [255]], [[377, 377], "mapped", [378]], [[378, 378], "valid"], [[379, 379], "mapped", [380]], [[380, 380], "valid"], [[381, 381], "mapped", [382]], [[382, 382], "valid"], [[383, 383], "mapped", [115]], [[384, 384], "valid"], [[385, 385], "mapped", [595]], [[386, 386], "mapped", [387]], [[387, 387], "valid"], [[388, 388], "mapped", [389]], [[389, 389], "valid"], [[390, 390], "mapped", [596]], [[391, 391], "mapped", [392]], [[392, 392], "valid"], [[393, 393], "mapped", [598]], [[394, 394], "mapped", [599]], [[395, 395], "mapped", [396]], [[396, 397], "valid"], [[398, 398], "mapped", [477]], [[399, 399], "mapped", [601]], [[400, 400], "mapped", [603]], [[401, 401], "mapped", [402]], [[402, 402], "valid"], [[403, 403], "mapped", [608]], [[404, 404], "mapped", [611]], [[405, 405], "valid"], [[406, 406], "mapped", [617]], [[407, 407], "mapped", [616]], [[408, 408], "mapped", [409]], [[409, 411], "valid"], [[412, 412], "mapped", [623]], [[413, 413], "mapped", [626]], [[414, 414], "valid"], [[415, 415], "mapped", [629]], [[416, 416], "mapped", [417]], [[417, 417], "valid"], [[418, 418], "mapped", [419]], [[419, 419], "valid"], [[420, 420], "mapped", [421]], [[421, 421], "valid"], [[422, 422], "mapped", [640]], [[423, 423], "mapped", [424]], [[424, 424], "valid"], [[425, 425], "mapped", [643]], [[426, 427], "valid"], [[428, 428], "mapped", [429]], [[429, 429], "valid"], [[430, 430], "mapped", [648]], [[431, 431], "mapped", [432]], [[432, 432], "valid"], [[433, 433], "mapped", [650]], [[434, 434], "mapped", [651]], [[435, 435], "mapped", [436]], [[436, 436], "valid"], [[437, 437], "mapped", [438]], [[438, 438], "valid"], [[439, 439], "mapped", [658]], [[440, 440], "mapped", [441]], [[441, 443], "valid"], [[444, 444], "mapped", [445]], [[445, 451], "valid"], [[452, 454], "mapped", [100, 382]], [[455, 457], "mapped", [108, 106]], [[458, 460], "mapped", [110, 106]], [[461, 461], "mapped", [462]], [[462, 462], "valid"], [[463, 463], "mapped", [464]], [[464, 464], "valid"], [[465, 465], "mapped", [466]], [[466, 466], "valid"], [[467, 467], "mapped", [468]], [[468, 468], "valid"], [[469, 469], "mapped", [470]], [[470, 470], "valid"], [[471, 471], "mapped", [472]], [[472, 472], "valid"], [[473, 473], "mapped", [474]], [[474, 474], "valid"], [[475, 475], "mapped", [476]], [[476, 477], "valid"], [[478, 478], "mapped", [479]], [[479, 479], "valid"], [[480, 480], "mapped", [481]], [[481, 481], "valid"], [[482, 482], "mapped", [483]], [[483, 483], "valid"], [[484, 484], "mapped", [485]], [[485, 485], "valid"], [[486, 486], "mapped", [487]], [[487, 487], "valid"], [[488, 488], "mapped", [489]], [[489, 489], "valid"], [[490, 490], "mapped", [491]], [[491, 491], "valid"], [[492, 492], "mapped", [493]], [[493, 493], "valid"], [[494, 494], "mapped", [495]], [[495, 496], "valid"], [[497, 499], "mapped", [100, 122]], [[500, 500], "mapped", [501]], [[501, 501], "valid"], [[502, 502], "mapped", [405]], [[503, 503], "mapped", [447]], [[504, 504], "mapped", [505]], [[505, 505], "valid"], [[506, 506], "mapped", [507]], [[507, 507], "valid"], [[508, 508], "mapped", [509]], [[509, 509], "valid"], [[510, 510], "mapped", [511]], [[511, 511], "valid"], [[512, 512], "mapped", [513]], [[513, 513], "valid"], [[514, 514], "mapped", [515]], [[515, 515], "valid"], [[516, 516], "mapped", [517]], [[517, 517], "valid"], [[518, 518], "mapped", [519]], [[519, 519], "valid"], [[520, 520], "mapped", [521]], [[521, 521], "valid"], [[522, 522], "mapped", [523]], [[523, 523], "valid"], [[524, 524], "mapped", [525]], [[525, 525], "valid"], [[526, 526], "mapped", [527]], [[527, 527], "valid"], [[528, 528], "mapped", [529]], [[529, 529], "valid"], [[530, 530], "mapped", [531]], [[531, 531], "valid"], [[532, 532], "mapped", [533]], [[533, 533], "valid"], [[534, 534], "mapped", [535]], [[535, 535], "valid"], [[536, 536], "mapped", [537]], [[537, 537], "valid"], [[538, 538], "mapped", [539]], [[539, 539], "valid"], [[540, 540], "mapped", [541]], [[541, 541], "valid"], [[542, 542], "mapped", [543]], [[543, 543], "valid"], [[544, 544], "mapped", [414]], [[545, 545], "valid"], [[546, 546], "mapped", [547]], [[547, 547], "valid"], [[548, 548], "mapped", [549]], [[549, 549], "valid"], [[550, 550], "mapped", [551]], [[551, 551], "valid"], [[552, 552], "mapped", [553]], [[553, 553], "valid"], [[554, 554], "mapped", [555]], [[555, 555], "valid"], [[556, 556], "mapped", [557]], [[557, 557], "valid"], [[558, 558], "mapped", [559]], [[559, 559], "valid"], [[560, 560], "mapped", [561]], [[561, 561], "valid"], [[562, 562], "mapped", [563]], [[563, 563], "valid"], [[564, 566], "valid"], [[567, 569], "valid"], [[570, 570], "mapped", [11365]], [[571, 571], "mapped", [572]], [[572, 572], "valid"], [[573, 573], "mapped", [410]], [[574, 574], "mapped", [11366]], [[575, 576], "valid"], [[577, 577], "mapped", [578]], [[578, 578], "valid"], [[579, 579], "mapped", [384]], [[580, 580], "mapped", [649]], [[581, 581], "mapped", [652]], [[582, 582], "mapped", [583]], [[583, 583], "valid"], [[584, 584], "mapped", [585]], [[585, 585], "valid"], [[586, 586], "mapped", [587]], [[587, 587], "valid"], [[588, 588], "mapped", [589]], [[589, 589], "valid"], [[590, 590], "mapped", [591]], [[591, 591], "valid"], [[592, 680], "valid"], [[681, 685], "valid"], [[686, 687], "valid"], [[688, 688], "mapped", [104]], [[689, 689], "mapped", [614]], [[690, 690], "mapped", [106]], [[691, 691], "mapped", [114]], [[692, 692], "mapped", [633]], [[693, 693], "mapped", [635]], [[694, 694], "mapped", [641]], [[695, 695], "mapped", [119]], [[696, 696], "mapped", [121]], [[697, 705], "valid"], [[706, 709], "valid", [], "NV8"], [[710, 721], "valid"], [[722, 727], "valid", [], "NV8"], [[728, 728], "disallowed_STD3_mapped", [32, 774]], [[729, 729], "disallowed_STD3_mapped", [32, 775]], [[730, 730], "disallowed_STD3_mapped", [32, 778]], [[731, 731], "disallowed_STD3_mapped", [32, 808]], [[732, 732], "disallowed_STD3_mapped", [32, 771]], [[733, 733], "disallowed_STD3_mapped", [32, 779]], [[734, 734], "valid", [], "NV8"], [[735, 735], "valid", [], "NV8"], [[736, 736], "mapped", [611]], [[737, 737], "mapped", [108]], [[738, 738], "mapped", [115]], [[739, 739], "mapped", [120]], [[740, 740], "mapped", [661]], [[741, 745], "valid", [], "NV8"], [[746, 747], "valid", [], "NV8"], [[748, 748], "valid"], [[749, 749], "valid", [], "NV8"], [[750, 750], "valid"], [[751, 767], "valid", [], "NV8"], [[768, 831], "valid"], [[832, 832], "mapped", [768]], [[833, 833], "mapped", [769]], [[834, 834], "valid"], [[835, 835], "mapped", [787]], [[836, 836], "mapped", [776, 769]], [[837, 837], "mapped", [953]], [[838, 846], "valid"], [[847, 847], "ignored"], [[848, 855], "valid"], [[856, 860], "valid"], [[861, 863], "valid"], [[864, 865], "valid"], [[866, 866], "valid"], [[867, 879], "valid"], [[880, 880], "mapped", [881]], [[881, 881], "valid"], [[882, 882], "mapped", [883]], [[883, 883], "valid"], [[884, 884], "mapped", [697]], [[885, 885], "valid"], [[886, 886], "mapped", [887]], [[887, 887], "valid"], [[888, 889], "disallowed"], [[890, 890], "disallowed_STD3_mapped", [32, 953]], [[891, 893], "valid"], [[894, 894], "disallowed_STD3_mapped", [59]], [[895, 895], "mapped", [1011]], [[896, 899], "disallowed"], [[900, 900], "disallowed_STD3_mapped", [32, 769]], [[901, 901], "disallowed_STD3_mapped", [32, 776, 769]], [[902, 902], "mapped", [940]], [[903, 903], "mapped", [183]], [[904, 904], "mapped", [941]], [[905, 905], "mapped", [942]], [[906, 906], "mapped", [943]], [[907, 907], "disallowed"], [[908, 908], "mapped", [972]], [[909, 909], "disallowed"], [[910, 910], "mapped", [973]], [[911, 911], "mapped", [974]], [[912, 912], "valid"], [[913, 913], "mapped", [945]], [[914, 914], "mapped", [946]], [[915, 915], "mapped", [947]], [[916, 916], "mapped", [948]], [[917, 917], "mapped", [949]], [[918, 918], "mapped", [950]], [[919, 919], "mapped", [951]], [[920, 920], "mapped", [952]], [[921, 921], "mapped", [953]], [[922, 922], "mapped", [954]], [[923, 923], "mapped", [955]], [[924, 924], "mapped", [956]], [[925, 925], "mapped", [957]], [[926, 926], "mapped", [958]], [[927, 927], "mapped", [959]], [[928, 928], "mapped", [960]], [[929, 929], "mapped", [961]], [[930, 930], "disallowed"], [[931, 931], "mapped", [963]], [[932, 932], "mapped", [964]], [[933, 933], "mapped", [965]], [[934, 934], "mapped", [966]], [[935, 935], "mapped", [967]], [[936, 936], "mapped", [968]], [[937, 937], "mapped", [969]], [[938, 938], "mapped", [970]], [[939, 939], "mapped", [971]], [[940, 961], "valid"], [[962, 962], "deviation", [963]], [[963, 974], "valid"], [[975, 975], "mapped", [983]], [[976, 976], "mapped", [946]], [[977, 977], "mapped", [952]], [[978, 978], "mapped", [965]], [[979, 979], "mapped", [973]], [[980, 980], "mapped", [971]], [[981, 981], "mapped", [966]], [[982, 982], "mapped", [960]], [[983, 983], "valid"], [[984, 984], "mapped", [985]], [[985, 985], "valid"], [[986, 986], "mapped", [987]], [[987, 987], "valid"], [[988, 988], "mapped", [989]], [[989, 989], "valid"], [[990, 990], "mapped", [991]], [[991, 991], "valid"], [[992, 992], "mapped", [993]], [[993, 993], "valid"], [[994, 994], "mapped", [995]], [[995, 995], "valid"], [[996, 996], "mapped", [997]], [[997, 997], "valid"], [[998, 998], "mapped", [999]], [[999, 999], "valid"], [[1e3, 1e3], "mapped", [1001]], [[1001, 1001], "valid"], [[1002, 1002], "mapped", [1003]], [[1003, 1003], "valid"], [[1004, 1004], "mapped", [1005]], [[1005, 1005], "valid"], [[1006, 1006], "mapped", [1007]], [[1007, 1007], "valid"], [[1008, 1008], "mapped", [954]], [[1009, 1009], "mapped", [961]], [[1010, 1010], "mapped", [963]], [[1011, 1011], "valid"], [[1012, 1012], "mapped", [952]], [[1013, 1013], "mapped", [949]], [[1014, 1014], "valid", [], "NV8"], [[1015, 1015], "mapped", [1016]], [[1016, 1016], "valid"], [[1017, 1017], "mapped", [963]], [[1018, 1018], "mapped", [1019]], [[1019, 1019], "valid"], [[1020, 1020], "valid"], [[1021, 1021], "mapped", [891]], [[1022, 1022], "mapped", [892]], [[1023, 1023], "mapped", [893]], [[1024, 1024], "mapped", [1104]], [[1025, 1025], "mapped", [1105]], [[1026, 1026], "mapped", [1106]], [[1027, 1027], "mapped", [1107]], [[1028, 1028], "mapped", [1108]], [[1029, 1029], "mapped", [1109]], [[1030, 1030], "mapped", [1110]], [[1031, 1031], "mapped", [1111]], [[1032, 1032], "mapped", [1112]], [[1033, 1033], "mapped", [1113]], [[1034, 1034], "mapped", [1114]], [[1035, 1035], "mapped", [1115]], [[1036, 1036], "mapped", [1116]], [[1037, 1037], "mapped", [1117]], [[1038, 1038], "mapped", [1118]], [[1039, 1039], "mapped", [1119]], [[1040, 1040], "mapped", [1072]], [[1041, 1041], "mapped", [1073]], [[1042, 1042], "mapped", [1074]], [[1043, 1043], "mapped", [1075]], [[1044, 1044], "mapped", [1076]], [[1045, 1045], "mapped", [1077]], [[1046, 1046], "mapped", [1078]], [[1047, 1047], "mapped", [1079]], [[1048, 1048], "mapped", [1080]], [[1049, 1049], "mapped", [1081]], [[1050, 1050], "mapped", [1082]], [[1051, 1051], "mapped", [1083]], [[1052, 1052], "mapped", [1084]], [[1053, 1053], "mapped", [1085]], [[1054, 1054], "mapped", [1086]], [[1055, 1055], "mapped", [1087]], [[1056, 1056], "mapped", [1088]], [[1057, 1057], "mapped", [1089]], [[1058, 1058], "mapped", [1090]], [[1059, 1059], "mapped", [1091]], [[1060, 1060], "mapped", [1092]], [[1061, 1061], "mapped", [1093]], [[1062, 1062], "mapped", [1094]], [[1063, 1063], "mapped", [1095]], [[1064, 1064], "mapped", [1096]], [[1065, 1065], "mapped", [1097]], [[1066, 1066], "mapped", [1098]], [[1067, 1067], "mapped", [1099]], [[1068, 1068], "mapped", [1100]], [[1069, 1069], "mapped", [1101]], [[1070, 1070], "mapped", [1102]], [[1071, 1071], "mapped", [1103]], [[1072, 1103], "valid"], [[1104, 1104], "valid"], [[1105, 1116], "valid"], [[1117, 1117], "valid"], [[1118, 1119], "valid"], [[1120, 1120], "mapped", [1121]], [[1121, 1121], "valid"], [[1122, 1122], "mapped", [1123]], [[1123, 1123], "valid"], [[1124, 1124], "mapped", [1125]], [[1125, 1125], "valid"], [[1126, 1126], "mapped", [1127]], [[1127, 1127], "valid"], [[1128, 1128], "mapped", [1129]], [[1129, 1129], "valid"], [[1130, 1130], "mapped", [1131]], [[1131, 1131], "valid"], [[1132, 1132], "mapped", [1133]], [[1133, 1133], "valid"], [[1134, 1134], "mapped", [1135]], [[1135, 1135], "valid"], [[1136, 1136], "mapped", [1137]], [[1137, 1137], "valid"], [[1138, 1138], "mapped", [1139]], [[1139, 1139], "valid"], [[1140, 1140], "mapped", [1141]], [[1141, 1141], "valid"], [[1142, 1142], "mapped", [1143]], [[1143, 1143], "valid"], [[1144, 1144], "mapped", [1145]], [[1145, 1145], "valid"], [[1146, 1146], "mapped", [1147]], [[1147, 1147], "valid"], [[1148, 1148], "mapped", [1149]], [[1149, 1149], "valid"], [[1150, 1150], "mapped", [1151]], [[1151, 1151], "valid"], [[1152, 1152], "mapped", [1153]], [[1153, 1153], "valid"], [[1154, 1154], "valid", [], "NV8"], [[1155, 1158], "valid"], [[1159, 1159], "valid"], [[1160, 1161], "valid", [], "NV8"], [[1162, 1162], "mapped", [1163]], [[1163, 1163], "valid"], [[1164, 1164], "mapped", [1165]], [[1165, 1165], "valid"], [[1166, 1166], "mapped", [1167]], [[1167, 1167], "valid"], [[1168, 1168], "mapped", [1169]], [[1169, 1169], "valid"], [[1170, 1170], "mapped", [1171]], [[1171, 1171], "valid"], [[1172, 1172], "mapped", [1173]], [[1173, 1173], "valid"], [[1174, 1174], "mapped", [1175]], [[1175, 1175], "valid"], [[1176, 1176], "mapped", [1177]], [[1177, 1177], "valid"], [[1178, 1178], "mapped", [1179]], [[1179, 1179], "valid"], [[1180, 1180], "mapped", [1181]], [[1181, 1181], "valid"], [[1182, 1182], "mapped", [1183]], [[1183, 1183], "valid"], [[1184, 1184], "mapped", [1185]], [[1185, 1185], "valid"], [[1186, 1186], "mapped", [1187]], [[1187, 1187], "valid"], [[1188, 1188], "mapped", [1189]], [[1189, 1189], "valid"], [[1190, 1190], "mapped", [1191]], [[1191, 1191], "valid"], [[1192, 1192], "mapped", [1193]], [[1193, 1193], "valid"], [[1194, 1194], "mapped", [1195]], [[1195, 1195], "valid"], [[1196, 1196], "mapped", [1197]], [[1197, 1197], "valid"], [[1198, 1198], "mapped", [1199]], [[1199, 1199], "valid"], [[1200, 1200], "mapped", [1201]], [[1201, 1201], "valid"], [[1202, 1202], "mapped", [1203]], [[1203, 1203], "valid"], [[1204, 1204], "mapped", [1205]], [[1205, 1205], "valid"], [[1206, 1206], "mapped", [1207]], [[1207, 1207], "valid"], [[1208, 1208], "mapped", [1209]], [[1209, 1209], "valid"], [[1210, 1210], "mapped", [1211]], [[1211, 1211], "valid"], [[1212, 1212], "mapped", [1213]], [[1213, 1213], "valid"], [[1214, 1214], "mapped", [1215]], [[1215, 1215], "valid"], [[1216, 1216], "disallowed"], [[1217, 1217], "mapped", [1218]], [[1218, 1218], "valid"], [[1219, 1219], "mapped", [1220]], [[1220, 1220], "valid"], [[1221, 1221], "mapped", [1222]], [[1222, 1222], "valid"], [[1223, 1223], "mapped", [1224]], [[1224, 1224], "valid"], [[1225, 1225], "mapped", [1226]], [[1226, 1226], "valid"], [[1227, 1227], "mapped", [1228]], [[1228, 1228], "valid"], [[1229, 1229], "mapped", [1230]], [[1230, 1230], "valid"], [[1231, 1231], "valid"], [[1232, 1232], "mapped", [1233]], [[1233, 1233], "valid"], [[1234, 1234], "mapped", [1235]], [[1235, 1235], "valid"], [[1236, 1236], "mapped", [1237]], [[1237, 1237], "valid"], [[1238, 1238], "mapped", [1239]], [[1239, 1239], "valid"], [[1240, 1240], "mapped", [1241]], [[1241, 1241], "valid"], [[1242, 1242], "mapped", [1243]], [[1243, 1243], "valid"], [[1244, 1244], "mapped", [1245]], [[1245, 1245], "valid"], [[1246, 1246], "mapped", [1247]], [[1247, 1247], "valid"], [[1248, 1248], "mapped", [1249]], [[1249, 1249], "valid"], [[1250, 1250], "mapped", [1251]], [[1251, 1251], "valid"], [[1252, 1252], "mapped", [1253]], [[1253, 1253], "valid"], [[1254, 1254], "mapped", [1255]], [[1255, 1255], "valid"], [[1256, 1256], "mapped", [1257]], [[1257, 1257], "valid"], [[1258, 1258], "mapped", [1259]], [[1259, 1259], "valid"], [[1260, 1260], "mapped", [1261]], [[1261, 1261], "valid"], [[1262, 1262], "mapped", [1263]], [[1263, 1263], "valid"], [[1264, 1264], "mapped", [1265]], [[1265, 1265], "valid"], [[1266, 1266], "mapped", [1267]], [[1267, 1267], "valid"], [[1268, 1268], "mapped", [1269]], [[1269, 1269], "valid"], [[1270, 1270], "mapped", [1271]], [[1271, 1271], "valid"], [[1272, 1272], "mapped", [1273]], [[1273, 1273], "valid"], [[1274, 1274], "mapped", [1275]], [[1275, 1275], "valid"], [[1276, 1276], "mapped", [1277]], [[1277, 1277], "valid"], [[1278, 1278], "mapped", [1279]], [[1279, 1279], "valid"], [[1280, 1280], "mapped", [1281]], [[1281, 1281], "valid"], [[1282, 1282], "mapped", [1283]], [[1283, 1283], "valid"], [[1284, 1284], "mapped", [1285]], [[1285, 1285], "valid"], [[1286, 1286], "mapped", [1287]], [[1287, 1287], "valid"], [[1288, 1288], "mapped", [1289]], [[1289, 1289], "valid"], [[1290, 1290], "mapped", [1291]], [[1291, 1291], "valid"], [[1292, 1292], "mapped", [1293]], [[1293, 1293], "valid"], [[1294, 1294], "mapped", [1295]], [[1295, 1295], "valid"], [[1296, 1296], "mapped", [1297]], [[1297, 1297], "valid"], [[1298, 1298], "mapped", [1299]], [[1299, 1299], "valid"], [[1300, 1300], "mapped", [1301]], [[1301, 1301], "valid"], [[1302, 1302], "mapped", [1303]], [[1303, 1303], "valid"], [[1304, 1304], "mapped", [1305]], [[1305, 1305], "valid"], [[1306, 1306], "mapped", [1307]], [[1307, 1307], "valid"], [[1308, 1308], "mapped", [1309]], [[1309, 1309], "valid"], [[1310, 1310], "mapped", [1311]], [[1311, 1311], "valid"], [[1312, 1312], "mapped", [1313]], [[1313, 1313], "valid"], [[1314, 1314], "mapped", [1315]], [[1315, 1315], "valid"], [[1316, 1316], "mapped", [1317]], [[1317, 1317], "valid"], [[1318, 1318], "mapped", [1319]], [[1319, 1319], "valid"], [[1320, 1320], "mapped", [1321]], [[1321, 1321], "valid"], [[1322, 1322], "mapped", [1323]], [[1323, 1323], "valid"], [[1324, 1324], "mapped", [1325]], [[1325, 1325], "valid"], [[1326, 1326], "mapped", [1327]], [[1327, 1327], "valid"], [[1328, 1328], "disallowed"], [[1329, 1329], "mapped", [1377]], [[1330, 1330], "mapped", [1378]], [[1331, 1331], "mapped", [1379]], [[1332, 1332], "mapped", [1380]], [[1333, 1333], "mapped", [1381]], [[1334, 1334], "mapped", [1382]], [[1335, 1335], "mapped", [1383]], [[1336, 1336], "mapped", [1384]], [[1337, 1337], "mapped", [1385]], [[1338, 1338], "mapped", [1386]], [[1339, 1339], "mapped", [1387]], [[1340, 1340], "mapped", [1388]], [[1341, 1341], "mapped", [1389]], [[1342, 1342], "mapped", [1390]], [[1343, 1343], "mapped", [1391]], [[1344, 1344], "mapped", [1392]], [[1345, 1345], "mapped", [1393]], [[1346, 1346], "mapped", [1394]], [[1347, 1347], "mapped", [1395]], [[1348, 1348], "mapped", [1396]], [[1349, 1349], "mapped", [1397]], [[1350, 1350], "mapped", [1398]], [[1351, 1351], "mapped", [1399]], [[1352, 1352], "mapped", [1400]], [[1353, 1353], "mapped", [1401]], [[1354, 1354], "mapped", [1402]], [[1355, 1355], "mapped", [1403]], [[1356, 1356], "mapped", [1404]], [[1357, 1357], "mapped", [1405]], [[1358, 1358], "mapped", [1406]], [[1359, 1359], "mapped", [1407]], [[1360, 1360], "mapped", [1408]], [[1361, 1361], "mapped", [1409]], [[1362, 1362], "mapped", [1410]], [[1363, 1363], "mapped", [1411]], [[1364, 1364], "mapped", [1412]], [[1365, 1365], "mapped", [1413]], [[1366, 1366], "mapped", [1414]], [[1367, 1368], "disallowed"], [[1369, 1369], "valid"], [[1370, 1375], "valid", [], "NV8"], [[1376, 1376], "disallowed"], [[1377, 1414], "valid"], [[1415, 1415], "mapped", [1381, 1410]], [[1416, 1416], "disallowed"], [[1417, 1417], "valid", [], "NV8"], [[1418, 1418], "valid", [], "NV8"], [[1419, 1420], "disallowed"], [[1421, 1422], "valid", [], "NV8"], [[1423, 1423], "valid", [], "NV8"], [[1424, 1424], "disallowed"], [[1425, 1441], "valid"], [[1442, 1442], "valid"], [[1443, 1455], "valid"], [[1456, 1465], "valid"], [[1466, 1466], "valid"], [[1467, 1469], "valid"], [[1470, 1470], "valid", [], "NV8"], [[1471, 1471], "valid"], [[1472, 1472], "valid", [], "NV8"], [[1473, 1474], "valid"], [[1475, 1475], "valid", [], "NV8"], [[1476, 1476], "valid"], [[1477, 1477], "valid"], [[1478, 1478], "valid", [], "NV8"], [[1479, 1479], "valid"], [[1480, 1487], "disallowed"], [[1488, 1514], "valid"], [[1515, 1519], "disallowed"], [[1520, 1524], "valid"], [[1525, 1535], "disallowed"], [[1536, 1539], "disallowed"], [[1540, 1540], "disallowed"], [[1541, 1541], "disallowed"], [[1542, 1546], "valid", [], "NV8"], [[1547, 1547], "valid", [], "NV8"], [[1548, 1548], "valid", [], "NV8"], [[1549, 1551], "valid", [], "NV8"], [[1552, 1557], "valid"], [[1558, 1562], "valid"], [[1563, 1563], "valid", [], "NV8"], [[1564, 1564], "disallowed"], [[1565, 1565], "disallowed"], [[1566, 1566], "valid", [], "NV8"], [[1567, 1567], "valid", [], "NV8"], [[1568, 1568], "valid"], [[1569, 1594], "valid"], [[1595, 1599], "valid"], [[1600, 1600], "valid", [], "NV8"], [[1601, 1618], "valid"], [[1619, 1621], "valid"], [[1622, 1624], "valid"], [[1625, 1630], "valid"], [[1631, 1631], "valid"], [[1632, 1641], "valid"], [[1642, 1645], "valid", [], "NV8"], [[1646, 1647], "valid"], [[1648, 1652], "valid"], [[1653, 1653], "mapped", [1575, 1652]], [[1654, 1654], "mapped", [1608, 1652]], [[1655, 1655], "mapped", [1735, 1652]], [[1656, 1656], "mapped", [1610, 1652]], [[1657, 1719], "valid"], [[1720, 1721], "valid"], [[1722, 1726], "valid"], [[1727, 1727], "valid"], [[1728, 1742], "valid"], [[1743, 1743], "valid"], [[1744, 1747], "valid"], [[1748, 1748], "valid", [], "NV8"], [[1749, 1756], "valid"], [[1757, 1757], "disallowed"], [[1758, 1758], "valid", [], "NV8"], [[1759, 1768], "valid"], [[1769, 1769], "valid", [], "NV8"], [[1770, 1773], "valid"], [[1774, 1775], "valid"], [[1776, 1785], "valid"], [[1786, 1790], "valid"], [[1791, 1791], "valid"], [[1792, 1805], "valid", [], "NV8"], [[1806, 1806], "disallowed"], [[1807, 1807], "disallowed"], [[1808, 1836], "valid"], [[1837, 1839], "valid"], [[1840, 1866], "valid"], [[1867, 1868], "disallowed"], [[1869, 1871], "valid"], [[1872, 1901], "valid"], [[1902, 1919], "valid"], [[1920, 1968], "valid"], [[1969, 1969], "valid"], [[1970, 1983], "disallowed"], [[1984, 2037], "valid"], [[2038, 2042], "valid", [], "NV8"], [[2043, 2047], "disallowed"], [[2048, 2093], "valid"], [[2094, 2095], "disallowed"], [[2096, 2110], "valid", [], "NV8"], [[2111, 2111], "disallowed"], [[2112, 2139], "valid"], [[2140, 2141], "disallowed"], [[2142, 2142], "valid", [], "NV8"], [[2143, 2207], "disallowed"], [[2208, 2208], "valid"], [[2209, 2209], "valid"], [[2210, 2220], "valid"], [[2221, 2226], "valid"], [[2227, 2228], "valid"], [[2229, 2274], "disallowed"], [[2275, 2275], "valid"], [[2276, 2302], "valid"], [[2303, 2303], "valid"], [[2304, 2304], "valid"], [[2305, 2307], "valid"], [[2308, 2308], "valid"], [[2309, 2361], "valid"], [[2362, 2363], "valid"], [[2364, 2381], "valid"], [[2382, 2382], "valid"], [[2383, 2383], "valid"], [[2384, 2388], "valid"], [[2389, 2389], "valid"], [[2390, 2391], "valid"], [[2392, 2392], "mapped", [2325, 2364]], [[2393, 2393], "mapped", [2326, 2364]], [[2394, 2394], "mapped", [2327, 2364]], [[2395, 2395], "mapped", [2332, 2364]], [[2396, 2396], "mapped", [2337, 2364]], [[2397, 2397], "mapped", [2338, 2364]], [[2398, 2398], "mapped", [2347, 2364]], [[2399, 2399], "mapped", [2351, 2364]], [[2400, 2403], "valid"], [[2404, 2405], "valid", [], "NV8"], [[2406, 2415], "valid"], [[2416, 2416], "valid", [], "NV8"], [[2417, 2418], "valid"], [[2419, 2423], "valid"], [[2424, 2424], "valid"], [[2425, 2426], "valid"], [[2427, 2428], "valid"], [[2429, 2429], "valid"], [[2430, 2431], "valid"], [[2432, 2432], "valid"], [[2433, 2435], "valid"], [[2436, 2436], "disallowed"], [[2437, 2444], "valid"], [[2445, 2446], "disallowed"], [[2447, 2448], "valid"], [[2449, 2450], "disallowed"], [[2451, 2472], "valid"], [[2473, 2473], "disallowed"], [[2474, 2480], "valid"], [[2481, 2481], "disallowed"], [[2482, 2482], "valid"], [[2483, 2485], "disallowed"], [[2486, 2489], "valid"], [[2490, 2491], "disallowed"], [[2492, 2492], "valid"], [[2493, 2493], "valid"], [[2494, 2500], "valid"], [[2501, 2502], "disallowed"], [[2503, 2504], "valid"], [[2505, 2506], "disallowed"], [[2507, 2509], "valid"], [[2510, 2510], "valid"], [[2511, 2518], "disallowed"], [[2519, 2519], "valid"], [[2520, 2523], "disallowed"], [[2524, 2524], "mapped", [2465, 2492]], [[2525, 2525], "mapped", [2466, 2492]], [[2526, 2526], "disallowed"], [[2527, 2527], "mapped", [2479, 2492]], [[2528, 2531], "valid"], [[2532, 2533], "disallowed"], [[2534, 2545], "valid"], [[2546, 2554], "valid", [], "NV8"], [[2555, 2555], "valid", [], "NV8"], [[2556, 2560], "disallowed"], [[2561, 2561], "valid"], [[2562, 2562], "valid"], [[2563, 2563], "valid"], [[2564, 2564], "disallowed"], [[2565, 2570], "valid"], [[2571, 2574], "disallowed"], [[2575, 2576], "valid"], [[2577, 2578], "disallowed"], [[2579, 2600], "valid"], [[2601, 2601], "disallowed"], [[2602, 2608], "valid"], [[2609, 2609], "disallowed"], [[2610, 2610], "valid"], [[2611, 2611], "mapped", [2610, 2620]], [[2612, 2612], "disallowed"], [[2613, 2613], "valid"], [[2614, 2614], "mapped", [2616, 2620]], [[2615, 2615], "disallowed"], [[2616, 2617], "valid"], [[2618, 2619], "disallowed"], [[2620, 2620], "valid"], [[2621, 2621], "disallowed"], [[2622, 2626], "valid"], [[2627, 2630], "disallowed"], [[2631, 2632], "valid"], [[2633, 2634], "disallowed"], [[2635, 2637], "valid"], [[2638, 2640], "disallowed"], [[2641, 2641], "valid"], [[2642, 2648], "disallowed"], [[2649, 2649], "mapped", [2582, 2620]], [[2650, 2650], "mapped", [2583, 2620]], [[2651, 2651], "mapped", [2588, 2620]], [[2652, 2652], "valid"], [[2653, 2653], "disallowed"], [[2654, 2654], "mapped", [2603, 2620]], [[2655, 2661], "disallowed"], [[2662, 2676], "valid"], [[2677, 2677], "valid"], [[2678, 2688], "disallowed"], [[2689, 2691], "valid"], [[2692, 2692], "disallowed"], [[2693, 2699], "valid"], [[2700, 2700], "valid"], [[2701, 2701], "valid"], [[2702, 2702], "disallowed"], [[2703, 2705], "valid"], [[2706, 2706], "disallowed"], [[2707, 2728], "valid"], [[2729, 2729], "disallowed"], [[2730, 2736], "valid"], [[2737, 2737], "disallowed"], [[2738, 2739], "valid"], [[2740, 2740], "disallowed"], [[2741, 2745], "valid"], [[2746, 2747], "disallowed"], [[2748, 2757], "valid"], [[2758, 2758], "disallowed"], [[2759, 2761], "valid"], [[2762, 2762], "disallowed"], [[2763, 2765], "valid"], [[2766, 2767], "disallowed"], [[2768, 2768], "valid"], [[2769, 2783], "disallowed"], [[2784, 2784], "valid"], [[2785, 2787], "valid"], [[2788, 2789], "disallowed"], [[2790, 2799], "valid"], [[2800, 2800], "valid", [], "NV8"], [[2801, 2801], "valid", [], "NV8"], [[2802, 2808], "disallowed"], [[2809, 2809], "valid"], [[2810, 2816], "disallowed"], [[2817, 2819], "valid"], [[2820, 2820], "disallowed"], [[2821, 2828], "valid"], [[2829, 2830], "disallowed"], [[2831, 2832], "valid"], [[2833, 2834], "disallowed"], [[2835, 2856], "valid"], [[2857, 2857], "disallowed"], [[2858, 2864], "valid"], [[2865, 2865], "disallowed"], [[2866, 2867], "valid"], [[2868, 2868], "disallowed"], [[2869, 2869], "valid"], [[2870, 2873], "valid"], [[2874, 2875], "disallowed"], [[2876, 2883], "valid"], [[2884, 2884], "valid"], [[2885, 2886], "disallowed"], [[2887, 2888], "valid"], [[2889, 2890], "disallowed"], [[2891, 2893], "valid"], [[2894, 2901], "disallowed"], [[2902, 2903], "valid"], [[2904, 2907], "disallowed"], [[2908, 2908], "mapped", [2849, 2876]], [[2909, 2909], "mapped", [2850, 2876]], [[2910, 2910], "disallowed"], [[2911, 2913], "valid"], [[2914, 2915], "valid"], [[2916, 2917], "disallowed"], [[2918, 2927], "valid"], [[2928, 2928], "valid", [], "NV8"], [[2929, 2929], "valid"], [[2930, 2935], "valid", [], "NV8"], [[2936, 2945], "disallowed"], [[2946, 2947], "valid"], [[2948, 2948], "disallowed"], [[2949, 2954], "valid"], [[2955, 2957], "disallowed"], [[2958, 2960], "valid"], [[2961, 2961], "disallowed"], [[2962, 2965], "valid"], [[2966, 2968], "disallowed"], [[2969, 2970], "valid"], [[2971, 2971], "disallowed"], [[2972, 2972], "valid"], [[2973, 2973], "disallowed"], [[2974, 2975], "valid"], [[2976, 2978], "disallowed"], [[2979, 2980], "valid"], [[2981, 2983], "disallowed"], [[2984, 2986], "valid"], [[2987, 2989], "disallowed"], [[2990, 2997], "valid"], [[2998, 2998], "valid"], [[2999, 3001], "valid"], [[3002, 3005], "disallowed"], [[3006, 3010], "valid"], [[3011, 3013], "disallowed"], [[3014, 3016], "valid"], [[3017, 3017], "disallowed"], [[3018, 3021], "valid"], [[3022, 3023], "disallowed"], [[3024, 3024], "valid"], [[3025, 3030], "disallowed"], [[3031, 3031], "valid"], [[3032, 3045], "disallowed"], [[3046, 3046], "valid"], [[3047, 3055], "valid"], [[3056, 3058], "valid", [], "NV8"], [[3059, 3066], "valid", [], "NV8"], [[3067, 3071], "disallowed"], [[3072, 3072], "valid"], [[3073, 3075], "valid"], [[3076, 3076], "disallowed"], [[3077, 3084], "valid"], [[3085, 3085], "disallowed"], [[3086, 3088], "valid"], [[3089, 3089], "disallowed"], [[3090, 3112], "valid"], [[3113, 3113], "disallowed"], [[3114, 3123], "valid"], [[3124, 3124], "valid"], [[3125, 3129], "valid"], [[3130, 3132], "disallowed"], [[3133, 3133], "valid"], [[3134, 3140], "valid"], [[3141, 3141], "disallowed"], [[3142, 3144], "valid"], [[3145, 3145], "disallowed"], [[3146, 3149], "valid"], [[3150, 3156], "disallowed"], [[3157, 3158], "valid"], [[3159, 3159], "disallowed"], [[3160, 3161], "valid"], [[3162, 3162], "valid"], [[3163, 3167], "disallowed"], [[3168, 3169], "valid"], [[3170, 3171], "valid"], [[3172, 3173], "disallowed"], [[3174, 3183], "valid"], [[3184, 3191], "disallowed"], [[3192, 3199], "valid", [], "NV8"], [[3200, 3200], "disallowed"], [[3201, 3201], "valid"], [[3202, 3203], "valid"], [[3204, 3204], "disallowed"], [[3205, 3212], "valid"], [[3213, 3213], "disallowed"], [[3214, 3216], "valid"], [[3217, 3217], "disallowed"], [[3218, 3240], "valid"], [[3241, 3241], "disallowed"], [[3242, 3251], "valid"], [[3252, 3252], "disallowed"], [[3253, 3257], "valid"], [[3258, 3259], "disallowed"], [[3260, 3261], "valid"], [[3262, 3268], "valid"], [[3269, 3269], "disallowed"], [[3270, 3272], "valid"], [[3273, 3273], "disallowed"], [[3274, 3277], "valid"], [[3278, 3284], "disallowed"], [[3285, 3286], "valid"], [[3287, 3293], "disallowed"], [[3294, 3294], "valid"], [[3295, 3295], "disallowed"], [[3296, 3297], "valid"], [[3298, 3299], "valid"], [[3300, 3301], "disallowed"], [[3302, 3311], "valid"], [[3312, 3312], "disallowed"], [[3313, 3314], "valid"], [[3315, 3328], "disallowed"], [[3329, 3329], "valid"], [[3330, 3331], "valid"], [[3332, 3332], "disallowed"], [[3333, 3340], "valid"], [[3341, 3341], "disallowed"], [[3342, 3344], "valid"], [[3345, 3345], "disallowed"], [[3346, 3368], "valid"], [[3369, 3369], "valid"], [[3370, 3385], "valid"], [[3386, 3386], "valid"], [[3387, 3388], "disallowed"], [[3389, 3389], "valid"], [[3390, 3395], "valid"], [[3396, 3396], "valid"], [[3397, 3397], "disallowed"], [[3398, 3400], "valid"], [[3401, 3401], "disallowed"], [[3402, 3405], "valid"], [[3406, 3406], "valid"], [[3407, 3414], "disallowed"], [[3415, 3415], "valid"], [[3416, 3422], "disallowed"], [[3423, 3423], "valid"], [[3424, 3425], "valid"], [[3426, 3427], "valid"], [[3428, 3429], "disallowed"], [[3430, 3439], "valid"], [[3440, 3445], "valid", [], "NV8"], [[3446, 3448], "disallowed"], [[3449, 3449], "valid", [], "NV8"], [[3450, 3455], "valid"], [[3456, 3457], "disallowed"], [[3458, 3459], "valid"], [[3460, 3460], "disallowed"], [[3461, 3478], "valid"], [[3479, 3481], "disallowed"], [[3482, 3505], "valid"], [[3506, 3506], "disallowed"], [[3507, 3515], "valid"], [[3516, 3516], "disallowed"], [[3517, 3517], "valid"], [[3518, 3519], "disallowed"], [[3520, 3526], "valid"], [[3527, 3529], "disallowed"], [[3530, 3530], "valid"], [[3531, 3534], "disallowed"], [[3535, 3540], "valid"], [[3541, 3541], "disallowed"], [[3542, 3542], "valid"], [[3543, 3543], "disallowed"], [[3544, 3551], "valid"], [[3552, 3557], "disallowed"], [[3558, 3567], "valid"], [[3568, 3569], "disallowed"], [[3570, 3571], "valid"], [[3572, 3572], "valid", [], "NV8"], [[3573, 3584], "disallowed"], [[3585, 3634], "valid"], [[3635, 3635], "mapped", [3661, 3634]], [[3636, 3642], "valid"], [[3643, 3646], "disallowed"], [[3647, 3647], "valid", [], "NV8"], [[3648, 3662], "valid"], [[3663, 3663], "valid", [], "NV8"], [[3664, 3673], "valid"], [[3674, 3675], "valid", [], "NV8"], [[3676, 3712], "disallowed"], [[3713, 3714], "valid"], [[3715, 3715], "disallowed"], [[3716, 3716], "valid"], [[3717, 3718], "disallowed"], [[3719, 3720], "valid"], [[3721, 3721], "disallowed"], [[3722, 3722], "valid"], [[3723, 3724], "disallowed"], [[3725, 3725], "valid"], [[3726, 3731], "disallowed"], [[3732, 3735], "valid"], [[3736, 3736], "disallowed"], [[3737, 3743], "valid"], [[3744, 3744], "disallowed"], [[3745, 3747], "valid"], [[3748, 3748], "disallowed"], [[3749, 3749], "valid"], [[3750, 3750], "disallowed"], [[3751, 3751], "valid"], [[3752, 3753], "disallowed"], [[3754, 3755], "valid"], [[3756, 3756], "disallowed"], [[3757, 3762], "valid"], [[3763, 3763], "mapped", [3789, 3762]], [[3764, 3769], "valid"], [[3770, 3770], "disallowed"], [[3771, 3773], "valid"], [[3774, 3775], "disallowed"], [[3776, 3780], "valid"], [[3781, 3781], "disallowed"], [[3782, 3782], "valid"], [[3783, 3783], "disallowed"], [[3784, 3789], "valid"], [[3790, 3791], "disallowed"], [[3792, 3801], "valid"], [[3802, 3803], "disallowed"], [[3804, 3804], "mapped", [3755, 3737]], [[3805, 3805], "mapped", [3755, 3745]], [[3806, 3807], "valid"], [[3808, 3839], "disallowed"], [[3840, 3840], "valid"], [[3841, 3850], "valid", [], "NV8"], [[3851, 3851], "valid"], [[3852, 3852], "mapped", [3851]], [[3853, 3863], "valid", [], "NV8"], [[3864, 3865], "valid"], [[3866, 3871], "valid", [], "NV8"], [[3872, 3881], "valid"], [[3882, 3892], "valid", [], "NV8"], [[3893, 3893], "valid"], [[3894, 3894], "valid", [], "NV8"], [[3895, 3895], "valid"], [[3896, 3896], "valid", [], "NV8"], [[3897, 3897], "valid"], [[3898, 3901], "valid", [], "NV8"], [[3902, 3906], "valid"], [[3907, 3907], "mapped", [3906, 4023]], [[3908, 3911], "valid"], [[3912, 3912], "disallowed"], [[3913, 3916], "valid"], [[3917, 3917], "mapped", [3916, 4023]], [[3918, 3921], "valid"], [[3922, 3922], "mapped", [3921, 4023]], [[3923, 3926], "valid"], [[3927, 3927], "mapped", [3926, 4023]], [[3928, 3931], "valid"], [[3932, 3932], "mapped", [3931, 4023]], [[3933, 3944], "valid"], [[3945, 3945], "mapped", [3904, 4021]], [[3946, 3946], "valid"], [[3947, 3948], "valid"], [[3949, 3952], "disallowed"], [[3953, 3954], "valid"], [[3955, 3955], "mapped", [3953, 3954]], [[3956, 3956], "valid"], [[3957, 3957], "mapped", [3953, 3956]], [[3958, 3958], "mapped", [4018, 3968]], [[3959, 3959], "mapped", [4018, 3953, 3968]], [[3960, 3960], "mapped", [4019, 3968]], [[3961, 3961], "mapped", [4019, 3953, 3968]], [[3962, 3968], "valid"], [[3969, 3969], "mapped", [3953, 3968]], [[3970, 3972], "valid"], [[3973, 3973], "valid", [], "NV8"], [[3974, 3979], "valid"], [[3980, 3983], "valid"], [[3984, 3986], "valid"], [[3987, 3987], "mapped", [3986, 4023]], [[3988, 3989], "valid"], [[3990, 3990], "valid"], [[3991, 3991], "valid"], [[3992, 3992], "disallowed"], [[3993, 3996], "valid"], [[3997, 3997], "mapped", [3996, 4023]], [[3998, 4001], "valid"], [[4002, 4002], "mapped", [4001, 4023]], [[4003, 4006], "valid"], [[4007, 4007], "mapped", [4006, 4023]], [[4008, 4011], "valid"], [[4012, 4012], "mapped", [4011, 4023]], [[4013, 4013], "valid"], [[4014, 4016], "valid"], [[4017, 4023], "valid"], [[4024, 4024], "valid"], [[4025, 4025], "mapped", [3984, 4021]], [[4026, 4028], "valid"], [[4029, 4029], "disallowed"], [[4030, 4037], "valid", [], "NV8"], [[4038, 4038], "valid"], [[4039, 4044], "valid", [], "NV8"], [[4045, 4045], "disallowed"], [[4046, 4046], "valid", [], "NV8"], [[4047, 4047], "valid", [], "NV8"], [[4048, 4049], "valid", [], "NV8"], [[4050, 4052], "valid", [], "NV8"], [[4053, 4056], "valid", [], "NV8"], [[4057, 4058], "valid", [], "NV8"], [[4059, 4095], "disallowed"], [[4096, 4129], "valid"], [[4130, 4130], "valid"], [[4131, 4135], "valid"], [[4136, 4136], "valid"], [[4137, 4138], "valid"], [[4139, 4139], "valid"], [[4140, 4146], "valid"], [[4147, 4149], "valid"], [[4150, 4153], "valid"], [[4154, 4159], "valid"], [[4160, 4169], "valid"], [[4170, 4175], "valid", [], "NV8"], [[4176, 4185], "valid"], [[4186, 4249], "valid"], [[4250, 4253], "valid"], [[4254, 4255], "valid", [], "NV8"], [[4256, 4293], "disallowed"], [[4294, 4294], "disallowed"], [[4295, 4295], "mapped", [11559]], [[4296, 4300], "disallowed"], [[4301, 4301], "mapped", [11565]], [[4302, 4303], "disallowed"], [[4304, 4342], "valid"], [[4343, 4344], "valid"], [[4345, 4346], "valid"], [[4347, 4347], "valid", [], "NV8"], [[4348, 4348], "mapped", [4316]], [[4349, 4351], "valid"], [[4352, 4441], "valid", [], "NV8"], [[4442, 4446], "valid", [], "NV8"], [[4447, 4448], "disallowed"], [[4449, 4514], "valid", [], "NV8"], [[4515, 4519], "valid", [], "NV8"], [[4520, 4601], "valid", [], "NV8"], [[4602, 4607], "valid", [], "NV8"], [[4608, 4614], "valid"], [[4615, 4615], "valid"], [[4616, 4678], "valid"], [[4679, 4679], "valid"], [[4680, 4680], "valid"], [[4681, 4681], "disallowed"], [[4682, 4685], "valid"], [[4686, 4687], "disallowed"], [[4688, 4694], "valid"], [[4695, 4695], "disallowed"], [[4696, 4696], "valid"], [[4697, 4697], "disallowed"], [[4698, 4701], "valid"], [[4702, 4703], "disallowed"], [[4704, 4742], "valid"], [[4743, 4743], "valid"], [[4744, 4744], "valid"], [[4745, 4745], "disallowed"], [[4746, 4749], "valid"], [[4750, 4751], "disallowed"], [[4752, 4782], "valid"], [[4783, 4783], "valid"], [[4784, 4784], "valid"], [[4785, 4785], "disallowed"], [[4786, 4789], "valid"], [[4790, 4791], "disallowed"], [[4792, 4798], "valid"], [[4799, 4799], "disallowed"], [[4800, 4800], "valid"], [[4801, 4801], "disallowed"], [[4802, 4805], "valid"], [[4806, 4807], "disallowed"], [[4808, 4814], "valid"], [[4815, 4815], "valid"], [[4816, 4822], "valid"], [[4823, 4823], "disallowed"], [[4824, 4846], "valid"], [[4847, 4847], "valid"], [[4848, 4878], "valid"], [[4879, 4879], "valid"], [[4880, 4880], "valid"], [[4881, 4881], "disallowed"], [[4882, 4885], "valid"], [[4886, 4887], "disallowed"], [[4888, 4894], "valid"], [[4895, 4895], "valid"], [[4896, 4934], "valid"], [[4935, 4935], "valid"], [[4936, 4954], "valid"], [[4955, 4956], "disallowed"], [[4957, 4958], "valid"], [[4959, 4959], "valid"], [[4960, 4960], "valid", [], "NV8"], [[4961, 4988], "valid", [], "NV8"], [[4989, 4991], "disallowed"], [[4992, 5007], "valid"], [[5008, 5017], "valid", [], "NV8"], [[5018, 5023], "disallowed"], [[5024, 5108], "valid"], [[5109, 5109], "valid"], [[5110, 5111], "disallowed"], [[5112, 5112], "mapped", [5104]], [[5113, 5113], "mapped", [5105]], [[5114, 5114], "mapped", [5106]], [[5115, 5115], "mapped", [5107]], [[5116, 5116], "mapped", [5108]], [[5117, 5117], "mapped", [5109]], [[5118, 5119], "disallowed"], [[5120, 5120], "valid", [], "NV8"], [[5121, 5740], "valid"], [[5741, 5742], "valid", [], "NV8"], [[5743, 5750], "valid"], [[5751, 5759], "valid"], [[5760, 5760], "disallowed"], [[5761, 5786], "valid"], [[5787, 5788], "valid", [], "NV8"], [[5789, 5791], "disallowed"], [[5792, 5866], "valid"], [[5867, 5872], "valid", [], "NV8"], [[5873, 5880], "valid"], [[5881, 5887], "disallowed"], [[5888, 5900], "valid"], [[5901, 5901], "disallowed"], [[5902, 5908], "valid"], [[5909, 5919], "disallowed"], [[5920, 5940], "valid"], [[5941, 5942], "valid", [], "NV8"], [[5943, 5951], "disallowed"], [[5952, 5971], "valid"], [[5972, 5983], "disallowed"], [[5984, 5996], "valid"], [[5997, 5997], "disallowed"], [[5998, 6e3], "valid"], [[6001, 6001], "disallowed"], [[6002, 6003], "valid"], [[6004, 6015], "disallowed"], [[6016, 6067], "valid"], [[6068, 6069], "disallowed"], [[6070, 6099], "valid"], [[6100, 6102], "valid", [], "NV8"], [[6103, 6103], "valid"], [[6104, 6107], "valid", [], "NV8"], [[6108, 6108], "valid"], [[6109, 6109], "valid"], [[6110, 6111], "disallowed"], [[6112, 6121], "valid"], [[6122, 6127], "disallowed"], [[6128, 6137], "valid", [], "NV8"], [[6138, 6143], "disallowed"], [[6144, 6149], "valid", [], "NV8"], [[6150, 6150], "disallowed"], [[6151, 6154], "valid", [], "NV8"], [[6155, 6157], "ignored"], [[6158, 6158], "disallowed"], [[6159, 6159], "disallowed"], [[6160, 6169], "valid"], [[6170, 6175], "disallowed"], [[6176, 6263], "valid"], [[6264, 6271], "disallowed"], [[6272, 6313], "valid"], [[6314, 6314], "valid"], [[6315, 6319], "disallowed"], [[6320, 6389], "valid"], [[6390, 6399], "disallowed"], [[6400, 6428], "valid"], [[6429, 6430], "valid"], [[6431, 6431], "disallowed"], [[6432, 6443], "valid"], [[6444, 6447], "disallowed"], [[6448, 6459], "valid"], [[6460, 6463], "disallowed"], [[6464, 6464], "valid", [], "NV8"], [[6465, 6467], "disallowed"], [[6468, 6469], "valid", [], "NV8"], [[6470, 6509], "valid"], [[6510, 6511], "disallowed"], [[6512, 6516], "valid"], [[6517, 6527], "disallowed"], [[6528, 6569], "valid"], [[6570, 6571], "valid"], [[6572, 6575], "disallowed"], [[6576, 6601], "valid"], [[6602, 6607], "disallowed"], [[6608, 6617], "valid"], [[6618, 6618], "valid", [], "XV8"], [[6619, 6621], "disallowed"], [[6622, 6623], "valid", [], "NV8"], [[6624, 6655], "valid", [], "NV8"], [[6656, 6683], "valid"], [[6684, 6685], "disallowed"], [[6686, 6687], "valid", [], "NV8"], [[6688, 6750], "valid"], [[6751, 6751], "disallowed"], [[6752, 6780], "valid"], [[6781, 6782], "disallowed"], [[6783, 6793], "valid"], [[6794, 6799], "disallowed"], [[6800, 6809], "valid"], [[6810, 6815], "disallowed"], [[6816, 6822], "valid", [], "NV8"], [[6823, 6823], "valid"], [[6824, 6829], "valid", [], "NV8"], [[6830, 6831], "disallowed"], [[6832, 6845], "valid"], [[6846, 6846], "valid", [], "NV8"], [[6847, 6911], "disallowed"], [[6912, 6987], "valid"], [[6988, 6991], "disallowed"], [[6992, 7001], "valid"], [[7002, 7018], "valid", [], "NV8"], [[7019, 7027], "valid"], [[7028, 7036], "valid", [], "NV8"], [[7037, 7039], "disallowed"], [[7040, 7082], "valid"], [[7083, 7085], "valid"], [[7086, 7097], "valid"], [[7098, 7103], "valid"], [[7104, 7155], "valid"], [[7156, 7163], "disallowed"], [[7164, 7167], "valid", [], "NV8"], [[7168, 7223], "valid"], [[7224, 7226], "disallowed"], [[7227, 7231], "valid", [], "NV8"], [[7232, 7241], "valid"], [[7242, 7244], "disallowed"], [[7245, 7293], "valid"], [[7294, 7295], "valid", [], "NV8"], [[7296, 7359], "disallowed"], [[7360, 7367], "valid", [], "NV8"], [[7368, 7375], "disallowed"], [[7376, 7378], "valid"], [[7379, 7379], "valid", [], "NV8"], [[7380, 7410], "valid"], [[7411, 7414], "valid"], [[7415, 7415], "disallowed"], [[7416, 7417], "valid"], [[7418, 7423], "disallowed"], [[7424, 7467], "valid"], [[7468, 7468], "mapped", [97]], [[7469, 7469], "mapped", [230]], [[7470, 7470], "mapped", [98]], [[7471, 7471], "valid"], [[7472, 7472], "mapped", [100]], [[7473, 7473], "mapped", [101]], [[7474, 7474], "mapped", [477]], [[7475, 7475], "mapped", [103]], [[7476, 7476], "mapped", [104]], [[7477, 7477], "mapped", [105]], [[7478, 7478], "mapped", [106]], [[7479, 7479], "mapped", [107]], [[7480, 7480], "mapped", [108]], [[7481, 7481], "mapped", [109]], [[7482, 7482], "mapped", [110]], [[7483, 7483], "valid"], [[7484, 7484], "mapped", [111]], [[7485, 7485], "mapped", [547]], [[7486, 7486], "mapped", [112]], [[7487, 7487], "mapped", [114]], [[7488, 7488], "mapped", [116]], [[7489, 7489], "mapped", [117]], [[7490, 7490], "mapped", [119]], [[7491, 7491], "mapped", [97]], [[7492, 7492], "mapped", [592]], [[7493, 7493], "mapped", [593]], [[7494, 7494], "mapped", [7426]], [[7495, 7495], "mapped", [98]], [[7496, 7496], "mapped", [100]], [[7497, 7497], "mapped", [101]], [[7498, 7498], "mapped", [601]], [[7499, 7499], "mapped", [603]], [[7500, 7500], "mapped", [604]], [[7501, 7501], "mapped", [103]], [[7502, 7502], "valid"], [[7503, 7503], "mapped", [107]], [[7504, 7504], "mapped", [109]], [[7505, 7505], "mapped", [331]], [[7506, 7506], "mapped", [111]], [[7507, 7507], "mapped", [596]], [[7508, 7508], "mapped", [7446]], [[7509, 7509], "mapped", [7447]], [[7510, 7510], "mapped", [112]], [[7511, 7511], "mapped", [116]], [[7512, 7512], "mapped", [117]], [[7513, 7513], "mapped", [7453]], [[7514, 7514], "mapped", [623]], [[7515, 7515], "mapped", [118]], [[7516, 7516], "mapped", [7461]], [[7517, 7517], "mapped", [946]], [[7518, 7518], "mapped", [947]], [[7519, 7519], "mapped", [948]], [[7520, 7520], "mapped", [966]], [[7521, 7521], "mapped", [967]], [[7522, 7522], "mapped", [105]], [[7523, 7523], "mapped", [114]], [[7524, 7524], "mapped", [117]], [[7525, 7525], "mapped", [118]], [[7526, 7526], "mapped", [946]], [[7527, 7527], "mapped", [947]], [[7528, 7528], "mapped", [961]], [[7529, 7529], "mapped", [966]], [[7530, 7530], "mapped", [967]], [[7531, 7531], "valid"], [[7532, 7543], "valid"], [[7544, 7544], "mapped", [1085]], [[7545, 7578], "valid"], [[7579, 7579], "mapped", [594]], [[7580, 7580], "mapped", [99]], [[7581, 7581], "mapped", [597]], [[7582, 7582], "mapped", [240]], [[7583, 7583], "mapped", [604]], [[7584, 7584], "mapped", [102]], [[7585, 7585], "mapped", [607]], [[7586, 7586], "mapped", [609]], [[7587, 7587], "mapped", [613]], [[7588, 7588], "mapped", [616]], [[7589, 7589], "mapped", [617]], [[7590, 7590], "mapped", [618]], [[7591, 7591], "mapped", [7547]], [[7592, 7592], "mapped", [669]], [[7593, 7593], "mapped", [621]], [[7594, 7594], "mapped", [7557]], [[7595, 7595], "mapped", [671]], [[7596, 7596], "mapped", [625]], [[7597, 7597], "mapped", [624]], [[7598, 7598], "mapped", [626]], [[7599, 7599], "mapped", [627]], [[7600, 7600], "mapped", [628]], [[7601, 7601], "mapped", [629]], [[7602, 7602], "mapped", [632]], [[7603, 7603], "mapped", [642]], [[7604, 7604], "mapped", [643]], [[7605, 7605], "mapped", [427]], [[7606, 7606], "mapped", [649]], [[7607, 7607], "mapped", [650]], [[7608, 7608], "mapped", [7452]], [[7609, 7609], "mapped", [651]], [[7610, 7610], "mapped", [652]], [[7611, 7611], "mapped", [122]], [[7612, 7612], "mapped", [656]], [[7613, 7613], "mapped", [657]], [[7614, 7614], "mapped", [658]], [[7615, 7615], "mapped", [952]], [[7616, 7619], "valid"], [[7620, 7626], "valid"], [[7627, 7654], "valid"], [[7655, 7669], "valid"], [[7670, 7675], "disallowed"], [[7676, 7676], "valid"], [[7677, 7677], "valid"], [[7678, 7679], "valid"], [[7680, 7680], "mapped", [7681]], [[7681, 7681], "valid"], [[7682, 7682], "mapped", [7683]], [[7683, 7683], "valid"], [[7684, 7684], "mapped", [7685]], [[7685, 7685], "valid"], [[7686, 7686], "mapped", [7687]], [[7687, 7687], "valid"], [[7688, 7688], "mapped", [7689]], [[7689, 7689], "valid"], [[7690, 7690], "mapped", [7691]], [[7691, 7691], "valid"], [[7692, 7692], "mapped", [7693]], [[7693, 7693], "valid"], [[7694, 7694], "mapped", [7695]], [[7695, 7695], "valid"], [[7696, 7696], "mapped", [7697]], [[7697, 7697], "valid"], [[7698, 7698], "mapped", [7699]], [[7699, 7699], "valid"], [[7700, 7700], "mapped", [7701]], [[7701, 7701], "valid"], [[7702, 7702], "mapped", [7703]], [[7703, 7703], "valid"], [[7704, 7704], "mapped", [7705]], [[7705, 7705], "valid"], [[7706, 7706], "mapped", [7707]], [[7707, 7707], "valid"], [[7708, 7708], "mapped", [7709]], [[7709, 7709], "valid"], [[7710, 7710], "mapped", [7711]], [[7711, 7711], "valid"], [[7712, 7712], "mapped", [7713]], [[7713, 7713], "valid"], [[7714, 7714], "mapped", [7715]], [[7715, 7715], "valid"], [[7716, 7716], "mapped", [7717]], [[7717, 7717], "valid"], [[7718, 7718], "mapped", [7719]], [[7719, 7719], "valid"], [[7720, 7720], "mapped", [7721]], [[7721, 7721], "valid"], [[7722, 7722], "mapped", [7723]], [[7723, 7723], "valid"], [[7724, 7724], "mapped", [7725]], [[7725, 7725], "valid"], [[7726, 7726], "mapped", [7727]], [[7727, 7727], "valid"], [[7728, 7728], "mapped", [7729]], [[7729, 7729], "valid"], [[7730, 7730], "mapped", [7731]], [[7731, 7731], "valid"], [[7732, 7732], "mapped", [7733]], [[7733, 7733], "valid"], [[7734, 7734], "mapped", [7735]], [[7735, 7735], "valid"], [[7736, 7736], "mapped", [7737]], [[7737, 7737], "valid"], [[7738, 7738], "mapped", [7739]], [[7739, 7739], "valid"], [[7740, 7740], "mapped", [7741]], [[7741, 7741], "valid"], [[7742, 7742], "mapped", [7743]], [[7743, 7743], "valid"], [[7744, 7744], "mapped", [7745]], [[7745, 7745], "valid"], [[7746, 7746], "mapped", [7747]], [[7747, 7747], "valid"], [[7748, 7748], "mapped", [7749]], [[7749, 7749], "valid"], [[7750, 7750], "mapped", [7751]], [[7751, 7751], "valid"], [[7752, 7752], "mapped", [7753]], [[7753, 7753], "valid"], [[7754, 7754], "mapped", [7755]], [[7755, 7755], "valid"], [[7756, 7756], "mapped", [7757]], [[7757, 7757], "valid"], [[7758, 7758], "mapped", [7759]], [[7759, 7759], "valid"], [[7760, 7760], "mapped", [7761]], [[7761, 7761], "valid"], [[7762, 7762], "mapped", [7763]], [[7763, 7763], "valid"], [[7764, 7764], "mapped", [7765]], [[7765, 7765], "valid"], [[7766, 7766], "mapped", [7767]], [[7767, 7767], "valid"], [[7768, 7768], "mapped", [7769]], [[7769, 7769], "valid"], [[7770, 7770], "mapped", [7771]], [[7771, 7771], "valid"], [[7772, 7772], "mapped", [7773]], [[7773, 7773], "valid"], [[7774, 7774], "mapped", [7775]], [[7775, 7775], "valid"], [[7776, 7776], "mapped", [7777]], [[7777, 7777], "valid"], [[7778, 7778], "mapped", [7779]], [[7779, 7779], "valid"], [[7780, 7780], "mapped", [7781]], [[7781, 7781], "valid"], [[7782, 7782], "mapped", [7783]], [[7783, 7783], "valid"], [[7784, 7784], "mapped", [7785]], [[7785, 7785], "valid"], [[7786, 7786], "mapped", [7787]], [[7787, 7787], "valid"], [[7788, 7788], "mapped", [7789]], [[7789, 7789], "valid"], [[7790, 7790], "mapped", [7791]], [[7791, 7791], "valid"], [[7792, 7792], "mapped", [7793]], [[7793, 7793], "valid"], [[7794, 7794], "mapped", [7795]], [[7795, 7795], "valid"], [[7796, 7796], "mapped", [7797]], [[7797, 7797], "valid"], [[7798, 7798], "mapped", [7799]], [[7799, 7799], "valid"], [[7800, 7800], "mapped", [7801]], [[7801, 7801], "valid"], [[7802, 7802], "mapped", [7803]], [[7803, 7803], "valid"], [[7804, 7804], "mapped", [7805]], [[7805, 7805], "valid"], [[7806, 7806], "mapped", [7807]], [[7807, 7807], "valid"], [[7808, 7808], "mapped", [7809]], [[7809, 7809], "valid"], [[7810, 7810], "mapped", [7811]], [[7811, 7811], "valid"], [[7812, 7812], "mapped", [7813]], [[7813, 7813], "valid"], [[7814, 7814], "mapped", [7815]], [[7815, 7815], "valid"], [[7816, 7816], "mapped", [7817]], [[7817, 7817], "valid"], [[7818, 7818], "mapped", [7819]], [[7819, 7819], "valid"], [[7820, 7820], "mapped", [7821]], [[7821, 7821], "valid"], [[7822, 7822], "mapped", [7823]], [[7823, 7823], "valid"], [[7824, 7824], "mapped", [7825]], [[7825, 7825], "valid"], [[7826, 7826], "mapped", [7827]], [[7827, 7827], "valid"], [[7828, 7828], "mapped", [7829]], [[7829, 7833], "valid"], [[7834, 7834], "mapped", [97, 702]], [[7835, 7835], "mapped", [7777]], [[7836, 7837], "valid"], [[7838, 7838], "mapped", [115, 115]], [[7839, 7839], "valid"], [[7840, 7840], "mapped", [7841]], [[7841, 7841], "valid"], [[7842, 7842], "mapped", [7843]], [[7843, 7843], "valid"], [[7844, 7844], "mapped", [7845]], [[7845, 7845], "valid"], [[7846, 7846], "mapped", [7847]], [[7847, 7847], "valid"], [[7848, 7848], "mapped", [7849]], [[7849, 7849], "valid"], [[7850, 7850], "mapped", [7851]], [[7851, 7851], "valid"], [[7852, 7852], "mapped", [7853]], [[7853, 7853], "valid"], [[7854, 7854], "mapped", [7855]], [[7855, 7855], "valid"], [[7856, 7856], "mapped", [7857]], [[7857, 7857], "valid"], [[7858, 7858], "mapped", [7859]], [[7859, 7859], "valid"], [[7860, 7860], "mapped", [7861]], [[7861, 7861], "valid"], [[7862, 7862], "mapped", [7863]], [[7863, 7863], "valid"], [[7864, 7864], "mapped", [7865]], [[7865, 7865], "valid"], [[7866, 7866], "mapped", [7867]], [[7867, 7867], "valid"], [[7868, 7868], "mapped", [7869]], [[7869, 7869], "valid"], [[7870, 7870], "mapped", [7871]], [[7871, 7871], "valid"], [[7872, 7872], "mapped", [7873]], [[7873, 7873], "valid"], [[7874, 7874], "mapped", [7875]], [[7875, 7875], "valid"], [[7876, 7876], "mapped", [7877]], [[7877, 7877], "valid"], [[7878, 7878], "mapped", [7879]], [[7879, 7879], "valid"], [[7880, 7880], "mapped", [7881]], [[7881, 7881], "valid"], [[7882, 7882], "mapped", [7883]], [[7883, 7883], "valid"], [[7884, 7884], "mapped", [7885]], [[7885, 7885], "valid"], [[7886, 7886], "mapped", [7887]], [[7887, 7887], "valid"], [[7888, 7888], "mapped", [7889]], [[7889, 7889], "valid"], [[7890, 7890], "mapped", [7891]], [[7891, 7891], "valid"], [[7892, 7892], "mapped", [7893]], [[7893, 7893], "valid"], [[7894, 7894], "mapped", [7895]], [[7895, 7895], "valid"], [[7896, 7896], "mapped", [7897]], [[7897, 7897], "valid"], [[7898, 7898], "mapped", [7899]], [[7899, 7899], "valid"], [[7900, 7900], "mapped", [7901]], [[7901, 7901], "valid"], [[7902, 7902], "mapped", [7903]], [[7903, 7903], "valid"], [[7904, 7904], "mapped", [7905]], [[7905, 7905], "valid"], [[7906, 7906], "mapped", [7907]], [[7907, 7907], "valid"], [[7908, 7908], "mapped", [7909]], [[7909, 7909], "valid"], [[7910, 7910], "mapped", [7911]], [[7911, 7911], "valid"], [[7912, 7912], "mapped", [7913]], [[7913, 7913], "valid"], [[7914, 7914], "mapped", [7915]], [[7915, 7915], "valid"], [[7916, 7916], "mapped", [7917]], [[7917, 7917], "valid"], [[7918, 7918], "mapped", [7919]], [[7919, 7919], "valid"], [[7920, 7920], "mapped", [7921]], [[7921, 7921], "valid"], [[7922, 7922], "mapped", [7923]], [[7923, 7923], "valid"], [[7924, 7924], "mapped", [7925]], [[7925, 7925], "valid"], [[7926, 7926], "mapped", [7927]], [[7927, 7927], "valid"], [[7928, 7928], "mapped", [7929]], [[7929, 7929], "valid"], [[7930, 7930], "mapped", [7931]], [[7931, 7931], "valid"], [[7932, 7932], "mapped", [7933]], [[7933, 7933], "valid"], [[7934, 7934], "mapped", [7935]], [[7935, 7935], "valid"], [[7936, 7943], "valid"], [[7944, 7944], "mapped", [7936]], [[7945, 7945], "mapped", [7937]], [[7946, 7946], "mapped", [7938]], [[7947, 7947], "mapped", [7939]], [[7948, 7948], "mapped", [7940]], [[7949, 7949], "mapped", [7941]], [[7950, 7950], "mapped", [7942]], [[7951, 7951], "mapped", [7943]], [[7952, 7957], "valid"], [[7958, 7959], "disallowed"], [[7960, 7960], "mapped", [7952]], [[7961, 7961], "mapped", [7953]], [[7962, 7962], "mapped", [7954]], [[7963, 7963], "mapped", [7955]], [[7964, 7964], "mapped", [7956]], [[7965, 7965], "mapped", [7957]], [[7966, 7967], "disallowed"], [[7968, 7975], "valid"], [[7976, 7976], "mapped", [7968]], [[7977, 7977], "mapped", [7969]], [[7978, 7978], "mapped", [7970]], [[7979, 7979], "mapped", [7971]], [[7980, 7980], "mapped", [7972]], [[7981, 7981], "mapped", [7973]], [[7982, 7982], "mapped", [7974]], [[7983, 7983], "mapped", [7975]], [[7984, 7991], "valid"], [[7992, 7992], "mapped", [7984]], [[7993, 7993], "mapped", [7985]], [[7994, 7994], "mapped", [7986]], [[7995, 7995], "mapped", [7987]], [[7996, 7996], "mapped", [7988]], [[7997, 7997], "mapped", [7989]], [[7998, 7998], "mapped", [7990]], [[7999, 7999], "mapped", [7991]], [[8e3, 8005], "valid"], [[8006, 8007], "disallowed"], [[8008, 8008], "mapped", [8e3]], [[8009, 8009], "mapped", [8001]], [[8010, 8010], "mapped", [8002]], [[8011, 8011], "mapped", [8003]], [[8012, 8012], "mapped", [8004]], [[8013, 8013], "mapped", [8005]], [[8014, 8015], "disallowed"], [[8016, 8023], "valid"], [[8024, 8024], "disallowed"], [[8025, 8025], "mapped", [8017]], [[8026, 8026], "disallowed"], [[8027, 8027], "mapped", [8019]], [[8028, 8028], "disallowed"], [[8029, 8029], "mapped", [8021]], [[8030, 8030], "disallowed"], [[8031, 8031], "mapped", [8023]], [[8032, 8039], "valid"], [[8040, 8040], "mapped", [8032]], [[8041, 8041], "mapped", [8033]], [[8042, 8042], "mapped", [8034]], [[8043, 8043], "mapped", [8035]], [[8044, 8044], "mapped", [8036]], [[8045, 8045], "mapped", [8037]], [[8046, 8046], "mapped", [8038]], [[8047, 8047], "mapped", [8039]], [[8048, 8048], "valid"], [[8049, 8049], "mapped", [940]], [[8050, 8050], "valid"], [[8051, 8051], "mapped", [941]], [[8052, 8052], "valid"], [[8053, 8053], "mapped", [942]], [[8054, 8054], "valid"], [[8055, 8055], "mapped", [943]], [[8056, 8056], "valid"], [[8057, 8057], "mapped", [972]], [[8058, 8058], "valid"], [[8059, 8059], "mapped", [973]], [[8060, 8060], "valid"], [[8061, 8061], "mapped", [974]], [[8062, 8063], "disallowed"], [[8064, 8064], "mapped", [7936, 953]], [[8065, 8065], "mapped", [7937, 953]], [[8066, 8066], "mapped", [7938, 953]], [[8067, 8067], "mapped", [7939, 953]], [[8068, 8068], "mapped", [7940, 953]], [[8069, 8069], "mapped", [7941, 953]], [[8070, 8070], "mapped", [7942, 953]], [[8071, 8071], "mapped", [7943, 953]], [[8072, 8072], "mapped", [7936, 953]], [[8073, 8073], "mapped", [7937, 953]], [[8074, 8074], "mapped", [7938, 953]], [[8075, 8075], "mapped", [7939, 953]], [[8076, 8076], "mapped", [7940, 953]], [[8077, 8077], "mapped", [7941, 953]], [[8078, 8078], "mapped", [7942, 953]], [[8079, 8079], "mapped", [7943, 953]], [[8080, 8080], "mapped", [7968, 953]], [[8081, 8081], "mapped", [7969, 953]], [[8082, 8082], "mapped", [7970, 953]], [[8083, 8083], "mapped", [7971, 953]], [[8084, 8084], "mapped", [7972, 953]], [[8085, 8085], "mapped", [7973, 953]], [[8086, 8086], "mapped", [7974, 953]], [[8087, 8087], "mapped", [7975, 953]], [[8088, 8088], "mapped", [7968, 953]], [[8089, 8089], "mapped", [7969, 953]], [[8090, 8090], "mapped", [7970, 953]], [[8091, 8091], "mapped", [7971, 953]], [[8092, 8092], "mapped", [7972, 953]], [[8093, 8093], "mapped", [7973, 953]], [[8094, 8094], "mapped", [7974, 953]], [[8095, 8095], "mapped", [7975, 953]], [[8096, 8096], "mapped", [8032, 953]], [[8097, 8097], "mapped", [8033, 953]], [[8098, 8098], "mapped", [8034, 953]], [[8099, 8099], "mapped", [8035, 953]], [[8100, 8100], "mapped", [8036, 953]], [[8101, 8101], "mapped", [8037, 953]], [[8102, 8102], "mapped", [8038, 953]], [[8103, 8103], "mapped", [8039, 953]], [[8104, 8104], "mapped", [8032, 953]], [[8105, 8105], "mapped", [8033, 953]], [[8106, 8106], "mapped", [8034, 953]], [[8107, 8107], "mapped", [8035, 953]], [[8108, 8108], "mapped", [8036, 953]], [[8109, 8109], "mapped", [8037, 953]], [[8110, 8110], "mapped", [8038, 953]], [[8111, 8111], "mapped", [8039, 953]], [[8112, 8113], "valid"], [[8114, 8114], "mapped", [8048, 953]], [[8115, 8115], "mapped", [945, 953]], [[8116, 8116], "mapped", [940, 953]], [[8117, 8117], "disallowed"], [[8118, 8118], "valid"], [[8119, 8119], "mapped", [8118, 953]], [[8120, 8120], "mapped", [8112]], [[8121, 8121], "mapped", [8113]], [[8122, 8122], "mapped", [8048]], [[8123, 8123], "mapped", [940]], [[8124, 8124], "mapped", [945, 953]], [[8125, 8125], "disallowed_STD3_mapped", [32, 787]], [[8126, 8126], "mapped", [953]], [[8127, 8127], "disallowed_STD3_mapped", [32, 787]], [[8128, 8128], "disallowed_STD3_mapped", [32, 834]], [[8129, 8129], "disallowed_STD3_mapped", [32, 776, 834]], [[8130, 8130], "mapped", [8052, 953]], [[8131, 8131], "mapped", [951, 953]], [[8132, 8132], "mapped", [942, 953]], [[8133, 8133], "disallowed"], [[8134, 8134], "valid"], [[8135, 8135], "mapped", [8134, 953]], [[8136, 8136], "mapped", [8050]], [[8137, 8137], "mapped", [941]], [[8138, 8138], "mapped", [8052]], [[8139, 8139], "mapped", [942]], [[8140, 8140], "mapped", [951, 953]], [[8141, 8141], "disallowed_STD3_mapped", [32, 787, 768]], [[8142, 8142], "disallowed_STD3_mapped", [32, 787, 769]], [[8143, 8143], "disallowed_STD3_mapped", [32, 787, 834]], [[8144, 8146], "valid"], [[8147, 8147], "mapped", [912]], [[8148, 8149], "disallowed"], [[8150, 8151], "valid"], [[8152, 8152], "mapped", [8144]], [[8153, 8153], "mapped", [8145]], [[8154, 8154], "mapped", [8054]], [[8155, 8155], "mapped", [943]], [[8156, 8156], "disallowed"], [[8157, 8157], "disallowed_STD3_mapped", [32, 788, 768]], [[8158, 8158], "disallowed_STD3_mapped", [32, 788, 769]], [[8159, 8159], "disallowed_STD3_mapped", [32, 788, 834]], [[8160, 8162], "valid"], [[8163, 8163], "mapped", [944]], [[8164, 8167], "valid"], [[8168, 8168], "mapped", [8160]], [[8169, 8169], "mapped", [8161]], [[8170, 8170], "mapped", [8058]], [[8171, 8171], "mapped", [973]], [[8172, 8172], "mapped", [8165]], [[8173, 8173], "disallowed_STD3_mapped", [32, 776, 768]], [[8174, 8174], "disallowed_STD3_mapped", [32, 776, 769]], [[8175, 8175], "disallowed_STD3_mapped", [96]], [[8176, 8177], "disallowed"], [[8178, 8178], "mapped", [8060, 953]], [[8179, 8179], "mapped", [969, 953]], [[8180, 8180], "mapped", [974, 953]], [[8181, 8181], "disallowed"], [[8182, 8182], "valid"], [[8183, 8183], "mapped", [8182, 953]], [[8184, 8184], "mapped", [8056]], [[8185, 8185], "mapped", [972]], [[8186, 8186], "mapped", [8060]], [[8187, 8187], "mapped", [974]], [[8188, 8188], "mapped", [969, 953]], [[8189, 8189], "disallowed_STD3_mapped", [32, 769]], [[8190, 8190], "disallowed_STD3_mapped", [32, 788]], [[8191, 8191], "disallowed"], [[8192, 8202], "disallowed_STD3_mapped", [32]], [[8203, 8203], "ignored"], [[8204, 8205], "deviation", []], [[8206, 8207], "disallowed"], [[8208, 8208], "valid", [], "NV8"], [[8209, 8209], "mapped", [8208]], [[8210, 8214], "valid", [], "NV8"], [[8215, 8215], "disallowed_STD3_mapped", [32, 819]], [[8216, 8227], "valid", [], "NV8"], [[8228, 8230], "disallowed"], [[8231, 8231], "valid", [], "NV8"], [[8232, 8238], "disallowed"], [[8239, 8239], "disallowed_STD3_mapped", [32]], [[8240, 8242], "valid", [], "NV8"], [[8243, 8243], "mapped", [8242, 8242]], [[8244, 8244], "mapped", [8242, 8242, 8242]], [[8245, 8245], "valid", [], "NV8"], [[8246, 8246], "mapped", [8245, 8245]], [[8247, 8247], "mapped", [8245, 8245, 8245]], [[8248, 8251], "valid", [], "NV8"], [[8252, 8252], "disallowed_STD3_mapped", [33, 33]], [[8253, 8253], "valid", [], "NV8"], [[8254, 8254], "disallowed_STD3_mapped", [32, 773]], [[8255, 8262], "valid", [], "NV8"], [[8263, 8263], "disallowed_STD3_mapped", [63, 63]], [[8264, 8264], "disallowed_STD3_mapped", [63, 33]], [[8265, 8265], "disallowed_STD3_mapped", [33, 63]], [[8266, 8269], "valid", [], "NV8"], [[8270, 8274], "valid", [], "NV8"], [[8275, 8276], "valid", [], "NV8"], [[8277, 8278], "valid", [], "NV8"], [[8279, 8279], "mapped", [8242, 8242, 8242, 8242]], [[8280, 8286], "valid", [], "NV8"], [[8287, 8287], "disallowed_STD3_mapped", [32]], [[8288, 8288], "ignored"], [[8289, 8291], "disallowed"], [[8292, 8292], "ignored"], [[8293, 8293], "disallowed"], [[8294, 8297], "disallowed"], [[8298, 8303], "disallowed"], [[8304, 8304], "mapped", [48]], [[8305, 8305], "mapped", [105]], [[8306, 8307], "disallowed"], [[8308, 8308], "mapped", [52]], [[8309, 8309], "mapped", [53]], [[8310, 8310], "mapped", [54]], [[8311, 8311], "mapped", [55]], [[8312, 8312], "mapped", [56]], [[8313, 8313], "mapped", [57]], [[8314, 8314], "disallowed_STD3_mapped", [43]], [[8315, 8315], "mapped", [8722]], [[8316, 8316], "disallowed_STD3_mapped", [61]], [[8317, 8317], "disallowed_STD3_mapped", [40]], [[8318, 8318], "disallowed_STD3_mapped", [41]], [[8319, 8319], "mapped", [110]], [[8320, 8320], "mapped", [48]], [[8321, 8321], "mapped", [49]], [[8322, 8322], "mapped", [50]], [[8323, 8323], "mapped", [51]], [[8324, 8324], "mapped", [52]], [[8325, 8325], "mapped", [53]], [[8326, 8326], "mapped", [54]], [[8327, 8327], "mapped", [55]], [[8328, 8328], "mapped", [56]], [[8329, 8329], "mapped", [57]], [[8330, 8330], "disallowed_STD3_mapped", [43]], [[8331, 8331], "mapped", [8722]], [[8332, 8332], "disallowed_STD3_mapped", [61]], [[8333, 8333], "disallowed_STD3_mapped", [40]], [[8334, 8334], "disallowed_STD3_mapped", [41]], [[8335, 8335], "disallowed"], [[8336, 8336], "mapped", [97]], [[8337, 8337], "mapped", [101]], [[8338, 8338], "mapped", [111]], [[8339, 8339], "mapped", [120]], [[8340, 8340], "mapped", [601]], [[8341, 8341], "mapped", [104]], [[8342, 8342], "mapped", [107]], [[8343, 8343], "mapped", [108]], [[8344, 8344], "mapped", [109]], [[8345, 8345], "mapped", [110]], [[8346, 8346], "mapped", [112]], [[8347, 8347], "mapped", [115]], [[8348, 8348], "mapped", [116]], [[8349, 8351], "disallowed"], [[8352, 8359], "valid", [], "NV8"], [[8360, 8360], "mapped", [114, 115]], [[8361, 8362], "valid", [], "NV8"], [[8363, 8363], "valid", [], "NV8"], [[8364, 8364], "valid", [], "NV8"], [[8365, 8367], "valid", [], "NV8"], [[8368, 8369], "valid", [], "NV8"], [[8370, 8373], "valid", [], "NV8"], [[8374, 8376], "valid", [], "NV8"], [[8377, 8377], "valid", [], "NV8"], [[8378, 8378], "valid", [], "NV8"], [[8379, 8381], "valid", [], "NV8"], [[8382, 8382], "valid", [], "NV8"], [[8383, 8399], "disallowed"], [[8400, 8417], "valid", [], "NV8"], [[8418, 8419], "valid", [], "NV8"], [[8420, 8426], "valid", [], "NV8"], [[8427, 8427], "valid", [], "NV8"], [[8428, 8431], "valid", [], "NV8"], [[8432, 8432], "valid", [], "NV8"], [[8433, 8447], "disallowed"], [[8448, 8448], "disallowed_STD3_mapped", [97, 47, 99]], [[8449, 8449], "disallowed_STD3_mapped", [97, 47, 115]], [[8450, 8450], "mapped", [99]], [[8451, 8451], "mapped", [176, 99]], [[8452, 8452], "valid", [], "NV8"], [[8453, 8453], "disallowed_STD3_mapped", [99, 47, 111]], [[8454, 8454], "disallowed_STD3_mapped", [99, 47, 117]], [[8455, 8455], "mapped", [603]], [[8456, 8456], "valid", [], "NV8"], [[8457, 8457], "mapped", [176, 102]], [[8458, 8458], "mapped", [103]], [[8459, 8462], "mapped", [104]], [[8463, 8463], "mapped", [295]], [[8464, 8465], "mapped", [105]], [[8466, 8467], "mapped", [108]], [[8468, 8468], "valid", [], "NV8"], [[8469, 8469], "mapped", [110]], [[8470, 8470], "mapped", [110, 111]], [[8471, 8472], "valid", [], "NV8"], [[8473, 8473], "mapped", [112]], [[8474, 8474], "mapped", [113]], [[8475, 8477], "mapped", [114]], [[8478, 8479], "valid", [], "NV8"], [[8480, 8480], "mapped", [115, 109]], [[8481, 8481], "mapped", [116, 101, 108]], [[8482, 8482], "mapped", [116, 109]], [[8483, 8483], "valid", [], "NV8"], [[8484, 8484], "mapped", [122]], [[8485, 8485], "valid", [], "NV8"], [[8486, 8486], "mapped", [969]], [[8487, 8487], "valid", [], "NV8"], [[8488, 8488], "mapped", [122]], [[8489, 8489], "valid", [], "NV8"], [[8490, 8490], "mapped", [107]], [[8491, 8491], "mapped", [229]], [[8492, 8492], "mapped", [98]], [[8493, 8493], "mapped", [99]], [[8494, 8494], "valid", [], "NV8"], [[8495, 8496], "mapped", [101]], [[8497, 8497], "mapped", [102]], [[8498, 8498], "disallowed"], [[8499, 8499], "mapped", [109]], [[8500, 8500], "mapped", [111]], [[8501, 8501], "mapped", [1488]], [[8502, 8502], "mapped", [1489]], [[8503, 8503], "mapped", [1490]], [[8504, 8504], "mapped", [1491]], [[8505, 8505], "mapped", [105]], [[8506, 8506], "valid", [], "NV8"], [[8507, 8507], "mapped", [102, 97, 120]], [[8508, 8508], "mapped", [960]], [[8509, 8510], "mapped", [947]], [[8511, 8511], "mapped", [960]], [[8512, 8512], "mapped", [8721]], [[8513, 8516], "valid", [], "NV8"], [[8517, 8518], "mapped", [100]], [[8519, 8519], "mapped", [101]], [[8520, 8520], "mapped", [105]], [[8521, 8521], "mapped", [106]], [[8522, 8523], "valid", [], "NV8"], [[8524, 8524], "valid", [], "NV8"], [[8525, 8525], "valid", [], "NV8"], [[8526, 8526], "valid"], [[8527, 8527], "valid", [], "NV8"], [[8528, 8528], "mapped", [49, 8260, 55]], [[8529, 8529], "mapped", [49, 8260, 57]], [[8530, 8530], "mapped", [49, 8260, 49, 48]], [[8531, 8531], "mapped", [49, 8260, 51]], [[8532, 8532], "mapped", [50, 8260, 51]], [[8533, 8533], "mapped", [49, 8260, 53]], [[8534, 8534], "mapped", [50, 8260, 53]], [[8535, 8535], "mapped", [51, 8260, 53]], [[8536, 8536], "mapped", [52, 8260, 53]], [[8537, 8537], "mapped", [49, 8260, 54]], [[8538, 8538], "mapped", [53, 8260, 54]], [[8539, 8539], "mapped", [49, 8260, 56]], [[8540, 8540], "mapped", [51, 8260, 56]], [[8541, 8541], "mapped", [53, 8260, 56]], [[8542, 8542], "mapped", [55, 8260, 56]], [[8543, 8543], "mapped", [49, 8260]], [[8544, 8544], "mapped", [105]], [[8545, 8545], "mapped", [105, 105]], [[8546, 8546], "mapped", [105, 105, 105]], [[8547, 8547], "mapped", [105, 118]], [[8548, 8548], "mapped", [118]], [[8549, 8549], "mapped", [118, 105]], [[8550, 8550], "mapped", [118, 105, 105]], [[8551, 8551], "mapped", [118, 105, 105, 105]], [[8552, 8552], "mapped", [105, 120]], [[8553, 8553], "mapped", [120]], [[8554, 8554], "mapped", [120, 105]], [[8555, 8555], "mapped", [120, 105, 105]], [[8556, 8556], "mapped", [108]], [[8557, 8557], "mapped", [99]], [[8558, 8558], "mapped", [100]], [[8559, 8559], "mapped", [109]], [[8560, 8560], "mapped", [105]], [[8561, 8561], "mapped", [105, 105]], [[8562, 8562], "mapped", [105, 105, 105]], [[8563, 8563], "mapped", [105, 118]], [[8564, 8564], "mapped", [118]], [[8565, 8565], "mapped", [118, 105]], [[8566, 8566], "mapped", [118, 105, 105]], [[8567, 8567], "mapped", [118, 105, 105, 105]], [[8568, 8568], "mapped", [105, 120]], [[8569, 8569], "mapped", [120]], [[8570, 8570], "mapped", [120, 105]], [[8571, 8571], "mapped", [120, 105, 105]], [[8572, 8572], "mapped", [108]], [[8573, 8573], "mapped", [99]], [[8574, 8574], "mapped", [100]], [[8575, 8575], "mapped", [109]], [[8576, 8578], "valid", [], "NV8"], [[8579, 8579], "disallowed"], [[8580, 8580], "valid"], [[8581, 8584], "valid", [], "NV8"], [[8585, 8585], "mapped", [48, 8260, 51]], [[8586, 8587], "valid", [], "NV8"], [[8588, 8591], "disallowed"], [[8592, 8682], "valid", [], "NV8"], [[8683, 8691], "valid", [], "NV8"], [[8692, 8703], "valid", [], "NV8"], [[8704, 8747], "valid", [], "NV8"], [[8748, 8748], "mapped", [8747, 8747]], [[8749, 8749], "mapped", [8747, 8747, 8747]], [[8750, 8750], "valid", [], "NV8"], [[8751, 8751], "mapped", [8750, 8750]], [[8752, 8752], "mapped", [8750, 8750, 8750]], [[8753, 8799], "valid", [], "NV8"], [[8800, 8800], "disallowed_STD3_valid"], [[8801, 8813], "valid", [], "NV8"], [[8814, 8815], "disallowed_STD3_valid"], [[8816, 8945], "valid", [], "NV8"], [[8946, 8959], "valid", [], "NV8"], [[8960, 8960], "valid", [], "NV8"], [[8961, 8961], "valid", [], "NV8"], [[8962, 9e3], "valid", [], "NV8"], [[9001, 9001], "mapped", [12296]], [[9002, 9002], "mapped", [12297]], [[9003, 9082], "valid", [], "NV8"], [[9083, 9083], "valid", [], "NV8"], [[9084, 9084], "valid", [], "NV8"], [[9085, 9114], "valid", [], "NV8"], [[9115, 9166], "valid", [], "NV8"], [[9167, 9168], "valid", [], "NV8"], [[9169, 9179], "valid", [], "NV8"], [[9180, 9191], "valid", [], "NV8"], [[9192, 9192], "valid", [], "NV8"], [[9193, 9203], "valid", [], "NV8"], [[9204, 9210], "valid", [], "NV8"], [[9211, 9215], "disallowed"], [[9216, 9252], "valid", [], "NV8"], [[9253, 9254], "valid", [], "NV8"], [[9255, 9279], "disallowed"], [[9280, 9290], "valid", [], "NV8"], [[9291, 9311], "disallowed"], [[9312, 9312], "mapped", [49]], [[9313, 9313], "mapped", [50]], [[9314, 9314], "mapped", [51]], [[9315, 9315], "mapped", [52]], [[9316, 9316], "mapped", [53]], [[9317, 9317], "mapped", [54]], [[9318, 9318], "mapped", [55]], [[9319, 9319], "mapped", [56]], [[9320, 9320], "mapped", [57]], [[9321, 9321], "mapped", [49, 48]], [[9322, 9322], "mapped", [49, 49]], [[9323, 9323], "mapped", [49, 50]], [[9324, 9324], "mapped", [49, 51]], [[9325, 9325], "mapped", [49, 52]], [[9326, 9326], "mapped", [49, 53]], [[9327, 9327], "mapped", [49, 54]], [[9328, 9328], "mapped", [49, 55]], [[9329, 9329], "mapped", [49, 56]], [[9330, 9330], "mapped", [49, 57]], [[9331, 9331], "mapped", [50, 48]], [[9332, 9332], "disallowed_STD3_mapped", [40, 49, 41]], [[9333, 9333], "disallowed_STD3_mapped", [40, 50, 41]], [[9334, 9334], "disallowed_STD3_mapped", [40, 51, 41]], [[9335, 9335], "disallowed_STD3_mapped", [40, 52, 41]], [[9336, 9336], "disallowed_STD3_mapped", [40, 53, 41]], [[9337, 9337], "disallowed_STD3_mapped", [40, 54, 41]], [[9338, 9338], "disallowed_STD3_mapped", [40, 55, 41]], [[9339, 9339], "disallowed_STD3_mapped", [40, 56, 41]], [[9340, 9340], "disallowed_STD3_mapped", [40, 57, 41]], [[9341, 9341], "disallowed_STD3_mapped", [40, 49, 48, 41]], [[9342, 9342], "disallowed_STD3_mapped", [40, 49, 49, 41]], [[9343, 9343], "disallowed_STD3_mapped", [40, 49, 50, 41]], [[9344, 9344], "disallowed_STD3_mapped", [40, 49, 51, 41]], [[9345, 9345], "disallowed_STD3_mapped", [40, 49, 52, 41]], [[9346, 9346], "disallowed_STD3_mapped", [40, 49, 53, 41]], [[9347, 9347], "disallowed_STD3_mapped", [40, 49, 54, 41]], [[9348, 9348], "disallowed_STD3_mapped", [40, 49, 55, 41]], [[9349, 9349], "disallowed_STD3_mapped", [40, 49, 56, 41]], [[9350, 9350], "disallowed_STD3_mapped", [40, 49, 57, 41]], [[9351, 9351], "disallowed_STD3_mapped", [40, 50, 48, 41]], [[9352, 9371], "disallowed"], [[9372, 9372], "disallowed_STD3_mapped", [40, 97, 41]], [[9373, 9373], "disallowed_STD3_mapped", [40, 98, 41]], [[9374, 9374], "disallowed_STD3_mapped", [40, 99, 41]], [[9375, 9375], "disallowed_STD3_mapped", [40, 100, 41]], [[9376, 9376], "disallowed_STD3_mapped", [40, 101, 41]], [[9377, 9377], "disallowed_STD3_mapped", [40, 102, 41]], [[9378, 9378], "disallowed_STD3_mapped", [40, 103, 41]], [[9379, 9379], "disallowed_STD3_mapped", [40, 104, 41]], [[9380, 9380], "disallowed_STD3_mapped", [40, 105, 41]], [[9381, 9381], "disallowed_STD3_mapped", [40, 106, 41]], [[9382, 9382], "disallowed_STD3_mapped", [40, 107, 41]], [[9383, 9383], "disallowed_STD3_mapped", [40, 108, 41]], [[9384, 9384], "disallowed_STD3_mapped", [40, 109, 41]], [[9385, 9385], "disallowed_STD3_mapped", [40, 110, 41]], [[9386, 9386], "disallowed_STD3_mapped", [40, 111, 41]], [[9387, 9387], "disallowed_STD3_mapped", [40, 112, 41]], [[9388, 9388], "disallowed_STD3_mapped", [40, 113, 41]], [[9389, 9389], "disallowed_STD3_mapped", [40, 114, 41]], [[9390, 9390], "disallowed_STD3_mapped", [40, 115, 41]], [[9391, 9391], "disallowed_STD3_mapped", [40, 116, 41]], [[9392, 9392], "disallowed_STD3_mapped", [40, 117, 41]], [[9393, 9393], "disallowed_STD3_mapped", [40, 118, 41]], [[9394, 9394], "disallowed_STD3_mapped", [40, 119, 41]], [[9395, 9395], "disallowed_STD3_mapped", [40, 120, 41]], [[9396, 9396], "disallowed_STD3_mapped", [40, 121, 41]], [[9397, 9397], "disallowed_STD3_mapped", [40, 122, 41]], [[9398, 9398], "mapped", [97]], [[9399, 9399], "mapped", [98]], [[9400, 9400], "mapped", [99]], [[9401, 9401], "mapped", [100]], [[9402, 9402], "mapped", [101]], [[9403, 9403], "mapped", [102]], [[9404, 9404], "mapped", [103]], [[9405, 9405], "mapped", [104]], [[9406, 9406], "mapped", [105]], [[9407, 9407], "mapped", [106]], [[9408, 9408], "mapped", [107]], [[9409, 9409], "mapped", [108]], [[9410, 9410], "mapped", [109]], [[9411, 9411], "mapped", [110]], [[9412, 9412], "mapped", [111]], [[9413, 9413], "mapped", [112]], [[9414, 9414], "mapped", [113]], [[9415, 9415], "mapped", [114]], [[9416, 9416], "mapped", [115]], [[9417, 9417], "mapped", [116]], [[9418, 9418], "mapped", [117]], [[9419, 9419], "mapped", [118]], [[9420, 9420], "mapped", [119]], [[9421, 9421], "mapped", [120]], [[9422, 9422], "mapped", [121]], [[9423, 9423], "mapped", [122]], [[9424, 9424], "mapped", [97]], [[9425, 9425], "mapped", [98]], [[9426, 9426], "mapped", [99]], [[9427, 9427], "mapped", [100]], [[9428, 9428], "mapped", [101]], [[9429, 9429], "mapped", [102]], [[9430, 9430], "mapped", [103]], [[9431, 9431], "mapped", [104]], [[9432, 9432], "mapped", [105]], [[9433, 9433], "mapped", [106]], [[9434, 9434], "mapped", [107]], [[9435, 9435], "mapped", [108]], [[9436, 9436], "mapped", [109]], [[9437, 9437], "mapped", [110]], [[9438, 9438], "mapped", [111]], [[9439, 9439], "mapped", [112]], [[9440, 9440], "mapped", [113]], [[9441, 9441], "mapped", [114]], [[9442, 9442], "mapped", [115]], [[9443, 9443], "mapped", [116]], [[9444, 9444], "mapped", [117]], [[9445, 9445], "mapped", [118]], [[9446, 9446], "mapped", [119]], [[9447, 9447], "mapped", [120]], [[9448, 9448], "mapped", [121]], [[9449, 9449], "mapped", [122]], [[9450, 9450], "mapped", [48]], [[9451, 9470], "valid", [], "NV8"], [[9471, 9471], "valid", [], "NV8"], [[9472, 9621], "valid", [], "NV8"], [[9622, 9631], "valid", [], "NV8"], [[9632, 9711], "valid", [], "NV8"], [[9712, 9719], "valid", [], "NV8"], [[9720, 9727], "valid", [], "NV8"], [[9728, 9747], "valid", [], "NV8"], [[9748, 9749], "valid", [], "NV8"], [[9750, 9751], "valid", [], "NV8"], [[9752, 9752], "valid", [], "NV8"], [[9753, 9753], "valid", [], "NV8"], [[9754, 9839], "valid", [], "NV8"], [[9840, 9841], "valid", [], "NV8"], [[9842, 9853], "valid", [], "NV8"], [[9854, 9855], "valid", [], "NV8"], [[9856, 9865], "valid", [], "NV8"], [[9866, 9873], "valid", [], "NV8"], [[9874, 9884], "valid", [], "NV8"], [[9885, 9885], "valid", [], "NV8"], [[9886, 9887], "valid", [], "NV8"], [[9888, 9889], "valid", [], "NV8"], [[9890, 9905], "valid", [], "NV8"], [[9906, 9906], "valid", [], "NV8"], [[9907, 9916], "valid", [], "NV8"], [[9917, 9919], "valid", [], "NV8"], [[9920, 9923], "valid", [], "NV8"], [[9924, 9933], "valid", [], "NV8"], [[9934, 9934], "valid", [], "NV8"], [[9935, 9953], "valid", [], "NV8"], [[9954, 9954], "valid", [], "NV8"], [[9955, 9955], "valid", [], "NV8"], [[9956, 9959], "valid", [], "NV8"], [[9960, 9983], "valid", [], "NV8"], [[9984, 9984], "valid", [], "NV8"], [[9985, 9988], "valid", [], "NV8"], [[9989, 9989], "valid", [], "NV8"], [[9990, 9993], "valid", [], "NV8"], [[9994, 9995], "valid", [], "NV8"], [[9996, 10023], "valid", [], "NV8"], [[10024, 10024], "valid", [], "NV8"], [[10025, 10059], "valid", [], "NV8"], [[10060, 10060], "valid", [], "NV8"], [[10061, 10061], "valid", [], "NV8"], [[10062, 10062], "valid", [], "NV8"], [[10063, 10066], "valid", [], "NV8"], [[10067, 10069], "valid", [], "NV8"], [[10070, 10070], "valid", [], "NV8"], [[10071, 10071], "valid", [], "NV8"], [[10072, 10078], "valid", [], "NV8"], [[10079, 10080], "valid", [], "NV8"], [[10081, 10087], "valid", [], "NV8"], [[10088, 10101], "valid", [], "NV8"], [[10102, 10132], "valid", [], "NV8"], [[10133, 10135], "valid", [], "NV8"], [[10136, 10159], "valid", [], "NV8"], [[10160, 10160], "valid", [], "NV8"], [[10161, 10174], "valid", [], "NV8"], [[10175, 10175], "valid", [], "NV8"], [[10176, 10182], "valid", [], "NV8"], [[10183, 10186], "valid", [], "NV8"], [[10187, 10187], "valid", [], "NV8"], [[10188, 10188], "valid", [], "NV8"], [[10189, 10189], "valid", [], "NV8"], [[10190, 10191], "valid", [], "NV8"], [[10192, 10219], "valid", [], "NV8"], [[10220, 10223], "valid", [], "NV8"], [[10224, 10239], "valid", [], "NV8"], [[10240, 10495], "valid", [], "NV8"], [[10496, 10763], "valid", [], "NV8"], [[10764, 10764], "mapped", [8747, 8747, 8747, 8747]], [[10765, 10867], "valid", [], "NV8"], [[10868, 10868], "disallowed_STD3_mapped", [58, 58, 61]], [[10869, 10869], "disallowed_STD3_mapped", [61, 61]], [[10870, 10870], "disallowed_STD3_mapped", [61, 61, 61]], [[10871, 10971], "valid", [], "NV8"], [[10972, 10972], "mapped", [10973, 824]], [[10973, 11007], "valid", [], "NV8"], [[11008, 11021], "valid", [], "NV8"], [[11022, 11027], "valid", [], "NV8"], [[11028, 11034], "valid", [], "NV8"], [[11035, 11039], "valid", [], "NV8"], [[11040, 11043], "valid", [], "NV8"], [[11044, 11084], "valid", [], "NV8"], [[11085, 11087], "valid", [], "NV8"], [[11088, 11092], "valid", [], "NV8"], [[11093, 11097], "valid", [], "NV8"], [[11098, 11123], "valid", [], "NV8"], [[11124, 11125], "disallowed"], [[11126, 11157], "valid", [], "NV8"], [[11158, 11159], "disallowed"], [[11160, 11193], "valid", [], "NV8"], [[11194, 11196], "disallowed"], [[11197, 11208], "valid", [], "NV8"], [[11209, 11209], "disallowed"], [[11210, 11217], "valid", [], "NV8"], [[11218, 11243], "disallowed"], [[11244, 11247], "valid", [], "NV8"], [[11248, 11263], "disallowed"], [[11264, 11264], "mapped", [11312]], [[11265, 11265], "mapped", [11313]], [[11266, 11266], "mapped", [11314]], [[11267, 11267], "mapped", [11315]], [[11268, 11268], "mapped", [11316]], [[11269, 11269], "mapped", [11317]], [[11270, 11270], "mapped", [11318]], [[11271, 11271], "mapped", [11319]], [[11272, 11272], "mapped", [11320]], [[11273, 11273], "mapped", [11321]], [[11274, 11274], "mapped", [11322]], [[11275, 11275], "mapped", [11323]], [[11276, 11276], "mapped", [11324]], [[11277, 11277], "mapped", [11325]], [[11278, 11278], "mapped", [11326]], [[11279, 11279], "mapped", [11327]], [[11280, 11280], "mapped", [11328]], [[11281, 11281], "mapped", [11329]], [[11282, 11282], "mapped", [11330]], [[11283, 11283], "mapped", [11331]], [[11284, 11284], "mapped", [11332]], [[11285, 11285], "mapped", [11333]], [[11286, 11286], "mapped", [11334]], [[11287, 11287], "mapped", [11335]], [[11288, 11288], "mapped", [11336]], [[11289, 11289], "mapped", [11337]], [[11290, 11290], "mapped", [11338]], [[11291, 11291], "mapped", [11339]], [[11292, 11292], "mapped", [11340]], [[11293, 11293], "mapped", [11341]], [[11294, 11294], "mapped", [11342]], [[11295, 11295], "mapped", [11343]], [[11296, 11296], "mapped", [11344]], [[11297, 11297], "mapped", [11345]], [[11298, 11298], "mapped", [11346]], [[11299, 11299], "mapped", [11347]], [[11300, 11300], "mapped", [11348]], [[11301, 11301], "mapped", [11349]], [[11302, 11302], "mapped", [11350]], [[11303, 11303], "mapped", [11351]], [[11304, 11304], "mapped", [11352]], [[11305, 11305], "mapped", [11353]], [[11306, 11306], "mapped", [11354]], [[11307, 11307], "mapped", [11355]], [[11308, 11308], "mapped", [11356]], [[11309, 11309], "mapped", [11357]], [[11310, 11310], "mapped", [11358]], [[11311, 11311], "disallowed"], [[11312, 11358], "valid"], [[11359, 11359], "disallowed"], [[11360, 11360], "mapped", [11361]], [[11361, 11361], "valid"], [[11362, 11362], "mapped", [619]], [[11363, 11363], "mapped", [7549]], [[11364, 11364], "mapped", [637]], [[11365, 11366], "valid"], [[11367, 11367], "mapped", [11368]], [[11368, 11368], "valid"], [[11369, 11369], "mapped", [11370]], [[11370, 11370], "valid"], [[11371, 11371], "mapped", [11372]], [[11372, 11372], "valid"], [[11373, 11373], "mapped", [593]], [[11374, 11374], "mapped", [625]], [[11375, 11375], "mapped", [592]], [[11376, 11376], "mapped", [594]], [[11377, 11377], "valid"], [[11378, 11378], "mapped", [11379]], [[11379, 11379], "valid"], [[11380, 11380], "valid"], [[11381, 11381], "mapped", [11382]], [[11382, 11383], "valid"], [[11384, 11387], "valid"], [[11388, 11388], "mapped", [106]], [[11389, 11389], "mapped", [118]], [[11390, 11390], "mapped", [575]], [[11391, 11391], "mapped", [576]], [[11392, 11392], "mapped", [11393]], [[11393, 11393], "valid"], [[11394, 11394], "mapped", [11395]], [[11395, 11395], "valid"], [[11396, 11396], "mapped", [11397]], [[11397, 11397], "valid"], [[11398, 11398], "mapped", [11399]], [[11399, 11399], "valid"], [[11400, 11400], "mapped", [11401]], [[11401, 11401], "valid"], [[11402, 11402], "mapped", [11403]], [[11403, 11403], "valid"], [[11404, 11404], "mapped", [11405]], [[11405, 11405], "valid"], [[11406, 11406], "mapped", [11407]], [[11407, 11407], "valid"], [[11408, 11408], "mapped", [11409]], [[11409, 11409], "valid"], [[11410, 11410], "mapped", [11411]], [[11411, 11411], "valid"], [[11412, 11412], "mapped", [11413]], [[11413, 11413], "valid"], [[11414, 11414], "mapped", [11415]], [[11415, 11415], "valid"], [[11416, 11416], "mapped", [11417]], [[11417, 11417], "valid"], [[11418, 11418], "mapped", [11419]], [[11419, 11419], "valid"], [[11420, 11420], "mapped", [11421]], [[11421, 11421], "valid"], [[11422, 11422], "mapped", [11423]], [[11423, 11423], "valid"], [[11424, 11424], "mapped", [11425]], [[11425, 11425], "valid"], [[11426, 11426], "mapped", [11427]], [[11427, 11427], "valid"], [[11428, 11428], "mapped", [11429]], [[11429, 11429], "valid"], [[11430, 11430], "mapped", [11431]], [[11431, 11431], "valid"], [[11432, 11432], "mapped", [11433]], [[11433, 11433], "valid"], [[11434, 11434], "mapped", [11435]], [[11435, 11435], "valid"], [[11436, 11436], "mapped", [11437]], [[11437, 11437], "valid"], [[11438, 11438], "mapped", [11439]], [[11439, 11439], "valid"], [[11440, 11440], "mapped", [11441]], [[11441, 11441], "valid"], [[11442, 11442], "mapped", [11443]], [[11443, 11443], "valid"], [[11444, 11444], "mapped", [11445]], [[11445, 11445], "valid"], [[11446, 11446], "mapped", [11447]], [[11447, 11447], "valid"], [[11448, 11448], "mapped", [11449]], [[11449, 11449], "valid"], [[11450, 11450], "mapped", [11451]], [[11451, 11451], "valid"], [[11452, 11452], "mapped", [11453]], [[11453, 11453], "valid"], [[11454, 11454], "mapped", [11455]], [[11455, 11455], "valid"], [[11456, 11456], "mapped", [11457]], [[11457, 11457], "valid"], [[11458, 11458], "mapped", [11459]], [[11459, 11459], "valid"], [[11460, 11460], "mapped", [11461]], [[11461, 11461], "valid"], [[11462, 11462], "mapped", [11463]], [[11463, 11463], "valid"], [[11464, 11464], "mapped", [11465]], [[11465, 11465], "valid"], [[11466, 11466], "mapped", [11467]], [[11467, 11467], "valid"], [[11468, 11468], "mapped", [11469]], [[11469, 11469], "valid"], [[11470, 11470], "mapped", [11471]], [[11471, 11471], "valid"], [[11472, 11472], "mapped", [11473]], [[11473, 11473], "valid"], [[11474, 11474], "mapped", [11475]], [[11475, 11475], "valid"], [[11476, 11476], "mapped", [11477]], [[11477, 11477], "valid"], [[11478, 11478], "mapped", [11479]], [[11479, 11479], "valid"], [[11480, 11480], "mapped", [11481]], [[11481, 11481], "valid"], [[11482, 11482], "mapped", [11483]], [[11483, 11483], "valid"], [[11484, 11484], "mapped", [11485]], [[11485, 11485], "valid"], [[11486, 11486], "mapped", [11487]], [[11487, 11487], "valid"], [[11488, 11488], "mapped", [11489]], [[11489, 11489], "valid"], [[11490, 11490], "mapped", [11491]], [[11491, 11492], "valid"], [[11493, 11498], "valid", [], "NV8"], [[11499, 11499], "mapped", [11500]], [[11500, 11500], "valid"], [[11501, 11501], "mapped", [11502]], [[11502, 11505], "valid"], [[11506, 11506], "mapped", [11507]], [[11507, 11507], "valid"], [[11508, 11512], "disallowed"], [[11513, 11519], "valid", [], "NV8"], [[11520, 11557], "valid"], [[11558, 11558], "disallowed"], [[11559, 11559], "valid"], [[11560, 11564], "disallowed"], [[11565, 11565], "valid"], [[11566, 11567], "disallowed"], [[11568, 11621], "valid"], [[11622, 11623], "valid"], [[11624, 11630], "disallowed"], [[11631, 11631], "mapped", [11617]], [[11632, 11632], "valid", [], "NV8"], [[11633, 11646], "disallowed"], [[11647, 11647], "valid"], [[11648, 11670], "valid"], [[11671, 11679], "disallowed"], [[11680, 11686], "valid"], [[11687, 11687], "disallowed"], [[11688, 11694], "valid"], [[11695, 11695], "disallowed"], [[11696, 11702], "valid"], [[11703, 11703], "disallowed"], [[11704, 11710], "valid"], [[11711, 11711], "disallowed"], [[11712, 11718], "valid"], [[11719, 11719], "disallowed"], [[11720, 11726], "valid"], [[11727, 11727], "disallowed"], [[11728, 11734], "valid"], [[11735, 11735], "disallowed"], [[11736, 11742], "valid"], [[11743, 11743], "disallowed"], [[11744, 11775], "valid"], [[11776, 11799], "valid", [], "NV8"], [[11800, 11803], "valid", [], "NV8"], [[11804, 11805], "valid", [], "NV8"], [[11806, 11822], "valid", [], "NV8"], [[11823, 11823], "valid"], [[11824, 11824], "valid", [], "NV8"], [[11825, 11825], "valid", [], "NV8"], [[11826, 11835], "valid", [], "NV8"], [[11836, 11842], "valid", [], "NV8"], [[11843, 11903], "disallowed"], [[11904, 11929], "valid", [], "NV8"], [[11930, 11930], "disallowed"], [[11931, 11934], "valid", [], "NV8"], [[11935, 11935], "mapped", [27597]], [[11936, 12018], "valid", [], "NV8"], [[12019, 12019], "mapped", [40863]], [[12020, 12031], "disallowed"], [[12032, 12032], "mapped", [19968]], [[12033, 12033], "mapped", [20008]], [[12034, 12034], "mapped", [20022]], [[12035, 12035], "mapped", [20031]], [[12036, 12036], "mapped", [20057]], [[12037, 12037], "mapped", [20101]], [[12038, 12038], "mapped", [20108]], [[12039, 12039], "mapped", [20128]], [[12040, 12040], "mapped", [20154]], [[12041, 12041], "mapped", [20799]], [[12042, 12042], "mapped", [20837]], [[12043, 12043], "mapped", [20843]], [[12044, 12044], "mapped", [20866]], [[12045, 12045], "mapped", [20886]], [[12046, 12046], "mapped", [20907]], [[12047, 12047], "mapped", [20960]], [[12048, 12048], "mapped", [20981]], [[12049, 12049], "mapped", [20992]], [[12050, 12050], "mapped", [21147]], [[12051, 12051], "mapped", [21241]], [[12052, 12052], "mapped", [21269]], [[12053, 12053], "mapped", [21274]], [[12054, 12054], "mapped", [21304]], [[12055, 12055], "mapped", [21313]], [[12056, 12056], "mapped", [21340]], [[12057, 12057], "mapped", [21353]], [[12058, 12058], "mapped", [21378]], [[12059, 12059], "mapped", [21430]], [[12060, 12060], "mapped", [21448]], [[12061, 12061], "mapped", [21475]], [[12062, 12062], "mapped", [22231]], [[12063, 12063], "mapped", [22303]], [[12064, 12064], "mapped", [22763]], [[12065, 12065], "mapped", [22786]], [[12066, 12066], "mapped", [22794]], [[12067, 12067], "mapped", [22805]], [[12068, 12068], "mapped", [22823]], [[12069, 12069], "mapped", [22899]], [[12070, 12070], "mapped", [23376]], [[12071, 12071], "mapped", [23424]], [[12072, 12072], "mapped", [23544]], [[12073, 12073], "mapped", [23567]], [[12074, 12074], "mapped", [23586]], [[12075, 12075], "mapped", [23608]], [[12076, 12076], "mapped", [23662]], [[12077, 12077], "mapped", [23665]], [[12078, 12078], "mapped", [24027]], [[12079, 12079], "mapped", [24037]], [[12080, 12080], "mapped", [24049]], [[12081, 12081], "mapped", [24062]], [[12082, 12082], "mapped", [24178]], [[12083, 12083], "mapped", [24186]], [[12084, 12084], "mapped", [24191]], [[12085, 12085], "mapped", [24308]], [[12086, 12086], "mapped", [24318]], [[12087, 12087], "mapped", [24331]], [[12088, 12088], "mapped", [24339]], [[12089, 12089], "mapped", [24400]], [[12090, 12090], "mapped", [24417]], [[12091, 12091], "mapped", [24435]], [[12092, 12092], "mapped", [24515]], [[12093, 12093], "mapped", [25096]], [[12094, 12094], "mapped", [25142]], [[12095, 12095], "mapped", [25163]], [[12096, 12096], "mapped", [25903]], [[12097, 12097], "mapped", [25908]], [[12098, 12098], "mapped", [25991]], [[12099, 12099], "mapped", [26007]], [[12100, 12100], "mapped", [26020]], [[12101, 12101], "mapped", [26041]], [[12102, 12102], "mapped", [26080]], [[12103, 12103], "mapped", [26085]], [[12104, 12104], "mapped", [26352]], [[12105, 12105], "mapped", [26376]], [[12106, 12106], "mapped", [26408]], [[12107, 12107], "mapped", [27424]], [[12108, 12108], "mapped", [27490]], [[12109, 12109], "mapped", [27513]], [[12110, 12110], "mapped", [27571]], [[12111, 12111], "mapped", [27595]], [[12112, 12112], "mapped", [27604]], [[12113, 12113], "mapped", [27611]], [[12114, 12114], "mapped", [27663]], [[12115, 12115], "mapped", [27668]], [[12116, 12116], "mapped", [27700]], [[12117, 12117], "mapped", [28779]], [[12118, 12118], "mapped", [29226]], [[12119, 12119], "mapped", [29238]], [[12120, 12120], "mapped", [29243]], [[12121, 12121], "mapped", [29247]], [[12122, 12122], "mapped", [29255]], [[12123, 12123], "mapped", [29273]], [[12124, 12124], "mapped", [29275]], [[12125, 12125], "mapped", [29356]], [[12126, 12126], "mapped", [29572]], [[12127, 12127], "mapped", [29577]], [[12128, 12128], "mapped", [29916]], [[12129, 12129], "mapped", [29926]], [[12130, 12130], "mapped", [29976]], [[12131, 12131], "mapped", [29983]], [[12132, 12132], "mapped", [29992]], [[12133, 12133], "mapped", [3e4]], [[12134, 12134], "mapped", [30091]], [[12135, 12135], "mapped", [30098]], [[12136, 12136], "mapped", [30326]], [[12137, 12137], "mapped", [30333]], [[12138, 12138], "mapped", [30382]], [[12139, 12139], "mapped", [30399]], [[12140, 12140], "mapped", [30446]], [[12141, 12141], "mapped", [30683]], [[12142, 12142], "mapped", [30690]], [[12143, 12143], "mapped", [30707]], [[12144, 12144], "mapped", [31034]], [[12145, 12145], "mapped", [31160]], [[12146, 12146], "mapped", [31166]], [[12147, 12147], "mapped", [31348]], [[12148, 12148], "mapped", [31435]], [[12149, 12149], "mapped", [31481]], [[12150, 12150], "mapped", [31859]], [[12151, 12151], "mapped", [31992]], [[12152, 12152], "mapped", [32566]], [[12153, 12153], "mapped", [32593]], [[12154, 12154], "mapped", [32650]], [[12155, 12155], "mapped", [32701]], [[12156, 12156], "mapped", [32769]], [[12157, 12157], "mapped", [32780]], [[12158, 12158], "mapped", [32786]], [[12159, 12159], "mapped", [32819]], [[12160, 12160], "mapped", [32895]], [[12161, 12161], "mapped", [32905]], [[12162, 12162], "mapped", [33251]], [[12163, 12163], "mapped", [33258]], [[12164, 12164], "mapped", [33267]], [[12165, 12165], "mapped", [33276]], [[12166, 12166], "mapped", [33292]], [[12167, 12167], "mapped", [33307]], [[12168, 12168], "mapped", [33311]], [[12169, 12169], "mapped", [33390]], [[12170, 12170], "mapped", [33394]], [[12171, 12171], "mapped", [33400]], [[12172, 12172], "mapped", [34381]], [[12173, 12173], "mapped", [34411]], [[12174, 12174], "mapped", [34880]], [[12175, 12175], "mapped", [34892]], [[12176, 12176], "mapped", [34915]], [[12177, 12177], "mapped", [35198]], [[12178, 12178], "mapped", [35211]], [[12179, 12179], "mapped", [35282]], [[12180, 12180], "mapped", [35328]], [[12181, 12181], "mapped", [35895]], [[12182, 12182], "mapped", [35910]], [[12183, 12183], "mapped", [35925]], [[12184, 12184], "mapped", [35960]], [[12185, 12185], "mapped", [35997]], [[12186, 12186], "mapped", [36196]], [[12187, 12187], "mapped", [36208]], [[12188, 12188], "mapped", [36275]], [[12189, 12189], "mapped", [36523]], [[12190, 12190], "mapped", [36554]], [[12191, 12191], "mapped", [36763]], [[12192, 12192], "mapped", [36784]], [[12193, 12193], "mapped", [36789]], [[12194, 12194], "mapped", [37009]], [[12195, 12195], "mapped", [37193]], [[12196, 12196], "mapped", [37318]], [[12197, 12197], "mapped", [37324]], [[12198, 12198], "mapped", [37329]], [[12199, 12199], "mapped", [38263]], [[12200, 12200], "mapped", [38272]], [[12201, 12201], "mapped", [38428]], [[12202, 12202], "mapped", [38582]], [[12203, 12203], "mapped", [38585]], [[12204, 12204], "mapped", [38632]], [[12205, 12205], "mapped", [38737]], [[12206, 12206], "mapped", [38750]], [[12207, 12207], "mapped", [38754]], [[12208, 12208], "mapped", [38761]], [[12209, 12209], "mapped", [38859]], [[12210, 12210], "mapped", [38893]], [[12211, 12211], "mapped", [38899]], [[12212, 12212], "mapped", [38913]], [[12213, 12213], "mapped", [39080]], [[12214, 12214], "mapped", [39131]], [[12215, 12215], "mapped", [39135]], [[12216, 12216], "mapped", [39318]], [[12217, 12217], "mapped", [39321]], [[12218, 12218], "mapped", [39340]], [[12219, 12219], "mapped", [39592]], [[12220, 12220], "mapped", [39640]], [[12221, 12221], "mapped", [39647]], [[12222, 12222], "mapped", [39717]], [[12223, 12223], "mapped", [39727]], [[12224, 12224], "mapped", [39730]], [[12225, 12225], "mapped", [39740]], [[12226, 12226], "mapped", [39770]], [[12227, 12227], "mapped", [40165]], [[12228, 12228], "mapped", [40565]], [[12229, 12229], "mapped", [40575]], [[12230, 12230], "mapped", [40613]], [[12231, 12231], "mapped", [40635]], [[12232, 12232], "mapped", [40643]], [[12233, 12233], "mapped", [40653]], [[12234, 12234], "mapped", [40657]], [[12235, 12235], "mapped", [40697]], [[12236, 12236], "mapped", [40701]], [[12237, 12237], "mapped", [40718]], [[12238, 12238], "mapped", [40723]], [[12239, 12239], "mapped", [40736]], [[12240, 12240], "mapped", [40763]], [[12241, 12241], "mapped", [40778]], [[12242, 12242], "mapped", [40786]], [[12243, 12243], "mapped", [40845]], [[12244, 12244], "mapped", [40860]], [[12245, 12245], "mapped", [40864]], [[12246, 12271], "disallowed"], [[12272, 12283], "disallowed"], [[12284, 12287], "disallowed"], [[12288, 12288], "disallowed_STD3_mapped", [32]], [[12289, 12289], "valid", [], "NV8"], [[12290, 12290], "mapped", [46]], [[12291, 12292], "valid", [], "NV8"], [[12293, 12295], "valid"], [[12296, 12329], "valid", [], "NV8"], [[12330, 12333], "valid"], [[12334, 12341], "valid", [], "NV8"], [[12342, 12342], "mapped", [12306]], [[12343, 12343], "valid", [], "NV8"], [[12344, 12344], "mapped", [21313]], [[12345, 12345], "mapped", [21316]], [[12346, 12346], "mapped", [21317]], [[12347, 12347], "valid", [], "NV8"], [[12348, 12348], "valid"], [[12349, 12349], "valid", [], "NV8"], [[12350, 12350], "valid", [], "NV8"], [[12351, 12351], "valid", [], "NV8"], [[12352, 12352], "disallowed"], [[12353, 12436], "valid"], [[12437, 12438], "valid"], [[12439, 12440], "disallowed"], [[12441, 12442], "valid"], [[12443, 12443], "disallowed_STD3_mapped", [32, 12441]], [[12444, 12444], "disallowed_STD3_mapped", [32, 12442]], [[12445, 12446], "valid"], [[12447, 12447], "mapped", [12424, 12426]], [[12448, 12448], "valid", [], "NV8"], [[12449, 12542], "valid"], [[12543, 12543], "mapped", [12467, 12488]], [[12544, 12548], "disallowed"], [[12549, 12588], "valid"], [[12589, 12589], "valid"], [[12590, 12592], "disallowed"], [[12593, 12593], "mapped", [4352]], [[12594, 12594], "mapped", [4353]], [[12595, 12595], "mapped", [4522]], [[12596, 12596], "mapped", [4354]], [[12597, 12597], "mapped", [4524]], [[12598, 12598], "mapped", [4525]], [[12599, 12599], "mapped", [4355]], [[12600, 12600], "mapped", [4356]], [[12601, 12601], "mapped", [4357]], [[12602, 12602], "mapped", [4528]], [[12603, 12603], "mapped", [4529]], [[12604, 12604], "mapped", [4530]], [[12605, 12605], "mapped", [4531]], [[12606, 12606], "mapped", [4532]], [[12607, 12607], "mapped", [4533]], [[12608, 12608], "mapped", [4378]], [[12609, 12609], "mapped", [4358]], [[12610, 12610], "mapped", [4359]], [[12611, 12611], "mapped", [4360]], [[12612, 12612], "mapped", [4385]], [[12613, 12613], "mapped", [4361]], [[12614, 12614], "mapped", [4362]], [[12615, 12615], "mapped", [4363]], [[12616, 12616], "mapped", [4364]], [[12617, 12617], "mapped", [4365]], [[12618, 12618], "mapped", [4366]], [[12619, 12619], "mapped", [4367]], [[12620, 12620], "mapped", [4368]], [[12621, 12621], "mapped", [4369]], [[12622, 12622], "mapped", [4370]], [[12623, 12623], "mapped", [4449]], [[12624, 12624], "mapped", [4450]], [[12625, 12625], "mapped", [4451]], [[12626, 12626], "mapped", [4452]], [[12627, 12627], "mapped", [4453]], [[12628, 12628], "mapped", [4454]], [[12629, 12629], "mapped", [4455]], [[12630, 12630], "mapped", [4456]], [[12631, 12631], "mapped", [4457]], [[12632, 12632], "mapped", [4458]], [[12633, 12633], "mapped", [4459]], [[12634, 12634], "mapped", [4460]], [[12635, 12635], "mapped", [4461]], [[12636, 12636], "mapped", [4462]], [[12637, 12637], "mapped", [4463]], [[12638, 12638], "mapped", [4464]], [[12639, 12639], "mapped", [4465]], [[12640, 12640], "mapped", [4466]], [[12641, 12641], "mapped", [4467]], [[12642, 12642], "mapped", [4468]], [[12643, 12643], "mapped", [4469]], [[12644, 12644], "disallowed"], [[12645, 12645], "mapped", [4372]], [[12646, 12646], "mapped", [4373]], [[12647, 12647], "mapped", [4551]], [[12648, 12648], "mapped", [4552]], [[12649, 12649], "mapped", [4556]], [[12650, 12650], "mapped", [4558]], [[12651, 12651], "mapped", [4563]], [[12652, 12652], "mapped", [4567]], [[12653, 12653], "mapped", [4569]], [[12654, 12654], "mapped", [4380]], [[12655, 12655], "mapped", [4573]], [[12656, 12656], "mapped", [4575]], [[12657, 12657], "mapped", [4381]], [[12658, 12658], "mapped", [4382]], [[12659, 12659], "mapped", [4384]], [[12660, 12660], "mapped", [4386]], [[12661, 12661], "mapped", [4387]], [[12662, 12662], "mapped", [4391]], [[12663, 12663], "mapped", [4393]], [[12664, 12664], "mapped", [4395]], [[12665, 12665], "mapped", [4396]], [[12666, 12666], "mapped", [4397]], [[12667, 12667], "mapped", [4398]], [[12668, 12668], "mapped", [4399]], [[12669, 12669], "mapped", [4402]], [[12670, 12670], "mapped", [4406]], [[12671, 12671], "mapped", [4416]], [[12672, 12672], "mapped", [4423]], [[12673, 12673], "mapped", [4428]], [[12674, 12674], "mapped", [4593]], [[12675, 12675], "mapped", [4594]], [[12676, 12676], "mapped", [4439]], [[12677, 12677], "mapped", [4440]], [[12678, 12678], "mapped", [4441]], [[12679, 12679], "mapped", [4484]], [[12680, 12680], "mapped", [4485]], [[12681, 12681], "mapped", [4488]], [[12682, 12682], "mapped", [4497]], [[12683, 12683], "mapped", [4498]], [[12684, 12684], "mapped", [4500]], [[12685, 12685], "mapped", [4510]], [[12686, 12686], "mapped", [4513]], [[12687, 12687], "disallowed"], [[12688, 12689], "valid", [], "NV8"], [[12690, 12690], "mapped", [19968]], [[12691, 12691], "mapped", [20108]], [[12692, 12692], "mapped", [19977]], [[12693, 12693], "mapped", [22235]], [[12694, 12694], "mapped", [19978]], [[12695, 12695], "mapped", [20013]], [[12696, 12696], "mapped", [19979]], [[12697, 12697], "mapped", [30002]], [[12698, 12698], "mapped", [20057]], [[12699, 12699], "mapped", [19993]], [[12700, 12700], "mapped", [19969]], [[12701, 12701], "mapped", [22825]], [[12702, 12702], "mapped", [22320]], [[12703, 12703], "mapped", [20154]], [[12704, 12727], "valid"], [[12728, 12730], "valid"], [[12731, 12735], "disallowed"], [[12736, 12751], "valid", [], "NV8"], [[12752, 12771], "valid", [], "NV8"], [[12772, 12783], "disallowed"], [[12784, 12799], "valid"], [[12800, 12800], "disallowed_STD3_mapped", [40, 4352, 41]], [[12801, 12801], "disallowed_STD3_mapped", [40, 4354, 41]], [[12802, 12802], "disallowed_STD3_mapped", [40, 4355, 41]], [[12803, 12803], "disallowed_STD3_mapped", [40, 4357, 41]], [[12804, 12804], "disallowed_STD3_mapped", [40, 4358, 41]], [[12805, 12805], "disallowed_STD3_mapped", [40, 4359, 41]], [[12806, 12806], "disallowed_STD3_mapped", [40, 4361, 41]], [[12807, 12807], "disallowed_STD3_mapped", [40, 4363, 41]], [[12808, 12808], "disallowed_STD3_mapped", [40, 4364, 41]], [[12809, 12809], "disallowed_STD3_mapped", [40, 4366, 41]], [[12810, 12810], "disallowed_STD3_mapped", [40, 4367, 41]], [[12811, 12811], "disallowed_STD3_mapped", [40, 4368, 41]], [[12812, 12812], "disallowed_STD3_mapped", [40, 4369, 41]], [[12813, 12813], "disallowed_STD3_mapped", [40, 4370, 41]], [[12814, 12814], "disallowed_STD3_mapped", [40, 44032, 41]], [[12815, 12815], "disallowed_STD3_mapped", [40, 45208, 41]], [[12816, 12816], "disallowed_STD3_mapped", [40, 45796, 41]], [[12817, 12817], "disallowed_STD3_mapped", [40, 46972, 41]], [[12818, 12818], "disallowed_STD3_mapped", [40, 47560, 41]], [[12819, 12819], "disallowed_STD3_mapped", [40, 48148, 41]], [[12820, 12820], "disallowed_STD3_mapped", [40, 49324, 41]], [[12821, 12821], "disallowed_STD3_mapped", [40, 50500, 41]], [[12822, 12822], "disallowed_STD3_mapped", [40, 51088, 41]], [[12823, 12823], "disallowed_STD3_mapped", [40, 52264, 41]], [[12824, 12824], "disallowed_STD3_mapped", [40, 52852, 41]], [[12825, 12825], "disallowed_STD3_mapped", [40, 53440, 41]], [[12826, 12826], "disallowed_STD3_mapped", [40, 54028, 41]], [[12827, 12827], "disallowed_STD3_mapped", [40, 54616, 41]], [[12828, 12828], "disallowed_STD3_mapped", [40, 51452, 41]], [[12829, 12829], "disallowed_STD3_mapped", [40, 50724, 51204, 41]], [[12830, 12830], "disallowed_STD3_mapped", [40, 50724, 54980, 41]], [[12831, 12831], "disallowed"], [[12832, 12832], "disallowed_STD3_mapped", [40, 19968, 41]], [[12833, 12833], "disallowed_STD3_mapped", [40, 20108, 41]], [[12834, 12834], "disallowed_STD3_mapped", [40, 19977, 41]], [[12835, 12835], "disallowed_STD3_mapped", [40, 22235, 41]], [[12836, 12836], "disallowed_STD3_mapped", [40, 20116, 41]], [[12837, 12837], "disallowed_STD3_mapped", [40, 20845, 41]], [[12838, 12838], "disallowed_STD3_mapped", [40, 19971, 41]], [[12839, 12839], "disallowed_STD3_mapped", [40, 20843, 41]], [[12840, 12840], "disallowed_STD3_mapped", [40, 20061, 41]], [[12841, 12841], "disallowed_STD3_mapped", [40, 21313, 41]], [[12842, 12842], "disallowed_STD3_mapped", [40, 26376, 41]], [[12843, 12843], "disallowed_STD3_mapped", [40, 28779, 41]], [[12844, 12844], "disallowed_STD3_mapped", [40, 27700, 41]], [[12845, 12845], "disallowed_STD3_mapped", [40, 26408, 41]], [[12846, 12846], "disallowed_STD3_mapped", [40, 37329, 41]], [[12847, 12847], "disallowed_STD3_mapped", [40, 22303, 41]], [[12848, 12848], "disallowed_STD3_mapped", [40, 26085, 41]], [[12849, 12849], "disallowed_STD3_mapped", [40, 26666, 41]], [[12850, 12850], "disallowed_STD3_mapped", [40, 26377, 41]], [[12851, 12851], "disallowed_STD3_mapped", [40, 31038, 41]], [[12852, 12852], "disallowed_STD3_mapped", [40, 21517, 41]], [[12853, 12853], "disallowed_STD3_mapped", [40, 29305, 41]], [[12854, 12854], "disallowed_STD3_mapped", [40, 36001, 41]], [[12855, 12855], "disallowed_STD3_mapped", [40, 31069, 41]], [[12856, 12856], "disallowed_STD3_mapped", [40, 21172, 41]], [[12857, 12857], "disallowed_STD3_mapped", [40, 20195, 41]], [[12858, 12858], "disallowed_STD3_mapped", [40, 21628, 41]], [[12859, 12859], "disallowed_STD3_mapped", [40, 23398, 41]], [[12860, 12860], "disallowed_STD3_mapped", [40, 30435, 41]], [[12861, 12861], "disallowed_STD3_mapped", [40, 20225, 41]], [[12862, 12862], "disallowed_STD3_mapped", [40, 36039, 41]], [[12863, 12863], "disallowed_STD3_mapped", [40, 21332, 41]], [[12864, 12864], "disallowed_STD3_mapped", [40, 31085, 41]], [[12865, 12865], "disallowed_STD3_mapped", [40, 20241, 41]], [[12866, 12866], "disallowed_STD3_mapped", [40, 33258, 41]], [[12867, 12867], "disallowed_STD3_mapped", [40, 33267, 41]], [[12868, 12868], "mapped", [21839]], [[12869, 12869], "mapped", [24188]], [[12870, 12870], "mapped", [25991]], [[12871, 12871], "mapped", [31631]], [[12872, 12879], "valid", [], "NV8"], [[12880, 12880], "mapped", [112, 116, 101]], [[12881, 12881], "mapped", [50, 49]], [[12882, 12882], "mapped", [50, 50]], [[12883, 12883], "mapped", [50, 51]], [[12884, 12884], "mapped", [50, 52]], [[12885, 12885], "mapped", [50, 53]], [[12886, 12886], "mapped", [50, 54]], [[12887, 12887], "mapped", [50, 55]], [[12888, 12888], "mapped", [50, 56]], [[12889, 12889], "mapped", [50, 57]], [[12890, 12890], "mapped", [51, 48]], [[12891, 12891], "mapped", [51, 49]], [[12892, 12892], "mapped", [51, 50]], [[12893, 12893], "mapped", [51, 51]], [[12894, 12894], "mapped", [51, 52]], [[12895, 12895], "mapped", [51, 53]], [[12896, 12896], "mapped", [4352]], [[12897, 12897], "mapped", [4354]], [[12898, 12898], "mapped", [4355]], [[12899, 12899], "mapped", [4357]], [[12900, 12900], "mapped", [4358]], [[12901, 12901], "mapped", [4359]], [[12902, 12902], "mapped", [4361]], [[12903, 12903], "mapped", [4363]], [[12904, 12904], "mapped", [4364]], [[12905, 12905], "mapped", [4366]], [[12906, 12906], "mapped", [4367]], [[12907, 12907], "mapped", [4368]], [[12908, 12908], "mapped", [4369]], [[12909, 12909], "mapped", [4370]], [[12910, 12910], "mapped", [44032]], [[12911, 12911], "mapped", [45208]], [[12912, 12912], "mapped", [45796]], [[12913, 12913], "mapped", [46972]], [[12914, 12914], "mapped", [47560]], [[12915, 12915], "mapped", [48148]], [[12916, 12916], "mapped", [49324]], [[12917, 12917], "mapped", [50500]], [[12918, 12918], "mapped", [51088]], [[12919, 12919], "mapped", [52264]], [[12920, 12920], "mapped", [52852]], [[12921, 12921], "mapped", [53440]], [[12922, 12922], "mapped", [54028]], [[12923, 12923], "mapped", [54616]], [[12924, 12924], "mapped", [52280, 44256]], [[12925, 12925], "mapped", [51452, 51032]], [[12926, 12926], "mapped", [50864]], [[12927, 12927], "valid", [], "NV8"], [[12928, 12928], "mapped", [19968]], [[12929, 12929], "mapped", [20108]], [[12930, 12930], "mapped", [19977]], [[12931, 12931], "mapped", [22235]], [[12932, 12932], "mapped", [20116]], [[12933, 12933], "mapped", [20845]], [[12934, 12934], "mapped", [19971]], [[12935, 12935], "mapped", [20843]], [[12936, 12936], "mapped", [20061]], [[12937, 12937], "mapped", [21313]], [[12938, 12938], "mapped", [26376]], [[12939, 12939], "mapped", [28779]], [[12940, 12940], "mapped", [27700]], [[12941, 12941], "mapped", [26408]], [[12942, 12942], "mapped", [37329]], [[12943, 12943], "mapped", [22303]], [[12944, 12944], "mapped", [26085]], [[12945, 12945], "mapped", [26666]], [[12946, 12946], "mapped", [26377]], [[12947, 12947], "mapped", [31038]], [[12948, 12948], "mapped", [21517]], [[12949, 12949], "mapped", [29305]], [[12950, 12950], "mapped", [36001]], [[12951, 12951], "mapped", [31069]], [[12952, 12952], "mapped", [21172]], [[12953, 12953], "mapped", [31192]], [[12954, 12954], "mapped", [30007]], [[12955, 12955], "mapped", [22899]], [[12956, 12956], "mapped", [36969]], [[12957, 12957], "mapped", [20778]], [[12958, 12958], "mapped", [21360]], [[12959, 12959], "mapped", [27880]], [[12960, 12960], "mapped", [38917]], [[12961, 12961], "mapped", [20241]], [[12962, 12962], "mapped", [20889]], [[12963, 12963], "mapped", [27491]], [[12964, 12964], "mapped", [19978]], [[12965, 12965], "mapped", [20013]], [[12966, 12966], "mapped", [19979]], [[12967, 12967], "mapped", [24038]], [[12968, 12968], "mapped", [21491]], [[12969, 12969], "mapped", [21307]], [[12970, 12970], "mapped", [23447]], [[12971, 12971], "mapped", [23398]], [[12972, 12972], "mapped", [30435]], [[12973, 12973], "mapped", [20225]], [[12974, 12974], "mapped", [36039]], [[12975, 12975], "mapped", [21332]], [[12976, 12976], "mapped", [22812]], [[12977, 12977], "mapped", [51, 54]], [[12978, 12978], "mapped", [51, 55]], [[12979, 12979], "mapped", [51, 56]], [[12980, 12980], "mapped", [51, 57]], [[12981, 12981], "mapped", [52, 48]], [[12982, 12982], "mapped", [52, 49]], [[12983, 12983], "mapped", [52, 50]], [[12984, 12984], "mapped", [52, 51]], [[12985, 12985], "mapped", [52, 52]], [[12986, 12986], "mapped", [52, 53]], [[12987, 12987], "mapped", [52, 54]], [[12988, 12988], "mapped", [52, 55]], [[12989, 12989], "mapped", [52, 56]], [[12990, 12990], "mapped", [52, 57]], [[12991, 12991], "mapped", [53, 48]], [[12992, 12992], "mapped", [49, 26376]], [[12993, 12993], "mapped", [50, 26376]], [[12994, 12994], "mapped", [51, 26376]], [[12995, 12995], "mapped", [52, 26376]], [[12996, 12996], "mapped", [53, 26376]], [[12997, 12997], "mapped", [54, 26376]], [[12998, 12998], "mapped", [55, 26376]], [[12999, 12999], "mapped", [56, 26376]], [[13e3, 13e3], "mapped", [57, 26376]], [[13001, 13001], "mapped", [49, 48, 26376]], [[13002, 13002], "mapped", [49, 49, 26376]], [[13003, 13003], "mapped", [49, 50, 26376]], [[13004, 13004], "mapped", [104, 103]], [[13005, 13005], "mapped", [101, 114, 103]], [[13006, 13006], "mapped", [101, 118]], [[13007, 13007], "mapped", [108, 116, 100]], [[13008, 13008], "mapped", [12450]], [[13009, 13009], "mapped", [12452]], [[13010, 13010], "mapped", [12454]], [[13011, 13011], "mapped", [12456]], [[13012, 13012], "mapped", [12458]], [[13013, 13013], "mapped", [12459]], [[13014, 13014], "mapped", [12461]], [[13015, 13015], "mapped", [12463]], [[13016, 13016], "mapped", [12465]], [[13017, 13017], "mapped", [12467]], [[13018, 13018], "mapped", [12469]], [[13019, 13019], "mapped", [12471]], [[13020, 13020], "mapped", [12473]], [[13021, 13021], "mapped", [12475]], [[13022, 13022], "mapped", [12477]], [[13023, 13023], "mapped", [12479]], [[13024, 13024], "mapped", [12481]], [[13025, 13025], "mapped", [12484]], [[13026, 13026], "mapped", [12486]], [[13027, 13027], "mapped", [12488]], [[13028, 13028], "mapped", [12490]], [[13029, 13029], "mapped", [12491]], [[13030, 13030], "mapped", [12492]], [[13031, 13031], "mapped", [12493]], [[13032, 13032], "mapped", [12494]], [[13033, 13033], "mapped", [12495]], [[13034, 13034], "mapped", [12498]], [[13035, 13035], "mapped", [12501]], [[13036, 13036], "mapped", [12504]], [[13037, 13037], "mapped", [12507]], [[13038, 13038], "mapped", [12510]], [[13039, 13039], "mapped", [12511]], [[13040, 13040], "mapped", [12512]], [[13041, 13041], "mapped", [12513]], [[13042, 13042], "mapped", [12514]], [[13043, 13043], "mapped", [12516]], [[13044, 13044], "mapped", [12518]], [[13045, 13045], "mapped", [12520]], [[13046, 13046], "mapped", [12521]], [[13047, 13047], "mapped", [12522]], [[13048, 13048], "mapped", [12523]], [[13049, 13049], "mapped", [12524]], [[13050, 13050], "mapped", [12525]], [[13051, 13051], "mapped", [12527]], [[13052, 13052], "mapped", [12528]], [[13053, 13053], "mapped", [12529]], [[13054, 13054], "mapped", [12530]], [[13055, 13055], "disallowed"], [[13056, 13056], "mapped", [12450, 12497, 12540, 12488]], [[13057, 13057], "mapped", [12450, 12523, 12501, 12449]], [[13058, 13058], "mapped", [12450, 12531, 12506, 12450]], [[13059, 13059], "mapped", [12450, 12540, 12523]], [[13060, 13060], "mapped", [12452, 12491, 12531, 12464]], [[13061, 13061], "mapped", [12452, 12531, 12481]], [[13062, 13062], "mapped", [12454, 12457, 12531]], [[13063, 13063], "mapped", [12456, 12473, 12463, 12540, 12489]], [[13064, 13064], "mapped", [12456, 12540, 12459, 12540]], [[13065, 13065], "mapped", [12458, 12531, 12473]], [[13066, 13066], "mapped", [12458, 12540, 12512]], [[13067, 13067], "mapped", [12459, 12452, 12522]], [[13068, 13068], "mapped", [12459, 12521, 12483, 12488]], [[13069, 13069], "mapped", [12459, 12525, 12522, 12540]], [[13070, 13070], "mapped", [12460, 12525, 12531]], [[13071, 13071], "mapped", [12460, 12531, 12510]], [[13072, 13072], "mapped", [12462, 12460]], [[13073, 13073], "mapped", [12462, 12491, 12540]], [[13074, 13074], "mapped", [12461, 12517, 12522, 12540]], [[13075, 13075], "mapped", [12462, 12523, 12480, 12540]], [[13076, 13076], "mapped", [12461, 12525]], [[13077, 13077], "mapped", [12461, 12525, 12464, 12521, 12512]], [[13078, 13078], "mapped", [12461, 12525, 12513, 12540, 12488, 12523]], [[13079, 13079], "mapped", [12461, 12525, 12527, 12483, 12488]], [[13080, 13080], "mapped", [12464, 12521, 12512]], [[13081, 13081], "mapped", [12464, 12521, 12512, 12488, 12531]], [[13082, 13082], "mapped", [12463, 12523, 12476, 12452, 12525]], [[13083, 13083], "mapped", [12463, 12525, 12540, 12493]], [[13084, 13084], "mapped", [12465, 12540, 12473]], [[13085, 13085], "mapped", [12467, 12523, 12490]], [[13086, 13086], "mapped", [12467, 12540, 12509]], [[13087, 13087], "mapped", [12469, 12452, 12463, 12523]], [[13088, 13088], "mapped", [12469, 12531, 12481, 12540, 12512]], [[13089, 13089], "mapped", [12471, 12522, 12531, 12464]], [[13090, 13090], "mapped", [12475, 12531, 12481]], [[13091, 13091], "mapped", [12475, 12531, 12488]], [[13092, 13092], "mapped", [12480, 12540, 12473]], [[13093, 13093], "mapped", [12487, 12471]], [[13094, 13094], "mapped", [12489, 12523]], [[13095, 13095], "mapped", [12488, 12531]], [[13096, 13096], "mapped", [12490, 12494]], [[13097, 13097], "mapped", [12494, 12483, 12488]], [[13098, 13098], "mapped", [12495, 12452, 12484]], [[13099, 13099], "mapped", [12497, 12540, 12475, 12531, 12488]], [[13100, 13100], "mapped", [12497, 12540, 12484]], [[13101, 13101], "mapped", [12496, 12540, 12524, 12523]], [[13102, 13102], "mapped", [12500, 12450, 12473, 12488, 12523]], [[13103, 13103], "mapped", [12500, 12463, 12523]], [[13104, 13104], "mapped", [12500, 12467]], [[13105, 13105], "mapped", [12499, 12523]], [[13106, 13106], "mapped", [12501, 12449, 12521, 12483, 12489]], [[13107, 13107], "mapped", [12501, 12451, 12540, 12488]], [[13108, 13108], "mapped", [12502, 12483, 12471, 12455, 12523]], [[13109, 13109], "mapped", [12501, 12521, 12531]], [[13110, 13110], "mapped", [12504, 12463, 12479, 12540, 12523]], [[13111, 13111], "mapped", [12506, 12477]], [[13112, 13112], "mapped", [12506, 12491, 12498]], [[13113, 13113], "mapped", [12504, 12523, 12484]], [[13114, 13114], "mapped", [12506, 12531, 12473]], [[13115, 13115], "mapped", [12506, 12540, 12472]], [[13116, 13116], "mapped", [12505, 12540, 12479]], [[13117, 13117], "mapped", [12509, 12452, 12531, 12488]], [[13118, 13118], "mapped", [12508, 12523, 12488]], [[13119, 13119], "mapped", [12507, 12531]], [[13120, 13120], "mapped", [12509, 12531, 12489]], [[13121, 13121], "mapped", [12507, 12540, 12523]], [[13122, 13122], "mapped", [12507, 12540, 12531]], [[13123, 13123], "mapped", [12510, 12452, 12463, 12525]], [[13124, 13124], "mapped", [12510, 12452, 12523]], [[13125, 13125], "mapped", [12510, 12483, 12495]], [[13126, 13126], "mapped", [12510, 12523, 12463]], [[13127, 13127], "mapped", [12510, 12531, 12471, 12519, 12531]], [[13128, 13128], "mapped", [12511, 12463, 12525, 12531]], [[13129, 13129], "mapped", [12511, 12522]], [[13130, 13130], "mapped", [12511, 12522, 12496, 12540, 12523]], [[13131, 13131], "mapped", [12513, 12460]], [[13132, 13132], "mapped", [12513, 12460, 12488, 12531]], [[13133, 13133], "mapped", [12513, 12540, 12488, 12523]], [[13134, 13134], "mapped", [12516, 12540, 12489]], [[13135, 13135], "mapped", [12516, 12540, 12523]], [[13136, 13136], "mapped", [12518, 12450, 12531]], [[13137, 13137], "mapped", [12522, 12483, 12488, 12523]], [[13138, 13138], "mapped", [12522, 12521]], [[13139, 13139], "mapped", [12523, 12500, 12540]], [[13140, 13140], "mapped", [12523, 12540, 12502, 12523]], [[13141, 13141], "mapped", [12524, 12512]], [[13142, 13142], "mapped", [12524, 12531, 12488, 12466, 12531]], [[13143, 13143], "mapped", [12527, 12483, 12488]], [[13144, 13144], "mapped", [48, 28857]], [[13145, 13145], "mapped", [49, 28857]], [[13146, 13146], "mapped", [50, 28857]], [[13147, 13147], "mapped", [51, 28857]], [[13148, 13148], "mapped", [52, 28857]], [[13149, 13149], "mapped", [53, 28857]], [[13150, 13150], "mapped", [54, 28857]], [[13151, 13151], "mapped", [55, 28857]], [[13152, 13152], "mapped", [56, 28857]], [[13153, 13153], "mapped", [57, 28857]], [[13154, 13154], "mapped", [49, 48, 28857]], [[13155, 13155], "mapped", [49, 49, 28857]], [[13156, 13156], "mapped", [49, 50, 28857]], [[13157, 13157], "mapped", [49, 51, 28857]], [[13158, 13158], "mapped", [49, 52, 28857]], [[13159, 13159], "mapped", [49, 53, 28857]], [[13160, 13160], "mapped", [49, 54, 28857]], [[13161, 13161], "mapped", [49, 55, 28857]], [[13162, 13162], "mapped", [49, 56, 28857]], [[13163, 13163], "mapped", [49, 57, 28857]], [[13164, 13164], "mapped", [50, 48, 28857]], [[13165, 13165], "mapped", [50, 49, 28857]], [[13166, 13166], "mapped", [50, 50, 28857]], [[13167, 13167], "mapped", [50, 51, 28857]], [[13168, 13168], "mapped", [50, 52, 28857]], [[13169, 13169], "mapped", [104, 112, 97]], [[13170, 13170], "mapped", [100, 97]], [[13171, 13171], "mapped", [97, 117]], [[13172, 13172], "mapped", [98, 97, 114]], [[13173, 13173], "mapped", [111, 118]], [[13174, 13174], "mapped", [112, 99]], [[13175, 13175], "mapped", [100, 109]], [[13176, 13176], "mapped", [100, 109, 50]], [[13177, 13177], "mapped", [100, 109, 51]], [[13178, 13178], "mapped", [105, 117]], [[13179, 13179], "mapped", [24179, 25104]], [[13180, 13180], "mapped", [26157, 21644]], [[13181, 13181], "mapped", [22823, 27491]], [[13182, 13182], "mapped", [26126, 27835]], [[13183, 13183], "mapped", [26666, 24335, 20250, 31038]], [[13184, 13184], "mapped", [112, 97]], [[13185, 13185], "mapped", [110, 97]], [[13186, 13186], "mapped", [956, 97]], [[13187, 13187], "mapped", [109, 97]], [[13188, 13188], "mapped", [107, 97]], [[13189, 13189], "mapped", [107, 98]], [[13190, 13190], "mapped", [109, 98]], [[13191, 13191], "mapped", [103, 98]], [[13192, 13192], "mapped", [99, 97, 108]], [[13193, 13193], "mapped", [107, 99, 97, 108]], [[13194, 13194], "mapped", [112, 102]], [[13195, 13195], "mapped", [110, 102]], [[13196, 13196], "mapped", [956, 102]], [[13197, 13197], "mapped", [956, 103]], [[13198, 13198], "mapped", [109, 103]], [[13199, 13199], "mapped", [107, 103]], [[13200, 13200], "mapped", [104, 122]], [[13201, 13201], "mapped", [107, 104, 122]], [[13202, 13202], "mapped", [109, 104, 122]], [[13203, 13203], "mapped", [103, 104, 122]], [[13204, 13204], "mapped", [116, 104, 122]], [[13205, 13205], "mapped", [956, 108]], [[13206, 13206], "mapped", [109, 108]], [[13207, 13207], "mapped", [100, 108]], [[13208, 13208], "mapped", [107, 108]], [[13209, 13209], "mapped", [102, 109]], [[13210, 13210], "mapped", [110, 109]], [[13211, 13211], "mapped", [956, 109]], [[13212, 13212], "mapped", [109, 109]], [[13213, 13213], "mapped", [99, 109]], [[13214, 13214], "mapped", [107, 109]], [[13215, 13215], "mapped", [109, 109, 50]], [[13216, 13216], "mapped", [99, 109, 50]], [[13217, 13217], "mapped", [109, 50]], [[13218, 13218], "mapped", [107, 109, 50]], [[13219, 13219], "mapped", [109, 109, 51]], [[13220, 13220], "mapped", [99, 109, 51]], [[13221, 13221], "mapped", [109, 51]], [[13222, 13222], "mapped", [107, 109, 51]], [[13223, 13223], "mapped", [109, 8725, 115]], [[13224, 13224], "mapped", [109, 8725, 115, 50]], [[13225, 13225], "mapped", [112, 97]], [[13226, 13226], "mapped", [107, 112, 97]], [[13227, 13227], "mapped", [109, 112, 97]], [[13228, 13228], "mapped", [103, 112, 97]], [[13229, 13229], "mapped", [114, 97, 100]], [[13230, 13230], "mapped", [114, 97, 100, 8725, 115]], [[13231, 13231], "mapped", [114, 97, 100, 8725, 115, 50]], [[13232, 13232], "mapped", [112, 115]], [[13233, 13233], "mapped", [110, 115]], [[13234, 13234], "mapped", [956, 115]], [[13235, 13235], "mapped", [109, 115]], [[13236, 13236], "mapped", [112, 118]], [[13237, 13237], "mapped", [110, 118]], [[13238, 13238], "mapped", [956, 118]], [[13239, 13239], "mapped", [109, 118]], [[13240, 13240], "mapped", [107, 118]], [[13241, 13241], "mapped", [109, 118]], [[13242, 13242], "mapped", [112, 119]], [[13243, 13243], "mapped", [110, 119]], [[13244, 13244], "mapped", [956, 119]], [[13245, 13245], "mapped", [109, 119]], [[13246, 13246], "mapped", [107, 119]], [[13247, 13247], "mapped", [109, 119]], [[13248, 13248], "mapped", [107, 969]], [[13249, 13249], "mapped", [109, 969]], [[13250, 13250], "disallowed"], [[13251, 13251], "mapped", [98, 113]], [[13252, 13252], "mapped", [99, 99]], [[13253, 13253], "mapped", [99, 100]], [[13254, 13254], "mapped", [99, 8725, 107, 103]], [[13255, 13255], "disallowed"], [[13256, 13256], "mapped", [100, 98]], [[13257, 13257], "mapped", [103, 121]], [[13258, 13258], "mapped", [104, 97]], [[13259, 13259], "mapped", [104, 112]], [[13260, 13260], "mapped", [105, 110]], [[13261, 13261], "mapped", [107, 107]], [[13262, 13262], "mapped", [107, 109]], [[13263, 13263], "mapped", [107, 116]], [[13264, 13264], "mapped", [108, 109]], [[13265, 13265], "mapped", [108, 110]], [[13266, 13266], "mapped", [108, 111, 103]], [[13267, 13267], "mapped", [108, 120]], [[13268, 13268], "mapped", [109, 98]], [[13269, 13269], "mapped", [109, 105, 108]], [[13270, 13270], "mapped", [109, 111, 108]], [[13271, 13271], "mapped", [112, 104]], [[13272, 13272], "disallowed"], [[13273, 13273], "mapped", [112, 112, 109]], [[13274, 13274], "mapped", [112, 114]], [[13275, 13275], "mapped", [115, 114]], [[13276, 13276], "mapped", [115, 118]], [[13277, 13277], "mapped", [119, 98]], [[13278, 13278], "mapped", [118, 8725, 109]], [[13279, 13279], "mapped", [97, 8725, 109]], [[13280, 13280], "mapped", [49, 26085]], [[13281, 13281], "mapped", [50, 26085]], [[13282, 13282], "mapped", [51, 26085]], [[13283, 13283], "mapped", [52, 26085]], [[13284, 13284], "mapped", [53, 26085]], [[13285, 13285], "mapped", [54, 26085]], [[13286, 13286], "mapped", [55, 26085]], [[13287, 13287], "mapped", [56, 26085]], [[13288, 13288], "mapped", [57, 26085]], [[13289, 13289], "mapped", [49, 48, 26085]], [[13290, 13290], "mapped", [49, 49, 26085]], [[13291, 13291], "mapped", [49, 50, 26085]], [[13292, 13292], "mapped", [49, 51, 26085]], [[13293, 13293], "mapped", [49, 52, 26085]], [[13294, 13294], "mapped", [49, 53, 26085]], [[13295, 13295], "mapped", [49, 54, 26085]], [[13296, 13296], "mapped", [49, 55, 26085]], [[13297, 13297], "mapped", [49, 56, 26085]], [[13298, 13298], "mapped", [49, 57, 26085]], [[13299, 13299], "mapped", [50, 48, 26085]], [[13300, 13300], "mapped", [50, 49, 26085]], [[13301, 13301], "mapped", [50, 50, 26085]], [[13302, 13302], "mapped", [50, 51, 26085]], [[13303, 13303], "mapped", [50, 52, 26085]], [[13304, 13304], "mapped", [50, 53, 26085]], [[13305, 13305], "mapped", [50, 54, 26085]], [[13306, 13306], "mapped", [50, 55, 26085]], [[13307, 13307], "mapped", [50, 56, 26085]], [[13308, 13308], "mapped", [50, 57, 26085]], [[13309, 13309], "mapped", [51, 48, 26085]], [[13310, 13310], "mapped", [51, 49, 26085]], [[13311, 13311], "mapped", [103, 97, 108]], [[13312, 19893], "valid"], [[19894, 19903], "disallowed"], [[19904, 19967], "valid", [], "NV8"], [[19968, 40869], "valid"], [[40870, 40891], "valid"], [[40892, 40899], "valid"], [[40900, 40907], "valid"], [[40908, 40908], "valid"], [[40909, 40917], "valid"], [[40918, 40959], "disallowed"], [[40960, 42124], "valid"], [[42125, 42127], "disallowed"], [[42128, 42145], "valid", [], "NV8"], [[42146, 42147], "valid", [], "NV8"], [[42148, 42163], "valid", [], "NV8"], [[42164, 42164], "valid", [], "NV8"], [[42165, 42176], "valid", [], "NV8"], [[42177, 42177], "valid", [], "NV8"], [[42178, 42180], "valid", [], "NV8"], [[42181, 42181], "valid", [], "NV8"], [[42182, 42182], "valid", [], "NV8"], [[42183, 42191], "disallowed"], [[42192, 42237], "valid"], [[42238, 42239], "valid", [], "NV8"], [[42240, 42508], "valid"], [[42509, 42511], "valid", [], "NV8"], [[42512, 42539], "valid"], [[42540, 42559], "disallowed"], [[42560, 42560], "mapped", [42561]], [[42561, 42561], "valid"], [[42562, 42562], "mapped", [42563]], [[42563, 42563], "valid"], [[42564, 42564], "mapped", [42565]], [[42565, 42565], "valid"], [[42566, 42566], "mapped", [42567]], [[42567, 42567], "valid"], [[42568, 42568], "mapped", [42569]], [[42569, 42569], "valid"], [[42570, 42570], "mapped", [42571]], [[42571, 42571], "valid"], [[42572, 42572], "mapped", [42573]], [[42573, 42573], "valid"], [[42574, 42574], "mapped", [42575]], [[42575, 42575], "valid"], [[42576, 42576], "mapped", [42577]], [[42577, 42577], "valid"], [[42578, 42578], "mapped", [42579]], [[42579, 42579], "valid"], [[42580, 42580], "mapped", [42581]], [[42581, 42581], "valid"], [[42582, 42582], "mapped", [42583]], [[42583, 42583], "valid"], [[42584, 42584], "mapped", [42585]], [[42585, 42585], "valid"], [[42586, 42586], "mapped", [42587]], [[42587, 42587], "valid"], [[42588, 42588], "mapped", [42589]], [[42589, 42589], "valid"], [[42590, 42590], "mapped", [42591]], [[42591, 42591], "valid"], [[42592, 42592], "mapped", [42593]], [[42593, 42593], "valid"], [[42594, 42594], "mapped", [42595]], [[42595, 42595], "valid"], [[42596, 42596], "mapped", [42597]], [[42597, 42597], "valid"], [[42598, 42598], "mapped", [42599]], [[42599, 42599], "valid"], [[42600, 42600], "mapped", [42601]], [[42601, 42601], "valid"], [[42602, 42602], "mapped", [42603]], [[42603, 42603], "valid"], [[42604, 42604], "mapped", [42605]], [[42605, 42607], "valid"], [[42608, 42611], "valid", [], "NV8"], [[42612, 42619], "valid"], [[42620, 42621], "valid"], [[42622, 42622], "valid", [], "NV8"], [[42623, 42623], "valid"], [[42624, 42624], "mapped", [42625]], [[42625, 42625], "valid"], [[42626, 42626], "mapped", [42627]], [[42627, 42627], "valid"], [[42628, 42628], "mapped", [42629]], [[42629, 42629], "valid"], [[42630, 42630], "mapped", [42631]], [[42631, 42631], "valid"], [[42632, 42632], "mapped", [42633]], [[42633, 42633], "valid"], [[42634, 42634], "mapped", [42635]], [[42635, 42635], "valid"], [[42636, 42636], "mapped", [42637]], [[42637, 42637], "valid"], [[42638, 42638], "mapped", [42639]], [[42639, 42639], "valid"], [[42640, 42640], "mapped", [42641]], [[42641, 42641], "valid"], [[42642, 42642], "mapped", [42643]], [[42643, 42643], "valid"], [[42644, 42644], "mapped", [42645]], [[42645, 42645], "valid"], [[42646, 42646], "mapped", [42647]], [[42647, 42647], "valid"], [[42648, 42648], "mapped", [42649]], [[42649, 42649], "valid"], [[42650, 42650], "mapped", [42651]], [[42651, 42651], "valid"], [[42652, 42652], "mapped", [1098]], [[42653, 42653], "mapped", [1100]], [[42654, 42654], "valid"], [[42655, 42655], "valid"], [[42656, 42725], "valid"], [[42726, 42735], "valid", [], "NV8"], [[42736, 42737], "valid"], [[42738, 42743], "valid", [], "NV8"], [[42744, 42751], "disallowed"], [[42752, 42774], "valid", [], "NV8"], [[42775, 42778], "valid"], [[42779, 42783], "valid"], [[42784, 42785], "valid", [], "NV8"], [[42786, 42786], "mapped", [42787]], [[42787, 42787], "valid"], [[42788, 42788], "mapped", [42789]], [[42789, 42789], "valid"], [[42790, 42790], "mapped", [42791]], [[42791, 42791], "valid"], [[42792, 42792], "mapped", [42793]], [[42793, 42793], "valid"], [[42794, 42794], "mapped", [42795]], [[42795, 42795], "valid"], [[42796, 42796], "mapped", [42797]], [[42797, 42797], "valid"], [[42798, 42798], "mapped", [42799]], [[42799, 42801], "valid"], [[42802, 42802], "mapped", [42803]], [[42803, 42803], "valid"], [[42804, 42804], "mapped", [42805]], [[42805, 42805], "valid"], [[42806, 42806], "mapped", [42807]], [[42807, 42807], "valid"], [[42808, 42808], "mapped", [42809]], [[42809, 42809], "valid"], [[42810, 42810], "mapped", [42811]], [[42811, 42811], "valid"], [[42812, 42812], "mapped", [42813]], [[42813, 42813], "valid"], [[42814, 42814], "mapped", [42815]], [[42815, 42815], "valid"], [[42816, 42816], "mapped", [42817]], [[42817, 42817], "valid"], [[42818, 42818], "mapped", [42819]], [[42819, 42819], "valid"], [[42820, 42820], "mapped", [42821]], [[42821, 42821], "valid"], [[42822, 42822], "mapped", [42823]], [[42823, 42823], "valid"], [[42824, 42824], "mapped", [42825]], [[42825, 42825], "valid"], [[42826, 42826], "mapped", [42827]], [[42827, 42827], "valid"], [[42828, 42828], "mapped", [42829]], [[42829, 42829], "valid"], [[42830, 42830], "mapped", [42831]], [[42831, 42831], "valid"], [[42832, 42832], "mapped", [42833]], [[42833, 42833], "valid"], [[42834, 42834], "mapped", [42835]], [[42835, 42835], "valid"], [[42836, 42836], "mapped", [42837]], [[42837, 42837], "valid"], [[42838, 42838], "mapped", [42839]], [[42839, 42839], "valid"], [[42840, 42840], "mapped", [42841]], [[42841, 42841], "valid"], [[42842, 42842], "mapped", [42843]], [[42843, 42843], "valid"], [[42844, 42844], "mapped", [42845]], [[42845, 42845], "valid"], [[42846, 42846], "mapped", [42847]], [[42847, 42847], "valid"], [[42848, 42848], "mapped", [42849]], [[42849, 42849], "valid"], [[42850, 42850], "mapped", [42851]], [[42851, 42851], "valid"], [[42852, 42852], "mapped", [42853]], [[42853, 42853], "valid"], [[42854, 42854], "mapped", [42855]], [[42855, 42855], "valid"], [[42856, 42856], "mapped", [42857]], [[42857, 42857], "valid"], [[42858, 42858], "mapped", [42859]], [[42859, 42859], "valid"], [[42860, 42860], "mapped", [42861]], [[42861, 42861], "valid"], [[42862, 42862], "mapped", [42863]], [[42863, 42863], "valid"], [[42864, 42864], "mapped", [42863]], [[42865, 42872], "valid"], [[42873, 42873], "mapped", [42874]], [[42874, 42874], "valid"], [[42875, 42875], "mapped", [42876]], [[42876, 42876], "valid"], [[42877, 42877], "mapped", [7545]], [[42878, 42878], "mapped", [42879]], [[42879, 42879], "valid"], [[42880, 42880], "mapped", [42881]], [[42881, 42881], "valid"], [[42882, 42882], "mapped", [42883]], [[42883, 42883], "valid"], [[42884, 42884], "mapped", [42885]], [[42885, 42885], "valid"], [[42886, 42886], "mapped", [42887]], [[42887, 42888], "valid"], [[42889, 42890], "valid", [], "NV8"], [[42891, 42891], "mapped", [42892]], [[42892, 42892], "valid"], [[42893, 42893], "mapped", [613]], [[42894, 42894], "valid"], [[42895, 42895], "valid"], [[42896, 42896], "mapped", [42897]], [[42897, 42897], "valid"], [[42898, 42898], "mapped", [42899]], [[42899, 42899], "valid"], [[42900, 42901], "valid"], [[42902, 42902], "mapped", [42903]], [[42903, 42903], "valid"], [[42904, 42904], "mapped", [42905]], [[42905, 42905], "valid"], [[42906, 42906], "mapped", [42907]], [[42907, 42907], "valid"], [[42908, 42908], "mapped", [42909]], [[42909, 42909], "valid"], [[42910, 42910], "mapped", [42911]], [[42911, 42911], "valid"], [[42912, 42912], "mapped", [42913]], [[42913, 42913], "valid"], [[42914, 42914], "mapped", [42915]], [[42915, 42915], "valid"], [[42916, 42916], "mapped", [42917]], [[42917, 42917], "valid"], [[42918, 42918], "mapped", [42919]], [[42919, 42919], "valid"], [[42920, 42920], "mapped", [42921]], [[42921, 42921], "valid"], [[42922, 42922], "mapped", [614]], [[42923, 42923], "mapped", [604]], [[42924, 42924], "mapped", [609]], [[42925, 42925], "mapped", [620]], [[42926, 42927], "disallowed"], [[42928, 42928], "mapped", [670]], [[42929, 42929], "mapped", [647]], [[42930, 42930], "mapped", [669]], [[42931, 42931], "mapped", [43859]], [[42932, 42932], "mapped", [42933]], [[42933, 42933], "valid"], [[42934, 42934], "mapped", [42935]], [[42935, 42935], "valid"], [[42936, 42998], "disallowed"], [[42999, 42999], "valid"], [[43e3, 43e3], "mapped", [295]], [[43001, 43001], "mapped", [339]], [[43002, 43002], "valid"], [[43003, 43007], "valid"], [[43008, 43047], "valid"], [[43048, 43051], "valid", [], "NV8"], [[43052, 43055], "disallowed"], [[43056, 43065], "valid", [], "NV8"], [[43066, 43071], "disallowed"], [[43072, 43123], "valid"], [[43124, 43127], "valid", [], "NV8"], [[43128, 43135], "disallowed"], [[43136, 43204], "valid"], [[43205, 43213], "disallowed"], [[43214, 43215], "valid", [], "NV8"], [[43216, 43225], "valid"], [[43226, 43231], "disallowed"], [[43232, 43255], "valid"], [[43256, 43258], "valid", [], "NV8"], [[43259, 43259], "valid"], [[43260, 43260], "valid", [], "NV8"], [[43261, 43261], "valid"], [[43262, 43263], "disallowed"], [[43264, 43309], "valid"], [[43310, 43311], "valid", [], "NV8"], [[43312, 43347], "valid"], [[43348, 43358], "disallowed"], [[43359, 43359], "valid", [], "NV8"], [[43360, 43388], "valid", [], "NV8"], [[43389, 43391], "disallowed"], [[43392, 43456], "valid"], [[43457, 43469], "valid", [], "NV8"], [[43470, 43470], "disallowed"], [[43471, 43481], "valid"], [[43482, 43485], "disallowed"], [[43486, 43487], "valid", [], "NV8"], [[43488, 43518], "valid"], [[43519, 43519], "disallowed"], [[43520, 43574], "valid"], [[43575, 43583], "disallowed"], [[43584, 43597], "valid"], [[43598, 43599], "disallowed"], [[43600, 43609], "valid"], [[43610, 43611], "disallowed"], [[43612, 43615], "valid", [], "NV8"], [[43616, 43638], "valid"], [[43639, 43641], "valid", [], "NV8"], [[43642, 43643], "valid"], [[43644, 43647], "valid"], [[43648, 43714], "valid"], [[43715, 43738], "disallowed"], [[43739, 43741], "valid"], [[43742, 43743], "valid", [], "NV8"], [[43744, 43759], "valid"], [[43760, 43761], "valid", [], "NV8"], [[43762, 43766], "valid"], [[43767, 43776], "disallowed"], [[43777, 43782], "valid"], [[43783, 43784], "disallowed"], [[43785, 43790], "valid"], [[43791, 43792], "disallowed"], [[43793, 43798], "valid"], [[43799, 43807], "disallowed"], [[43808, 43814], "valid"], [[43815, 43815], "disallowed"], [[43816, 43822], "valid"], [[43823, 43823], "disallowed"], [[43824, 43866], "valid"], [[43867, 43867], "valid", [], "NV8"], [[43868, 43868], "mapped", [42791]], [[43869, 43869], "mapped", [43831]], [[43870, 43870], "mapped", [619]], [[43871, 43871], "mapped", [43858]], [[43872, 43875], "valid"], [[43876, 43877], "valid"], [[43878, 43887], "disallowed"], [[43888, 43888], "mapped", [5024]], [[43889, 43889], "mapped", [5025]], [[43890, 43890], "mapped", [5026]], [[43891, 43891], "mapped", [5027]], [[43892, 43892], "mapped", [5028]], [[43893, 43893], "mapped", [5029]], [[43894, 43894], "mapped", [5030]], [[43895, 43895], "mapped", [5031]], [[43896, 43896], "mapped", [5032]], [[43897, 43897], "mapped", [5033]], [[43898, 43898], "mapped", [5034]], [[43899, 43899], "mapped", [5035]], [[43900, 43900], "mapped", [5036]], [[43901, 43901], "mapped", [5037]], [[43902, 43902], "mapped", [5038]], [[43903, 43903], "mapped", [5039]], [[43904, 43904], "mapped", [5040]], [[43905, 43905], "mapped", [5041]], [[43906, 43906], "mapped", [5042]], [[43907, 43907], "mapped", [5043]], [[43908, 43908], "mapped", [5044]], [[43909, 43909], "mapped", [5045]], [[43910, 43910], "mapped", [5046]], [[43911, 43911], "mapped", [5047]], [[43912, 43912], "mapped", [5048]], [[43913, 43913], "mapped", [5049]], [[43914, 43914], "mapped", [5050]], [[43915, 43915], "mapped", [5051]], [[43916, 43916], "mapped", [5052]], [[43917, 43917], "mapped", [5053]], [[43918, 43918], "mapped", [5054]], [[43919, 43919], "mapped", [5055]], [[43920, 43920], "mapped", [5056]], [[43921, 43921], "mapped", [5057]], [[43922, 43922], "mapped", [5058]], [[43923, 43923], "mapped", [5059]], [[43924, 43924], "mapped", [5060]], [[43925, 43925], "mapped", [5061]], [[43926, 43926], "mapped", [5062]], [[43927, 43927], "mapped", [5063]], [[43928, 43928], "mapped", [5064]], [[43929, 43929], "mapped", [5065]], [[43930, 43930], "mapped", [5066]], [[43931, 43931], "mapped", [5067]], [[43932, 43932], "mapped", [5068]], [[43933, 43933], "mapped", [5069]], [[43934, 43934], "mapped", [5070]], [[43935, 43935], "mapped", [5071]], [[43936, 43936], "mapped", [5072]], [[43937, 43937], "mapped", [5073]], [[43938, 43938], "mapped", [5074]], [[43939, 43939], "mapped", [5075]], [[43940, 43940], "mapped", [5076]], [[43941, 43941], "mapped", [5077]], [[43942, 43942], "mapped", [5078]], [[43943, 43943], "mapped", [5079]], [[43944, 43944], "mapped", [5080]], [[43945, 43945], "mapped", [5081]], [[43946, 43946], "mapped", [5082]], [[43947, 43947], "mapped", [5083]], [[43948, 43948], "mapped", [5084]], [[43949, 43949], "mapped", [5085]], [[43950, 43950], "mapped", [5086]], [[43951, 43951], "mapped", [5087]], [[43952, 43952], "mapped", [5088]], [[43953, 43953], "mapped", [5089]], [[43954, 43954], "mapped", [5090]], [[43955, 43955], "mapped", [5091]], [[43956, 43956], "mapped", [5092]], [[43957, 43957], "mapped", [5093]], [[43958, 43958], "mapped", [5094]], [[43959, 43959], "mapped", [5095]], [[43960, 43960], "mapped", [5096]], [[43961, 43961], "mapped", [5097]], [[43962, 43962], "mapped", [5098]], [[43963, 43963], "mapped", [5099]], [[43964, 43964], "mapped", [5100]], [[43965, 43965], "mapped", [5101]], [[43966, 43966], "mapped", [5102]], [[43967, 43967], "mapped", [5103]], [[43968, 44010], "valid"], [[44011, 44011], "valid", [], "NV8"], [[44012, 44013], "valid"], [[44014, 44015], "disallowed"], [[44016, 44025], "valid"], [[44026, 44031], "disallowed"], [[44032, 55203], "valid"], [[55204, 55215], "disallowed"], [[55216, 55238], "valid", [], "NV8"], [[55239, 55242], "disallowed"], [[55243, 55291], "valid", [], "NV8"], [[55292, 55295], "disallowed"], [[55296, 57343], "disallowed"], [[57344, 63743], "disallowed"], [[63744, 63744], "mapped", [35912]], [[63745, 63745], "mapped", [26356]], [[63746, 63746], "mapped", [36554]], [[63747, 63747], "mapped", [36040]], [[63748, 63748], "mapped", [28369]], [[63749, 63749], "mapped", [20018]], [[63750, 63750], "mapped", [21477]], [[63751, 63752], "mapped", [40860]], [[63753, 63753], "mapped", [22865]], [[63754, 63754], "mapped", [37329]], [[63755, 63755], "mapped", [21895]], [[63756, 63756], "mapped", [22856]], [[63757, 63757], "mapped", [25078]], [[63758, 63758], "mapped", [30313]], [[63759, 63759], "mapped", [32645]], [[63760, 63760], "mapped", [34367]], [[63761, 63761], "mapped", [34746]], [[63762, 63762], "mapped", [35064]], [[63763, 63763], "mapped", [37007]], [[63764, 63764], "mapped", [27138]], [[63765, 63765], "mapped", [27931]], [[63766, 63766], "mapped", [28889]], [[63767, 63767], "mapped", [29662]], [[63768, 63768], "mapped", [33853]], [[63769, 63769], "mapped", [37226]], [[63770, 63770], "mapped", [39409]], [[63771, 63771], "mapped", [20098]], [[63772, 63772], "mapped", [21365]], [[63773, 63773], "mapped", [27396]], [[63774, 63774], "mapped", [29211]], [[63775, 63775], "mapped", [34349]], [[63776, 63776], "mapped", [40478]], [[63777, 63777], "mapped", [23888]], [[63778, 63778], "mapped", [28651]], [[63779, 63779], "mapped", [34253]], [[63780, 63780], "mapped", [35172]], [[63781, 63781], "mapped", [25289]], [[63782, 63782], "mapped", [33240]], [[63783, 63783], "mapped", [34847]], [[63784, 63784], "mapped", [24266]], [[63785, 63785], "mapped", [26391]], [[63786, 63786], "mapped", [28010]], [[63787, 63787], "mapped", [29436]], [[63788, 63788], "mapped", [37070]], [[63789, 63789], "mapped", [20358]], [[63790, 63790], "mapped", [20919]], [[63791, 63791], "mapped", [21214]], [[63792, 63792], "mapped", [25796]], [[63793, 63793], "mapped", [27347]], [[63794, 63794], "mapped", [29200]], [[63795, 63795], "mapped", [30439]], [[63796, 63796], "mapped", [32769]], [[63797, 63797], "mapped", [34310]], [[63798, 63798], "mapped", [34396]], [[63799, 63799], "mapped", [36335]], [[63800, 63800], "mapped", [38706]], [[63801, 63801], "mapped", [39791]], [[63802, 63802], "mapped", [40442]], [[63803, 63803], "mapped", [30860]], [[63804, 63804], "mapped", [31103]], [[63805, 63805], "mapped", [32160]], [[63806, 63806], "mapped", [33737]], [[63807, 63807], "mapped", [37636]], [[63808, 63808], "mapped", [40575]], [[63809, 63809], "mapped", [35542]], [[63810, 63810], "mapped", [22751]], [[63811, 63811], "mapped", [24324]], [[63812, 63812], "mapped", [31840]], [[63813, 63813], "mapped", [32894]], [[63814, 63814], "mapped", [29282]], [[63815, 63815], "mapped", [30922]], [[63816, 63816], "mapped", [36034]], [[63817, 63817], "mapped", [38647]], [[63818, 63818], "mapped", [22744]], [[63819, 63819], "mapped", [23650]], [[63820, 63820], "mapped", [27155]], [[63821, 63821], "mapped", [28122]], [[63822, 63822], "mapped", [28431]], [[63823, 63823], "mapped", [32047]], [[63824, 63824], "mapped", [32311]], [[63825, 63825], "mapped", [38475]], [[63826, 63826], "mapped", [21202]], [[63827, 63827], "mapped", [32907]], [[63828, 63828], "mapped", [20956]], [[63829, 63829], "mapped", [20940]], [[63830, 63830], "mapped", [31260]], [[63831, 63831], "mapped", [32190]], [[63832, 63832], "mapped", [33777]], [[63833, 63833], "mapped", [38517]], [[63834, 63834], "mapped", [35712]], [[63835, 63835], "mapped", [25295]], [[63836, 63836], "mapped", [27138]], [[63837, 63837], "mapped", [35582]], [[63838, 63838], "mapped", [20025]], [[63839, 63839], "mapped", [23527]], [[63840, 63840], "mapped", [24594]], [[63841, 63841], "mapped", [29575]], [[63842, 63842], "mapped", [30064]], [[63843, 63843], "mapped", [21271]], [[63844, 63844], "mapped", [30971]], [[63845, 63845], "mapped", [20415]], [[63846, 63846], "mapped", [24489]], [[63847, 63847], "mapped", [19981]], [[63848, 63848], "mapped", [27852]], [[63849, 63849], "mapped", [25976]], [[63850, 63850], "mapped", [32034]], [[63851, 63851], "mapped", [21443]], [[63852, 63852], "mapped", [22622]], [[63853, 63853], "mapped", [30465]], [[63854, 63854], "mapped", [33865]], [[63855, 63855], "mapped", [35498]], [[63856, 63856], "mapped", [27578]], [[63857, 63857], "mapped", [36784]], [[63858, 63858], "mapped", [27784]], [[63859, 63859], "mapped", [25342]], [[63860, 63860], "mapped", [33509]], [[63861, 63861], "mapped", [25504]], [[63862, 63862], "mapped", [30053]], [[63863, 63863], "mapped", [20142]], [[63864, 63864], "mapped", [20841]], [[63865, 63865], "mapped", [20937]], [[63866, 63866], "mapped", [26753]], [[63867, 63867], "mapped", [31975]], [[63868, 63868], "mapped", [33391]], [[63869, 63869], "mapped", [35538]], [[63870, 63870], "mapped", [37327]], [[63871, 63871], "mapped", [21237]], [[63872, 63872], "mapped", [21570]], [[63873, 63873], "mapped", [22899]], [[63874, 63874], "mapped", [24300]], [[63875, 63875], "mapped", [26053]], [[63876, 63876], "mapped", [28670]], [[63877, 63877], "mapped", [31018]], [[63878, 63878], "mapped", [38317]], [[63879, 63879], "mapped", [39530]], [[63880, 63880], "mapped", [40599]], [[63881, 63881], "mapped", [40654]], [[63882, 63882], "mapped", [21147]], [[63883, 63883], "mapped", [26310]], [[63884, 63884], "mapped", [27511]], [[63885, 63885], "mapped", [36706]], [[63886, 63886], "mapped", [24180]], [[63887, 63887], "mapped", [24976]], [[63888, 63888], "mapped", [25088]], [[63889, 63889], "mapped", [25754]], [[63890, 63890], "mapped", [28451]], [[63891, 63891], "mapped", [29001]], [[63892, 63892], "mapped", [29833]], [[63893, 63893], "mapped", [31178]], [[63894, 63894], "mapped", [32244]], [[63895, 63895], "mapped", [32879]], [[63896, 63896], "mapped", [36646]], [[63897, 63897], "mapped", [34030]], [[63898, 63898], "mapped", [36899]], [[63899, 63899], "mapped", [37706]], [[63900, 63900], "mapped", [21015]], [[63901, 63901], "mapped", [21155]], [[63902, 63902], "mapped", [21693]], [[63903, 63903], "mapped", [28872]], [[63904, 63904], "mapped", [35010]], [[63905, 63905], "mapped", [35498]], [[63906, 63906], "mapped", [24265]], [[63907, 63907], "mapped", [24565]], [[63908, 63908], "mapped", [25467]], [[63909, 63909], "mapped", [27566]], [[63910, 63910], "mapped", [31806]], [[63911, 63911], "mapped", [29557]], [[63912, 63912], "mapped", [20196]], [[63913, 63913], "mapped", [22265]], [[63914, 63914], "mapped", [23527]], [[63915, 63915], "mapped", [23994]], [[63916, 63916], "mapped", [24604]], [[63917, 63917], "mapped", [29618]], [[63918, 63918], "mapped", [29801]], [[63919, 63919], "mapped", [32666]], [[63920, 63920], "mapped", [32838]], [[63921, 63921], "mapped", [37428]], [[63922, 63922], "mapped", [38646]], [[63923, 63923], "mapped", [38728]], [[63924, 63924], "mapped", [38936]], [[63925, 63925], "mapped", [20363]], [[63926, 63926], "mapped", [31150]], [[63927, 63927], "mapped", [37300]], [[63928, 63928], "mapped", [38584]], [[63929, 63929], "mapped", [24801]], [[63930, 63930], "mapped", [20102]], [[63931, 63931], "mapped", [20698]], [[63932, 63932], "mapped", [23534]], [[63933, 63933], "mapped", [23615]], [[63934, 63934], "mapped", [26009]], [[63935, 63935], "mapped", [27138]], [[63936, 63936], "mapped", [29134]], [[63937, 63937], "mapped", [30274]], [[63938, 63938], "mapped", [34044]], [[63939, 63939], "mapped", [36988]], [[63940, 63940], "mapped", [40845]], [[63941, 63941], "mapped", [26248]], [[63942, 63942], "mapped", [38446]], [[63943, 63943], "mapped", [21129]], [[63944, 63944], "mapped", [26491]], [[63945, 63945], "mapped", [26611]], [[63946, 63946], "mapped", [27969]], [[63947, 63947], "mapped", [28316]], [[63948, 63948], "mapped", [29705]], [[63949, 63949], "mapped", [30041]], [[63950, 63950], "mapped", [30827]], [[63951, 63951], "mapped", [32016]], [[63952, 63952], "mapped", [39006]], [[63953, 63953], "mapped", [20845]], [[63954, 63954], "mapped", [25134]], [[63955, 63955], "mapped", [38520]], [[63956, 63956], "mapped", [20523]], [[63957, 63957], "mapped", [23833]], [[63958, 63958], "mapped", [28138]], [[63959, 63959], "mapped", [36650]], [[63960, 63960], "mapped", [24459]], [[63961, 63961], "mapped", [24900]], [[63962, 63962], "mapped", [26647]], [[63963, 63963], "mapped", [29575]], [[63964, 63964], "mapped", [38534]], [[63965, 63965], "mapped", [21033]], [[63966, 63966], "mapped", [21519]], [[63967, 63967], "mapped", [23653]], [[63968, 63968], "mapped", [26131]], [[63969, 63969], "mapped", [26446]], [[63970, 63970], "mapped", [26792]], [[63971, 63971], "mapped", [27877]], [[63972, 63972], "mapped", [29702]], [[63973, 63973], "mapped", [30178]], [[63974, 63974], "mapped", [32633]], [[63975, 63975], "mapped", [35023]], [[63976, 63976], "mapped", [35041]], [[63977, 63977], "mapped", [37324]], [[63978, 63978], "mapped", [38626]], [[63979, 63979], "mapped", [21311]], [[63980, 63980], "mapped", [28346]], [[63981, 63981], "mapped", [21533]], [[63982, 63982], "mapped", [29136]], [[63983, 63983], "mapped", [29848]], [[63984, 63984], "mapped", [34298]], [[63985, 63985], "mapped", [38563]], [[63986, 63986], "mapped", [40023]], [[63987, 63987], "mapped", [40607]], [[63988, 63988], "mapped", [26519]], [[63989, 63989], "mapped", [28107]], [[63990, 63990], "mapped", [33256]], [[63991, 63991], "mapped", [31435]], [[63992, 63992], "mapped", [31520]], [[63993, 63993], "mapped", [31890]], [[63994, 63994], "mapped", [29376]], [[63995, 63995], "mapped", [28825]], [[63996, 63996], "mapped", [35672]], [[63997, 63997], "mapped", [20160]], [[63998, 63998], "mapped", [33590]], [[63999, 63999], "mapped", [21050]], [[64e3, 64e3], "mapped", [20999]], [[64001, 64001], "mapped", [24230]], [[64002, 64002], "mapped", [25299]], [[64003, 64003], "mapped", [31958]], [[64004, 64004], "mapped", [23429]], [[64005, 64005], "mapped", [27934]], [[64006, 64006], "mapped", [26292]], [[64007, 64007], "mapped", [36667]], [[64008, 64008], "mapped", [34892]], [[64009, 64009], "mapped", [38477]], [[64010, 64010], "mapped", [35211]], [[64011, 64011], "mapped", [24275]], [[64012, 64012], "mapped", [20800]], [[64013, 64013], "mapped", [21952]], [[64014, 64015], "valid"], [[64016, 64016], "mapped", [22618]], [[64017, 64017], "valid"], [[64018, 64018], "mapped", [26228]], [[64019, 64020], "valid"], [[64021, 64021], "mapped", [20958]], [[64022, 64022], "mapped", [29482]], [[64023, 64023], "mapped", [30410]], [[64024, 64024], "mapped", [31036]], [[64025, 64025], "mapped", [31070]], [[64026, 64026], "mapped", [31077]], [[64027, 64027], "mapped", [31119]], [[64028, 64028], "mapped", [38742]], [[64029, 64029], "mapped", [31934]], [[64030, 64030], "mapped", [32701]], [[64031, 64031], "valid"], [[64032, 64032], "mapped", [34322]], [[64033, 64033], "valid"], [[64034, 64034], "mapped", [35576]], [[64035, 64036], "valid"], [[64037, 64037], "mapped", [36920]], [[64038, 64038], "mapped", [37117]], [[64039, 64041], "valid"], [[64042, 64042], "mapped", [39151]], [[64043, 64043], "mapped", [39164]], [[64044, 64044], "mapped", [39208]], [[64045, 64045], "mapped", [40372]], [[64046, 64046], "mapped", [37086]], [[64047, 64047], "mapped", [38583]], [[64048, 64048], "mapped", [20398]], [[64049, 64049], "mapped", [20711]], [[64050, 64050], "mapped", [20813]], [[64051, 64051], "mapped", [21193]], [[64052, 64052], "mapped", [21220]], [[64053, 64053], "mapped", [21329]], [[64054, 64054], "mapped", [21917]], [[64055, 64055], "mapped", [22022]], [[64056, 64056], "mapped", [22120]], [[64057, 64057], "mapped", [22592]], [[64058, 64058], "mapped", [22696]], [[64059, 64059], "mapped", [23652]], [[64060, 64060], "mapped", [23662]], [[64061, 64061], "mapped", [24724]], [[64062, 64062], "mapped", [24936]], [[64063, 64063], "mapped", [24974]], [[64064, 64064], "mapped", [25074]], [[64065, 64065], "mapped", [25935]], [[64066, 64066], "mapped", [26082]], [[64067, 64067], "mapped", [26257]], [[64068, 64068], "mapped", [26757]], [[64069, 64069], "mapped", [28023]], [[64070, 64070], "mapped", [28186]], [[64071, 64071], "mapped", [28450]], [[64072, 64072], "mapped", [29038]], [[64073, 64073], "mapped", [29227]], [[64074, 64074], "mapped", [29730]], [[64075, 64075], "mapped", [30865]], [[64076, 64076], "mapped", [31038]], [[64077, 64077], "mapped", [31049]], [[64078, 64078], "mapped", [31048]], [[64079, 64079], "mapped", [31056]], [[64080, 64080], "mapped", [31062]], [[64081, 64081], "mapped", [31069]], [[64082, 64082], "mapped", [31117]], [[64083, 64083], "mapped", [31118]], [[64084, 64084], "mapped", [31296]], [[64085, 64085], "mapped", [31361]], [[64086, 64086], "mapped", [31680]], [[64087, 64087], "mapped", [32244]], [[64088, 64088], "mapped", [32265]], [[64089, 64089], "mapped", [32321]], [[64090, 64090], "mapped", [32626]], [[64091, 64091], "mapped", [32773]], [[64092, 64092], "mapped", [33261]], [[64093, 64094], "mapped", [33401]], [[64095, 64095], "mapped", [33879]], [[64096, 64096], "mapped", [35088]], [[64097, 64097], "mapped", [35222]], [[64098, 64098], "mapped", [35585]], [[64099, 64099], "mapped", [35641]], [[64100, 64100], "mapped", [36051]], [[64101, 64101], "mapped", [36104]], [[64102, 64102], "mapped", [36790]], [[64103, 64103], "mapped", [36920]], [[64104, 64104], "mapped", [38627]], [[64105, 64105], "mapped", [38911]], [[64106, 64106], "mapped", [38971]], [[64107, 64107], "mapped", [24693]], [[64108, 64108], "mapped", [148206]], [[64109, 64109], "mapped", [33304]], [[64110, 64111], "disallowed"], [[64112, 64112], "mapped", [20006]], [[64113, 64113], "mapped", [20917]], [[64114, 64114], "mapped", [20840]], [[64115, 64115], "mapped", [20352]], [[64116, 64116], "mapped", [20805]], [[64117, 64117], "mapped", [20864]], [[64118, 64118], "mapped", [21191]], [[64119, 64119], "mapped", [21242]], [[64120, 64120], "mapped", [21917]], [[64121, 64121], "mapped", [21845]], [[64122, 64122], "mapped", [21913]], [[64123, 64123], "mapped", [21986]], [[64124, 64124], "mapped", [22618]], [[64125, 64125], "mapped", [22707]], [[64126, 64126], "mapped", [22852]], [[64127, 64127], "mapped", [22868]], [[64128, 64128], "mapped", [23138]], [[64129, 64129], "mapped", [23336]], [[64130, 64130], "mapped", [24274]], [[64131, 64131], "mapped", [24281]], [[64132, 64132], "mapped", [24425]], [[64133, 64133], "mapped", [24493]], [[64134, 64134], "mapped", [24792]], [[64135, 64135], "mapped", [24910]], [[64136, 64136], "mapped", [24840]], [[64137, 64137], "mapped", [24974]], [[64138, 64138], "mapped", [24928]], [[64139, 64139], "mapped", [25074]], [[64140, 64140], "mapped", [25140]], [[64141, 64141], "mapped", [25540]], [[64142, 64142], "mapped", [25628]], [[64143, 64143], "mapped", [25682]], [[64144, 64144], "mapped", [25942]], [[64145, 64145], "mapped", [26228]], [[64146, 64146], "mapped", [26391]], [[64147, 64147], "mapped", [26395]], [[64148, 64148], "mapped", [26454]], [[64149, 64149], "mapped", [27513]], [[64150, 64150], "mapped", [27578]], [[64151, 64151], "mapped", [27969]], [[64152, 64152], "mapped", [28379]], [[64153, 64153], "mapped", [28363]], [[64154, 64154], "mapped", [28450]], [[64155, 64155], "mapped", [28702]], [[64156, 64156], "mapped", [29038]], [[64157, 64157], "mapped", [30631]], [[64158, 64158], "mapped", [29237]], [[64159, 64159], "mapped", [29359]], [[64160, 64160], "mapped", [29482]], [[64161, 64161], "mapped", [29809]], [[64162, 64162], "mapped", [29958]], [[64163, 64163], "mapped", [30011]], [[64164, 64164], "mapped", [30237]], [[64165, 64165], "mapped", [30239]], [[64166, 64166], "mapped", [30410]], [[64167, 64167], "mapped", [30427]], [[64168, 64168], "mapped", [30452]], [[64169, 64169], "mapped", [30538]], [[64170, 64170], "mapped", [30528]], [[64171, 64171], "mapped", [30924]], [[64172, 64172], "mapped", [31409]], [[64173, 64173], "mapped", [31680]], [[64174, 64174], "mapped", [31867]], [[64175, 64175], "mapped", [32091]], [[64176, 64176], "mapped", [32244]], [[64177, 64177], "mapped", [32574]], [[64178, 64178], "mapped", [32773]], [[64179, 64179], "mapped", [33618]], [[64180, 64180], "mapped", [33775]], [[64181, 64181], "mapped", [34681]], [[64182, 64182], "mapped", [35137]], [[64183, 64183], "mapped", [35206]], [[64184, 64184], "mapped", [35222]], [[64185, 64185], "mapped", [35519]], [[64186, 64186], "mapped", [35576]], [[64187, 64187], "mapped", [35531]], [[64188, 64188], "mapped", [35585]], [[64189, 64189], "mapped", [35582]], [[64190, 64190], "mapped", [35565]], [[64191, 64191], "mapped", [35641]], [[64192, 64192], "mapped", [35722]], [[64193, 64193], "mapped", [36104]], [[64194, 64194], "mapped", [36664]], [[64195, 64195], "mapped", [36978]], [[64196, 64196], "mapped", [37273]], [[64197, 64197], "mapped", [37494]], [[64198, 64198], "mapped", [38524]], [[64199, 64199], "mapped", [38627]], [[64200, 64200], "mapped", [38742]], [[64201, 64201], "mapped", [38875]], [[64202, 64202], "mapped", [38911]], [[64203, 64203], "mapped", [38923]], [[64204, 64204], "mapped", [38971]], [[64205, 64205], "mapped", [39698]], [[64206, 64206], "mapped", [40860]], [[64207, 64207], "mapped", [141386]], [[64208, 64208], "mapped", [141380]], [[64209, 64209], "mapped", [144341]], [[64210, 64210], "mapped", [15261]], [[64211, 64211], "mapped", [16408]], [[64212, 64212], "mapped", [16441]], [[64213, 64213], "mapped", [152137]], [[64214, 64214], "mapped", [154832]], [[64215, 64215], "mapped", [163539]], [[64216, 64216], "mapped", [40771]], [[64217, 64217], "mapped", [40846]], [[64218, 64255], "disallowed"], [[64256, 64256], "mapped", [102, 102]], [[64257, 64257], "mapped", [102, 105]], [[64258, 64258], "mapped", [102, 108]], [[64259, 64259], "mapped", [102, 102, 105]], [[64260, 64260], "mapped", [102, 102, 108]], [[64261, 64262], "mapped", [115, 116]], [[64263, 64274], "disallowed"], [[64275, 64275], "mapped", [1396, 1398]], [[64276, 64276], "mapped", [1396, 1381]], [[64277, 64277], "mapped", [1396, 1387]], [[64278, 64278], "mapped", [1406, 1398]], [[64279, 64279], "mapped", [1396, 1389]], [[64280, 64284], "disallowed"], [[64285, 64285], "mapped", [1497, 1460]], [[64286, 64286], "valid"], [[64287, 64287], "mapped", [1522, 1463]], [[64288, 64288], "mapped", [1506]], [[64289, 64289], "mapped", [1488]], [[64290, 64290], "mapped", [1491]], [[64291, 64291], "mapped", [1492]], [[64292, 64292], "mapped", [1499]], [[64293, 64293], "mapped", [1500]], [[64294, 64294], "mapped", [1501]], [[64295, 64295], "mapped", [1512]], [[64296, 64296], "mapped", [1514]], [[64297, 64297], "disallowed_STD3_mapped", [43]], [[64298, 64298], "mapped", [1513, 1473]], [[64299, 64299], "mapped", [1513, 1474]], [[64300, 64300], "mapped", [1513, 1468, 1473]], [[64301, 64301], "mapped", [1513, 1468, 1474]], [[64302, 64302], "mapped", [1488, 1463]], [[64303, 64303], "mapped", [1488, 1464]], [[64304, 64304], "mapped", [1488, 1468]], [[64305, 64305], "mapped", [1489, 1468]], [[64306, 64306], "mapped", [1490, 1468]], [[64307, 64307], "mapped", [1491, 1468]], [[64308, 64308], "mapped", [1492, 1468]], [[64309, 64309], "mapped", [1493, 1468]], [[64310, 64310], "mapped", [1494, 1468]], [[64311, 64311], "disallowed"], [[64312, 64312], "mapped", [1496, 1468]], [[64313, 64313], "mapped", [1497, 1468]], [[64314, 64314], "mapped", [1498, 1468]], [[64315, 64315], "mapped", [1499, 1468]], [[64316, 64316], "mapped", [1500, 1468]], [[64317, 64317], "disallowed"], [[64318, 64318], "mapped", [1502, 1468]], [[64319, 64319], "disallowed"], [[64320, 64320], "mapped", [1504, 1468]], [[64321, 64321], "mapped", [1505, 1468]], [[64322, 64322], "disallowed"], [[64323, 64323], "mapped", [1507, 1468]], [[64324, 64324], "mapped", [1508, 1468]], [[64325, 64325], "disallowed"], [[64326, 64326], "mapped", [1510, 1468]], [[64327, 64327], "mapped", [1511, 1468]], [[64328, 64328], "mapped", [1512, 1468]], [[64329, 64329], "mapped", [1513, 1468]], [[64330, 64330], "mapped", [1514, 1468]], [[64331, 64331], "mapped", [1493, 1465]], [[64332, 64332], "mapped", [1489, 1471]], [[64333, 64333], "mapped", [1499, 1471]], [[64334, 64334], "mapped", [1508, 1471]], [[64335, 64335], "mapped", [1488, 1500]], [[64336, 64337], "mapped", [1649]], [[64338, 64341], "mapped", [1659]], [[64342, 64345], "mapped", [1662]], [[64346, 64349], "mapped", [1664]], [[64350, 64353], "mapped", [1658]], [[64354, 64357], "mapped", [1663]], [[64358, 64361], "mapped", [1657]], [[64362, 64365], "mapped", [1700]], [[64366, 64369], "mapped", [1702]], [[64370, 64373], "mapped", [1668]], [[64374, 64377], "mapped", [1667]], [[64378, 64381], "mapped", [1670]], [[64382, 64385], "mapped", [1671]], [[64386, 64387], "mapped", [1677]], [[64388, 64389], "mapped", [1676]], [[64390, 64391], "mapped", [1678]], [[64392, 64393], "mapped", [1672]], [[64394, 64395], "mapped", [1688]], [[64396, 64397], "mapped", [1681]], [[64398, 64401], "mapped", [1705]], [[64402, 64405], "mapped", [1711]], [[64406, 64409], "mapped", [1715]], [[64410, 64413], "mapped", [1713]], [[64414, 64415], "mapped", [1722]], [[64416, 64419], "mapped", [1723]], [[64420, 64421], "mapped", [1728]], [[64422, 64425], "mapped", [1729]], [[64426, 64429], "mapped", [1726]], [[64430, 64431], "mapped", [1746]], [[64432, 64433], "mapped", [1747]], [[64434, 64449], "valid", [], "NV8"], [[64450, 64466], "disallowed"], [[64467, 64470], "mapped", [1709]], [[64471, 64472], "mapped", [1735]], [[64473, 64474], "mapped", [1734]], [[64475, 64476], "mapped", [1736]], [[64477, 64477], "mapped", [1735, 1652]], [[64478, 64479], "mapped", [1739]], [[64480, 64481], "mapped", [1733]], [[64482, 64483], "mapped", [1737]], [[64484, 64487], "mapped", [1744]], [[64488, 64489], "mapped", [1609]], [[64490, 64491], "mapped", [1574, 1575]], [[64492, 64493], "mapped", [1574, 1749]], [[64494, 64495], "mapped", [1574, 1608]], [[64496, 64497], "mapped", [1574, 1735]], [[64498, 64499], "mapped", [1574, 1734]], [[64500, 64501], "mapped", [1574, 1736]], [[64502, 64504], "mapped", [1574, 1744]], [[64505, 64507], "mapped", [1574, 1609]], [[64508, 64511], "mapped", [1740]], [[64512, 64512], "mapped", [1574, 1580]], [[64513, 64513], "mapped", [1574, 1581]], [[64514, 64514], "mapped", [1574, 1605]], [[64515, 64515], "mapped", [1574, 1609]], [[64516, 64516], "mapped", [1574, 1610]], [[64517, 64517], "mapped", [1576, 1580]], [[64518, 64518], "mapped", [1576, 1581]], [[64519, 64519], "mapped", [1576, 1582]], [[64520, 64520], "mapped", [1576, 1605]], [[64521, 64521], "mapped", [1576, 1609]], [[64522, 64522], "mapped", [1576, 1610]], [[64523, 64523], "mapped", [1578, 1580]], [[64524, 64524], "mapped", [1578, 1581]], [[64525, 64525], "mapped", [1578, 1582]], [[64526, 64526], "mapped", [1578, 1605]], [[64527, 64527], "mapped", [1578, 1609]], [[64528, 64528], "mapped", [1578, 1610]], [[64529, 64529], "mapped", [1579, 1580]], [[64530, 64530], "mapped", [1579, 1605]], [[64531, 64531], "mapped", [1579, 1609]], [[64532, 64532], "mapped", [1579, 1610]], [[64533, 64533], "mapped", [1580, 1581]], [[64534, 64534], "mapped", [1580, 1605]], [[64535, 64535], "mapped", [1581, 1580]], [[64536, 64536], "mapped", [1581, 1605]], [[64537, 64537], "mapped", [1582, 1580]], [[64538, 64538], "mapped", [1582, 1581]], [[64539, 64539], "mapped", [1582, 1605]], [[64540, 64540], "mapped", [1587, 1580]], [[64541, 64541], "mapped", [1587, 1581]], [[64542, 64542], "mapped", [1587, 1582]], [[64543, 64543], "mapped", [1587, 1605]], [[64544, 64544], "mapped", [1589, 1581]], [[64545, 64545], "mapped", [1589, 1605]], [[64546, 64546], "mapped", [1590, 1580]], [[64547, 64547], "mapped", [1590, 1581]], [[64548, 64548], "mapped", [1590, 1582]], [[64549, 64549], "mapped", [1590, 1605]], [[64550, 64550], "mapped", [1591, 1581]], [[64551, 64551], "mapped", [1591, 1605]], [[64552, 64552], "mapped", [1592, 1605]], [[64553, 64553], "mapped", [1593, 1580]], [[64554, 64554], "mapped", [1593, 1605]], [[64555, 64555], "mapped", [1594, 1580]], [[64556, 64556], "mapped", [1594, 1605]], [[64557, 64557], "mapped", [1601, 1580]], [[64558, 64558], "mapped", [1601, 1581]], [[64559, 64559], "mapped", [1601, 1582]], [[64560, 64560], "mapped", [1601, 1605]], [[64561, 64561], "mapped", [1601, 1609]], [[64562, 64562], "mapped", [1601, 1610]], [[64563, 64563], "mapped", [1602, 1581]], [[64564, 64564], "mapped", [1602, 1605]], [[64565, 64565], "mapped", [1602, 1609]], [[64566, 64566], "mapped", [1602, 1610]], [[64567, 64567], "mapped", [1603, 1575]], [[64568, 64568], "mapped", [1603, 1580]], [[64569, 64569], "mapped", [1603, 1581]], [[64570, 64570], "mapped", [1603, 1582]], [[64571, 64571], "mapped", [1603, 1604]], [[64572, 64572], "mapped", [1603, 1605]], [[64573, 64573], "mapped", [1603, 1609]], [[64574, 64574], "mapped", [1603, 1610]], [[64575, 64575], "mapped", [1604, 1580]], [[64576, 64576], "mapped", [1604, 1581]], [[64577, 64577], "mapped", [1604, 1582]], [[64578, 64578], "mapped", [1604, 1605]], [[64579, 64579], "mapped", [1604, 1609]], [[64580, 64580], "mapped", [1604, 1610]], [[64581, 64581], "mapped", [1605, 1580]], [[64582, 64582], "mapped", [1605, 1581]], [[64583, 64583], "mapped", [1605, 1582]], [[64584, 64584], "mapped", [1605, 1605]], [[64585, 64585], "mapped", [1605, 1609]], [[64586, 64586], "mapped", [1605, 1610]], [[64587, 64587], "mapped", [1606, 1580]], [[64588, 64588], "mapped", [1606, 1581]], [[64589, 64589], "mapped", [1606, 1582]], [[64590, 64590], "mapped", [1606, 1605]], [[64591, 64591], "mapped", [1606, 1609]], [[64592, 64592], "mapped", [1606, 1610]], [[64593, 64593], "mapped", [1607, 1580]], [[64594, 64594], "mapped", [1607, 1605]], [[64595, 64595], "mapped", [1607, 1609]], [[64596, 64596], "mapped", [1607, 1610]], [[64597, 64597], "mapped", [1610, 1580]], [[64598, 64598], "mapped", [1610, 1581]], [[64599, 64599], "mapped", [1610, 1582]], [[64600, 64600], "mapped", [1610, 1605]], [[64601, 64601], "mapped", [1610, 1609]], [[64602, 64602], "mapped", [1610, 1610]], [[64603, 64603], "mapped", [1584, 1648]], [[64604, 64604], "mapped", [1585, 1648]], [[64605, 64605], "mapped", [1609, 1648]], [[64606, 64606], "disallowed_STD3_mapped", [32, 1612, 1617]], [[64607, 64607], "disallowed_STD3_mapped", [32, 1613, 1617]], [[64608, 64608], "disallowed_STD3_mapped", [32, 1614, 1617]], [[64609, 64609], "disallowed_STD3_mapped", [32, 1615, 1617]], [[64610, 64610], "disallowed_STD3_mapped", [32, 1616, 1617]], [[64611, 64611], "disallowed_STD3_mapped", [32, 1617, 1648]], [[64612, 64612], "mapped", [1574, 1585]], [[64613, 64613], "mapped", [1574, 1586]], [[64614, 64614], "mapped", [1574, 1605]], [[64615, 64615], "mapped", [1574, 1606]], [[64616, 64616], "mapped", [1574, 1609]], [[64617, 64617], "mapped", [1574, 1610]], [[64618, 64618], "mapped", [1576, 1585]], [[64619, 64619], "mapped", [1576, 1586]], [[64620, 64620], "mapped", [1576, 1605]], [[64621, 64621], "mapped", [1576, 1606]], [[64622, 64622], "mapped", [1576, 1609]], [[64623, 64623], "mapped", [1576, 1610]], [[64624, 64624], "mapped", [1578, 1585]], [[64625, 64625], "mapped", [1578, 1586]], [[64626, 64626], "mapped", [1578, 1605]], [[64627, 64627], "mapped", [1578, 1606]], [[64628, 64628], "mapped", [1578, 1609]], [[64629, 64629], "mapped", [1578, 1610]], [[64630, 64630], "mapped", [1579, 1585]], [[64631, 64631], "mapped", [1579, 1586]], [[64632, 64632], "mapped", [1579, 1605]], [[64633, 64633], "mapped", [1579, 1606]], [[64634, 64634], "mapped", [1579, 1609]], [[64635, 64635], "mapped", [1579, 1610]], [[64636, 64636], "mapped", [1601, 1609]], [[64637, 64637], "mapped", [1601, 1610]], [[64638, 64638], "mapped", [1602, 1609]], [[64639, 64639], "mapped", [1602, 1610]], [[64640, 64640], "mapped", [1603, 1575]], [[64641, 64641], "mapped", [1603, 1604]], [[64642, 64642], "mapped", [1603, 1605]], [[64643, 64643], "mapped", [1603, 1609]], [[64644, 64644], "mapped", [1603, 1610]], [[64645, 64645], "mapped", [1604, 1605]], [[64646, 64646], "mapped", [1604, 1609]], [[64647, 64647], "mapped", [1604, 1610]], [[64648, 64648], "mapped", [1605, 1575]], [[64649, 64649], "mapped", [1605, 1605]], [[64650, 64650], "mapped", [1606, 1585]], [[64651, 64651], "mapped", [1606, 1586]], [[64652, 64652], "mapped", [1606, 1605]], [[64653, 64653], "mapped", [1606, 1606]], [[64654, 64654], "mapped", [1606, 1609]], [[64655, 64655], "mapped", [1606, 1610]], [[64656, 64656], "mapped", [1609, 1648]], [[64657, 64657], "mapped", [1610, 1585]], [[64658, 64658], "mapped", [1610, 1586]], [[64659, 64659], "mapped", [1610, 1605]], [[64660, 64660], "mapped", [1610, 1606]], [[64661, 64661], "mapped", [1610, 1609]], [[64662, 64662], "mapped", [1610, 1610]], [[64663, 64663], "mapped", [1574, 1580]], [[64664, 64664], "mapped", [1574, 1581]], [[64665, 64665], "mapped", [1574, 1582]], [[64666, 64666], "mapped", [1574, 1605]], [[64667, 64667], "mapped", [1574, 1607]], [[64668, 64668], "mapped", [1576, 1580]], [[64669, 64669], "mapped", [1576, 1581]], [[64670, 64670], "mapped", [1576, 1582]], [[64671, 64671], "mapped", [1576, 1605]], [[64672, 64672], "mapped", [1576, 1607]], [[64673, 64673], "mapped", [1578, 1580]], [[64674, 64674], "mapped", [1578, 1581]], [[64675, 64675], "mapped", [1578, 1582]], [[64676, 64676], "mapped", [1578, 1605]], [[64677, 64677], "mapped", [1578, 1607]], [[64678, 64678], "mapped", [1579, 1605]], [[64679, 64679], "mapped", [1580, 1581]], [[64680, 64680], "mapped", [1580, 1605]], [[64681, 64681], "mapped", [1581, 1580]], [[64682, 64682], "mapped", [1581, 1605]], [[64683, 64683], "mapped", [1582, 1580]], [[64684, 64684], "mapped", [1582, 1605]], [[64685, 64685], "mapped", [1587, 1580]], [[64686, 64686], "mapped", [1587, 1581]], [[64687, 64687], "mapped", [1587, 1582]], [[64688, 64688], "mapped", [1587, 1605]], [[64689, 64689], "mapped", [1589, 1581]], [[64690, 64690], "mapped", [1589, 1582]], [[64691, 64691], "mapped", [1589, 1605]], [[64692, 64692], "mapped", [1590, 1580]], [[64693, 64693], "mapped", [1590, 1581]], [[64694, 64694], "mapped", [1590, 1582]], [[64695, 64695], "mapped", [1590, 1605]], [[64696, 64696], "mapped", [1591, 1581]], [[64697, 64697], "mapped", [1592, 1605]], [[64698, 64698], "mapped", [1593, 1580]], [[64699, 64699], "mapped", [1593, 1605]], [[64700, 64700], "mapped", [1594, 1580]], [[64701, 64701], "mapped", [1594, 1605]], [[64702, 64702], "mapped", [1601, 1580]], [[64703, 64703], "mapped", [1601, 1581]], [[64704, 64704], "mapped", [1601, 1582]], [[64705, 64705], "mapped", [1601, 1605]], [[64706, 64706], "mapped", [1602, 1581]], [[64707, 64707], "mapped", [1602, 1605]], [[64708, 64708], "mapped", [1603, 1580]], [[64709, 64709], "mapped", [1603, 1581]], [[64710, 64710], "mapped", [1603, 1582]], [[64711, 64711], "mapped", [1603, 1604]], [[64712, 64712], "mapped", [1603, 1605]], [[64713, 64713], "mapped", [1604, 1580]], [[64714, 64714], "mapped", [1604, 1581]], [[64715, 64715], "mapped", [1604, 1582]], [[64716, 64716], "mapped", [1604, 1605]], [[64717, 64717], "mapped", [1604, 1607]], [[64718, 64718], "mapped", [1605, 1580]], [[64719, 64719], "mapped", [1605, 1581]], [[64720, 64720], "mapped", [1605, 1582]], [[64721, 64721], "mapped", [1605, 1605]], [[64722, 64722], "mapped", [1606, 1580]], [[64723, 64723], "mapped", [1606, 1581]], [[64724, 64724], "mapped", [1606, 1582]], [[64725, 64725], "mapped", [1606, 1605]], [[64726, 64726], "mapped", [1606, 1607]], [[64727, 64727], "mapped", [1607, 1580]], [[64728, 64728], "mapped", [1607, 1605]], [[64729, 64729], "mapped", [1607, 1648]], [[64730, 64730], "mapped", [1610, 1580]], [[64731, 64731], "mapped", [1610, 1581]], [[64732, 64732], "mapped", [1610, 1582]], [[64733, 64733], "mapped", [1610, 1605]], [[64734, 64734], "mapped", [1610, 1607]], [[64735, 64735], "mapped", [1574, 1605]], [[64736, 64736], "mapped", [1574, 1607]], [[64737, 64737], "mapped", [1576, 1605]], [[64738, 64738], "mapped", [1576, 1607]], [[64739, 64739], "mapped", [1578, 1605]], [[64740, 64740], "mapped", [1578, 1607]], [[64741, 64741], "mapped", [1579, 1605]], [[64742, 64742], "mapped", [1579, 1607]], [[64743, 64743], "mapped", [1587, 1605]], [[64744, 64744], "mapped", [1587, 1607]], [[64745, 64745], "mapped", [1588, 1605]], [[64746, 64746], "mapped", [1588, 1607]], [[64747, 64747], "mapped", [1603, 1604]], [[64748, 64748], "mapped", [1603, 1605]], [[64749, 64749], "mapped", [1604, 1605]], [[64750, 64750], "mapped", [1606, 1605]], [[64751, 64751], "mapped", [1606, 1607]], [[64752, 64752], "mapped", [1610, 1605]], [[64753, 64753], "mapped", [1610, 1607]], [[64754, 64754], "mapped", [1600, 1614, 1617]], [[64755, 64755], "mapped", [1600, 1615, 1617]], [[64756, 64756], "mapped", [1600, 1616, 1617]], [[64757, 64757], "mapped", [1591, 1609]], [[64758, 64758], "mapped", [1591, 1610]], [[64759, 64759], "mapped", [1593, 1609]], [[64760, 64760], "mapped", [1593, 1610]], [[64761, 64761], "mapped", [1594, 1609]], [[64762, 64762], "mapped", [1594, 1610]], [[64763, 64763], "mapped", [1587, 1609]], [[64764, 64764], "mapped", [1587, 1610]], [[64765, 64765], "mapped", [1588, 1609]], [[64766, 64766], "mapped", [1588, 1610]], [[64767, 64767], "mapped", [1581, 1609]], [[64768, 64768], "mapped", [1581, 1610]], [[64769, 64769], "mapped", [1580, 1609]], [[64770, 64770], "mapped", [1580, 1610]], [[64771, 64771], "mapped", [1582, 1609]], [[64772, 64772], "mapped", [1582, 1610]], [[64773, 64773], "mapped", [1589, 1609]], [[64774, 64774], "mapped", [1589, 1610]], [[64775, 64775], "mapped", [1590, 1609]], [[64776, 64776], "mapped", [1590, 1610]], [[64777, 64777], "mapped", [1588, 1580]], [[64778, 64778], "mapped", [1588, 1581]], [[64779, 64779], "mapped", [1588, 1582]], [[64780, 64780], "mapped", [1588, 1605]], [[64781, 64781], "mapped", [1588, 1585]], [[64782, 64782], "mapped", [1587, 1585]], [[64783, 64783], "mapped", [1589, 1585]], [[64784, 64784], "mapped", [1590, 1585]], [[64785, 64785], "mapped", [1591, 1609]], [[64786, 64786], "mapped", [1591, 1610]], [[64787, 64787], "mapped", [1593, 1609]], [[64788, 64788], "mapped", [1593, 1610]], [[64789, 64789], "mapped", [1594, 1609]], [[64790, 64790], "mapped", [1594, 1610]], [[64791, 64791], "mapped", [1587, 1609]], [[64792, 64792], "mapped", [1587, 1610]], [[64793, 64793], "mapped", [1588, 1609]], [[64794, 64794], "mapped", [1588, 1610]], [[64795, 64795], "mapped", [1581, 1609]], [[64796, 64796], "mapped", [1581, 1610]], [[64797, 64797], "mapped", [1580, 1609]], [[64798, 64798], "mapped", [1580, 1610]], [[64799, 64799], "mapped", [1582, 1609]], [[64800, 64800], "mapped", [1582, 1610]], [[64801, 64801], "mapped", [1589, 1609]], [[64802, 64802], "mapped", [1589, 1610]], [[64803, 64803], "mapped", [1590, 1609]], [[64804, 64804], "mapped", [1590, 1610]], [[64805, 64805], "mapped", [1588, 1580]], [[64806, 64806], "mapped", [1588, 1581]], [[64807, 64807], "mapped", [1588, 1582]], [[64808, 64808], "mapped", [1588, 1605]], [[64809, 64809], "mapped", [1588, 1585]], [[64810, 64810], "mapped", [1587, 1585]], [[64811, 64811], "mapped", [1589, 1585]], [[64812, 64812], "mapped", [1590, 1585]], [[64813, 64813], "mapped", [1588, 1580]], [[64814, 64814], "mapped", [1588, 1581]], [[64815, 64815], "mapped", [1588, 1582]], [[64816, 64816], "mapped", [1588, 1605]], [[64817, 64817], "mapped", [1587, 1607]], [[64818, 64818], "mapped", [1588, 1607]], [[64819, 64819], "mapped", [1591, 1605]], [[64820, 64820], "mapped", [1587, 1580]], [[64821, 64821], "mapped", [1587, 1581]], [[64822, 64822], "mapped", [1587, 1582]], [[64823, 64823], "mapped", [1588, 1580]], [[64824, 64824], "mapped", [1588, 1581]], [[64825, 64825], "mapped", [1588, 1582]], [[64826, 64826], "mapped", [1591, 1605]], [[64827, 64827], "mapped", [1592, 1605]], [[64828, 64829], "mapped", [1575, 1611]], [[64830, 64831], "valid", [], "NV8"], [[64832, 64847], "disallowed"], [[64848, 64848], "mapped", [1578, 1580, 1605]], [[64849, 64850], "mapped", [1578, 1581, 1580]], [[64851, 64851], "mapped", [1578, 1581, 1605]], [[64852, 64852], "mapped", [1578, 1582, 1605]], [[64853, 64853], "mapped", [1578, 1605, 1580]], [[64854, 64854], "mapped", [1578, 1605, 1581]], [[64855, 64855], "mapped", [1578, 1605, 1582]], [[64856, 64857], "mapped", [1580, 1605, 1581]], [[64858, 64858], "mapped", [1581, 1605, 1610]], [[64859, 64859], "mapped", [1581, 1605, 1609]], [[64860, 64860], "mapped", [1587, 1581, 1580]], [[64861, 64861], "mapped", [1587, 1580, 1581]], [[64862, 64862], "mapped", [1587, 1580, 1609]], [[64863, 64864], "mapped", [1587, 1605, 1581]], [[64865, 64865], "mapped", [1587, 1605, 1580]], [[64866, 64867], "mapped", [1587, 1605, 1605]], [[64868, 64869], "mapped", [1589, 1581, 1581]], [[64870, 64870], "mapped", [1589, 1605, 1605]], [[64871, 64872], "mapped", [1588, 1581, 1605]], [[64873, 64873], "mapped", [1588, 1580, 1610]], [[64874, 64875], "mapped", [1588, 1605, 1582]], [[64876, 64877], "mapped", [1588, 1605, 1605]], [[64878, 64878], "mapped", [1590, 1581, 1609]], [[64879, 64880], "mapped", [1590, 1582, 1605]], [[64881, 64882], "mapped", [1591, 1605, 1581]], [[64883, 64883], "mapped", [1591, 1605, 1605]], [[64884, 64884], "mapped", [1591, 1605, 1610]], [[64885, 64885], "mapped", [1593, 1580, 1605]], [[64886, 64887], "mapped", [1593, 1605, 1605]], [[64888, 64888], "mapped", [1593, 1605, 1609]], [[64889, 64889], "mapped", [1594, 1605, 1605]], [[64890, 64890], "mapped", [1594, 1605, 1610]], [[64891, 64891], "mapped", [1594, 1605, 1609]], [[64892, 64893], "mapped", [1601, 1582, 1605]], [[64894, 64894], "mapped", [1602, 1605, 1581]], [[64895, 64895], "mapped", [1602, 1605, 1605]], [[64896, 64896], "mapped", [1604, 1581, 1605]], [[64897, 64897], "mapped", [1604, 1581, 1610]], [[64898, 64898], "mapped", [1604, 1581, 1609]], [[64899, 64900], "mapped", [1604, 1580, 1580]], [[64901, 64902], "mapped", [1604, 1582, 1605]], [[64903, 64904], "mapped", [1604, 1605, 1581]], [[64905, 64905], "mapped", [1605, 1581, 1580]], [[64906, 64906], "mapped", [1605, 1581, 1605]], [[64907, 64907], "mapped", [1605, 1581, 1610]], [[64908, 64908], "mapped", [1605, 1580, 1581]], [[64909, 64909], "mapped", [1605, 1580, 1605]], [[64910, 64910], "mapped", [1605, 1582, 1580]], [[64911, 64911], "mapped", [1605, 1582, 1605]], [[64912, 64913], "disallowed"], [[64914, 64914], "mapped", [1605, 1580, 1582]], [[64915, 64915], "mapped", [1607, 1605, 1580]], [[64916, 64916], "mapped", [1607, 1605, 1605]], [[64917, 64917], "mapped", [1606, 1581, 1605]], [[64918, 64918], "mapped", [1606, 1581, 1609]], [[64919, 64920], "mapped", [1606, 1580, 1605]], [[64921, 64921], "mapped", [1606, 1580, 1609]], [[64922, 64922], "mapped", [1606, 1605, 1610]], [[64923, 64923], "mapped", [1606, 1605, 1609]], [[64924, 64925], "mapped", [1610, 1605, 1605]], [[64926, 64926], "mapped", [1576, 1582, 1610]], [[64927, 64927], "mapped", [1578, 1580, 1610]], [[64928, 64928], "mapped", [1578, 1580, 1609]], [[64929, 64929], "mapped", [1578, 1582, 1610]], [[64930, 64930], "mapped", [1578, 1582, 1609]], [[64931, 64931], "mapped", [1578, 1605, 1610]], [[64932, 64932], "mapped", [1578, 1605, 1609]], [[64933, 64933], "mapped", [1580, 1605, 1610]], [[64934, 64934], "mapped", [1580, 1581, 1609]], [[64935, 64935], "mapped", [1580, 1605, 1609]], [[64936, 64936], "mapped", [1587, 1582, 1609]], [[64937, 64937], "mapped", [1589, 1581, 1610]], [[64938, 64938], "mapped", [1588, 1581, 1610]], [[64939, 64939], "mapped", [1590, 1581, 1610]], [[64940, 64940], "mapped", [1604, 1580, 1610]], [[64941, 64941], "mapped", [1604, 1605, 1610]], [[64942, 64942], "mapped", [1610, 1581, 1610]], [[64943, 64943], "mapped", [1610, 1580, 1610]], [[64944, 64944], "mapped", [1610, 1605, 1610]], [[64945, 64945], "mapped", [1605, 1605, 1610]], [[64946, 64946], "mapped", [1602, 1605, 1610]], [[64947, 64947], "mapped", [1606, 1581, 1610]], [[64948, 64948], "mapped", [1602, 1605, 1581]], [[64949, 64949], "mapped", [1604, 1581, 1605]], [[64950, 64950], "mapped", [1593, 1605, 1610]], [[64951, 64951], "mapped", [1603, 1605, 1610]], [[64952, 64952], "mapped", [1606, 1580, 1581]], [[64953, 64953], "mapped", [1605, 1582, 1610]], [[64954, 64954], "mapped", [1604, 1580, 1605]], [[64955, 64955], "mapped", [1603, 1605, 1605]], [[64956, 64956], "mapped", [1604, 1580, 1605]], [[64957, 64957], "mapped", [1606, 1580, 1581]], [[64958, 64958], "mapped", [1580, 1581, 1610]], [[64959, 64959], "mapped", [1581, 1580, 1610]], [[64960, 64960], "mapped", [1605, 1580, 1610]], [[64961, 64961], "mapped", [1601, 1605, 1610]], [[64962, 64962], "mapped", [1576, 1581, 1610]], [[64963, 64963], "mapped", [1603, 1605, 1605]], [[64964, 64964], "mapped", [1593, 1580, 1605]], [[64965, 64965], "mapped", [1589, 1605, 1605]], [[64966, 64966], "mapped", [1587, 1582, 1610]], [[64967, 64967], "mapped", [1606, 1580, 1610]], [[64968, 64975], "disallowed"], [[64976, 65007], "disallowed"], [[65008, 65008], "mapped", [1589, 1604, 1746]], [[65009, 65009], "mapped", [1602, 1604, 1746]], [[65010, 65010], "mapped", [1575, 1604, 1604, 1607]], [[65011, 65011], "mapped", [1575, 1603, 1576, 1585]], [[65012, 65012], "mapped", [1605, 1581, 1605, 1583]], [[65013, 65013], "mapped", [1589, 1604, 1593, 1605]], [[65014, 65014], "mapped", [1585, 1587, 1608, 1604]], [[65015, 65015], "mapped", [1593, 1604, 1610, 1607]], [[65016, 65016], "mapped", [1608, 1587, 1604, 1605]], [[65017, 65017], "mapped", [1589, 1604, 1609]], [[65018, 65018], "disallowed_STD3_mapped", [1589, 1604, 1609, 32, 1575, 1604, 1604, 1607, 32, 1593, 1604, 1610, 1607, 32, 1608, 1587, 1604, 1605]], [[65019, 65019], "disallowed_STD3_mapped", [1580, 1604, 32, 1580, 1604, 1575, 1604, 1607]], [[65020, 65020], "mapped", [1585, 1740, 1575, 1604]], [[65021, 65021], "valid", [], "NV8"], [[65022, 65023], "disallowed"], [[65024, 65039], "ignored"], [[65040, 65040], "disallowed_STD3_mapped", [44]], [[65041, 65041], "mapped", [12289]], [[65042, 65042], "disallowed"], [[65043, 65043], "disallowed_STD3_mapped", [58]], [[65044, 65044], "disallowed_STD3_mapped", [59]], [[65045, 65045], "disallowed_STD3_mapped", [33]], [[65046, 65046], "disallowed_STD3_mapped", [63]], [[65047, 65047], "mapped", [12310]], [[65048, 65048], "mapped", [12311]], [[65049, 65049], "disallowed"], [[65050, 65055], "disallowed"], [[65056, 65059], "valid"], [[65060, 65062], "valid"], [[65063, 65069], "valid"], [[65070, 65071], "valid"], [[65072, 65072], "disallowed"], [[65073, 65073], "mapped", [8212]], [[65074, 65074], "mapped", [8211]], [[65075, 65076], "disallowed_STD3_mapped", [95]], [[65077, 65077], "disallowed_STD3_mapped", [40]], [[65078, 65078], "disallowed_STD3_mapped", [41]], [[65079, 65079], "disallowed_STD3_mapped", [123]], [[65080, 65080], "disallowed_STD3_mapped", [125]], [[65081, 65081], "mapped", [12308]], [[65082, 65082], "mapped", [12309]], [[65083, 65083], "mapped", [12304]], [[65084, 65084], "mapped", [12305]], [[65085, 65085], "mapped", [12298]], [[65086, 65086], "mapped", [12299]], [[65087, 65087], "mapped", [12296]], [[65088, 65088], "mapped", [12297]], [[65089, 65089], "mapped", [12300]], [[65090, 65090], "mapped", [12301]], [[65091, 65091], "mapped", [12302]], [[65092, 65092], "mapped", [12303]], [[65093, 65094], "valid", [], "NV8"], [[65095, 65095], "disallowed_STD3_mapped", [91]], [[65096, 65096], "disallowed_STD3_mapped", [93]], [[65097, 65100], "disallowed_STD3_mapped", [32, 773]], [[65101, 65103], "disallowed_STD3_mapped", [95]], [[65104, 65104], "disallowed_STD3_mapped", [44]], [[65105, 65105], "mapped", [12289]], [[65106, 65106], "disallowed"], [[65107, 65107], "disallowed"], [[65108, 65108], "disallowed_STD3_mapped", [59]], [[65109, 65109], "disallowed_STD3_mapped", [58]], [[65110, 65110], "disallowed_STD3_mapped", [63]], [[65111, 65111], "disallowed_STD3_mapped", [33]], [[65112, 65112], "mapped", [8212]], [[65113, 65113], "disallowed_STD3_mapped", [40]], [[65114, 65114], "disallowed_STD3_mapped", [41]], [[65115, 65115], "disallowed_STD3_mapped", [123]], [[65116, 65116], "disallowed_STD3_mapped", [125]], [[65117, 65117], "mapped", [12308]], [[65118, 65118], "mapped", [12309]], [[65119, 65119], "disallowed_STD3_mapped", [35]], [[65120, 65120], "disallowed_STD3_mapped", [38]], [[65121, 65121], "disallowed_STD3_mapped", [42]], [[65122, 65122], "disallowed_STD3_mapped", [43]], [[65123, 65123], "mapped", [45]], [[65124, 65124], "disallowed_STD3_mapped", [60]], [[65125, 65125], "disallowed_STD3_mapped", [62]], [[65126, 65126], "disallowed_STD3_mapped", [61]], [[65127, 65127], "disallowed"], [[65128, 65128], "disallowed_STD3_mapped", [92]], [[65129, 65129], "disallowed_STD3_mapped", [36]], [[65130, 65130], "disallowed_STD3_mapped", [37]], [[65131, 65131], "disallowed_STD3_mapped", [64]], [[65132, 65135], "disallowed"], [[65136, 65136], "disallowed_STD3_mapped", [32, 1611]], [[65137, 65137], "mapped", [1600, 1611]], [[65138, 65138], "disallowed_STD3_mapped", [32, 1612]], [[65139, 65139], "valid"], [[65140, 65140], "disallowed_STD3_mapped", [32, 1613]], [[65141, 65141], "disallowed"], [[65142, 65142], "disallowed_STD3_mapped", [32, 1614]], [[65143, 65143], "mapped", [1600, 1614]], [[65144, 65144], "disallowed_STD3_mapped", [32, 1615]], [[65145, 65145], "mapped", [1600, 1615]], [[65146, 65146], "disallowed_STD3_mapped", [32, 1616]], [[65147, 65147], "mapped", [1600, 1616]], [[65148, 65148], "disallowed_STD3_mapped", [32, 1617]], [[65149, 65149], "mapped", [1600, 1617]], [[65150, 65150], "disallowed_STD3_mapped", [32, 1618]], [[65151, 65151], "mapped", [1600, 1618]], [[65152, 65152], "mapped", [1569]], [[65153, 65154], "mapped", [1570]], [[65155, 65156], "mapped", [1571]], [[65157, 65158], "mapped", [1572]], [[65159, 65160], "mapped", [1573]], [[65161, 65164], "mapped", [1574]], [[65165, 65166], "mapped", [1575]], [[65167, 65170], "mapped", [1576]], [[65171, 65172], "mapped", [1577]], [[65173, 65176], "mapped", [1578]], [[65177, 65180], "mapped", [1579]], [[65181, 65184], "mapped", [1580]], [[65185, 65188], "mapped", [1581]], [[65189, 65192], "mapped", [1582]], [[65193, 65194], "mapped", [1583]], [[65195, 65196], "mapped", [1584]], [[65197, 65198], "mapped", [1585]], [[65199, 65200], "mapped", [1586]], [[65201, 65204], "mapped", [1587]], [[65205, 65208], "mapped", [1588]], [[65209, 65212], "mapped", [1589]], [[65213, 65216], "mapped", [1590]], [[65217, 65220], "mapped", [1591]], [[65221, 65224], "mapped", [1592]], [[65225, 65228], "mapped", [1593]], [[65229, 65232], "mapped", [1594]], [[65233, 65236], "mapped", [1601]], [[65237, 65240], "mapped", [1602]], [[65241, 65244], "mapped", [1603]], [[65245, 65248], "mapped", [1604]], [[65249, 65252], "mapped", [1605]], [[65253, 65256], "mapped", [1606]], [[65257, 65260], "mapped", [1607]], [[65261, 65262], "mapped", [1608]], [[65263, 65264], "mapped", [1609]], [[65265, 65268], "mapped", [1610]], [[65269, 65270], "mapped", [1604, 1570]], [[65271, 65272], "mapped", [1604, 1571]], [[65273, 65274], "mapped", [1604, 1573]], [[65275, 65276], "mapped", [1604, 1575]], [[65277, 65278], "disallowed"], [[65279, 65279], "ignored"], [[65280, 65280], "disallowed"], [[65281, 65281], "disallowed_STD3_mapped", [33]], [[65282, 65282], "disallowed_STD3_mapped", [34]], [[65283, 65283], "disallowed_STD3_mapped", [35]], [[65284, 65284], "disallowed_STD3_mapped", [36]], [[65285, 65285], "disallowed_STD3_mapped", [37]], [[65286, 65286], "disallowed_STD3_mapped", [38]], [[65287, 65287], "disallowed_STD3_mapped", [39]], [[65288, 65288], "disallowed_STD3_mapped", [40]], [[65289, 65289], "disallowed_STD3_mapped", [41]], [[65290, 65290], "disallowed_STD3_mapped", [42]], [[65291, 65291], "disallowed_STD3_mapped", [43]], [[65292, 65292], "disallowed_STD3_mapped", [44]], [[65293, 65293], "mapped", [45]], [[65294, 65294], "mapped", [46]], [[65295, 65295], "disallowed_STD3_mapped", [47]], [[65296, 65296], "mapped", [48]], [[65297, 65297], "mapped", [49]], [[65298, 65298], "mapped", [50]], [[65299, 65299], "mapped", [51]], [[65300, 65300], "mapped", [52]], [[65301, 65301], "mapped", [53]], [[65302, 65302], "mapped", [54]], [[65303, 65303], "mapped", [55]], [[65304, 65304], "mapped", [56]], [[65305, 65305], "mapped", [57]], [[65306, 65306], "disallowed_STD3_mapped", [58]], [[65307, 65307], "disallowed_STD3_mapped", [59]], [[65308, 65308], "disallowed_STD3_mapped", [60]], [[65309, 65309], "disallowed_STD3_mapped", [61]], [[65310, 65310], "disallowed_STD3_mapped", [62]], [[65311, 65311], "disallowed_STD3_mapped", [63]], [[65312, 65312], "disallowed_STD3_mapped", [64]], [[65313, 65313], "mapped", [97]], [[65314, 65314], "mapped", [98]], [[65315, 65315], "mapped", [99]], [[65316, 65316], "mapped", [100]], [[65317, 65317], "mapped", [101]], [[65318, 65318], "mapped", [102]], [[65319, 65319], "mapped", [103]], [[65320, 65320], "mapped", [104]], [[65321, 65321], "mapped", [105]], [[65322, 65322], "mapped", [106]], [[65323, 65323], "mapped", [107]], [[65324, 65324], "mapped", [108]], [[65325, 65325], "mapped", [109]], [[65326, 65326], "mapped", [110]], [[65327, 65327], "mapped", [111]], [[65328, 65328], "mapped", [112]], [[65329, 65329], "mapped", [113]], [[65330, 65330], "mapped", [114]], [[65331, 65331], "mapped", [115]], [[65332, 65332], "mapped", [116]], [[65333, 65333], "mapped", [117]], [[65334, 65334], "mapped", [118]], [[65335, 65335], "mapped", [119]], [[65336, 65336], "mapped", [120]], [[65337, 65337], "mapped", [121]], [[65338, 65338], "mapped", [122]], [[65339, 65339], "disallowed_STD3_mapped", [91]], [[65340, 65340], "disallowed_STD3_mapped", [92]], [[65341, 65341], "disallowed_STD3_mapped", [93]], [[65342, 65342], "disallowed_STD3_mapped", [94]], [[65343, 65343], "disallowed_STD3_mapped", [95]], [[65344, 65344], "disallowed_STD3_mapped", [96]], [[65345, 65345], "mapped", [97]], [[65346, 65346], "mapped", [98]], [[65347, 65347], "mapped", [99]], [[65348, 65348], "mapped", [100]], [[65349, 65349], "mapped", [101]], [[65350, 65350], "mapped", [102]], [[65351, 65351], "mapped", [103]], [[65352, 65352], "mapped", [104]], [[65353, 65353], "mapped", [105]], [[65354, 65354], "mapped", [106]], [[65355, 65355], "mapped", [107]], [[65356, 65356], "mapped", [108]], [[65357, 65357], "mapped", [109]], [[65358, 65358], "mapped", [110]], [[65359, 65359], "mapped", [111]], [[65360, 65360], "mapped", [112]], [[65361, 65361], "mapped", [113]], [[65362, 65362], "mapped", [114]], [[65363, 65363], "mapped", [115]], [[65364, 65364], "mapped", [116]], [[65365, 65365], "mapped", [117]], [[65366, 65366], "mapped", [118]], [[65367, 65367], "mapped", [119]], [[65368, 65368], "mapped", [120]], [[65369, 65369], "mapped", [121]], [[65370, 65370], "mapped", [122]], [[65371, 65371], "disallowed_STD3_mapped", [123]], [[65372, 65372], "disallowed_STD3_mapped", [124]], [[65373, 65373], "disallowed_STD3_mapped", [125]], [[65374, 65374], "disallowed_STD3_mapped", [126]], [[65375, 65375], "mapped", [10629]], [[65376, 65376], "mapped", [10630]], [[65377, 65377], "mapped", [46]], [[65378, 65378], "mapped", [12300]], [[65379, 65379], "mapped", [12301]], [[65380, 65380], "mapped", [12289]], [[65381, 65381], "mapped", [12539]], [[65382, 65382], "mapped", [12530]], [[65383, 65383], "mapped", [12449]], [[65384, 65384], "mapped", [12451]], [[65385, 65385], "mapped", [12453]], [[65386, 65386], "mapped", [12455]], [[65387, 65387], "mapped", [12457]], [[65388, 65388], "mapped", [12515]], [[65389, 65389], "mapped", [12517]], [[65390, 65390], "mapped", [12519]], [[65391, 65391], "mapped", [12483]], [[65392, 65392], "mapped", [12540]], [[65393, 65393], "mapped", [12450]], [[65394, 65394], "mapped", [12452]], [[65395, 65395], "mapped", [12454]], [[65396, 65396], "mapped", [12456]], [[65397, 65397], "mapped", [12458]], [[65398, 65398], "mapped", [12459]], [[65399, 65399], "mapped", [12461]], [[65400, 65400], "mapped", [12463]], [[65401, 65401], "mapped", [12465]], [[65402, 65402], "mapped", [12467]], [[65403, 65403], "mapped", [12469]], [[65404, 65404], "mapped", [12471]], [[65405, 65405], "mapped", [12473]], [[65406, 65406], "mapped", [12475]], [[65407, 65407], "mapped", [12477]], [[65408, 65408], "mapped", [12479]], [[65409, 65409], "mapped", [12481]], [[65410, 65410], "mapped", [12484]], [[65411, 65411], "mapped", [12486]], [[65412, 65412], "mapped", [12488]], [[65413, 65413], "mapped", [12490]], [[65414, 65414], "mapped", [12491]], [[65415, 65415], "mapped", [12492]], [[65416, 65416], "mapped", [12493]], [[65417, 65417], "mapped", [12494]], [[65418, 65418], "mapped", [12495]], [[65419, 65419], "mapped", [12498]], [[65420, 65420], "mapped", [12501]], [[65421, 65421], "mapped", [12504]], [[65422, 65422], "mapped", [12507]], [[65423, 65423], "mapped", [12510]], [[65424, 65424], "mapped", [12511]], [[65425, 65425], "mapped", [12512]], [[65426, 65426], "mapped", [12513]], [[65427, 65427], "mapped", [12514]], [[65428, 65428], "mapped", [12516]], [[65429, 65429], "mapped", [12518]], [[65430, 65430], "mapped", [12520]], [[65431, 65431], "mapped", [12521]], [[65432, 65432], "mapped", [12522]], [[65433, 65433], "mapped", [12523]], [[65434, 65434], "mapped", [12524]], [[65435, 65435], "mapped", [12525]], [[65436, 65436], "mapped", [12527]], [[65437, 65437], "mapped", [12531]], [[65438, 65438], "mapped", [12441]], [[65439, 65439], "mapped", [12442]], [[65440, 65440], "disallowed"], [[65441, 65441], "mapped", [4352]], [[65442, 65442], "mapped", [4353]], [[65443, 65443], "mapped", [4522]], [[65444, 65444], "mapped", [4354]], [[65445, 65445], "mapped", [4524]], [[65446, 65446], "mapped", [4525]], [[65447, 65447], "mapped", [4355]], [[65448, 65448], "mapped", [4356]], [[65449, 65449], "mapped", [4357]], [[65450, 65450], "mapped", [4528]], [[65451, 65451], "mapped", [4529]], [[65452, 65452], "mapped", [4530]], [[65453, 65453], "mapped", [4531]], [[65454, 65454], "mapped", [4532]], [[65455, 65455], "mapped", [4533]], [[65456, 65456], "mapped", [4378]], [[65457, 65457], "mapped", [4358]], [[65458, 65458], "mapped", [4359]], [[65459, 65459], "mapped", [4360]], [[65460, 65460], "mapped", [4385]], [[65461, 65461], "mapped", [4361]], [[65462, 65462], "mapped", [4362]], [[65463, 65463], "mapped", [4363]], [[65464, 65464], "mapped", [4364]], [[65465, 65465], "mapped", [4365]], [[65466, 65466], "mapped", [4366]], [[65467, 65467], "mapped", [4367]], [[65468, 65468], "mapped", [4368]], [[65469, 65469], "mapped", [4369]], [[65470, 65470], "mapped", [4370]], [[65471, 65473], "disallowed"], [[65474, 65474], "mapped", [4449]], [[65475, 65475], "mapped", [4450]], [[65476, 65476], "mapped", [4451]], [[65477, 65477], "mapped", [4452]], [[65478, 65478], "mapped", [4453]], [[65479, 65479], "mapped", [4454]], [[65480, 65481], "disallowed"], [[65482, 65482], "mapped", [4455]], [[65483, 65483], "mapped", [4456]], [[65484, 65484], "mapped", [4457]], [[65485, 65485], "mapped", [4458]], [[65486, 65486], "mapped", [4459]], [[65487, 65487], "mapped", [4460]], [[65488, 65489], "disallowed"], [[65490, 65490], "mapped", [4461]], [[65491, 65491], "mapped", [4462]], [[65492, 65492], "mapped", [4463]], [[65493, 65493], "mapped", [4464]], [[65494, 65494], "mapped", [4465]], [[65495, 65495], "mapped", [4466]], [[65496, 65497], "disallowed"], [[65498, 65498], "mapped", [4467]], [[65499, 65499], "mapped", [4468]], [[65500, 65500], "mapped", [4469]], [[65501, 65503], "disallowed"], [[65504, 65504], "mapped", [162]], [[65505, 65505], "mapped", [163]], [[65506, 65506], "mapped", [172]], [[65507, 65507], "disallowed_STD3_mapped", [32, 772]], [[65508, 65508], "mapped", [166]], [[65509, 65509], "mapped", [165]], [[65510, 65510], "mapped", [8361]], [[65511, 65511], "disallowed"], [[65512, 65512], "mapped", [9474]], [[65513, 65513], "mapped", [8592]], [[65514, 65514], "mapped", [8593]], [[65515, 65515], "mapped", [8594]], [[65516, 65516], "mapped", [8595]], [[65517, 65517], "mapped", [9632]], [[65518, 65518], "mapped", [9675]], [[65519, 65528], "disallowed"], [[65529, 65531], "disallowed"], [[65532, 65532], "disallowed"], [[65533, 65533], "disallowed"], [[65534, 65535], "disallowed"], [[65536, 65547], "valid"], [[65548, 65548], "disallowed"], [[65549, 65574], "valid"], [[65575, 65575], "disallowed"], [[65576, 65594], "valid"], [[65595, 65595], "disallowed"], [[65596, 65597], "valid"], [[65598, 65598], "disallowed"], [[65599, 65613], "valid"], [[65614, 65615], "disallowed"], [[65616, 65629], "valid"], [[65630, 65663], "disallowed"], [[65664, 65786], "valid"], [[65787, 65791], "disallowed"], [[65792, 65794], "valid", [], "NV8"], [[65795, 65798], "disallowed"], [[65799, 65843], "valid", [], "NV8"], [[65844, 65846], "disallowed"], [[65847, 65855], "valid", [], "NV8"], [[65856, 65930], "valid", [], "NV8"], [[65931, 65932], "valid", [], "NV8"], [[65933, 65935], "disallowed"], [[65936, 65947], "valid", [], "NV8"], [[65948, 65951], "disallowed"], [[65952, 65952], "valid", [], "NV8"], [[65953, 65999], "disallowed"], [[66e3, 66044], "valid", [], "NV8"], [[66045, 66045], "valid"], [[66046, 66175], "disallowed"], [[66176, 66204], "valid"], [[66205, 66207], "disallowed"], [[66208, 66256], "valid"], [[66257, 66271], "disallowed"], [[66272, 66272], "valid"], [[66273, 66299], "valid", [], "NV8"], [[66300, 66303], "disallowed"], [[66304, 66334], "valid"], [[66335, 66335], "valid"], [[66336, 66339], "valid", [], "NV8"], [[66340, 66351], "disallowed"], [[66352, 66368], "valid"], [[66369, 66369], "valid", [], "NV8"], [[66370, 66377], "valid"], [[66378, 66378], "valid", [], "NV8"], [[66379, 66383], "disallowed"], [[66384, 66426], "valid"], [[66427, 66431], "disallowed"], [[66432, 66461], "valid"], [[66462, 66462], "disallowed"], [[66463, 66463], "valid", [], "NV8"], [[66464, 66499], "valid"], [[66500, 66503], "disallowed"], [[66504, 66511], "valid"], [[66512, 66517], "valid", [], "NV8"], [[66518, 66559], "disallowed"], [[66560, 66560], "mapped", [66600]], [[66561, 66561], "mapped", [66601]], [[66562, 66562], "mapped", [66602]], [[66563, 66563], "mapped", [66603]], [[66564, 66564], "mapped", [66604]], [[66565, 66565], "mapped", [66605]], [[66566, 66566], "mapped", [66606]], [[66567, 66567], "mapped", [66607]], [[66568, 66568], "mapped", [66608]], [[66569, 66569], "mapped", [66609]], [[66570, 66570], "mapped", [66610]], [[66571, 66571], "mapped", [66611]], [[66572, 66572], "mapped", [66612]], [[66573, 66573], "mapped", [66613]], [[66574, 66574], "mapped", [66614]], [[66575, 66575], "mapped", [66615]], [[66576, 66576], "mapped", [66616]], [[66577, 66577], "mapped", [66617]], [[66578, 66578], "mapped", [66618]], [[66579, 66579], "mapped", [66619]], [[66580, 66580], "mapped", [66620]], [[66581, 66581], "mapped", [66621]], [[66582, 66582], "mapped", [66622]], [[66583, 66583], "mapped", [66623]], [[66584, 66584], "mapped", [66624]], [[66585, 66585], "mapped", [66625]], [[66586, 66586], "mapped", [66626]], [[66587, 66587], "mapped", [66627]], [[66588, 66588], "mapped", [66628]], [[66589, 66589], "mapped", [66629]], [[66590, 66590], "mapped", [66630]], [[66591, 66591], "mapped", [66631]], [[66592, 66592], "mapped", [66632]], [[66593, 66593], "mapped", [66633]], [[66594, 66594], "mapped", [66634]], [[66595, 66595], "mapped", [66635]], [[66596, 66596], "mapped", [66636]], [[66597, 66597], "mapped", [66637]], [[66598, 66598], "mapped", [66638]], [[66599, 66599], "mapped", [66639]], [[66600, 66637], "valid"], [[66638, 66717], "valid"], [[66718, 66719], "disallowed"], [[66720, 66729], "valid"], [[66730, 66815], "disallowed"], [[66816, 66855], "valid"], [[66856, 66863], "disallowed"], [[66864, 66915], "valid"], [[66916, 66926], "disallowed"], [[66927, 66927], "valid", [], "NV8"], [[66928, 67071], "disallowed"], [[67072, 67382], "valid"], [[67383, 67391], "disallowed"], [[67392, 67413], "valid"], [[67414, 67423], "disallowed"], [[67424, 67431], "valid"], [[67432, 67583], "disallowed"], [[67584, 67589], "valid"], [[67590, 67591], "disallowed"], [[67592, 67592], "valid"], [[67593, 67593], "disallowed"], [[67594, 67637], "valid"], [[67638, 67638], "disallowed"], [[67639, 67640], "valid"], [[67641, 67643], "disallowed"], [[67644, 67644], "valid"], [[67645, 67646], "disallowed"], [[67647, 67647], "valid"], [[67648, 67669], "valid"], [[67670, 67670], "disallowed"], [[67671, 67679], "valid", [], "NV8"], [[67680, 67702], "valid"], [[67703, 67711], "valid", [], "NV8"], [[67712, 67742], "valid"], [[67743, 67750], "disallowed"], [[67751, 67759], "valid", [], "NV8"], [[67760, 67807], "disallowed"], [[67808, 67826], "valid"], [[67827, 67827], "disallowed"], [[67828, 67829], "valid"], [[67830, 67834], "disallowed"], [[67835, 67839], "valid", [], "NV8"], [[67840, 67861], "valid"], [[67862, 67865], "valid", [], "NV8"], [[67866, 67867], "valid", [], "NV8"], [[67868, 67870], "disallowed"], [[67871, 67871], "valid", [], "NV8"], [[67872, 67897], "valid"], [[67898, 67902], "disallowed"], [[67903, 67903], "valid", [], "NV8"], [[67904, 67967], "disallowed"], [[67968, 68023], "valid"], [[68024, 68027], "disallowed"], [[68028, 68029], "valid", [], "NV8"], [[68030, 68031], "valid"], [[68032, 68047], "valid", [], "NV8"], [[68048, 68049], "disallowed"], [[68050, 68095], "valid", [], "NV8"], [[68096, 68099], "valid"], [[68100, 68100], "disallowed"], [[68101, 68102], "valid"], [[68103, 68107], "disallowed"], [[68108, 68115], "valid"], [[68116, 68116], "disallowed"], [[68117, 68119], "valid"], [[68120, 68120], "disallowed"], [[68121, 68147], "valid"], [[68148, 68151], "disallowed"], [[68152, 68154], "valid"], [[68155, 68158], "disallowed"], [[68159, 68159], "valid"], [[68160, 68167], "valid", [], "NV8"], [[68168, 68175], "disallowed"], [[68176, 68184], "valid", [], "NV8"], [[68185, 68191], "disallowed"], [[68192, 68220], "valid"], [[68221, 68223], "valid", [], "NV8"], [[68224, 68252], "valid"], [[68253, 68255], "valid", [], "NV8"], [[68256, 68287], "disallowed"], [[68288, 68295], "valid"], [[68296, 68296], "valid", [], "NV8"], [[68297, 68326], "valid"], [[68327, 68330], "disallowed"], [[68331, 68342], "valid", [], "NV8"], [[68343, 68351], "disallowed"], [[68352, 68405], "valid"], [[68406, 68408], "disallowed"], [[68409, 68415], "valid", [], "NV8"], [[68416, 68437], "valid"], [[68438, 68439], "disallowed"], [[68440, 68447], "valid", [], "NV8"], [[68448, 68466], "valid"], [[68467, 68471], "disallowed"], [[68472, 68479], "valid", [], "NV8"], [[68480, 68497], "valid"], [[68498, 68504], "disallowed"], [[68505, 68508], "valid", [], "NV8"], [[68509, 68520], "disallowed"], [[68521, 68527], "valid", [], "NV8"], [[68528, 68607], "disallowed"], [[68608, 68680], "valid"], [[68681, 68735], "disallowed"], [[68736, 68736], "mapped", [68800]], [[68737, 68737], "mapped", [68801]], [[68738, 68738], "mapped", [68802]], [[68739, 68739], "mapped", [68803]], [[68740, 68740], "mapped", [68804]], [[68741, 68741], "mapped", [68805]], [[68742, 68742], "mapped", [68806]], [[68743, 68743], "mapped", [68807]], [[68744, 68744], "mapped", [68808]], [[68745, 68745], "mapped", [68809]], [[68746, 68746], "mapped", [68810]], [[68747, 68747], "mapped", [68811]], [[68748, 68748], "mapped", [68812]], [[68749, 68749], "mapped", [68813]], [[68750, 68750], "mapped", [68814]], [[68751, 68751], "mapped", [68815]], [[68752, 68752], "mapped", [68816]], [[68753, 68753], "mapped", [68817]], [[68754, 68754], "mapped", [68818]], [[68755, 68755], "mapped", [68819]], [[68756, 68756], "mapped", [68820]], [[68757, 68757], "mapped", [68821]], [[68758, 68758], "mapped", [68822]], [[68759, 68759], "mapped", [68823]], [[68760, 68760], "mapped", [68824]], [[68761, 68761], "mapped", [68825]], [[68762, 68762], "mapped", [68826]], [[68763, 68763], "mapped", [68827]], [[68764, 68764], "mapped", [68828]], [[68765, 68765], "mapped", [68829]], [[68766, 68766], "mapped", [68830]], [[68767, 68767], "mapped", [68831]], [[68768, 68768], "mapped", [68832]], [[68769, 68769], "mapped", [68833]], [[68770, 68770], "mapped", [68834]], [[68771, 68771], "mapped", [68835]], [[68772, 68772], "mapped", [68836]], [[68773, 68773], "mapped", [68837]], [[68774, 68774], "mapped", [68838]], [[68775, 68775], "mapped", [68839]], [[68776, 68776], "mapped", [68840]], [[68777, 68777], "mapped", [68841]], [[68778, 68778], "mapped", [68842]], [[68779, 68779], "mapped", [68843]], [[68780, 68780], "mapped", [68844]], [[68781, 68781], "mapped", [68845]], [[68782, 68782], "mapped", [68846]], [[68783, 68783], "mapped", [68847]], [[68784, 68784], "mapped", [68848]], [[68785, 68785], "mapped", [68849]], [[68786, 68786], "mapped", [68850]], [[68787, 68799], "disallowed"], [[68800, 68850], "valid"], [[68851, 68857], "disallowed"], [[68858, 68863], "valid", [], "NV8"], [[68864, 69215], "disallowed"], [[69216, 69246], "valid", [], "NV8"], [[69247, 69631], "disallowed"], [[69632, 69702], "valid"], [[69703, 69709], "valid", [], "NV8"], [[69710, 69713], "disallowed"], [[69714, 69733], "valid", [], "NV8"], [[69734, 69743], "valid"], [[69744, 69758], "disallowed"], [[69759, 69759], "valid"], [[69760, 69818], "valid"], [[69819, 69820], "valid", [], "NV8"], [[69821, 69821], "disallowed"], [[69822, 69825], "valid", [], "NV8"], [[69826, 69839], "disallowed"], [[69840, 69864], "valid"], [[69865, 69871], "disallowed"], [[69872, 69881], "valid"], [[69882, 69887], "disallowed"], [[69888, 69940], "valid"], [[69941, 69941], "disallowed"], [[69942, 69951], "valid"], [[69952, 69955], "valid", [], "NV8"], [[69956, 69967], "disallowed"], [[69968, 70003], "valid"], [[70004, 70005], "valid", [], "NV8"], [[70006, 70006], "valid"], [[70007, 70015], "disallowed"], [[70016, 70084], "valid"], [[70085, 70088], "valid", [], "NV8"], [[70089, 70089], "valid", [], "NV8"], [[70090, 70092], "valid"], [[70093, 70093], "valid", [], "NV8"], [[70094, 70095], "disallowed"], [[70096, 70105], "valid"], [[70106, 70106], "valid"], [[70107, 70107], "valid", [], "NV8"], [[70108, 70108], "valid"], [[70109, 70111], "valid", [], "NV8"], [[70112, 70112], "disallowed"], [[70113, 70132], "valid", [], "NV8"], [[70133, 70143], "disallowed"], [[70144, 70161], "valid"], [[70162, 70162], "disallowed"], [[70163, 70199], "valid"], [[70200, 70205], "valid", [], "NV8"], [[70206, 70271], "disallowed"], [[70272, 70278], "valid"], [[70279, 70279], "disallowed"], [[70280, 70280], "valid"], [[70281, 70281], "disallowed"], [[70282, 70285], "valid"], [[70286, 70286], "disallowed"], [[70287, 70301], "valid"], [[70302, 70302], "disallowed"], [[70303, 70312], "valid"], [[70313, 70313], "valid", [], "NV8"], [[70314, 70319], "disallowed"], [[70320, 70378], "valid"], [[70379, 70383], "disallowed"], [[70384, 70393], "valid"], [[70394, 70399], "disallowed"], [[70400, 70400], "valid"], [[70401, 70403], "valid"], [[70404, 70404], "disallowed"], [[70405, 70412], "valid"], [[70413, 70414], "disallowed"], [[70415, 70416], "valid"], [[70417, 70418], "disallowed"], [[70419, 70440], "valid"], [[70441, 70441], "disallowed"], [[70442, 70448], "valid"], [[70449, 70449], "disallowed"], [[70450, 70451], "valid"], [[70452, 70452], "disallowed"], [[70453, 70457], "valid"], [[70458, 70459], "disallowed"], [[70460, 70468], "valid"], [[70469, 70470], "disallowed"], [[70471, 70472], "valid"], [[70473, 70474], "disallowed"], [[70475, 70477], "valid"], [[70478, 70479], "disallowed"], [[70480, 70480], "valid"], [[70481, 70486], "disallowed"], [[70487, 70487], "valid"], [[70488, 70492], "disallowed"], [[70493, 70499], "valid"], [[70500, 70501], "disallowed"], [[70502, 70508], "valid"], [[70509, 70511], "disallowed"], [[70512, 70516], "valid"], [[70517, 70783], "disallowed"], [[70784, 70853], "valid"], [[70854, 70854], "valid", [], "NV8"], [[70855, 70855], "valid"], [[70856, 70863], "disallowed"], [[70864, 70873], "valid"], [[70874, 71039], "disallowed"], [[71040, 71093], "valid"], [[71094, 71095], "disallowed"], [[71096, 71104], "valid"], [[71105, 71113], "valid", [], "NV8"], [[71114, 71127], "valid", [], "NV8"], [[71128, 71133], "valid"], [[71134, 71167], "disallowed"], [[71168, 71232], "valid"], [[71233, 71235], "valid", [], "NV8"], [[71236, 71236], "valid"], [[71237, 71247], "disallowed"], [[71248, 71257], "valid"], [[71258, 71295], "disallowed"], [[71296, 71351], "valid"], [[71352, 71359], "disallowed"], [[71360, 71369], "valid"], [[71370, 71423], "disallowed"], [[71424, 71449], "valid"], [[71450, 71452], "disallowed"], [[71453, 71467], "valid"], [[71468, 71471], "disallowed"], [[71472, 71481], "valid"], [[71482, 71487], "valid", [], "NV8"], [[71488, 71839], "disallowed"], [[71840, 71840], "mapped", [71872]], [[71841, 71841], "mapped", [71873]], [[71842, 71842], "mapped", [71874]], [[71843, 71843], "mapped", [71875]], [[71844, 71844], "mapped", [71876]], [[71845, 71845], "mapped", [71877]], [[71846, 71846], "mapped", [71878]], [[71847, 71847], "mapped", [71879]], [[71848, 71848], "mapped", [71880]], [[71849, 71849], "mapped", [71881]], [[71850, 71850], "mapped", [71882]], [[71851, 71851], "mapped", [71883]], [[71852, 71852], "mapped", [71884]], [[71853, 71853], "mapped", [71885]], [[71854, 71854], "mapped", [71886]], [[71855, 71855], "mapped", [71887]], [[71856, 71856], "mapped", [71888]], [[71857, 71857], "mapped", [71889]], [[71858, 71858], "mapped", [71890]], [[71859, 71859], "mapped", [71891]], [[71860, 71860], "mapped", [71892]], [[71861, 71861], "mapped", [71893]], [[71862, 71862], "mapped", [71894]], [[71863, 71863], "mapped", [71895]], [[71864, 71864], "mapped", [71896]], [[71865, 71865], "mapped", [71897]], [[71866, 71866], "mapped", [71898]], [[71867, 71867], "mapped", [71899]], [[71868, 71868], "mapped", [71900]], [[71869, 71869], "mapped", [71901]], [[71870, 71870], "mapped", [71902]], [[71871, 71871], "mapped", [71903]], [[71872, 71913], "valid"], [[71914, 71922], "valid", [], "NV8"], [[71923, 71934], "disallowed"], [[71935, 71935], "valid"], [[71936, 72383], "disallowed"], [[72384, 72440], "valid"], [[72441, 73727], "disallowed"], [[73728, 74606], "valid"], [[74607, 74648], "valid"], [[74649, 74649], "valid"], [[74650, 74751], "disallowed"], [[74752, 74850], "valid", [], "NV8"], [[74851, 74862], "valid", [], "NV8"], [[74863, 74863], "disallowed"], [[74864, 74867], "valid", [], "NV8"], [[74868, 74868], "valid", [], "NV8"], [[74869, 74879], "disallowed"], [[74880, 75075], "valid"], [[75076, 77823], "disallowed"], [[77824, 78894], "valid"], [[78895, 82943], "disallowed"], [[82944, 83526], "valid"], [[83527, 92159], "disallowed"], [[92160, 92728], "valid"], [[92729, 92735], "disallowed"], [[92736, 92766], "valid"], [[92767, 92767], "disallowed"], [[92768, 92777], "valid"], [[92778, 92781], "disallowed"], [[92782, 92783], "valid", [], "NV8"], [[92784, 92879], "disallowed"], [[92880, 92909], "valid"], [[92910, 92911], "disallowed"], [[92912, 92916], "valid"], [[92917, 92917], "valid", [], "NV8"], [[92918, 92927], "disallowed"], [[92928, 92982], "valid"], [[92983, 92991], "valid", [], "NV8"], [[92992, 92995], "valid"], [[92996, 92997], "valid", [], "NV8"], [[92998, 93007], "disallowed"], [[93008, 93017], "valid"], [[93018, 93018], "disallowed"], [[93019, 93025], "valid", [], "NV8"], [[93026, 93026], "disallowed"], [[93027, 93047], "valid"], [[93048, 93052], "disallowed"], [[93053, 93071], "valid"], [[93072, 93951], "disallowed"], [[93952, 94020], "valid"], [[94021, 94031], "disallowed"], [[94032, 94078], "valid"], [[94079, 94094], "disallowed"], [[94095, 94111], "valid"], [[94112, 110591], "disallowed"], [[110592, 110593], "valid"], [[110594, 113663], "disallowed"], [[113664, 113770], "valid"], [[113771, 113775], "disallowed"], [[113776, 113788], "valid"], [[113789, 113791], "disallowed"], [[113792, 113800], "valid"], [[113801, 113807], "disallowed"], [[113808, 113817], "valid"], [[113818, 113819], "disallowed"], [[113820, 113820], "valid", [], "NV8"], [[113821, 113822], "valid"], [[113823, 113823], "valid", [], "NV8"], [[113824, 113827], "ignored"], [[113828, 118783], "disallowed"], [[118784, 119029], "valid", [], "NV8"], [[119030, 119039], "disallowed"], [[119040, 119078], "valid", [], "NV8"], [[119079, 119080], "disallowed"], [[119081, 119081], "valid", [], "NV8"], [[119082, 119133], "valid", [], "NV8"], [[119134, 119134], "mapped", [119127, 119141]], [[119135, 119135], "mapped", [119128, 119141]], [[119136, 119136], "mapped", [119128, 119141, 119150]], [[119137, 119137], "mapped", [119128, 119141, 119151]], [[119138, 119138], "mapped", [119128, 119141, 119152]], [[119139, 119139], "mapped", [119128, 119141, 119153]], [[119140, 119140], "mapped", [119128, 119141, 119154]], [[119141, 119154], "valid", [], "NV8"], [[119155, 119162], "disallowed"], [[119163, 119226], "valid", [], "NV8"], [[119227, 119227], "mapped", [119225, 119141]], [[119228, 119228], "mapped", [119226, 119141]], [[119229, 119229], "mapped", [119225, 119141, 119150]], [[119230, 119230], "mapped", [119226, 119141, 119150]], [[119231, 119231], "mapped", [119225, 119141, 119151]], [[119232, 119232], "mapped", [119226, 119141, 119151]], [[119233, 119261], "valid", [], "NV8"], [[119262, 119272], "valid", [], "NV8"], [[119273, 119295], "disallowed"], [[119296, 119365], "valid", [], "NV8"], [[119366, 119551], "disallowed"], [[119552, 119638], "valid", [], "NV8"], [[119639, 119647], "disallowed"], [[119648, 119665], "valid", [], "NV8"], [[119666, 119807], "disallowed"], [[119808, 119808], "mapped", [97]], [[119809, 119809], "mapped", [98]], [[119810, 119810], "mapped", [99]], [[119811, 119811], "mapped", [100]], [[119812, 119812], "mapped", [101]], [[119813, 119813], "mapped", [102]], [[119814, 119814], "mapped", [103]], [[119815, 119815], "mapped", [104]], [[119816, 119816], "mapped", [105]], [[119817, 119817], "mapped", [106]], [[119818, 119818], "mapped", [107]], [[119819, 119819], "mapped", [108]], [[119820, 119820], "mapped", [109]], [[119821, 119821], "mapped", [110]], [[119822, 119822], "mapped", [111]], [[119823, 119823], "mapped", [112]], [[119824, 119824], "mapped", [113]], [[119825, 119825], "mapped", [114]], [[119826, 119826], "mapped", [115]], [[119827, 119827], "mapped", [116]], [[119828, 119828], "mapped", [117]], [[119829, 119829], "mapped", [118]], [[119830, 119830], "mapped", [119]], [[119831, 119831], "mapped", [120]], [[119832, 119832], "mapped", [121]], [[119833, 119833], "mapped", [122]], [[119834, 119834], "mapped", [97]], [[119835, 119835], "mapped", [98]], [[119836, 119836], "mapped", [99]], [[119837, 119837], "mapped", [100]], [[119838, 119838], "mapped", [101]], [[119839, 119839], "mapped", [102]], [[119840, 119840], "mapped", [103]], [[119841, 119841], "mapped", [104]], [[119842, 119842], "mapped", [105]], [[119843, 119843], "mapped", [106]], [[119844, 119844], "mapped", [107]], [[119845, 119845], "mapped", [108]], [[119846, 119846], "mapped", [109]], [[119847, 119847], "mapped", [110]], [[119848, 119848], "mapped", [111]], [[119849, 119849], "mapped", [112]], [[119850, 119850], "mapped", [113]], [[119851, 119851], "mapped", [114]], [[119852, 119852], "mapped", [115]], [[119853, 119853], "mapped", [116]], [[119854, 119854], "mapped", [117]], [[119855, 119855], "mapped", [118]], [[119856, 119856], "mapped", [119]], [[119857, 119857], "mapped", [120]], [[119858, 119858], "mapped", [121]], [[119859, 119859], "mapped", [122]], [[119860, 119860], "mapped", [97]], [[119861, 119861], "mapped", [98]], [[119862, 119862], "mapped", [99]], [[119863, 119863], "mapped", [100]], [[119864, 119864], "mapped", [101]], [[119865, 119865], "mapped", [102]], [[119866, 119866], "mapped", [103]], [[119867, 119867], "mapped", [104]], [[119868, 119868], "mapped", [105]], [[119869, 119869], "mapped", [106]], [[119870, 119870], "mapped", [107]], [[119871, 119871], "mapped", [108]], [[119872, 119872], "mapped", [109]], [[119873, 119873], "mapped", [110]], [[119874, 119874], "mapped", [111]], [[119875, 119875], "mapped", [112]], [[119876, 119876], "mapped", [113]], [[119877, 119877], "mapped", [114]], [[119878, 119878], "mapped", [115]], [[119879, 119879], "mapped", [116]], [[119880, 119880], "mapped", [117]], [[119881, 119881], "mapped", [118]], [[119882, 119882], "mapped", [119]], [[119883, 119883], "mapped", [120]], [[119884, 119884], "mapped", [121]], [[119885, 119885], "mapped", [122]], [[119886, 119886], "mapped", [97]], [[119887, 119887], "mapped", [98]], [[119888, 119888], "mapped", [99]], [[119889, 119889], "mapped", [100]], [[119890, 119890], "mapped", [101]], [[119891, 119891], "mapped", [102]], [[119892, 119892], "mapped", [103]], [[119893, 119893], "disallowed"], [[119894, 119894], "mapped", [105]], [[119895, 119895], "mapped", [106]], [[119896, 119896], "mapped", [107]], [[119897, 119897], "mapped", [108]], [[119898, 119898], "mapped", [109]], [[119899, 119899], "mapped", [110]], [[119900, 119900], "mapped", [111]], [[119901, 119901], "mapped", [112]], [[119902, 119902], "mapped", [113]], [[119903, 119903], "mapped", [114]], [[119904, 119904], "mapped", [115]], [[119905, 119905], "mapped", [116]], [[119906, 119906], "mapped", [117]], [[119907, 119907], "mapped", [118]], [[119908, 119908], "mapped", [119]], [[119909, 119909], "mapped", [120]], [[119910, 119910], "mapped", [121]], [[119911, 119911], "mapped", [122]], [[119912, 119912], "mapped", [97]], [[119913, 119913], "mapped", [98]], [[119914, 119914], "mapped", [99]], [[119915, 119915], "mapped", [100]], [[119916, 119916], "mapped", [101]], [[119917, 119917], "mapped", [102]], [[119918, 119918], "mapped", [103]], [[119919, 119919], "mapped", [104]], [[119920, 119920], "mapped", [105]], [[119921, 119921], "mapped", [106]], [[119922, 119922], "mapped", [107]], [[119923, 119923], "mapped", [108]], [[119924, 119924], "mapped", [109]], [[119925, 119925], "mapped", [110]], [[119926, 119926], "mapped", [111]], [[119927, 119927], "mapped", [112]], [[119928, 119928], "mapped", [113]], [[119929, 119929], "mapped", [114]], [[119930, 119930], "mapped", [115]], [[119931, 119931], "mapped", [116]], [[119932, 119932], "mapped", [117]], [[119933, 119933], "mapped", [118]], [[119934, 119934], "mapped", [119]], [[119935, 119935], "mapped", [120]], [[119936, 119936], "mapped", [121]], [[119937, 119937], "mapped", [122]], [[119938, 119938], "mapped", [97]], [[119939, 119939], "mapped", [98]], [[119940, 119940], "mapped", [99]], [[119941, 119941], "mapped", [100]], [[119942, 119942], "mapped", [101]], [[119943, 119943], "mapped", [102]], [[119944, 119944], "mapped", [103]], [[119945, 119945], "mapped", [104]], [[119946, 119946], "mapped", [105]], [[119947, 119947], "mapped", [106]], [[119948, 119948], "mapped", [107]], [[119949, 119949], "mapped", [108]], [[119950, 119950], "mapped", [109]], [[119951, 119951], "mapped", [110]], [[119952, 119952], "mapped", [111]], [[119953, 119953], "mapped", [112]], [[119954, 119954], "mapped", [113]], [[119955, 119955], "mapped", [114]], [[119956, 119956], "mapped", [115]], [[119957, 119957], "mapped", [116]], [[119958, 119958], "mapped", [117]], [[119959, 119959], "mapped", [118]], [[119960, 119960], "mapped", [119]], [[119961, 119961], "mapped", [120]], [[119962, 119962], "mapped", [121]], [[119963, 119963], "mapped", [122]], [[119964, 119964], "mapped", [97]], [[119965, 119965], "disallowed"], [[119966, 119966], "mapped", [99]], [[119967, 119967], "mapped", [100]], [[119968, 119969], "disallowed"], [[119970, 119970], "mapped", [103]], [[119971, 119972], "disallowed"], [[119973, 119973], "mapped", [106]], [[119974, 119974], "mapped", [107]], [[119975, 119976], "disallowed"], [[119977, 119977], "mapped", [110]], [[119978, 119978], "mapped", [111]], [[119979, 119979], "mapped", [112]], [[119980, 119980], "mapped", [113]], [[119981, 119981], "disallowed"], [[119982, 119982], "mapped", [115]], [[119983, 119983], "mapped", [116]], [[119984, 119984], "mapped", [117]], [[119985, 119985], "mapped", [118]], [[119986, 119986], "mapped", [119]], [[119987, 119987], "mapped", [120]], [[119988, 119988], "mapped", [121]], [[119989, 119989], "mapped", [122]], [[119990, 119990], "mapped", [97]], [[119991, 119991], "mapped", [98]], [[119992, 119992], "mapped", [99]], [[119993, 119993], "mapped", [100]], [[119994, 119994], "disallowed"], [[119995, 119995], "mapped", [102]], [[119996, 119996], "disallowed"], [[119997, 119997], "mapped", [104]], [[119998, 119998], "mapped", [105]], [[119999, 119999], "mapped", [106]], [[12e4, 12e4], "mapped", [107]], [[120001, 120001], "mapped", [108]], [[120002, 120002], "mapped", [109]], [[120003, 120003], "mapped", [110]], [[120004, 120004], "disallowed"], [[120005, 120005], "mapped", [112]], [[120006, 120006], "mapped", [113]], [[120007, 120007], "mapped", [114]], [[120008, 120008], "mapped", [115]], [[120009, 120009], "mapped", [116]], [[120010, 120010], "mapped", [117]], [[120011, 120011], "mapped", [118]], [[120012, 120012], "mapped", [119]], [[120013, 120013], "mapped", [120]], [[120014, 120014], "mapped", [121]], [[120015, 120015], "mapped", [122]], [[120016, 120016], "mapped", [97]], [[120017, 120017], "mapped", [98]], [[120018, 120018], "mapped", [99]], [[120019, 120019], "mapped", [100]], [[120020, 120020], "mapped", [101]], [[120021, 120021], "mapped", [102]], [[120022, 120022], "mapped", [103]], [[120023, 120023], "mapped", [104]], [[120024, 120024], "mapped", [105]], [[120025, 120025], "mapped", [106]], [[120026, 120026], "mapped", [107]], [[120027, 120027], "mapped", [108]], [[120028, 120028], "mapped", [109]], [[120029, 120029], "mapped", [110]], [[120030, 120030], "mapped", [111]], [[120031, 120031], "mapped", [112]], [[120032, 120032], "mapped", [113]], [[120033, 120033], "mapped", [114]], [[120034, 120034], "mapped", [115]], [[120035, 120035], "mapped", [116]], [[120036, 120036], "mapped", [117]], [[120037, 120037], "mapped", [118]], [[120038, 120038], "mapped", [119]], [[120039, 120039], "mapped", [120]], [[120040, 120040], "mapped", [121]], [[120041, 120041], "mapped", [122]], [[120042, 120042], "mapped", [97]], [[120043, 120043], "mapped", [98]], [[120044, 120044], "mapped", [99]], [[120045, 120045], "mapped", [100]], [[120046, 120046], "mapped", [101]], [[120047, 120047], "mapped", [102]], [[120048, 120048], "mapped", [103]], [[120049, 120049], "mapped", [104]], [[120050, 120050], "mapped", [105]], [[120051, 120051], "mapped", [106]], [[120052, 120052], "mapped", [107]], [[120053, 120053], "mapped", [108]], [[120054, 120054], "mapped", [109]], [[120055, 120055], "mapped", [110]], [[120056, 120056], "mapped", [111]], [[120057, 120057], "mapped", [112]], [[120058, 120058], "mapped", [113]], [[120059, 120059], "mapped", [114]], [[120060, 120060], "mapped", [115]], [[120061, 120061], "mapped", [116]], [[120062, 120062], "mapped", [117]], [[120063, 120063], "mapped", [118]], [[120064, 120064], "mapped", [119]], [[120065, 120065], "mapped", [120]], [[120066, 120066], "mapped", [121]], [[120067, 120067], "mapped", [122]], [[120068, 120068], "mapped", [97]], [[120069, 120069], "mapped", [98]], [[120070, 120070], "disallowed"], [[120071, 120071], "mapped", [100]], [[120072, 120072], "mapped", [101]], [[120073, 120073], "mapped", [102]], [[120074, 120074], "mapped", [103]], [[120075, 120076], "disallowed"], [[120077, 120077], "mapped", [106]], [[120078, 120078], "mapped", [107]], [[120079, 120079], "mapped", [108]], [[120080, 120080], "mapped", [109]], [[120081, 120081], "mapped", [110]], [[120082, 120082], "mapped", [111]], [[120083, 120083], "mapped", [112]], [[120084, 120084], "mapped", [113]], [[120085, 120085], "disallowed"], [[120086, 120086], "mapped", [115]], [[120087, 120087], "mapped", [116]], [[120088, 120088], "mapped", [117]], [[120089, 120089], "mapped", [118]], [[120090, 120090], "mapped", [119]], [[120091, 120091], "mapped", [120]], [[120092, 120092], "mapped", [121]], [[120093, 120093], "disallowed"], [[120094, 120094], "mapped", [97]], [[120095, 120095], "mapped", [98]], [[120096, 120096], "mapped", [99]], [[120097, 120097], "mapped", [100]], [[120098, 120098], "mapped", [101]], [[120099, 120099], "mapped", [102]], [[120100, 120100], "mapped", [103]], [[120101, 120101], "mapped", [104]], [[120102, 120102], "mapped", [105]], [[120103, 120103], "mapped", [106]], [[120104, 120104], "mapped", [107]], [[120105, 120105], "mapped", [108]], [[120106, 120106], "mapped", [109]], [[120107, 120107], "mapped", [110]], [[120108, 120108], "mapped", [111]], [[120109, 120109], "mapped", [112]], [[120110, 120110], "mapped", [113]], [[120111, 120111], "mapped", [114]], [[120112, 120112], "mapped", [115]], [[120113, 120113], "mapped", [116]], [[120114, 120114], "mapped", [117]], [[120115, 120115], "mapped", [118]], [[120116, 120116], "mapped", [119]], [[120117, 120117], "mapped", [120]], [[120118, 120118], "mapped", [121]], [[120119, 120119], "mapped", [122]], [[120120, 120120], "mapped", [97]], [[120121, 120121], "mapped", [98]], [[120122, 120122], "disallowed"], [[120123, 120123], "mapped", [100]], [[120124, 120124], "mapped", [101]], [[120125, 120125], "mapped", [102]], [[120126, 120126], "mapped", [103]], [[120127, 120127], "disallowed"], [[120128, 120128], "mapped", [105]], [[120129, 120129], "mapped", [106]], [[120130, 120130], "mapped", [107]], [[120131, 120131], "mapped", [108]], [[120132, 120132], "mapped", [109]], [[120133, 120133], "disallowed"], [[120134, 120134], "mapped", [111]], [[120135, 120137], "disallowed"], [[120138, 120138], "mapped", [115]], [[120139, 120139], "mapped", [116]], [[120140, 120140], "mapped", [117]], [[120141, 120141], "mapped", [118]], [[120142, 120142], "mapped", [119]], [[120143, 120143], "mapped", [120]], [[120144, 120144], "mapped", [121]], [[120145, 120145], "disallowed"], [[120146, 120146], "mapped", [97]], [[120147, 120147], "mapped", [98]], [[120148, 120148], "mapped", [99]], [[120149, 120149], "mapped", [100]], [[120150, 120150], "mapped", [101]], [[120151, 120151], "mapped", [102]], [[120152, 120152], "mapped", [103]], [[120153, 120153], "mapped", [104]], [[120154, 120154], "mapped", [105]], [[120155, 120155], "mapped", [106]], [[120156, 120156], "mapped", [107]], [[120157, 120157], "mapped", [108]], [[120158, 120158], "mapped", [109]], [[120159, 120159], "mapped", [110]], [[120160, 120160], "mapped", [111]], [[120161, 120161], "mapped", [112]], [[120162, 120162], "mapped", [113]], [[120163, 120163], "mapped", [114]], [[120164, 120164], "mapped", [115]], [[120165, 120165], "mapped", [116]], [[120166, 120166], "mapped", [117]], [[120167, 120167], "mapped", [118]], [[120168, 120168], "mapped", [119]], [[120169, 120169], "mapped", [120]], [[120170, 120170], "mapped", [121]], [[120171, 120171], "mapped", [122]], [[120172, 120172], "mapped", [97]], [[120173, 120173], "mapped", [98]], [[120174, 120174], "mapped", [99]], [[120175, 120175], "mapped", [100]], [[120176, 120176], "mapped", [101]], [[120177, 120177], "mapped", [102]], [[120178, 120178], "mapped", [103]], [[120179, 120179], "mapped", [104]], [[120180, 120180], "mapped", [105]], [[120181, 120181], "mapped", [106]], [[120182, 120182], "mapped", [107]], [[120183, 120183], "mapped", [108]], [[120184, 120184], "mapped", [109]], [[120185, 120185], "mapped", [110]], [[120186, 120186], "mapped", [111]], [[120187, 120187], "mapped", [112]], [[120188, 120188], "mapped", [113]], [[120189, 120189], "mapped", [114]], [[120190, 120190], "mapped", [115]], [[120191, 120191], "mapped", [116]], [[120192, 120192], "mapped", [117]], [[120193, 120193], "mapped", [118]], [[120194, 120194], "mapped", [119]], [[120195, 120195], "mapped", [120]], [[120196, 120196], "mapped", [121]], [[120197, 120197], "mapped", [122]], [[120198, 120198], "mapped", [97]], [[120199, 120199], "mapped", [98]], [[120200, 120200], "mapped", [99]], [[120201, 120201], "mapped", [100]], [[120202, 120202], "mapped", [101]], [[120203, 120203], "mapped", [102]], [[120204, 120204], "mapped", [103]], [[120205, 120205], "mapped", [104]], [[120206, 120206], "mapped", [105]], [[120207, 120207], "mapped", [106]], [[120208, 120208], "mapped", [107]], [[120209, 120209], "mapped", [108]], [[120210, 120210], "mapped", [109]], [[120211, 120211], "mapped", [110]], [[120212, 120212], "mapped", [111]], [[120213, 120213], "mapped", [112]], [[120214, 120214], "mapped", [113]], [[120215, 120215], "mapped", [114]], [[120216, 120216], "mapped", [115]], [[120217, 120217], "mapped", [116]], [[120218, 120218], "mapped", [117]], [[120219, 120219], "mapped", [118]], [[120220, 120220], "mapped", [119]], [[120221, 120221], "mapped", [120]], [[120222, 120222], "mapped", [121]], [[120223, 120223], "mapped", [122]], [[120224, 120224], "mapped", [97]], [[120225, 120225], "mapped", [98]], [[120226, 120226], "mapped", [99]], [[120227, 120227], "mapped", [100]], [[120228, 120228], "mapped", [101]], [[120229, 120229], "mapped", [102]], [[120230, 120230], "mapped", [103]], [[120231, 120231], "mapped", [104]], [[120232, 120232], "mapped", [105]], [[120233, 120233], "mapped", [106]], [[120234, 120234], "mapped", [107]], [[120235, 120235], "mapped", [108]], [[120236, 120236], "mapped", [109]], [[120237, 120237], "mapped", [110]], [[120238, 120238], "mapped", [111]], [[120239, 120239], "mapped", [112]], [[120240, 120240], "mapped", [113]], [[120241, 120241], "mapped", [114]], [[120242, 120242], "mapped", [115]], [[120243, 120243], "mapped", [116]], [[120244, 120244], "mapped", [117]], [[120245, 120245], "mapped", [118]], [[120246, 120246], "mapped", [119]], [[120247, 120247], "mapped", [120]], [[120248, 120248], "mapped", [121]], [[120249, 120249], "mapped", [122]], [[120250, 120250], "mapped", [97]], [[120251, 120251], "mapped", [98]], [[120252, 120252], "mapped", [99]], [[120253, 120253], "mapped", [100]], [[120254, 120254], "mapped", [101]], [[120255, 120255], "mapped", [102]], [[120256, 120256], "mapped", [103]], [[120257, 120257], "mapped", [104]], [[120258, 120258], "mapped", [105]], [[120259, 120259], "mapped", [106]], [[120260, 120260], "mapped", [107]], [[120261, 120261], "mapped", [108]], [[120262, 120262], "mapped", [109]], [[120263, 120263], "mapped", [110]], [[120264, 120264], "mapped", [111]], [[120265, 120265], "mapped", [112]], [[120266, 120266], "mapped", [113]], [[120267, 120267], "mapped", [114]], [[120268, 120268], "mapped", [115]], [[120269, 120269], "mapped", [116]], [[120270, 120270], "mapped", [117]], [[120271, 120271], "mapped", [118]], [[120272, 120272], "mapped", [119]], [[120273, 120273], "mapped", [120]], [[120274, 120274], "mapped", [121]], [[120275, 120275], "mapped", [122]], [[120276, 120276], "mapped", [97]], [[120277, 120277], "mapped", [98]], [[120278, 120278], "mapped", [99]], [[120279, 120279], "mapped", [100]], [[120280, 120280], "mapped", [101]], [[120281, 120281], "mapped", [102]], [[120282, 120282], "mapped", [103]], [[120283, 120283], "mapped", [104]], [[120284, 120284], "mapped", [105]], [[120285, 120285], "mapped", [106]], [[120286, 120286], "mapped", [107]], [[120287, 120287], "mapped", [108]], [[120288, 120288], "mapped", [109]], [[120289, 120289], "mapped", [110]], [[120290, 120290], "mapped", [111]], [[120291, 120291], "mapped", [112]], [[120292, 120292], "mapped", [113]], [[120293, 120293], "mapped", [114]], [[120294, 120294], "mapped", [115]], [[120295, 120295], "mapped", [116]], [[120296, 120296], "mapped", [117]], [[120297, 120297], "mapped", [118]], [[120298, 120298], "mapped", [119]], [[120299, 120299], "mapped", [120]], [[120300, 120300], "mapped", [121]], [[120301, 120301], "mapped", [122]], [[120302, 120302], "mapped", [97]], [[120303, 120303], "mapped", [98]], [[120304, 120304], "mapped", [99]], [[120305, 120305], "mapped", [100]], [[120306, 120306], "mapped", [101]], [[120307, 120307], "mapped", [102]], [[120308, 120308], "mapped", [103]], [[120309, 120309], "mapped", [104]], [[120310, 120310], "mapped", [105]], [[120311, 120311], "mapped", [106]], [[120312, 120312], "mapped", [107]], [[120313, 120313], "mapped", [108]], [[120314, 120314], "mapped", [109]], [[120315, 120315], "mapped", [110]], [[120316, 120316], "mapped", [111]], [[120317, 120317], "mapped", [112]], [[120318, 120318], "mapped", [113]], [[120319, 120319], "mapped", [114]], [[120320, 120320], "mapped", [115]], [[120321, 120321], "mapped", [116]], [[120322, 120322], "mapped", [117]], [[120323, 120323], "mapped", [118]], [[120324, 120324], "mapped", [119]], [[120325, 120325], "mapped", [120]], [[120326, 120326], "mapped", [121]], [[120327, 120327], "mapped", [122]], [[120328, 120328], "mapped", [97]], [[120329, 120329], "mapped", [98]], [[120330, 120330], "mapped", [99]], [[120331, 120331], "mapped", [100]], [[120332, 120332], "mapped", [101]], [[120333, 120333], "mapped", [102]], [[120334, 120334], "mapped", [103]], [[120335, 120335], "mapped", [104]], [[120336, 120336], "mapped", [105]], [[120337, 120337], "mapped", [106]], [[120338, 120338], "mapped", [107]], [[120339, 120339], "mapped", [108]], [[120340, 120340], "mapped", [109]], [[120341, 120341], "mapped", [110]], [[120342, 120342], "mapped", [111]], [[120343, 120343], "mapped", [112]], [[120344, 120344], "mapped", [113]], [[120345, 120345], "mapped", [114]], [[120346, 120346], "mapped", [115]], [[120347, 120347], "mapped", [116]], [[120348, 120348], "mapped", [117]], [[120349, 120349], "mapped", [118]], [[120350, 120350], "mapped", [119]], [[120351, 120351], "mapped", [120]], [[120352, 120352], "mapped", [121]], [[120353, 120353], "mapped", [122]], [[120354, 120354], "mapped", [97]], [[120355, 120355], "mapped", [98]], [[120356, 120356], "mapped", [99]], [[120357, 120357], "mapped", [100]], [[120358, 120358], "mapped", [101]], [[120359, 120359], "mapped", [102]], [[120360, 120360], "mapped", [103]], [[120361, 120361], "mapped", [104]], [[120362, 120362], "mapped", [105]], [[120363, 120363], "mapped", [106]], [[120364, 120364], "mapped", [107]], [[120365, 120365], "mapped", [108]], [[120366, 120366], "mapped", [109]], [[120367, 120367], "mapped", [110]], [[120368, 120368], "mapped", [111]], [[120369, 120369], "mapped", [112]], [[120370, 120370], "mapped", [113]], [[120371, 120371], "mapped", [114]], [[120372, 120372], "mapped", [115]], [[120373, 120373], "mapped", [116]], [[120374, 120374], "mapped", [117]], [[120375, 120375], "mapped", [118]], [[120376, 120376], "mapped", [119]], [[120377, 120377], "mapped", [120]], [[120378, 120378], "mapped", [121]], [[120379, 120379], "mapped", [122]], [[120380, 120380], "mapped", [97]], [[120381, 120381], "mapped", [98]], [[120382, 120382], "mapped", [99]], [[120383, 120383], "mapped", [100]], [[120384, 120384], "mapped", [101]], [[120385, 120385], "mapped", [102]], [[120386, 120386], "mapped", [103]], [[120387, 120387], "mapped", [104]], [[120388, 120388], "mapped", [105]], [[120389, 120389], "mapped", [106]], [[120390, 120390], "mapped", [107]], [[120391, 120391], "mapped", [108]], [[120392, 120392], "mapped", [109]], [[120393, 120393], "mapped", [110]], [[120394, 120394], "mapped", [111]], [[120395, 120395], "mapped", [112]], [[120396, 120396], "mapped", [113]], [[120397, 120397], "mapped", [114]], [[120398, 120398], "mapped", [115]], [[120399, 120399], "mapped", [116]], [[120400, 120400], "mapped", [117]], [[120401, 120401], "mapped", [118]], [[120402, 120402], "mapped", [119]], [[120403, 120403], "mapped", [120]], [[120404, 120404], "mapped", [121]], [[120405, 120405], "mapped", [122]], [[120406, 120406], "mapped", [97]], [[120407, 120407], "mapped", [98]], [[120408, 120408], "mapped", [99]], [[120409, 120409], "mapped", [100]], [[120410, 120410], "mapped", [101]], [[120411, 120411], "mapped", [102]], [[120412, 120412], "mapped", [103]], [[120413, 120413], "mapped", [104]], [[120414, 120414], "mapped", [105]], [[120415, 120415], "mapped", [106]], [[120416, 120416], "mapped", [107]], [[120417, 120417], "mapped", [108]], [[120418, 120418], "mapped", [109]], [[120419, 120419], "mapped", [110]], [[120420, 120420], "mapped", [111]], [[120421, 120421], "mapped", [112]], [[120422, 120422], "mapped", [113]], [[120423, 120423], "mapped", [114]], [[120424, 120424], "mapped", [115]], [[120425, 120425], "mapped", [116]], [[120426, 120426], "mapped", [117]], [[120427, 120427], "mapped", [118]], [[120428, 120428], "mapped", [119]], [[120429, 120429], "mapped", [120]], [[120430, 120430], "mapped", [121]], [[120431, 120431], "mapped", [122]], [[120432, 120432], "mapped", [97]], [[120433, 120433], "mapped", [98]], [[120434, 120434], "mapped", [99]], [[120435, 120435], "mapped", [100]], [[120436, 120436], "mapped", [101]], [[120437, 120437], "mapped", [102]], [[120438, 120438], "mapped", [103]], [[120439, 120439], "mapped", [104]], [[120440, 120440], "mapped", [105]], [[120441, 120441], "mapped", [106]], [[120442, 120442], "mapped", [107]], [[120443, 120443], "mapped", [108]], [[120444, 120444], "mapped", [109]], [[120445, 120445], "mapped", [110]], [[120446, 120446], "mapped", [111]], [[120447, 120447], "mapped", [112]], [[120448, 120448], "mapped", [113]], [[120449, 120449], "mapped", [114]], [[120450, 120450], "mapped", [115]], [[120451, 120451], "mapped", [116]], [[120452, 120452], "mapped", [117]], [[120453, 120453], "mapped", [118]], [[120454, 120454], "mapped", [119]], [[120455, 120455], "mapped", [120]], [[120456, 120456], "mapped", [121]], [[120457, 120457], "mapped", [122]], [[120458, 120458], "mapped", [97]], [[120459, 120459], "mapped", [98]], [[120460, 120460], "mapped", [99]], [[120461, 120461], "mapped", [100]], [[120462, 120462], "mapped", [101]], [[120463, 120463], "mapped", [102]], [[120464, 120464], "mapped", [103]], [[120465, 120465], "mapped", [104]], [[120466, 120466], "mapped", [105]], [[120467, 120467], "mapped", [106]], [[120468, 120468], "mapped", [107]], [[120469, 120469], "mapped", [108]], [[120470, 120470], "mapped", [109]], [[120471, 120471], "mapped", [110]], [[120472, 120472], "mapped", [111]], [[120473, 120473], "mapped", [112]], [[120474, 120474], "mapped", [113]], [[120475, 120475], "mapped", [114]], [[120476, 120476], "mapped", [115]], [[120477, 120477], "mapped", [116]], [[120478, 120478], "mapped", [117]], [[120479, 120479], "mapped", [118]], [[120480, 120480], "mapped", [119]], [[120481, 120481], "mapped", [120]], [[120482, 120482], "mapped", [121]], [[120483, 120483], "mapped", [122]], [[120484, 120484], "mapped", [305]], [[120485, 120485], "mapped", [567]], [[120486, 120487], "disallowed"], [[120488, 120488], "mapped", [945]], [[120489, 120489], "mapped", [946]], [[120490, 120490], "mapped", [947]], [[120491, 120491], "mapped", [948]], [[120492, 120492], "mapped", [949]], [[120493, 120493], "mapped", [950]], [[120494, 120494], "mapped", [951]], [[120495, 120495], "mapped", [952]], [[120496, 120496], "mapped", [953]], [[120497, 120497], "mapped", [954]], [[120498, 120498], "mapped", [955]], [[120499, 120499], "mapped", [956]], [[120500, 120500], "mapped", [957]], [[120501, 120501], "mapped", [958]], [[120502, 120502], "mapped", [959]], [[120503, 120503], "mapped", [960]], [[120504, 120504], "mapped", [961]], [[120505, 120505], "mapped", [952]], [[120506, 120506], "mapped", [963]], [[120507, 120507], "mapped", [964]], [[120508, 120508], "mapped", [965]], [[120509, 120509], "mapped", [966]], [[120510, 120510], "mapped", [967]], [[120511, 120511], "mapped", [968]], [[120512, 120512], "mapped", [969]], [[120513, 120513], "mapped", [8711]], [[120514, 120514], "mapped", [945]], [[120515, 120515], "mapped", [946]], [[120516, 120516], "mapped", [947]], [[120517, 120517], "mapped", [948]], [[120518, 120518], "mapped", [949]], [[120519, 120519], "mapped", [950]], [[120520, 120520], "mapped", [951]], [[120521, 120521], "mapped", [952]], [[120522, 120522], "mapped", [953]], [[120523, 120523], "mapped", [954]], [[120524, 120524], "mapped", [955]], [[120525, 120525], "mapped", [956]], [[120526, 120526], "mapped", [957]], [[120527, 120527], "mapped", [958]], [[120528, 120528], "mapped", [959]], [[120529, 120529], "mapped", [960]], [[120530, 120530], "mapped", [961]], [[120531, 120532], "mapped", [963]], [[120533, 120533], "mapped", [964]], [[120534, 120534], "mapped", [965]], [[120535, 120535], "mapped", [966]], [[120536, 120536], "mapped", [967]], [[120537, 120537], "mapped", [968]], [[120538, 120538], "mapped", [969]], [[120539, 120539], "mapped", [8706]], [[120540, 120540], "mapped", [949]], [[120541, 120541], "mapped", [952]], [[120542, 120542], "mapped", [954]], [[120543, 120543], "mapped", [966]], [[120544, 120544], "mapped", [961]], [[120545, 120545], "mapped", [960]], [[120546, 120546], "mapped", [945]], [[120547, 120547], "mapped", [946]], [[120548, 120548], "mapped", [947]], [[120549, 120549], "mapped", [948]], [[120550, 120550], "mapped", [949]], [[120551, 120551], "mapped", [950]], [[120552, 120552], "mapped", [951]], [[120553, 120553], "mapped", [952]], [[120554, 120554], "mapped", [953]], [[120555, 120555], "mapped", [954]], [[120556, 120556], "mapped", [955]], [[120557, 120557], "mapped", [956]], [[120558, 120558], "mapped", [957]], [[120559, 120559], "mapped", [958]], [[120560, 120560], "mapped", [959]], [[120561, 120561], "mapped", [960]], [[120562, 120562], "mapped", [961]], [[120563, 120563], "mapped", [952]], [[120564, 120564], "mapped", [963]], [[120565, 120565], "mapped", [964]], [[120566, 120566], "mapped", [965]], [[120567, 120567], "mapped", [966]], [[120568, 120568], "mapped", [967]], [[120569, 120569], "mapped", [968]], [[120570, 120570], "mapped", [969]], [[120571, 120571], "mapped", [8711]], [[120572, 120572], "mapped", [945]], [[120573, 120573], "mapped", [946]], [[120574, 120574], "mapped", [947]], [[120575, 120575], "mapped", [948]], [[120576, 120576], "mapped", [949]], [[120577, 120577], "mapped", [950]], [[120578, 120578], "mapped", [951]], [[120579, 120579], "mapped", [952]], [[120580, 120580], "mapped", [953]], [[120581, 120581], "mapped", [954]], [[120582, 120582], "mapped", [955]], [[120583, 120583], "mapped", [956]], [[120584, 120584], "mapped", [957]], [[120585, 120585], "mapped", [958]], [[120586, 120586], "mapped", [959]], [[120587, 120587], "mapped", [960]], [[120588, 120588], "mapped", [961]], [[120589, 120590], "mapped", [963]], [[120591, 120591], "mapped", [964]], [[120592, 120592], "mapped", [965]], [[120593, 120593], "mapped", [966]], [[120594, 120594], "mapped", [967]], [[120595, 120595], "mapped", [968]], [[120596, 120596], "mapped", [969]], [[120597, 120597], "mapped", [8706]], [[120598, 120598], "mapped", [949]], [[120599, 120599], "mapped", [952]], [[120600, 120600], "mapped", [954]], [[120601, 120601], "mapped", [966]], [[120602, 120602], "mapped", [961]], [[120603, 120603], "mapped", [960]], [[120604, 120604], "mapped", [945]], [[120605, 120605], "mapped", [946]], [[120606, 120606], "mapped", [947]], [[120607, 120607], "mapped", [948]], [[120608, 120608], "mapped", [949]], [[120609, 120609], "mapped", [950]], [[120610, 120610], "mapped", [951]], [[120611, 120611], "mapped", [952]], [[120612, 120612], "mapped", [953]], [[120613, 120613], "mapped", [954]], [[120614, 120614], "mapped", [955]], [[120615, 120615], "mapped", [956]], [[120616, 120616], "mapped", [957]], [[120617, 120617], "mapped", [958]], [[120618, 120618], "mapped", [959]], [[120619, 120619], "mapped", [960]], [[120620, 120620], "mapped", [961]], [[120621, 120621], "mapped", [952]], [[120622, 120622], "mapped", [963]], [[120623, 120623], "mapped", [964]], [[120624, 120624], "mapped", [965]], [[120625, 120625], "mapped", [966]], [[120626, 120626], "mapped", [967]], [[120627, 120627], "mapped", [968]], [[120628, 120628], "mapped", [969]], [[120629, 120629], "mapped", [8711]], [[120630, 120630], "mapped", [945]], [[120631, 120631], "mapped", [946]], [[120632, 120632], "mapped", [947]], [[120633, 120633], "mapped", [948]], [[120634, 120634], "mapped", [949]], [[120635, 120635], "mapped", [950]], [[120636, 120636], "mapped", [951]], [[120637, 120637], "mapped", [952]], [[120638, 120638], "mapped", [953]], [[120639, 120639], "mapped", [954]], [[120640, 120640], "mapped", [955]], [[120641, 120641], "mapped", [956]], [[120642, 120642], "mapped", [957]], [[120643, 120643], "mapped", [958]], [[120644, 120644], "mapped", [959]], [[120645, 120645], "mapped", [960]], [[120646, 120646], "mapped", [961]], [[120647, 120648], "mapped", [963]], [[120649, 120649], "mapped", [964]], [[120650, 120650], "mapped", [965]], [[120651, 120651], "mapped", [966]], [[120652, 120652], "mapped", [967]], [[120653, 120653], "mapped", [968]], [[120654, 120654], "mapped", [969]], [[120655, 120655], "mapped", [8706]], [[120656, 120656], "mapped", [949]], [[120657, 120657], "mapped", [952]], [[120658, 120658], "mapped", [954]], [[120659, 120659], "mapped", [966]], [[120660, 120660], "mapped", [961]], [[120661, 120661], "mapped", [960]], [[120662, 120662], "mapped", [945]], [[120663, 120663], "mapped", [946]], [[120664, 120664], "mapped", [947]], [[120665, 120665], "mapped", [948]], [[120666, 120666], "mapped", [949]], [[120667, 120667], "mapped", [950]], [[120668, 120668], "mapped", [951]], [[120669, 120669], "mapped", [952]], [[120670, 120670], "mapped", [953]], [[120671, 120671], "mapped", [954]], [[120672, 120672], "mapped", [955]], [[120673, 120673], "mapped", [956]], [[120674, 120674], "mapped", [957]], [[120675, 120675], "mapped", [958]], [[120676, 120676], "mapped", [959]], [[120677, 120677], "mapped", [960]], [[120678, 120678], "mapped", [961]], [[120679, 120679], "mapped", [952]], [[120680, 120680], "mapped", [963]], [[120681, 120681], "mapped", [964]], [[120682, 120682], "mapped", [965]], [[120683, 120683], "mapped", [966]], [[120684, 120684], "mapped", [967]], [[120685, 120685], "mapped", [968]], [[120686, 120686], "mapped", [969]], [[120687, 120687], "mapped", [8711]], [[120688, 120688], "mapped", [945]], [[120689, 120689], "mapped", [946]], [[120690, 120690], "mapped", [947]], [[120691, 120691], "mapped", [948]], [[120692, 120692], "mapped", [949]], [[120693, 120693], "mapped", [950]], [[120694, 120694], "mapped", [951]], [[120695, 120695], "mapped", [952]], [[120696, 120696], "mapped", [953]], [[120697, 120697], "mapped", [954]], [[120698, 120698], "mapped", [955]], [[120699, 120699], "mapped", [956]], [[120700, 120700], "mapped", [957]], [[120701, 120701], "mapped", [958]], [[120702, 120702], "mapped", [959]], [[120703, 120703], "mapped", [960]], [[120704, 120704], "mapped", [961]], [[120705, 120706], "mapped", [963]], [[120707, 120707], "mapped", [964]], [[120708, 120708], "mapped", [965]], [[120709, 120709], "mapped", [966]], [[120710, 120710], "mapped", [967]], [[120711, 120711], "mapped", [968]], [[120712, 120712], "mapped", [969]], [[120713, 120713], "mapped", [8706]], [[120714, 120714], "mapped", [949]], [[120715, 120715], "mapped", [952]], [[120716, 120716], "mapped", [954]], [[120717, 120717], "mapped", [966]], [[120718, 120718], "mapped", [961]], [[120719, 120719], "mapped", [960]], [[120720, 120720], "mapped", [945]], [[120721, 120721], "mapped", [946]], [[120722, 120722], "mapped", [947]], [[120723, 120723], "mapped", [948]], [[120724, 120724], "mapped", [949]], [[120725, 120725], "mapped", [950]], [[120726, 120726], "mapped", [951]], [[120727, 120727], "mapped", [952]], [[120728, 120728], "mapped", [953]], [[120729, 120729], "mapped", [954]], [[120730, 120730], "mapped", [955]], [[120731, 120731], "mapped", [956]], [[120732, 120732], "mapped", [957]], [[120733, 120733], "mapped", [958]], [[120734, 120734], "mapped", [959]], [[120735, 120735], "mapped", [960]], [[120736, 120736], "mapped", [961]], [[120737, 120737], "mapped", [952]], [[120738, 120738], "mapped", [963]], [[120739, 120739], "mapped", [964]], [[120740, 120740], "mapped", [965]], [[120741, 120741], "mapped", [966]], [[120742, 120742], "mapped", [967]], [[120743, 120743], "mapped", [968]], [[120744, 120744], "mapped", [969]], [[120745, 120745], "mapped", [8711]], [[120746, 120746], "mapped", [945]], [[120747, 120747], "mapped", [946]], [[120748, 120748], "mapped", [947]], [[120749, 120749], "mapped", [948]], [[120750, 120750], "mapped", [949]], [[120751, 120751], "mapped", [950]], [[120752, 120752], "mapped", [951]], [[120753, 120753], "mapped", [952]], [[120754, 120754], "mapped", [953]], [[120755, 120755], "mapped", [954]], [[120756, 120756], "mapped", [955]], [[120757, 120757], "mapped", [956]], [[120758, 120758], "mapped", [957]], [[120759, 120759], "mapped", [958]], [[120760, 120760], "mapped", [959]], [[120761, 120761], "mapped", [960]], [[120762, 120762], "mapped", [961]], [[120763, 120764], "mapped", [963]], [[120765, 120765], "mapped", [964]], [[120766, 120766], "mapped", [965]], [[120767, 120767], "mapped", [966]], [[120768, 120768], "mapped", [967]], [[120769, 120769], "mapped", [968]], [[120770, 120770], "mapped", [969]], [[120771, 120771], "mapped", [8706]], [[120772, 120772], "mapped", [949]], [[120773, 120773], "mapped", [952]], [[120774, 120774], "mapped", [954]], [[120775, 120775], "mapped", [966]], [[120776, 120776], "mapped", [961]], [[120777, 120777], "mapped", [960]], [[120778, 120779], "mapped", [989]], [[120780, 120781], "disallowed"], [[120782, 120782], "mapped", [48]], [[120783, 120783], "mapped", [49]], [[120784, 120784], "mapped", [50]], [[120785, 120785], "mapped", [51]], [[120786, 120786], "mapped", [52]], [[120787, 120787], "mapped", [53]], [[120788, 120788], "mapped", [54]], [[120789, 120789], "mapped", [55]], [[120790, 120790], "mapped", [56]], [[120791, 120791], "mapped", [57]], [[120792, 120792], "mapped", [48]], [[120793, 120793], "mapped", [49]], [[120794, 120794], "mapped", [50]], [[120795, 120795], "mapped", [51]], [[120796, 120796], "mapped", [52]], [[120797, 120797], "mapped", [53]], [[120798, 120798], "mapped", [54]], [[120799, 120799], "mapped", [55]], [[120800, 120800], "mapped", [56]], [[120801, 120801], "mapped", [57]], [[120802, 120802], "mapped", [48]], [[120803, 120803], "mapped", [49]], [[120804, 120804], "mapped", [50]], [[120805, 120805], "mapped", [51]], [[120806, 120806], "mapped", [52]], [[120807, 120807], "mapped", [53]], [[120808, 120808], "mapped", [54]], [[120809, 120809], "mapped", [55]], [[120810, 120810], "mapped", [56]], [[120811, 120811], "mapped", [57]], [[120812, 120812], "mapped", [48]], [[120813, 120813], "mapped", [49]], [[120814, 120814], "mapped", [50]], [[120815, 120815], "mapped", [51]], [[120816, 120816], "mapped", [52]], [[120817, 120817], "mapped", [53]], [[120818, 120818], "mapped", [54]], [[120819, 120819], "mapped", [55]], [[120820, 120820], "mapped", [56]], [[120821, 120821], "mapped", [57]], [[120822, 120822], "mapped", [48]], [[120823, 120823], "mapped", [49]], [[120824, 120824], "mapped", [50]], [[120825, 120825], "mapped", [51]], [[120826, 120826], "mapped", [52]], [[120827, 120827], "mapped", [53]], [[120828, 120828], "mapped", [54]], [[120829, 120829], "mapped", [55]], [[120830, 120830], "mapped", [56]], [[120831, 120831], "mapped", [57]], [[120832, 121343], "valid", [], "NV8"], [[121344, 121398], "valid"], [[121399, 121402], "valid", [], "NV8"], [[121403, 121452], "valid"], [[121453, 121460], "valid", [], "NV8"], [[121461, 121461], "valid"], [[121462, 121475], "valid", [], "NV8"], [[121476, 121476], "valid"], [[121477, 121483], "valid", [], "NV8"], [[121484, 121498], "disallowed"], [[121499, 121503], "valid"], [[121504, 121504], "disallowed"], [[121505, 121519], "valid"], [[121520, 124927], "disallowed"], [[124928, 125124], "valid"], [[125125, 125126], "disallowed"], [[125127, 125135], "valid", [], "NV8"], [[125136, 125142], "valid"], [[125143, 126463], "disallowed"], [[126464, 126464], "mapped", [1575]], [[126465, 126465], "mapped", [1576]], [[126466, 126466], "mapped", [1580]], [[126467, 126467], "mapped", [1583]], [[126468, 126468], "disallowed"], [[126469, 126469], "mapped", [1608]], [[126470, 126470], "mapped", [1586]], [[126471, 126471], "mapped", [1581]], [[126472, 126472], "mapped", [1591]], [[126473, 126473], "mapped", [1610]], [[126474, 126474], "mapped", [1603]], [[126475, 126475], "mapped", [1604]], [[126476, 126476], "mapped", [1605]], [[126477, 126477], "mapped", [1606]], [[126478, 126478], "mapped", [1587]], [[126479, 126479], "mapped", [1593]], [[126480, 126480], "mapped", [1601]], [[126481, 126481], "mapped", [1589]], [[126482, 126482], "mapped", [1602]], [[126483, 126483], "mapped", [1585]], [[126484, 126484], "mapped", [1588]], [[126485, 126485], "mapped", [1578]], [[126486, 126486], "mapped", [1579]], [[126487, 126487], "mapped", [1582]], [[126488, 126488], "mapped", [1584]], [[126489, 126489], "mapped", [1590]], [[126490, 126490], "mapped", [1592]], [[126491, 126491], "mapped", [1594]], [[126492, 126492], "mapped", [1646]], [[126493, 126493], "mapped", [1722]], [[126494, 126494], "mapped", [1697]], [[126495, 126495], "mapped", [1647]], [[126496, 126496], "disallowed"], [[126497, 126497], "mapped", [1576]], [[126498, 126498], "mapped", [1580]], [[126499, 126499], "disallowed"], [[126500, 126500], "mapped", [1607]], [[126501, 126502], "disallowed"], [[126503, 126503], "mapped", [1581]], [[126504, 126504], "disallowed"], [[126505, 126505], "mapped", [1610]], [[126506, 126506], "mapped", [1603]], [[126507, 126507], "mapped", [1604]], [[126508, 126508], "mapped", [1605]], [[126509, 126509], "mapped", [1606]], [[126510, 126510], "mapped", [1587]], [[126511, 126511], "mapped", [1593]], [[126512, 126512], "mapped", [1601]], [[126513, 126513], "mapped", [1589]], [[126514, 126514], "mapped", [1602]], [[126515, 126515], "disallowed"], [[126516, 126516], "mapped", [1588]], [[126517, 126517], "mapped", [1578]], [[126518, 126518], "mapped", [1579]], [[126519, 126519], "mapped", [1582]], [[126520, 126520], "disallowed"], [[126521, 126521], "mapped", [1590]], [[126522, 126522], "disallowed"], [[126523, 126523], "mapped", [1594]], [[126524, 126529], "disallowed"], [[126530, 126530], "mapped", [1580]], [[126531, 126534], "disallowed"], [[126535, 126535], "mapped", [1581]], [[126536, 126536], "disallowed"], [[126537, 126537], "mapped", [1610]], [[126538, 126538], "disallowed"], [[126539, 126539], "mapped", [1604]], [[126540, 126540], "disallowed"], [[126541, 126541], "mapped", [1606]], [[126542, 126542], "mapped", [1587]], [[126543, 126543], "mapped", [1593]], [[126544, 126544], "disallowed"], [[126545, 126545], "mapped", [1589]], [[126546, 126546], "mapped", [1602]], [[126547, 126547], "disallowed"], [[126548, 126548], "mapped", [1588]], [[126549, 126550], "disallowed"], [[126551, 126551], "mapped", [1582]], [[126552, 126552], "disallowed"], [[126553, 126553], "mapped", [1590]], [[126554, 126554], "disallowed"], [[126555, 126555], "mapped", [1594]], [[126556, 126556], "disallowed"], [[126557, 126557], "mapped", [1722]], [[126558, 126558], "disallowed"], [[126559, 126559], "mapped", [1647]], [[126560, 126560], "disallowed"], [[126561, 126561], "mapped", [1576]], [[126562, 126562], "mapped", [1580]], [[126563, 126563], "disallowed"], [[126564, 126564], "mapped", [1607]], [[126565, 126566], "disallowed"], [[126567, 126567], "mapped", [1581]], [[126568, 126568], "mapped", [1591]], [[126569, 126569], "mapped", [1610]], [[126570, 126570], "mapped", [1603]], [[126571, 126571], "disallowed"], [[126572, 126572], "mapped", [1605]], [[126573, 126573], "mapped", [1606]], [[126574, 126574], "mapped", [1587]], [[126575, 126575], "mapped", [1593]], [[126576, 126576], "mapped", [1601]], [[126577, 126577], "mapped", [1589]], [[126578, 126578], "mapped", [1602]], [[126579, 126579], "disallowed"], [[126580, 126580], "mapped", [1588]], [[126581, 126581], "mapped", [1578]], [[126582, 126582], "mapped", [1579]], [[126583, 126583], "mapped", [1582]], [[126584, 126584], "disallowed"], [[126585, 126585], "mapped", [1590]], [[126586, 126586], "mapped", [1592]], [[126587, 126587], "mapped", [1594]], [[126588, 126588], "mapped", [1646]], [[126589, 126589], "disallowed"], [[126590, 126590], "mapped", [1697]], [[126591, 126591], "disallowed"], [[126592, 126592], "mapped", [1575]], [[126593, 126593], "mapped", [1576]], [[126594, 126594], "mapped", [1580]], [[126595, 126595], "mapped", [1583]], [[126596, 126596], "mapped", [1607]], [[126597, 126597], "mapped", [1608]], [[126598, 126598], "mapped", [1586]], [[126599, 126599], "mapped", [1581]], [[126600, 126600], "mapped", [1591]], [[126601, 126601], "mapped", [1610]], [[126602, 126602], "disallowed"], [[126603, 126603], "mapped", [1604]], [[126604, 126604], "mapped", [1605]], [[126605, 126605], "mapped", [1606]], [[126606, 126606], "mapped", [1587]], [[126607, 126607], "mapped", [1593]], [[126608, 126608], "mapped", [1601]], [[126609, 126609], "mapped", [1589]], [[126610, 126610], "mapped", [1602]], [[126611, 126611], "mapped", [1585]], [[126612, 126612], "mapped", [1588]], [[126613, 126613], "mapped", [1578]], [[126614, 126614], "mapped", [1579]], [[126615, 126615], "mapped", [1582]], [[126616, 126616], "mapped", [1584]], [[126617, 126617], "mapped", [1590]], [[126618, 126618], "mapped", [1592]], [[126619, 126619], "mapped", [1594]], [[126620, 126624], "disallowed"], [[126625, 126625], "mapped", [1576]], [[126626, 126626], "mapped", [1580]], [[126627, 126627], "mapped", [1583]], [[126628, 126628], "disallowed"], [[126629, 126629], "mapped", [1608]], [[126630, 126630], "mapped", [1586]], [[126631, 126631], "mapped", [1581]], [[126632, 126632], "mapped", [1591]], [[126633, 126633], "mapped", [1610]], [[126634, 126634], "disallowed"], [[126635, 126635], "mapped", [1604]], [[126636, 126636], "mapped", [1605]], [[126637, 126637], "mapped", [1606]], [[126638, 126638], "mapped", [1587]], [[126639, 126639], "mapped", [1593]], [[126640, 126640], "mapped", [1601]], [[126641, 126641], "mapped", [1589]], [[126642, 126642], "mapped", [1602]], [[126643, 126643], "mapped", [1585]], [[126644, 126644], "mapped", [1588]], [[126645, 126645], "mapped", [1578]], [[126646, 126646], "mapped", [1579]], [[126647, 126647], "mapped", [1582]], [[126648, 126648], "mapped", [1584]], [[126649, 126649], "mapped", [1590]], [[126650, 126650], "mapped", [1592]], [[126651, 126651], "mapped", [1594]], [[126652, 126703], "disallowed"], [[126704, 126705], "valid", [], "NV8"], [[126706, 126975], "disallowed"], [[126976, 127019], "valid", [], "NV8"], [[127020, 127023], "disallowed"], [[127024, 127123], "valid", [], "NV8"], [[127124, 127135], "disallowed"], [[127136, 127150], "valid", [], "NV8"], [[127151, 127152], "disallowed"], [[127153, 127166], "valid", [], "NV8"], [[127167, 127167], "valid", [], "NV8"], [[127168, 127168], "disallowed"], [[127169, 127183], "valid", [], "NV8"], [[127184, 127184], "disallowed"], [[127185, 127199], "valid", [], "NV8"], [[127200, 127221], "valid", [], "NV8"], [[127222, 127231], "disallowed"], [[127232, 127232], "disallowed"], [[127233, 127233], "disallowed_STD3_mapped", [48, 44]], [[127234, 127234], "disallowed_STD3_mapped", [49, 44]], [[127235, 127235], "disallowed_STD3_mapped", [50, 44]], [[127236, 127236], "disallowed_STD3_mapped", [51, 44]], [[127237, 127237], "disallowed_STD3_mapped", [52, 44]], [[127238, 127238], "disallowed_STD3_mapped", [53, 44]], [[127239, 127239], "disallowed_STD3_mapped", [54, 44]], [[127240, 127240], "disallowed_STD3_mapped", [55, 44]], [[127241, 127241], "disallowed_STD3_mapped", [56, 44]], [[127242, 127242], "disallowed_STD3_mapped", [57, 44]], [[127243, 127244], "valid", [], "NV8"], [[127245, 127247], "disallowed"], [[127248, 127248], "disallowed_STD3_mapped", [40, 97, 41]], [[127249, 127249], "disallowed_STD3_mapped", [40, 98, 41]], [[127250, 127250], "disallowed_STD3_mapped", [40, 99, 41]], [[127251, 127251], "disallowed_STD3_mapped", [40, 100, 41]], [[127252, 127252], "disallowed_STD3_mapped", [40, 101, 41]], [[127253, 127253], "disallowed_STD3_mapped", [40, 102, 41]], [[127254, 127254], "disallowed_STD3_mapped", [40, 103, 41]], [[127255, 127255], "disallowed_STD3_mapped", [40, 104, 41]], [[127256, 127256], "disallowed_STD3_mapped", [40, 105, 41]], [[127257, 127257], "disallowed_STD3_mapped", [40, 106, 41]], [[127258, 127258], "disallowed_STD3_mapped", [40, 107, 41]], [[127259, 127259], "disallowed_STD3_mapped", [40, 108, 41]], [[127260, 127260], "disallowed_STD3_mapped", [40, 109, 41]], [[127261, 127261], "disallowed_STD3_mapped", [40, 110, 41]], [[127262, 127262], "disallowed_STD3_mapped", [40, 111, 41]], [[127263, 127263], "disallowed_STD3_mapped", [40, 112, 41]], [[127264, 127264], "disallowed_STD3_mapped", [40, 113, 41]], [[127265, 127265], "disallowed_STD3_mapped", [40, 114, 41]], [[127266, 127266], "disallowed_STD3_mapped", [40, 115, 41]], [[127267, 127267], "disallowed_STD3_mapped", [40, 116, 41]], [[127268, 127268], "disallowed_STD3_mapped", [40, 117, 41]], [[127269, 127269], "disallowed_STD3_mapped", [40, 118, 41]], [[127270, 127270], "disallowed_STD3_mapped", [40, 119, 41]], [[127271, 127271], "disallowed_STD3_mapped", [40, 120, 41]], [[127272, 127272], "disallowed_STD3_mapped", [40, 121, 41]], [[127273, 127273], "disallowed_STD3_mapped", [40, 122, 41]], [[127274, 127274], "mapped", [12308, 115, 12309]], [[127275, 127275], "mapped", [99]], [[127276, 127276], "mapped", [114]], [[127277, 127277], "mapped", [99, 100]], [[127278, 127278], "mapped", [119, 122]], [[127279, 127279], "disallowed"], [[127280, 127280], "mapped", [97]], [[127281, 127281], "mapped", [98]], [[127282, 127282], "mapped", [99]], [[127283, 127283], "mapped", [100]], [[127284, 127284], "mapped", [101]], [[127285, 127285], "mapped", [102]], [[127286, 127286], "mapped", [103]], [[127287, 127287], "mapped", [104]], [[127288, 127288], "mapped", [105]], [[127289, 127289], "mapped", [106]], [[127290, 127290], "mapped", [107]], [[127291, 127291], "mapped", [108]], [[127292, 127292], "mapped", [109]], [[127293, 127293], "mapped", [110]], [[127294, 127294], "mapped", [111]], [[127295, 127295], "mapped", [112]], [[127296, 127296], "mapped", [113]], [[127297, 127297], "mapped", [114]], [[127298, 127298], "mapped", [115]], [[127299, 127299], "mapped", [116]], [[127300, 127300], "mapped", [117]], [[127301, 127301], "mapped", [118]], [[127302, 127302], "mapped", [119]], [[127303, 127303], "mapped", [120]], [[127304, 127304], "mapped", [121]], [[127305, 127305], "mapped", [122]], [[127306, 127306], "mapped", [104, 118]], [[127307, 127307], "mapped", [109, 118]], [[127308, 127308], "mapped", [115, 100]], [[127309, 127309], "mapped", [115, 115]], [[127310, 127310], "mapped", [112, 112, 118]], [[127311, 127311], "mapped", [119, 99]], [[127312, 127318], "valid", [], "NV8"], [[127319, 127319], "valid", [], "NV8"], [[127320, 127326], "valid", [], "NV8"], [[127327, 127327], "valid", [], "NV8"], [[127328, 127337], "valid", [], "NV8"], [[127338, 127338], "mapped", [109, 99]], [[127339, 127339], "mapped", [109, 100]], [[127340, 127343], "disallowed"], [[127344, 127352], "valid", [], "NV8"], [[127353, 127353], "valid", [], "NV8"], [[127354, 127354], "valid", [], "NV8"], [[127355, 127356], "valid", [], "NV8"], [[127357, 127358], "valid", [], "NV8"], [[127359, 127359], "valid", [], "NV8"], [[127360, 127369], "valid", [], "NV8"], [[127370, 127373], "valid", [], "NV8"], [[127374, 127375], "valid", [], "NV8"], [[127376, 127376], "mapped", [100, 106]], [[127377, 127386], "valid", [], "NV8"], [[127387, 127461], "disallowed"], [[127462, 127487], "valid", [], "NV8"], [[127488, 127488], "mapped", [12411, 12363]], [[127489, 127489], "mapped", [12467, 12467]], [[127490, 127490], "mapped", [12469]], [[127491, 127503], "disallowed"], [[127504, 127504], "mapped", [25163]], [[127505, 127505], "mapped", [23383]], [[127506, 127506], "mapped", [21452]], [[127507, 127507], "mapped", [12487]], [[127508, 127508], "mapped", [20108]], [[127509, 127509], "mapped", [22810]], [[127510, 127510], "mapped", [35299]], [[127511, 127511], "mapped", [22825]], [[127512, 127512], "mapped", [20132]], [[127513, 127513], "mapped", [26144]], [[127514, 127514], "mapped", [28961]], [[127515, 127515], "mapped", [26009]], [[127516, 127516], "mapped", [21069]], [[127517, 127517], "mapped", [24460]], [[127518, 127518], "mapped", [20877]], [[127519, 127519], "mapped", [26032]], [[127520, 127520], "mapped", [21021]], [[127521, 127521], "mapped", [32066]], [[127522, 127522], "mapped", [29983]], [[127523, 127523], "mapped", [36009]], [[127524, 127524], "mapped", [22768]], [[127525, 127525], "mapped", [21561]], [[127526, 127526], "mapped", [28436]], [[127527, 127527], "mapped", [25237]], [[127528, 127528], "mapped", [25429]], [[127529, 127529], "mapped", [19968]], [[127530, 127530], "mapped", [19977]], [[127531, 127531], "mapped", [36938]], [[127532, 127532], "mapped", [24038]], [[127533, 127533], "mapped", [20013]], [[127534, 127534], "mapped", [21491]], [[127535, 127535], "mapped", [25351]], [[127536, 127536], "mapped", [36208]], [[127537, 127537], "mapped", [25171]], [[127538, 127538], "mapped", [31105]], [[127539, 127539], "mapped", [31354]], [[127540, 127540], "mapped", [21512]], [[127541, 127541], "mapped", [28288]], [[127542, 127542], "mapped", [26377]], [[127543, 127543], "mapped", [26376]], [[127544, 127544], "mapped", [30003]], [[127545, 127545], "mapped", [21106]], [[127546, 127546], "mapped", [21942]], [[127547, 127551], "disallowed"], [[127552, 127552], "mapped", [12308, 26412, 12309]], [[127553, 127553], "mapped", [12308, 19977, 12309]], [[127554, 127554], "mapped", [12308, 20108, 12309]], [[127555, 127555], "mapped", [12308, 23433, 12309]], [[127556, 127556], "mapped", [12308, 28857, 12309]], [[127557, 127557], "mapped", [12308, 25171, 12309]], [[127558, 127558], "mapped", [12308, 30423, 12309]], [[127559, 127559], "mapped", [12308, 21213, 12309]], [[127560, 127560], "mapped", [12308, 25943, 12309]], [[127561, 127567], "disallowed"], [[127568, 127568], "mapped", [24471]], [[127569, 127569], "mapped", [21487]], [[127570, 127743], "disallowed"], [[127744, 127776], "valid", [], "NV8"], [[127777, 127788], "valid", [], "NV8"], [[127789, 127791], "valid", [], "NV8"], [[127792, 127797], "valid", [], "NV8"], [[127798, 127798], "valid", [], "NV8"], [[127799, 127868], "valid", [], "NV8"], [[127869, 127869], "valid", [], "NV8"], [[127870, 127871], "valid", [], "NV8"], [[127872, 127891], "valid", [], "NV8"], [[127892, 127903], "valid", [], "NV8"], [[127904, 127940], "valid", [], "NV8"], [[127941, 127941], "valid", [], "NV8"], [[127942, 127946], "valid", [], "NV8"], [[127947, 127950], "valid", [], "NV8"], [[127951, 127955], "valid", [], "NV8"], [[127956, 127967], "valid", [], "NV8"], [[127968, 127984], "valid", [], "NV8"], [[127985, 127991], "valid", [], "NV8"], [[127992, 127999], "valid", [], "NV8"], [[128e3, 128062], "valid", [], "NV8"], [[128063, 128063], "valid", [], "NV8"], [[128064, 128064], "valid", [], "NV8"], [[128065, 128065], "valid", [], "NV8"], [[128066, 128247], "valid", [], "NV8"], [[128248, 128248], "valid", [], "NV8"], [[128249, 128252], "valid", [], "NV8"], [[128253, 128254], "valid", [], "NV8"], [[128255, 128255], "valid", [], "NV8"], [[128256, 128317], "valid", [], "NV8"], [[128318, 128319], "valid", [], "NV8"], [[128320, 128323], "valid", [], "NV8"], [[128324, 128330], "valid", [], "NV8"], [[128331, 128335], "valid", [], "NV8"], [[128336, 128359], "valid", [], "NV8"], [[128360, 128377], "valid", [], "NV8"], [[128378, 128378], "disallowed"], [[128379, 128419], "valid", [], "NV8"], [[128420, 128420], "disallowed"], [[128421, 128506], "valid", [], "NV8"], [[128507, 128511], "valid", [], "NV8"], [[128512, 128512], "valid", [], "NV8"], [[128513, 128528], "valid", [], "NV8"], [[128529, 128529], "valid", [], "NV8"], [[128530, 128532], "valid", [], "NV8"], [[128533, 128533], "valid", [], "NV8"], [[128534, 128534], "valid", [], "NV8"], [[128535, 128535], "valid", [], "NV8"], [[128536, 128536], "valid", [], "NV8"], [[128537, 128537], "valid", [], "NV8"], [[128538, 128538], "valid", [], "NV8"], [[128539, 128539], "valid", [], "NV8"], [[128540, 128542], "valid", [], "NV8"], [[128543, 128543], "valid", [], "NV8"], [[128544, 128549], "valid", [], "NV8"], [[128550, 128551], "valid", [], "NV8"], [[128552, 128555], "valid", [], "NV8"], [[128556, 128556], "valid", [], "NV8"], [[128557, 128557], "valid", [], "NV8"], [[128558, 128559], "valid", [], "NV8"], [[128560, 128563], "valid", [], "NV8"], [[128564, 128564], "valid", [], "NV8"], [[128565, 128576], "valid", [], "NV8"], [[128577, 128578], "valid", [], "NV8"], [[128579, 128580], "valid", [], "NV8"], [[128581, 128591], "valid", [], "NV8"], [[128592, 128639], "valid", [], "NV8"], [[128640, 128709], "valid", [], "NV8"], [[128710, 128719], "valid", [], "NV8"], [[128720, 128720], "valid", [], "NV8"], [[128721, 128735], "disallowed"], [[128736, 128748], "valid", [], "NV8"], [[128749, 128751], "disallowed"], [[128752, 128755], "valid", [], "NV8"], [[128756, 128767], "disallowed"], [[128768, 128883], "valid", [], "NV8"], [[128884, 128895], "disallowed"], [[128896, 128980], "valid", [], "NV8"], [[128981, 129023], "disallowed"], [[129024, 129035], "valid", [], "NV8"], [[129036, 129039], "disallowed"], [[129040, 129095], "valid", [], "NV8"], [[129096, 129103], "disallowed"], [[129104, 129113], "valid", [], "NV8"], [[129114, 129119], "disallowed"], [[129120, 129159], "valid", [], "NV8"], [[129160, 129167], "disallowed"], [[129168, 129197], "valid", [], "NV8"], [[129198, 129295], "disallowed"], [[129296, 129304], "valid", [], "NV8"], [[129305, 129407], "disallowed"], [[129408, 129412], "valid", [], "NV8"], [[129413, 129471], "disallowed"], [[129472, 129472], "valid", [], "NV8"], [[129473, 131069], "disallowed"], [[131070, 131071], "disallowed"], [[131072, 173782], "valid"], [[173783, 173823], "disallowed"], [[173824, 177972], "valid"], [[177973, 177983], "disallowed"], [[177984, 178205], "valid"], [[178206, 178207], "disallowed"], [[178208, 183969], "valid"], [[183970, 194559], "disallowed"], [[194560, 194560], "mapped", [20029]], [[194561, 194561], "mapped", [20024]], [[194562, 194562], "mapped", [20033]], [[194563, 194563], "mapped", [131362]], [[194564, 194564], "mapped", [20320]], [[194565, 194565], "mapped", [20398]], [[194566, 194566], "mapped", [20411]], [[194567, 194567], "mapped", [20482]], [[194568, 194568], "mapped", [20602]], [[194569, 194569], "mapped", [20633]], [[194570, 194570], "mapped", [20711]], [[194571, 194571], "mapped", [20687]], [[194572, 194572], "mapped", [13470]], [[194573, 194573], "mapped", [132666]], [[194574, 194574], "mapped", [20813]], [[194575, 194575], "mapped", [20820]], [[194576, 194576], "mapped", [20836]], [[194577, 194577], "mapped", [20855]], [[194578, 194578], "mapped", [132380]], [[194579, 194579], "mapped", [13497]], [[194580, 194580], "mapped", [20839]], [[194581, 194581], "mapped", [20877]], [[194582, 194582], "mapped", [132427]], [[194583, 194583], "mapped", [20887]], [[194584, 194584], "mapped", [20900]], [[194585, 194585], "mapped", [20172]], [[194586, 194586], "mapped", [20908]], [[194587, 194587], "mapped", [20917]], [[194588, 194588], "mapped", [168415]], [[194589, 194589], "mapped", [20981]], [[194590, 194590], "mapped", [20995]], [[194591, 194591], "mapped", [13535]], [[194592, 194592], "mapped", [21051]], [[194593, 194593], "mapped", [21062]], [[194594, 194594], "mapped", [21106]], [[194595, 194595], "mapped", [21111]], [[194596, 194596], "mapped", [13589]], [[194597, 194597], "mapped", [21191]], [[194598, 194598], "mapped", [21193]], [[194599, 194599], "mapped", [21220]], [[194600, 194600], "mapped", [21242]], [[194601, 194601], "mapped", [21253]], [[194602, 194602], "mapped", [21254]], [[194603, 194603], "mapped", [21271]], [[194604, 194604], "mapped", [21321]], [[194605, 194605], "mapped", [21329]], [[194606, 194606], "mapped", [21338]], [[194607, 194607], "mapped", [21363]], [[194608, 194608], "mapped", [21373]], [[194609, 194611], "mapped", [21375]], [[194612, 194612], "mapped", [133676]], [[194613, 194613], "mapped", [28784]], [[194614, 194614], "mapped", [21450]], [[194615, 194615], "mapped", [21471]], [[194616, 194616], "mapped", [133987]], [[194617, 194617], "mapped", [21483]], [[194618, 194618], "mapped", [21489]], [[194619, 194619], "mapped", [21510]], [[194620, 194620], "mapped", [21662]], [[194621, 194621], "mapped", [21560]], [[194622, 194622], "mapped", [21576]], [[194623, 194623], "mapped", [21608]], [[194624, 194624], "mapped", [21666]], [[194625, 194625], "mapped", [21750]], [[194626, 194626], "mapped", [21776]], [[194627, 194627], "mapped", [21843]], [[194628, 194628], "mapped", [21859]], [[194629, 194630], "mapped", [21892]], [[194631, 194631], "mapped", [21913]], [[194632, 194632], "mapped", [21931]], [[194633, 194633], "mapped", [21939]], [[194634, 194634], "mapped", [21954]], [[194635, 194635], "mapped", [22294]], [[194636, 194636], "mapped", [22022]], [[194637, 194637], "mapped", [22295]], [[194638, 194638], "mapped", [22097]], [[194639, 194639], "mapped", [22132]], [[194640, 194640], "mapped", [20999]], [[194641, 194641], "mapped", [22766]], [[194642, 194642], "mapped", [22478]], [[194643, 194643], "mapped", [22516]], [[194644, 194644], "mapped", [22541]], [[194645, 194645], "mapped", [22411]], [[194646, 194646], "mapped", [22578]], [[194647, 194647], "mapped", [22577]], [[194648, 194648], "mapped", [22700]], [[194649, 194649], "mapped", [136420]], [[194650, 194650], "mapped", [22770]], [[194651, 194651], "mapped", [22775]], [[194652, 194652], "mapped", [22790]], [[194653, 194653], "mapped", [22810]], [[194654, 194654], "mapped", [22818]], [[194655, 194655], "mapped", [22882]], [[194656, 194656], "mapped", [136872]], [[194657, 194657], "mapped", [136938]], [[194658, 194658], "mapped", [23020]], [[194659, 194659], "mapped", [23067]], [[194660, 194660], "mapped", [23079]], [[194661, 194661], "mapped", [23e3]], [[194662, 194662], "mapped", [23142]], [[194663, 194663], "mapped", [14062]], [[194664, 194664], "disallowed"], [[194665, 194665], "mapped", [23304]], [[194666, 194667], "mapped", [23358]], [[194668, 194668], "mapped", [137672]], [[194669, 194669], "mapped", [23491]], [[194670, 194670], "mapped", [23512]], [[194671, 194671], "mapped", [23527]], [[194672, 194672], "mapped", [23539]], [[194673, 194673], "mapped", [138008]], [[194674, 194674], "mapped", [23551]], [[194675, 194675], "mapped", [23558]], [[194676, 194676], "disallowed"], [[194677, 194677], "mapped", [23586]], [[194678, 194678], "mapped", [14209]], [[194679, 194679], "mapped", [23648]], [[194680, 194680], "mapped", [23662]], [[194681, 194681], "mapped", [23744]], [[194682, 194682], "mapped", [23693]], [[194683, 194683], "mapped", [138724]], [[194684, 194684], "mapped", [23875]], [[194685, 194685], "mapped", [138726]], [[194686, 194686], "mapped", [23918]], [[194687, 194687], "mapped", [23915]], [[194688, 194688], "mapped", [23932]], [[194689, 194689], "mapped", [24033]], [[194690, 194690], "mapped", [24034]], [[194691, 194691], "mapped", [14383]], [[194692, 194692], "mapped", [24061]], [[194693, 194693], "mapped", [24104]], [[194694, 194694], "mapped", [24125]], [[194695, 194695], "mapped", [24169]], [[194696, 194696], "mapped", [14434]], [[194697, 194697], "mapped", [139651]], [[194698, 194698], "mapped", [14460]], [[194699, 194699], "mapped", [24240]], [[194700, 194700], "mapped", [24243]], [[194701, 194701], "mapped", [24246]], [[194702, 194702], "mapped", [24266]], [[194703, 194703], "mapped", [172946]], [[194704, 194704], "mapped", [24318]], [[194705, 194706], "mapped", [140081]], [[194707, 194707], "mapped", [33281]], [[194708, 194709], "mapped", [24354]], [[194710, 194710], "mapped", [14535]], [[194711, 194711], "mapped", [144056]], [[194712, 194712], "mapped", [156122]], [[194713, 194713], "mapped", [24418]], [[194714, 194714], "mapped", [24427]], [[194715, 194715], "mapped", [14563]], [[194716, 194716], "mapped", [24474]], [[194717, 194717], "mapped", [24525]], [[194718, 194718], "mapped", [24535]], [[194719, 194719], "mapped", [24569]], [[194720, 194720], "mapped", [24705]], [[194721, 194721], "mapped", [14650]], [[194722, 194722], "mapped", [14620]], [[194723, 194723], "mapped", [24724]], [[194724, 194724], "mapped", [141012]], [[194725, 194725], "mapped", [24775]], [[194726, 194726], "mapped", [24904]], [[194727, 194727], "mapped", [24908]], [[194728, 194728], "mapped", [24910]], [[194729, 194729], "mapped", [24908]], [[194730, 194730], "mapped", [24954]], [[194731, 194731], "mapped", [24974]], [[194732, 194732], "mapped", [25010]], [[194733, 194733], "mapped", [24996]], [[194734, 194734], "mapped", [25007]], [[194735, 194735], "mapped", [25054]], [[194736, 194736], "mapped", [25074]], [[194737, 194737], "mapped", [25078]], [[194738, 194738], "mapped", [25104]], [[194739, 194739], "mapped", [25115]], [[194740, 194740], "mapped", [25181]], [[194741, 194741], "mapped", [25265]], [[194742, 194742], "mapped", [25300]], [[194743, 194743], "mapped", [25424]], [[194744, 194744], "mapped", [142092]], [[194745, 194745], "mapped", [25405]], [[194746, 194746], "mapped", [25340]], [[194747, 194747], "mapped", [25448]], [[194748, 194748], "mapped", [25475]], [[194749, 194749], "mapped", [25572]], [[194750, 194750], "mapped", [142321]], [[194751, 194751], "mapped", [25634]], [[194752, 194752], "mapped", [25541]], [[194753, 194753], "mapped", [25513]], [[194754, 194754], "mapped", [14894]], [[194755, 194755], "mapped", [25705]], [[194756, 194756], "mapped", [25726]], [[194757, 194757], "mapped", [25757]], [[194758, 194758], "mapped", [25719]], [[194759, 194759], "mapped", [14956]], [[194760, 194760], "mapped", [25935]], [[194761, 194761], "mapped", [25964]], [[194762, 194762], "mapped", [143370]], [[194763, 194763], "mapped", [26083]], [[194764, 194764], "mapped", [26360]], [[194765, 194765], "mapped", [26185]], [[194766, 194766], "mapped", [15129]], [[194767, 194767], "mapped", [26257]], [[194768, 194768], "mapped", [15112]], [[194769, 194769], "mapped", [15076]], [[194770, 194770], "mapped", [20882]], [[194771, 194771], "mapped", [20885]], [[194772, 194772], "mapped", [26368]], [[194773, 194773], "mapped", [26268]], [[194774, 194774], "mapped", [32941]], [[194775, 194775], "mapped", [17369]], [[194776, 194776], "mapped", [26391]], [[194777, 194777], "mapped", [26395]], [[194778, 194778], "mapped", [26401]], [[194779, 194779], "mapped", [26462]], [[194780, 194780], "mapped", [26451]], [[194781, 194781], "mapped", [144323]], [[194782, 194782], "mapped", [15177]], [[194783, 194783], "mapped", [26618]], [[194784, 194784], "mapped", [26501]], [[194785, 194785], "mapped", [26706]], [[194786, 194786], "mapped", [26757]], [[194787, 194787], "mapped", [144493]], [[194788, 194788], "mapped", [26766]], [[194789, 194789], "mapped", [26655]], [[194790, 194790], "mapped", [26900]], [[194791, 194791], "mapped", [15261]], [[194792, 194792], "mapped", [26946]], [[194793, 194793], "mapped", [27043]], [[194794, 194794], "mapped", [27114]], [[194795, 194795], "mapped", [27304]], [[194796, 194796], "mapped", [145059]], [[194797, 194797], "mapped", [27355]], [[194798, 194798], "mapped", [15384]], [[194799, 194799], "mapped", [27425]], [[194800, 194800], "mapped", [145575]], [[194801, 194801], "mapped", [27476]], [[194802, 194802], "mapped", [15438]], [[194803, 194803], "mapped", [27506]], [[194804, 194804], "mapped", [27551]], [[194805, 194805], "mapped", [27578]], [[194806, 194806], "mapped", [27579]], [[194807, 194807], "mapped", [146061]], [[194808, 194808], "mapped", [138507]], [[194809, 194809], "mapped", [146170]], [[194810, 194810], "mapped", [27726]], [[194811, 194811], "mapped", [146620]], [[194812, 194812], "mapped", [27839]], [[194813, 194813], "mapped", [27853]], [[194814, 194814], "mapped", [27751]], [[194815, 194815], "mapped", [27926]], [[194816, 194816], "mapped", [27966]], [[194817, 194817], "mapped", [28023]], [[194818, 194818], "mapped", [27969]], [[194819, 194819], "mapped", [28009]], [[194820, 194820], "mapped", [28024]], [[194821, 194821], "mapped", [28037]], [[194822, 194822], "mapped", [146718]], [[194823, 194823], "mapped", [27956]], [[194824, 194824], "mapped", [28207]], [[194825, 194825], "mapped", [28270]], [[194826, 194826], "mapped", [15667]], [[194827, 194827], "mapped", [28363]], [[194828, 194828], "mapped", [28359]], [[194829, 194829], "mapped", [147153]], [[194830, 194830], "mapped", [28153]], [[194831, 194831], "mapped", [28526]], [[194832, 194832], "mapped", [147294]], [[194833, 194833], "mapped", [147342]], [[194834, 194834], "mapped", [28614]], [[194835, 194835], "mapped", [28729]], [[194836, 194836], "mapped", [28702]], [[194837, 194837], "mapped", [28699]], [[194838, 194838], "mapped", [15766]], [[194839, 194839], "mapped", [28746]], [[194840, 194840], "mapped", [28797]], [[194841, 194841], "mapped", [28791]], [[194842, 194842], "mapped", [28845]], [[194843, 194843], "mapped", [132389]], [[194844, 194844], "mapped", [28997]], [[194845, 194845], "mapped", [148067]], [[194846, 194846], "mapped", [29084]], [[194847, 194847], "disallowed"], [[194848, 194848], "mapped", [29224]], [[194849, 194849], "mapped", [29237]], [[194850, 194850], "mapped", [29264]], [[194851, 194851], "mapped", [149e3]], [[194852, 194852], "mapped", [29312]], [[194853, 194853], "mapped", [29333]], [[194854, 194854], "mapped", [149301]], [[194855, 194855], "mapped", [149524]], [[194856, 194856], "mapped", [29562]], [[194857, 194857], "mapped", [29579]], [[194858, 194858], "mapped", [16044]], [[194859, 194859], "mapped", [29605]], [[194860, 194861], "mapped", [16056]], [[194862, 194862], "mapped", [29767]], [[194863, 194863], "mapped", [29788]], [[194864, 194864], "mapped", [29809]], [[194865, 194865], "mapped", [29829]], [[194866, 194866], "mapped", [29898]], [[194867, 194867], "mapped", [16155]], [[194868, 194868], "mapped", [29988]], [[194869, 194869], "mapped", [150582]], [[194870, 194870], "mapped", [30014]], [[194871, 194871], "mapped", [150674]], [[194872, 194872], "mapped", [30064]], [[194873, 194873], "mapped", [139679]], [[194874, 194874], "mapped", [30224]], [[194875, 194875], "mapped", [151457]], [[194876, 194876], "mapped", [151480]], [[194877, 194877], "mapped", [151620]], [[194878, 194878], "mapped", [16380]], [[194879, 194879], "mapped", [16392]], [[194880, 194880], "mapped", [30452]], [[194881, 194881], "mapped", [151795]], [[194882, 194882], "mapped", [151794]], [[194883, 194883], "mapped", [151833]], [[194884, 194884], "mapped", [151859]], [[194885, 194885], "mapped", [30494]], [[194886, 194887], "mapped", [30495]], [[194888, 194888], "mapped", [30538]], [[194889, 194889], "mapped", [16441]], [[194890, 194890], "mapped", [30603]], [[194891, 194891], "mapped", [16454]], [[194892, 194892], "mapped", [16534]], [[194893, 194893], "mapped", [152605]], [[194894, 194894], "mapped", [30798]], [[194895, 194895], "mapped", [30860]], [[194896, 194896], "mapped", [30924]], [[194897, 194897], "mapped", [16611]], [[194898, 194898], "mapped", [153126]], [[194899, 194899], "mapped", [31062]], [[194900, 194900], "mapped", [153242]], [[194901, 194901], "mapped", [153285]], [[194902, 194902], "mapped", [31119]], [[194903, 194903], "mapped", [31211]], [[194904, 194904], "mapped", [16687]], [[194905, 194905], "mapped", [31296]], [[194906, 194906], "mapped", [31306]], [[194907, 194907], "mapped", [31311]], [[194908, 194908], "mapped", [153980]], [[194909, 194910], "mapped", [154279]], [[194911, 194911], "disallowed"], [[194912, 194912], "mapped", [16898]], [[194913, 194913], "mapped", [154539]], [[194914, 194914], "mapped", [31686]], [[194915, 194915], "mapped", [31689]], [[194916, 194916], "mapped", [16935]], [[194917, 194917], "mapped", [154752]], [[194918, 194918], "mapped", [31954]], [[194919, 194919], "mapped", [17056]], [[194920, 194920], "mapped", [31976]], [[194921, 194921], "mapped", [31971]], [[194922, 194922], "mapped", [32e3]], [[194923, 194923], "mapped", [155526]], [[194924, 194924], "mapped", [32099]], [[194925, 194925], "mapped", [17153]], [[194926, 194926], "mapped", [32199]], [[194927, 194927], "mapped", [32258]], [[194928, 194928], "mapped", [32325]], [[194929, 194929], "mapped", [17204]], [[194930, 194930], "mapped", [156200]], [[194931, 194931], "mapped", [156231]], [[194932, 194932], "mapped", [17241]], [[194933, 194933], "mapped", [156377]], [[194934, 194934], "mapped", [32634]], [[194935, 194935], "mapped", [156478]], [[194936, 194936], "mapped", [32661]], [[194937, 194937], "mapped", [32762]], [[194938, 194938], "mapped", [32773]], [[194939, 194939], "mapped", [156890]], [[194940, 194940], "mapped", [156963]], [[194941, 194941], "mapped", [32864]], [[194942, 194942], "mapped", [157096]], [[194943, 194943], "mapped", [32880]], [[194944, 194944], "mapped", [144223]], [[194945, 194945], "mapped", [17365]], [[194946, 194946], "mapped", [32946]], [[194947, 194947], "mapped", [33027]], [[194948, 194948], "mapped", [17419]], [[194949, 194949], "mapped", [33086]], [[194950, 194950], "mapped", [23221]], [[194951, 194951], "mapped", [157607]], [[194952, 194952], "mapped", [157621]], [[194953, 194953], "mapped", [144275]], [[194954, 194954], "mapped", [144284]], [[194955, 194955], "mapped", [33281]], [[194956, 194956], "mapped", [33284]], [[194957, 194957], "mapped", [36766]], [[194958, 194958], "mapped", [17515]], [[194959, 194959], "mapped", [33425]], [[194960, 194960], "mapped", [33419]], [[194961, 194961], "mapped", [33437]], [[194962, 194962], "mapped", [21171]], [[194963, 194963], "mapped", [33457]], [[194964, 194964], "mapped", [33459]], [[194965, 194965], "mapped", [33469]], [[194966, 194966], "mapped", [33510]], [[194967, 194967], "mapped", [158524]], [[194968, 194968], "mapped", [33509]], [[194969, 194969], "mapped", [33565]], [[194970, 194970], "mapped", [33635]], [[194971, 194971], "mapped", [33709]], [[194972, 194972], "mapped", [33571]], [[194973, 194973], "mapped", [33725]], [[194974, 194974], "mapped", [33767]], [[194975, 194975], "mapped", [33879]], [[194976, 194976], "mapped", [33619]], [[194977, 194977], "mapped", [33738]], [[194978, 194978], "mapped", [33740]], [[194979, 194979], "mapped", [33756]], [[194980, 194980], "mapped", [158774]], [[194981, 194981], "mapped", [159083]], [[194982, 194982], "mapped", [158933]], [[194983, 194983], "mapped", [17707]], [[194984, 194984], "mapped", [34033]], [[194985, 194985], "mapped", [34035]], [[194986, 194986], "mapped", [34070]], [[194987, 194987], "mapped", [160714]], [[194988, 194988], "mapped", [34148]], [[194989, 194989], "mapped", [159532]], [[194990, 194990], "mapped", [17757]], [[194991, 194991], "mapped", [17761]], [[194992, 194992], "mapped", [159665]], [[194993, 194993], "mapped", [159954]], [[194994, 194994], "mapped", [17771]], [[194995, 194995], "mapped", [34384]], [[194996, 194996], "mapped", [34396]], [[194997, 194997], "mapped", [34407]], [[194998, 194998], "mapped", [34409]], [[194999, 194999], "mapped", [34473]], [[195e3, 195e3], "mapped", [34440]], [[195001, 195001], "mapped", [34574]], [[195002, 195002], "mapped", [34530]], [[195003, 195003], "mapped", [34681]], [[195004, 195004], "mapped", [34600]], [[195005, 195005], "mapped", [34667]], [[195006, 195006], "mapped", [34694]], [[195007, 195007], "disallowed"], [[195008, 195008], "mapped", [34785]], [[195009, 195009], "mapped", [34817]], [[195010, 195010], "mapped", [17913]], [[195011, 195011], "mapped", [34912]], [[195012, 195012], "mapped", [34915]], [[195013, 195013], "mapped", [161383]], [[195014, 195014], "mapped", [35031]], [[195015, 195015], "mapped", [35038]], [[195016, 195016], "mapped", [17973]], [[195017, 195017], "mapped", [35066]], [[195018, 195018], "mapped", [13499]], [[195019, 195019], "mapped", [161966]], [[195020, 195020], "mapped", [162150]], [[195021, 195021], "mapped", [18110]], [[195022, 195022], "mapped", [18119]], [[195023, 195023], "mapped", [35488]], [[195024, 195024], "mapped", [35565]], [[195025, 195025], "mapped", [35722]], [[195026, 195026], "mapped", [35925]], [[195027, 195027], "mapped", [162984]], [[195028, 195028], "mapped", [36011]], [[195029, 195029], "mapped", [36033]], [[195030, 195030], "mapped", [36123]], [[195031, 195031], "mapped", [36215]], [[195032, 195032], "mapped", [163631]], [[195033, 195033], "mapped", [133124]], [[195034, 195034], "mapped", [36299]], [[195035, 195035], "mapped", [36284]], [[195036, 195036], "mapped", [36336]], [[195037, 195037], "mapped", [133342]], [[195038, 195038], "mapped", [36564]], [[195039, 195039], "mapped", [36664]], [[195040, 195040], "mapped", [165330]], [[195041, 195041], "mapped", [165357]], [[195042, 195042], "mapped", [37012]], [[195043, 195043], "mapped", [37105]], [[195044, 195044], "mapped", [37137]], [[195045, 195045], "mapped", [165678]], [[195046, 195046], "mapped", [37147]], [[195047, 195047], "mapped", [37432]], [[195048, 195048], "mapped", [37591]], [[195049, 195049], "mapped", [37592]], [[195050, 195050], "mapped", [37500]], [[195051, 195051], "mapped", [37881]], [[195052, 195052], "mapped", [37909]], [[195053, 195053], "mapped", [166906]], [[195054, 195054], "mapped", [38283]], [[195055, 195055], "mapped", [18837]], [[195056, 195056], "mapped", [38327]], [[195057, 195057], "mapped", [167287]], [[195058, 195058], "mapped", [18918]], [[195059, 195059], "mapped", [38595]], [[195060, 195060], "mapped", [23986]], [[195061, 195061], "mapped", [38691]], [[195062, 195062], "mapped", [168261]], [[195063, 195063], "mapped", [168474]], [[195064, 195064], "mapped", [19054]], [[195065, 195065], "mapped", [19062]], [[195066, 195066], "mapped", [38880]], [[195067, 195067], "mapped", [168970]], [[195068, 195068], "mapped", [19122]], [[195069, 195069], "mapped", [169110]], [[195070, 195071], "mapped", [38923]], [[195072, 195072], "mapped", [38953]], [[195073, 195073], "mapped", [169398]], [[195074, 195074], "mapped", [39138]], [[195075, 195075], "mapped", [19251]], [[195076, 195076], "mapped", [39209]], [[195077, 195077], "mapped", [39335]], [[195078, 195078], "mapped", [39362]], [[195079, 195079], "mapped", [39422]], [[195080, 195080], "mapped", [19406]], [[195081, 195081], "mapped", [170800]], [[195082, 195082], "mapped", [39698]], [[195083, 195083], "mapped", [4e4]], [[195084, 195084], "mapped", [40189]], [[195085, 195085], "mapped", [19662]], [[195086, 195086], "mapped", [19693]], [[195087, 195087], "mapped", [40295]], [[195088, 195088], "mapped", [172238]], [[195089, 195089], "mapped", [19704]], [[195090, 195090], "mapped", [172293]], [[195091, 195091], "mapped", [172558]], [[195092, 195092], "mapped", [172689]], [[195093, 195093], "mapped", [40635]], [[195094, 195094], "mapped", [19798]], [[195095, 195095], "mapped", [40697]], [[195096, 195096], "mapped", [40702]], [[195097, 195097], "mapped", [40709]], [[195098, 195098], "mapped", [40719]], [[195099, 195099], "mapped", [40726]], [[195100, 195100], "mapped", [40763]], [[195101, 195101], "mapped", [173568]], [[195102, 196605], "disallowed"], [[196606, 196607], "disallowed"], [[196608, 262141], "disallowed"], [[262142, 262143], "disallowed"], [[262144, 327677], "disallowed"], [[327678, 327679], "disallowed"], [[327680, 393213], "disallowed"], [[393214, 393215], "disallowed"], [[393216, 458749], "disallowed"], [[458750, 458751], "disallowed"], [[458752, 524285], "disallowed"], [[524286, 524287], "disallowed"], [[524288, 589821], "disallowed"], [[589822, 589823], "disallowed"], [[589824, 655357], "disallowed"], [[655358, 655359], "disallowed"], [[655360, 720893], "disallowed"], [[720894, 720895], "disallowed"], [[720896, 786429], "disallowed"], [[786430, 786431], "disallowed"], [[786432, 851965], "disallowed"], [[851966, 851967], "disallowed"], [[851968, 917501], "disallowed"], [[917502, 917503], "disallowed"], [[917504, 917504], "disallowed"], [[917505, 917505], "disallowed"], [[917506, 917535], "disallowed"], [[917536, 917631], "disallowed"], [[917632, 917759], "disallowed"], [[917760, 917999], "ignored"], [[918e3, 983037], "disallowed"], [[983038, 983039], "disallowed"], [[983040, 1048573], "disallowed"], [[1048574, 1048575], "disallowed"], [[1048576, 1114109], "disallowed"], [[1114110, 1114111], "disallowed"]];
+ }
+});
+
+// node_modules/tr46/index.js
+var require_tr46 = __commonJS({
+ "node_modules/tr46/index.js"(exports2, module2) {
+ "use strict";
+ var punycode = require("punycode");
+ var mappingTable = require_mappingTable();
+ var PROCESSING_OPTIONS = {
+ TRANSITIONAL: 0,
+ NONTRANSITIONAL: 1
+ };
+ function normalize(str) {
+ return str.split("\0").map(function(s) {
+ return s.normalize("NFC");
+ }).join("\0");
+ }
+ function findStatus(val) {
+ var start = 0;
+ var end = mappingTable.length - 1;
+ while (start <= end) {
+ var mid = Math.floor((start + end) / 2);
+ var target = mappingTable[mid];
+ if (target[0][0] <= val && target[0][1] >= val) {
+ return target;
+ } else if (target[0][0] > val) {
+ end = mid - 1;
+ } else {
+ start = mid + 1;
+ }
+ }
+ return null;
+ }
+ var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
+ function countSymbols(string) {
+ return string.replace(regexAstralSymbols, "_").length;
+ }
+ function mapChars(domain_name, useSTD3, processing_option) {
+ var hasError = false;
+ var processed = "";
+ var len = countSymbols(domain_name);
+ for (var i = 0; i < len; ++i) {
+ var codePoint = domain_name.codePointAt(i);
+ var status = findStatus(codePoint);
+ switch (status[1]) {
+ case "disallowed":
+ hasError = true;
+ processed += String.fromCodePoint(codePoint);
+ break;
+ case "ignored":
+ break;
+ case "mapped":
+ processed += String.fromCodePoint.apply(String, status[2]);
+ break;
+ case "deviation":
+ if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) {
+ processed += String.fromCodePoint.apply(String, status[2]);
+ } else {
+ processed += String.fromCodePoint(codePoint);
+ }
+ break;
+ case "valid":
+ processed += String.fromCodePoint(codePoint);
+ break;
+ case "disallowed_STD3_mapped":
+ if (useSTD3) {
+ hasError = true;
+ processed += String.fromCodePoint(codePoint);
+ } else {
+ processed += String.fromCodePoint.apply(String, status[2]);
+ }
+ break;
+ case "disallowed_STD3_valid":
+ if (useSTD3) {
+ hasError = true;
+ }
+ processed += String.fromCodePoint(codePoint);
+ break;
+ }
+ }
+ return {
+ string: processed,
+ error: hasError
+ };
+ }
+ var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;
+ function validateLabel(label, processing_option) {
+ if (label.substr(0, 4) === "xn--") {
+ label = punycode.toUnicode(label);
+ processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL;
+ }
+ var error = false;
+ if (normalize(label) !== label || label[3] === "-" && label[4] === "-" || label[0] === "-" || label[label.length - 1] === "-" || label.indexOf(".") !== -1 || label.search(combiningMarksRegex) === 0) {
+ error = true;
+ }
+ var len = countSymbols(label);
+ for (var i = 0; i < len; ++i) {
+ var status = findStatus(label.codePointAt(i));
+ if (processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== "valid" || processing === PROCESSING_OPTIONS.NONTRANSITIONAL && status[1] !== "valid" && status[1] !== "deviation") {
+ error = true;
+ break;
+ }
+ }
+ return {
+ label,
+ error
+ };
+ }
+ function processing(domain_name, useSTD3, processing_option) {
+ var result = mapChars(domain_name, useSTD3, processing_option);
+ result.string = normalize(result.string);
+ var labels = result.string.split(".");
+ for (var i = 0; i < labels.length; ++i) {
+ try {
+ var validation = validateLabel(labels[i]);
+ labels[i] = validation.label;
+ result.error = result.error || validation.error;
+ } catch (e) {
+ result.error = true;
+ }
+ }
+ return {
+ string: labels.join("."),
+ error: result.error
+ };
+ }
+ module2.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) {
+ var result = processing(domain_name, useSTD3, processing_option);
+ var labels = result.string.split(".");
+ labels = labels.map(function(l) {
+ try {
+ return punycode.toASCII(l);
+ } catch (e) {
+ result.error = true;
+ return l;
+ }
+ });
+ if (verifyDnsLength) {
+ var total = labels.slice(0, labels.length - 1).join(".").length;
+ if (total.length > 253 || total.length === 0) {
+ result.error = true;
+ }
+ for (var i = 0; i < labels.length; ++i) {
+ if (labels.length > 63 || labels.length === 0) {
+ result.error = true;
+ break;
+ }
+ }
+ }
+ if (result.error)
+ return null;
+ return labels.join(".");
+ };
+ module2.exports.toUnicode = function(domain_name, useSTD3) {
+ var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL);
+ return {
+ domain: result.string,
+ error: result.error
+ };
+ };
+ module2.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS;
+ }
+});
+
+// node_modules/whatwg-url/lib/url-state-machine.js
+var require_url_state_machine = __commonJS({
+ "node_modules/whatwg-url/lib/url-state-machine.js"(exports2, module2) {
+ "use strict";
+ var punycode = require("punycode");
+ var tr46 = require_tr46();
+ var specialSchemes = {
+ ftp: 21,
+ file: null,
+ gopher: 70,
+ http: 80,
+ https: 443,
+ ws: 80,
+ wss: 443
+ };
+ var failure = Symbol("failure");
+ function countSymbols(str) {
+ return punycode.ucs2.decode(str).length;
+ }
+ function at(input, idx) {
+ const c = input[idx];
+ return isNaN(c) ? void 0 : String.fromCodePoint(c);
+ }
+ function isASCIIDigit(c) {
+ return c >= 48 && c <= 57;
+ }
+ function isASCIIAlpha(c) {
+ return c >= 65 && c <= 90 || c >= 97 && c <= 122;
+ }
+ function isASCIIAlphanumeric(c) {
+ return isASCIIAlpha(c) || isASCIIDigit(c);
+ }
+ function isASCIIHex(c) {
+ return isASCIIDigit(c) || c >= 65 && c <= 70 || c >= 97 && c <= 102;
+ }
+ function isSingleDot(buffer) {
+ return buffer === "." || buffer.toLowerCase() === "%2e";
+ }
+ function isDoubleDot(buffer) {
+ buffer = buffer.toLowerCase();
+ return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e";
+ }
+ function isWindowsDriveLetterCodePoints(cp1, cp2) {
+ return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124);
+ }
+ function isWindowsDriveLetterString(string) {
+ return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === ":" || string[1] === "|");
+ }
+ function isNormalizedWindowsDriveLetterString(string) {
+ return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === ":";
+ }
+ function containsForbiddenHostCodePoint(string) {
+ return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/) !== -1;
+ }
+ function containsForbiddenHostCodePointExcludingPercent(string) {
+ return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/) !== -1;
+ }
+ function isSpecialScheme(scheme) {
+ return specialSchemes[scheme] !== void 0;
+ }
+ function isSpecial(url) {
+ return isSpecialScheme(url.scheme);
+ }
+ function defaultPort(scheme) {
+ return specialSchemes[scheme];
+ }
+ function percentEncode(c) {
+ let hex = c.toString(16).toUpperCase();
+ if (hex.length === 1) {
+ hex = "0" + hex;
+ }
+ return "%" + hex;
+ }
+ function utf8PercentEncode(c) {
+ const buf = new Buffer(c);
+ let str = "";
+ for (let i = 0; i < buf.length; ++i) {
+ str += percentEncode(buf[i]);
+ }
+ return str;
+ }
+ function utf8PercentDecode(str) {
+ const input = new Buffer(str);
+ const output = [];
+ for (let i = 0; i < input.length; ++i) {
+ if (input[i] !== 37) {
+ output.push(input[i]);
+ } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) {
+ output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16));
+ i += 2;
+ } else {
+ output.push(input[i]);
+ }
+ }
+ return new Buffer(output).toString();
+ }
+ function isC0ControlPercentEncode(c) {
+ return c <= 31 || c > 126;
+ }
+ var extraPathPercentEncodeSet = /* @__PURE__ */ new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]);
+ function isPathPercentEncode(c) {
+ return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c);
+ }
+ var extraUserinfoPercentEncodeSet = /* @__PURE__ */ new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]);
+ function isUserinfoPercentEncode(c) {
+ return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c);
+ }
+ function percentEncodeChar(c, encodeSetPredicate) {
+ const cStr = String.fromCodePoint(c);
+ if (encodeSetPredicate(c)) {
+ return utf8PercentEncode(cStr);
+ }
+ return cStr;
+ }
+ function parseIPv4Number(input) {
+ let R = 10;
+ if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") {
+ input = input.substring(2);
+ R = 16;
+ } else if (input.length >= 2 && input.charAt(0) === "0") {
+ input = input.substring(1);
+ R = 8;
+ }
+ if (input === "") {
+ return 0;
+ }
+ const regex = R === 10 ? /[^0-9]/ : R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/;
+ if (regex.test(input)) {
+ return failure;
+ }
+ return parseInt(input, R);
+ }
+ function parseIPv4(input) {
+ const parts = input.split(".");
+ if (parts[parts.length - 1] === "") {
+ if (parts.length > 1) {
+ parts.pop();
+ }
+ }
+ if (parts.length > 4) {
+ return input;
+ }
+ const numbers = [];
+ for (const part of parts) {
+ if (part === "") {
+ return input;
+ }
+ const n = parseIPv4Number(part);
+ if (n === failure) {
+ return input;
+ }
+ numbers.push(n);
+ }
+ for (let i = 0; i < numbers.length - 1; ++i) {
+ if (numbers[i] > 255) {
+ return failure;
+ }
+ }
+ if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) {
+ return failure;
+ }
+ let ipv4 = numbers.pop();
+ let counter = 0;
+ for (const n of numbers) {
+ ipv4 += n * Math.pow(256, 3 - counter);
+ ++counter;
+ }
+ return ipv4;
+ }
+ function serializeIPv4(address) {
+ let output = "";
+ let n = address;
+ for (let i = 1; i <= 4; ++i) {
+ output = String(n % 256) + output;
+ if (i !== 4) {
+ output = "." + output;
+ }
+ n = Math.floor(n / 256);
+ }
+ return output;
+ }
+ function parseIPv6(input) {
+ const address = [0, 0, 0, 0, 0, 0, 0, 0];
+ let pieceIndex = 0;
+ let compress = null;
+ let pointer = 0;
+ input = punycode.ucs2.decode(input);
+ if (input[pointer] === 58) {
+ if (input[pointer + 1] !== 58) {
+ return failure;
+ }
+ pointer += 2;
+ ++pieceIndex;
+ compress = pieceIndex;
+ }
+ while (pointer < input.length) {
+ if (pieceIndex === 8) {
+ return failure;
+ }
+ if (input[pointer] === 58) {
+ if (compress !== null) {
+ return failure;
+ }
+ ++pointer;
+ ++pieceIndex;
+ compress = pieceIndex;
+ continue;
+ }
+ let value = 0;
+ let length = 0;
+ while (length < 4 && isASCIIHex(input[pointer])) {
+ value = value * 16 + parseInt(at(input, pointer), 16);
+ ++pointer;
+ ++length;
+ }
+ if (input[pointer] === 46) {
+ if (length === 0) {
+ return failure;
+ }
+ pointer -= length;
+ if (pieceIndex > 6) {
+ return failure;
+ }
+ let numbersSeen = 0;
+ while (input[pointer] !== void 0) {
+ let ipv4Piece = null;
+ if (numbersSeen > 0) {
+ if (input[pointer] === 46 && numbersSeen < 4) {
+ ++pointer;
+ } else {
+ return failure;
+ }
+ }
+ if (!isASCIIDigit(input[pointer])) {
+ return failure;
+ }
+ while (isASCIIDigit(input[pointer])) {
+ const number = parseInt(at(input, pointer));
+ if (ipv4Piece === null) {
+ ipv4Piece = number;
+ } else if (ipv4Piece === 0) {
+ return failure;
+ } else {
+ ipv4Piece = ipv4Piece * 10 + number;
+ }
+ if (ipv4Piece > 255) {
+ return failure;
+ }
+ ++pointer;
+ }
+ address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;
+ ++numbersSeen;
+ if (numbersSeen === 2 || numbersSeen === 4) {
+ ++pieceIndex;
+ }
+ }
+ if (numbersSeen !== 4) {
+ return failure;
+ }
+ break;
+ } else if (input[pointer] === 58) {
+ ++pointer;
+ if (input[pointer] === void 0) {
+ return failure;
+ }
+ } else if (input[pointer] !== void 0) {
+ return failure;
+ }
+ address[pieceIndex] = value;
+ ++pieceIndex;
+ }
+ if (compress !== null) {
+ let swaps = pieceIndex - compress;
+ pieceIndex = 7;
+ while (pieceIndex !== 0 && swaps > 0) {
+ const temp = address[compress + swaps - 1];
+ address[compress + swaps - 1] = address[pieceIndex];
+ address[pieceIndex] = temp;
+ --pieceIndex;
+ --swaps;
+ }
+ } else if (compress === null && pieceIndex !== 8) {
+ return failure;
+ }
+ return address;
+ }
+ function serializeIPv6(address) {
+ let output = "";
+ const seqResult = findLongestZeroSequence(address);
+ const compress = seqResult.idx;
+ let ignore0 = false;
+ for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) {
+ if (ignore0 && address[pieceIndex] === 0) {
+ continue;
+ } else if (ignore0) {
+ ignore0 = false;
+ }
+ if (compress === pieceIndex) {
+ const separator = pieceIndex === 0 ? "::" : ":";
+ output += separator;
+ ignore0 = true;
+ continue;
+ }
+ output += address[pieceIndex].toString(16);
+ if (pieceIndex !== 7) {
+ output += ":";
+ }
+ }
+ return output;
+ }
+ function parseHost(input, isSpecialArg) {
+ if (input[0] === "[") {
+ if (input[input.length - 1] !== "]") {
+ return failure;
+ }
+ return parseIPv6(input.substring(1, input.length - 1));
+ }
+ if (!isSpecialArg) {
+ return parseOpaqueHost(input);
+ }
+ const domain = utf8PercentDecode(input);
+ const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false);
+ if (asciiDomain === null) {
+ return failure;
+ }
+ if (containsForbiddenHostCodePoint(asciiDomain)) {
+ return failure;
+ }
+ const ipv4Host = parseIPv4(asciiDomain);
+ if (typeof ipv4Host === "number" || ipv4Host === failure) {
+ return ipv4Host;
+ }
+ return asciiDomain;
+ }
+ function parseOpaqueHost(input) {
+ if (containsForbiddenHostCodePointExcludingPercent(input)) {
+ return failure;
+ }
+ let output = "";
+ const decoded = punycode.ucs2.decode(input);
+ for (let i = 0; i < decoded.length; ++i) {
+ output += percentEncodeChar(decoded[i], isC0ControlPercentEncode);
+ }
+ return output;
+ }
+ function findLongestZeroSequence(arr) {
+ let maxIdx = null;
+ let maxLen = 1;
+ let currStart = null;
+ let currLen = 0;
+ for (let i = 0; i < arr.length; ++i) {
+ if (arr[i] !== 0) {
+ if (currLen > maxLen) {
+ maxIdx = currStart;
+ maxLen = currLen;
+ }
+ currStart = null;
+ currLen = 0;
+ } else {
+ if (currStart === null) {
+ currStart = i;
+ }
+ ++currLen;
+ }
+ }
+ if (currLen > maxLen) {
+ maxIdx = currStart;
+ maxLen = currLen;
+ }
+ return {
+ idx: maxIdx,
+ len: maxLen
+ };
+ }
+ function serializeHost(host) {
+ if (typeof host === "number") {
+ return serializeIPv4(host);
+ }
+ if (host instanceof Array) {
+ return "[" + serializeIPv6(host) + "]";
+ }
+ return host;
+ }
+ function trimControlChars(url) {
+ return url.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, "");
+ }
+ function trimTabAndNewline(url) {
+ return url.replace(/\u0009|\u000A|\u000D/g, "");
+ }
+ function shortenPath(url) {
+ const path = url.path;
+ if (path.length === 0) {
+ return;
+ }
+ if (url.scheme === "file" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) {
+ return;
+ }
+ path.pop();
+ }
+ function includesCredentials(url) {
+ return url.username !== "" || url.password !== "";
+ }
+ function cannotHaveAUsernamePasswordPort(url) {
+ return url.host === null || url.host === "" || url.cannotBeABaseURL || url.scheme === "file";
+ }
+ function isNormalizedWindowsDriveLetter(string) {
+ return /^[A-Za-z]:$/.test(string);
+ }
+ function URLStateMachine(input, base, encodingOverride, url, stateOverride) {
+ this.pointer = 0;
+ this.input = input;
+ this.base = base || null;
+ this.encodingOverride = encodingOverride || "utf-8";
+ this.stateOverride = stateOverride;
+ this.url = url;
+ this.failure = false;
+ this.parseError = false;
+ if (!this.url) {
+ this.url = {
+ scheme: "",
+ username: "",
+ password: "",
+ host: null,
+ port: null,
+ path: [],
+ query: null,
+ fragment: null,
+ cannotBeABaseURL: false
+ };
+ const res2 = trimControlChars(this.input);
+ if (res2 !== this.input) {
+ this.parseError = true;
+ }
+ this.input = res2;
+ }
+ const res = trimTabAndNewline(this.input);
+ if (res !== this.input) {
+ this.parseError = true;
+ }
+ this.input = res;
+ this.state = stateOverride || "scheme start";
+ this.buffer = "";
+ this.atFlag = false;
+ this.arrFlag = false;
+ this.passwordTokenSeenFlag = false;
+ this.input = punycode.ucs2.decode(this.input);
+ for (; this.pointer <= this.input.length; ++this.pointer) {
+ const c = this.input[this.pointer];
+ const cStr = isNaN(c) ? void 0 : String.fromCodePoint(c);
+ const ret = this["parse " + this.state](c, cStr);
+ if (!ret) {
+ break;
+ } else if (ret === failure) {
+ this.failure = true;
+ break;
+ }
+ }
+ }
+ URLStateMachine.prototype["parse scheme start"] = function parseSchemeStart(c, cStr) {
+ if (isASCIIAlpha(c)) {
+ this.buffer += cStr.toLowerCase();
+ this.state = "scheme";
+ } else if (!this.stateOverride) {
+ this.state = "no scheme";
+ --this.pointer;
+ } else {
+ this.parseError = true;
+ return failure;
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse scheme"] = function parseScheme(c, cStr) {
+ if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) {
+ this.buffer += cStr.toLowerCase();
+ } else if (c === 58) {
+ if (this.stateOverride) {
+ if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) {
+ return false;
+ }
+ if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) {
+ return false;
+ }
+ if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === "file") {
+ return false;
+ }
+ if (this.url.scheme === "file" && (this.url.host === "" || this.url.host === null)) {
+ return false;
+ }
+ }
+ this.url.scheme = this.buffer;
+ this.buffer = "";
+ if (this.stateOverride) {
+ return false;
+ }
+ if (this.url.scheme === "file") {
+ if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) {
+ this.parseError = true;
+ }
+ this.state = "file";
+ } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) {
+ this.state = "special relative or authority";
+ } else if (isSpecial(this.url)) {
+ this.state = "special authority slashes";
+ } else if (this.input[this.pointer + 1] === 47) {
+ this.state = "path or authority";
+ ++this.pointer;
+ } else {
+ this.url.cannotBeABaseURL = true;
+ this.url.path.push("");
+ this.state = "cannot-be-a-base-URL path";
+ }
+ } else if (!this.stateOverride) {
+ this.buffer = "";
+ this.state = "no scheme";
+ this.pointer = -1;
+ } else {
+ this.parseError = true;
+ return failure;
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c) {
+ if (this.base === null || this.base.cannotBeABaseURL && c !== 35) {
+ return failure;
+ } else if (this.base.cannotBeABaseURL && c === 35) {
+ this.url.scheme = this.base.scheme;
+ this.url.path = this.base.path.slice();
+ this.url.query = this.base.query;
+ this.url.fragment = "";
+ this.url.cannotBeABaseURL = true;
+ this.state = "fragment";
+ } else if (this.base.scheme === "file") {
+ this.state = "file";
+ --this.pointer;
+ } else {
+ this.state = "relative";
+ --this.pointer;
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse special relative or authority"] = function parseSpecialRelativeOrAuthority(c) {
+ if (c === 47 && this.input[this.pointer + 1] === 47) {
+ this.state = "special authority ignore slashes";
+ ++this.pointer;
+ } else {
+ this.parseError = true;
+ this.state = "relative";
+ --this.pointer;
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse path or authority"] = function parsePathOrAuthority(c) {
+ if (c === 47) {
+ this.state = "authority";
+ } else {
+ this.state = "path";
+ --this.pointer;
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse relative"] = function parseRelative(c) {
+ this.url.scheme = this.base.scheme;
+ if (isNaN(c)) {
+ this.url.username = this.base.username;
+ this.url.password = this.base.password;
+ this.url.host = this.base.host;
+ this.url.port = this.base.port;
+ this.url.path = this.base.path.slice();
+ this.url.query = this.base.query;
+ } else if (c === 47) {
+ this.state = "relative slash";
+ } else if (c === 63) {
+ this.url.username = this.base.username;
+ this.url.password = this.base.password;
+ this.url.host = this.base.host;
+ this.url.port = this.base.port;
+ this.url.path = this.base.path.slice();
+ this.url.query = "";
+ this.state = "query";
+ } else if (c === 35) {
+ this.url.username = this.base.username;
+ this.url.password = this.base.password;
+ this.url.host = this.base.host;
+ this.url.port = this.base.port;
+ this.url.path = this.base.path.slice();
+ this.url.query = this.base.query;
+ this.url.fragment = "";
+ this.state = "fragment";
+ } else if (isSpecial(this.url) && c === 92) {
+ this.parseError = true;
+ this.state = "relative slash";
+ } else {
+ this.url.username = this.base.username;
+ this.url.password = this.base.password;
+ this.url.host = this.base.host;
+ this.url.port = this.base.port;
+ this.url.path = this.base.path.slice(0, this.base.path.length - 1);
+ this.state = "path";
+ --this.pointer;
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse relative slash"] = function parseRelativeSlash(c) {
+ if (isSpecial(this.url) && (c === 47 || c === 92)) {
+ if (c === 92) {
+ this.parseError = true;
+ }
+ this.state = "special authority ignore slashes";
+ } else if (c === 47) {
+ this.state = "authority";
+ } else {
+ this.url.username = this.base.username;
+ this.url.password = this.base.password;
+ this.url.host = this.base.host;
+ this.url.port = this.base.port;
+ this.state = "path";
+ --this.pointer;
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse special authority slashes"] = function parseSpecialAuthoritySlashes(c) {
+ if (c === 47 && this.input[this.pointer + 1] === 47) {
+ this.state = "special authority ignore slashes";
+ ++this.pointer;
+ } else {
+ this.parseError = true;
+ this.state = "special authority ignore slashes";
+ --this.pointer;
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse special authority ignore slashes"] = function parseSpecialAuthorityIgnoreSlashes(c) {
+ if (c !== 47 && c !== 92) {
+ this.state = "authority";
+ --this.pointer;
+ } else {
+ this.parseError = true;
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse authority"] = function parseAuthority(c, cStr) {
+ if (c === 64) {
+ this.parseError = true;
+ if (this.atFlag) {
+ this.buffer = "%40" + this.buffer;
+ }
+ this.atFlag = true;
+ const len = countSymbols(this.buffer);
+ for (let pointer = 0; pointer < len; ++pointer) {
+ const codePoint = this.buffer.codePointAt(pointer);
+ if (codePoint === 58 && !this.passwordTokenSeenFlag) {
+ this.passwordTokenSeenFlag = true;
+ continue;
+ }
+ const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode);
+ if (this.passwordTokenSeenFlag) {
+ this.url.password += encodedCodePoints;
+ } else {
+ this.url.username += encodedCodePoints;
+ }
+ }
+ this.buffer = "";
+ } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || isSpecial(this.url) && c === 92) {
+ if (this.atFlag && this.buffer === "") {
+ this.parseError = true;
+ return failure;
+ }
+ this.pointer -= countSymbols(this.buffer) + 1;
+ this.buffer = "";
+ this.state = "host";
+ } else {
+ this.buffer += cStr;
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse hostname"] = URLStateMachine.prototype["parse host"] = function parseHostName(c, cStr) {
+ if (this.stateOverride && this.url.scheme === "file") {
+ --this.pointer;
+ this.state = "file host";
+ } else if (c === 58 && !this.arrFlag) {
+ if (this.buffer === "") {
+ this.parseError = true;
+ return failure;
+ }
+ const host = parseHost(this.buffer, isSpecial(this.url));
+ if (host === failure) {
+ return failure;
+ }
+ this.url.host = host;
+ this.buffer = "";
+ this.state = "port";
+ if (this.stateOverride === "hostname") {
+ return false;
+ }
+ } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || isSpecial(this.url) && c === 92) {
+ --this.pointer;
+ if (isSpecial(this.url) && this.buffer === "") {
+ this.parseError = true;
+ return failure;
+ } else if (this.stateOverride && this.buffer === "" && (includesCredentials(this.url) || this.url.port !== null)) {
+ this.parseError = true;
+ return false;
+ }
+ const host = parseHost(this.buffer, isSpecial(this.url));
+ if (host === failure) {
+ return failure;
+ }
+ this.url.host = host;
+ this.buffer = "";
+ this.state = "path start";
+ if (this.stateOverride) {
+ return false;
+ }
+ } else {
+ if (c === 91) {
+ this.arrFlag = true;
+ } else if (c === 93) {
+ this.arrFlag = false;
+ }
+ this.buffer += cStr;
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse port"] = function parsePort(c, cStr) {
+ if (isASCIIDigit(c)) {
+ this.buffer += cStr;
+ } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || isSpecial(this.url) && c === 92 || this.stateOverride) {
+ if (this.buffer !== "") {
+ const port2 = parseInt(this.buffer);
+ if (port2 > Math.pow(2, 16) - 1) {
+ this.parseError = true;
+ return failure;
+ }
+ this.url.port = port2 === defaultPort(this.url.scheme) ? null : port2;
+ this.buffer = "";
+ }
+ if (this.stateOverride) {
+ return false;
+ }
+ this.state = "path start";
+ --this.pointer;
+ } else {
+ this.parseError = true;
+ return failure;
+ }
+ return true;
+ };
+ var fileOtherwiseCodePoints = /* @__PURE__ */ new Set([47, 92, 63, 35]);
+ URLStateMachine.prototype["parse file"] = function parseFile(c) {
+ this.url.scheme = "file";
+ if (c === 47 || c === 92) {
+ if (c === 92) {
+ this.parseError = true;
+ }
+ this.state = "file slash";
+ } else if (this.base !== null && this.base.scheme === "file") {
+ if (isNaN(c)) {
+ this.url.host = this.base.host;
+ this.url.path = this.base.path.slice();
+ this.url.query = this.base.query;
+ } else if (c === 63) {
+ this.url.host = this.base.host;
+ this.url.path = this.base.path.slice();
+ this.url.query = "";
+ this.state = "query";
+ } else if (c === 35) {
+ this.url.host = this.base.host;
+ this.url.path = this.base.path.slice();
+ this.url.query = this.base.query;
+ this.url.fragment = "";
+ this.state = "fragment";
+ } else {
+ if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points
+ !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) || this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points
+ !fileOtherwiseCodePoints.has(this.input[this.pointer + 2])) {
+ this.url.host = this.base.host;
+ this.url.path = this.base.path.slice();
+ shortenPath(this.url);
+ } else {
+ this.parseError = true;
+ }
+ this.state = "path";
+ --this.pointer;
+ }
+ } else {
+ this.state = "path";
+ --this.pointer;
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse file slash"] = function parseFileSlash(c) {
+ if (c === 47 || c === 92) {
+ if (c === 92) {
+ this.parseError = true;
+ }
+ this.state = "file host";
+ } else {
+ if (this.base !== null && this.base.scheme === "file") {
+ if (isNormalizedWindowsDriveLetterString(this.base.path[0])) {
+ this.url.path.push(this.base.path[0]);
+ } else {
+ this.url.host = this.base.host;
+ }
+ }
+ this.state = "path";
+ --this.pointer;
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse file host"] = function parseFileHost(c, cStr) {
+ if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) {
+ --this.pointer;
+ if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) {
+ this.parseError = true;
+ this.state = "path";
+ } else if (this.buffer === "") {
+ this.url.host = "";
+ if (this.stateOverride) {
+ return false;
+ }
+ this.state = "path start";
+ } else {
+ let host = parseHost(this.buffer, isSpecial(this.url));
+ if (host === failure) {
+ return failure;
+ }
+ if (host === "localhost") {
+ host = "";
+ }
+ this.url.host = host;
+ if (this.stateOverride) {
+ return false;
+ }
+ this.buffer = "";
+ this.state = "path start";
+ }
+ } else {
+ this.buffer += cStr;
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse path start"] = function parsePathStart(c) {
+ if (isSpecial(this.url)) {
+ if (c === 92) {
+ this.parseError = true;
+ }
+ this.state = "path";
+ if (c !== 47 && c !== 92) {
+ --this.pointer;
+ }
+ } else if (!this.stateOverride && c === 63) {
+ this.url.query = "";
+ this.state = "query";
+ } else if (!this.stateOverride && c === 35) {
+ this.url.fragment = "";
+ this.state = "fragment";
+ } else if (c !== void 0) {
+ this.state = "path";
+ if (c !== 47) {
+ --this.pointer;
+ }
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse path"] = function parsePath(c) {
+ if (isNaN(c) || c === 47 || isSpecial(this.url) && c === 92 || !this.stateOverride && (c === 63 || c === 35)) {
+ if (isSpecial(this.url) && c === 92) {
+ this.parseError = true;
+ }
+ if (isDoubleDot(this.buffer)) {
+ shortenPath(this.url);
+ if (c !== 47 && !(isSpecial(this.url) && c === 92)) {
+ this.url.path.push("");
+ }
+ } else if (isSingleDot(this.buffer) && c !== 47 && !(isSpecial(this.url) && c === 92)) {
+ this.url.path.push("");
+ } else if (!isSingleDot(this.buffer)) {
+ if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) {
+ if (this.url.host !== "" && this.url.host !== null) {
+ this.parseError = true;
+ this.url.host = "";
+ }
+ this.buffer = this.buffer[0] + ":";
+ }
+ this.url.path.push(this.buffer);
+ }
+ this.buffer = "";
+ if (this.url.scheme === "file" && (c === void 0 || c === 63 || c === 35)) {
+ while (this.url.path.length > 1 && this.url.path[0] === "") {
+ this.parseError = true;
+ this.url.path.shift();
+ }
+ }
+ if (c === 63) {
+ this.url.query = "";
+ this.state = "query";
+ }
+ if (c === 35) {
+ this.url.fragment = "";
+ this.state = "fragment";
+ }
+ } else {
+ if (c === 37 && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) {
+ this.parseError = true;
+ }
+ this.buffer += percentEncodeChar(c, isPathPercentEncode);
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse cannot-be-a-base-URL path"] = function parseCannotBeABaseURLPath(c) {
+ if (c === 63) {
+ this.url.query = "";
+ this.state = "query";
+ } else if (c === 35) {
+ this.url.fragment = "";
+ this.state = "fragment";
+ } else {
+ if (!isNaN(c) && c !== 37) {
+ this.parseError = true;
+ }
+ if (c === 37 && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) {
+ this.parseError = true;
+ }
+ if (!isNaN(c)) {
+ this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode);
+ }
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse query"] = function parseQuery(c, cStr) {
+ if (isNaN(c) || !this.stateOverride && c === 35) {
+ if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") {
+ this.encodingOverride = "utf-8";
+ }
+ const buffer = new Buffer(this.buffer);
+ for (let i = 0; i < buffer.length; ++i) {
+ if (buffer[i] < 33 || buffer[i] > 126 || buffer[i] === 34 || buffer[i] === 35 || buffer[i] === 60 || buffer[i] === 62) {
+ this.url.query += percentEncode(buffer[i]);
+ } else {
+ this.url.query += String.fromCodePoint(buffer[i]);
+ }
+ }
+ this.buffer = "";
+ if (c === 35) {
+ this.url.fragment = "";
+ this.state = "fragment";
+ }
+ } else {
+ if (c === 37 && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) {
+ this.parseError = true;
+ }
+ this.buffer += cStr;
+ }
+ return true;
+ };
+ URLStateMachine.prototype["parse fragment"] = function parseFragment(c) {
+ if (isNaN(c)) {
+ } else if (c === 0) {
+ this.parseError = true;
+ } else {
+ if (c === 37 && (!isASCIIHex(this.input[this.pointer + 1]) || !isASCIIHex(this.input[this.pointer + 2]))) {
+ this.parseError = true;
+ }
+ this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode);
+ }
+ return true;
+ };
+ function serializeURL(url, excludeFragment) {
+ let output = url.scheme + ":";
+ if (url.host !== null) {
+ output += "//";
+ if (url.username !== "" || url.password !== "") {
+ output += url.username;
+ if (url.password !== "") {
+ output += ":" + url.password;
+ }
+ output += "@";
+ }
+ output += serializeHost(url.host);
+ if (url.port !== null) {
+ output += ":" + url.port;
+ }
+ } else if (url.host === null && url.scheme === "file") {
+ output += "//";
+ }
+ if (url.cannotBeABaseURL) {
+ output += url.path[0];
+ } else {
+ for (const string of url.path) {
+ output += "/" + string;
+ }
+ }
+ if (url.query !== null) {
+ output += "?" + url.query;
+ }
+ if (!excludeFragment && url.fragment !== null) {
+ output += "#" + url.fragment;
+ }
+ return output;
+ }
+ function serializeOrigin(tuple) {
+ let result = tuple.scheme + "://";
+ result += serializeHost(tuple.host);
+ if (tuple.port !== null) {
+ result += ":" + tuple.port;
+ }
+ return result;
+ }
+ module2.exports.serializeURL = serializeURL;
+ module2.exports.serializeURLOrigin = function(url) {
+ switch (url.scheme) {
+ case "blob":
+ try {
+ return module2.exports.serializeURLOrigin(module2.exports.parseURL(url.path[0]));
+ } catch (e) {
+ return "null";
+ }
+ case "ftp":
+ case "gopher":
+ case "http":
+ case "https":
+ case "ws":
+ case "wss":
+ return serializeOrigin({
+ scheme: url.scheme,
+ host: url.host,
+ port: url.port
+ });
+ case "file":
+ return "file://";
+ default:
+ return "null";
+ }
+ };
+ module2.exports.basicURLParse = function(input, options) {
+ if (options === void 0) {
+ options = {};
+ }
+ const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride);
+ if (usm.failure) {
+ return "failure";
+ }
+ return usm.url;
+ };
+ module2.exports.setTheUsername = function(url, username) {
+ url.username = "";
+ const decoded = punycode.ucs2.decode(username);
+ for (let i = 0; i < decoded.length; ++i) {
+ url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode);
+ }
+ };
+ module2.exports.setThePassword = function(url, password) {
+ url.password = "";
+ const decoded = punycode.ucs2.decode(password);
+ for (let i = 0; i < decoded.length; ++i) {
+ url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode);
+ }
+ };
+ module2.exports.serializeHost = serializeHost;
+ module2.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort;
+ module2.exports.serializeInteger = function(integer) {
+ return String(integer);
+ };
+ module2.exports.parseURL = function(input, options) {
+ if (options === void 0) {
+ options = {};
+ }
+ return module2.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride });
+ };
+ }
+});
+
+// node_modules/whatwg-url/lib/URL-impl.js
+var require_URL_impl = __commonJS({
+ "node_modules/whatwg-url/lib/URL-impl.js"(exports2) {
+ "use strict";
+ var usm = require_url_state_machine();
+ exports2.implementation = class URLImpl {
+ constructor(constructorArgs) {
+ const url = constructorArgs[0];
+ const base = constructorArgs[1];
+ let parsedBase = null;
+ if (base !== void 0) {
+ parsedBase = usm.basicURLParse(base);
+ if (parsedBase === "failure") {
+ throw new TypeError("Invalid base URL");
+ }
+ }
+ const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase });
+ if (parsedURL === "failure") {
+ throw new TypeError("Invalid URL");
+ }
+ this._url = parsedURL;
+ }
+ get href() {
+ return usm.serializeURL(this._url);
+ }
+ set href(v) {
+ const parsedURL = usm.basicURLParse(v);
+ if (parsedURL === "failure") {
+ throw new TypeError("Invalid URL");
+ }
+ this._url = parsedURL;
+ }
+ get origin() {
+ return usm.serializeURLOrigin(this._url);
+ }
+ get protocol() {
+ return this._url.scheme + ":";
+ }
+ set protocol(v) {
+ usm.basicURLParse(v + ":", { url: this._url, stateOverride: "scheme start" });
+ }
+ get username() {
+ return this._url.username;
+ }
+ set username(v) {
+ if (usm.cannotHaveAUsernamePasswordPort(this._url)) {
+ return;
+ }
+ usm.setTheUsername(this._url, v);
+ }
+ get password() {
+ return this._url.password;
+ }
+ set password(v) {
+ if (usm.cannotHaveAUsernamePasswordPort(this._url)) {
+ return;
+ }
+ usm.setThePassword(this._url, v);
+ }
+ get host() {
+ const url = this._url;
+ if (url.host === null) {
+ return "";
+ }
+ if (url.port === null) {
+ return usm.serializeHost(url.host);
+ }
+ return usm.serializeHost(url.host) + ":" + usm.serializeInteger(url.port);
+ }
+ set host(v) {
+ if (this._url.cannotBeABaseURL) {
+ return;
+ }
+ usm.basicURLParse(v, { url: this._url, stateOverride: "host" });
+ }
+ get hostname() {
+ if (this._url.host === null) {
+ return "";
+ }
+ return usm.serializeHost(this._url.host);
+ }
+ set hostname(v) {
+ if (this._url.cannotBeABaseURL) {
+ return;
+ }
+ usm.basicURLParse(v, { url: this._url, stateOverride: "hostname" });
+ }
+ get port() {
+ if (this._url.port === null) {
+ return "";
+ }
+ return usm.serializeInteger(this._url.port);
+ }
+ set port(v) {
+ if (usm.cannotHaveAUsernamePasswordPort(this._url)) {
+ return;
+ }
+ if (v === "") {
+ this._url.port = null;
+ } else {
+ usm.basicURLParse(v, { url: this._url, stateOverride: "port" });
+ }
+ }
+ get pathname() {
+ if (this._url.cannotBeABaseURL) {
+ return this._url.path[0];
+ }
+ if (this._url.path.length === 0) {
+ return "";
+ }
+ return "/" + this._url.path.join("/");
+ }
+ set pathname(v) {
+ if (this._url.cannotBeABaseURL) {
+ return;
+ }
+ this._url.path = [];
+ usm.basicURLParse(v, { url: this._url, stateOverride: "path start" });
+ }
+ get search() {
+ if (this._url.query === null || this._url.query === "") {
+ return "";
+ }
+ return "?" + this._url.query;
+ }
+ set search(v) {
+ const url = this._url;
+ if (v === "") {
+ url.query = null;
+ return;
+ }
+ const input = v[0] === "?" ? v.substring(1) : v;
+ url.query = "";
+ usm.basicURLParse(input, { url, stateOverride: "query" });
+ }
+ get hash() {
+ if (this._url.fragment === null || this._url.fragment === "") {
+ return "";
+ }
+ return "#" + this._url.fragment;
+ }
+ set hash(v) {
+ if (v === "") {
+ this._url.fragment = null;
+ return;
+ }
+ const input = v[0] === "#" ? v.substring(1) : v;
+ this._url.fragment = "";
+ usm.basicURLParse(input, { url: this._url, stateOverride: "fragment" });
+ }
+ toJSON() {
+ return this.href;
+ }
+ };
+ }
+});
+
+// node_modules/whatwg-url/lib/URL.js
+var require_URL = __commonJS({
+ "node_modules/whatwg-url/lib/URL.js"(exports2, module2) {
+ "use strict";
+ var conversions = require_lib3();
+ var utils = require_utils3();
+ var Impl = require_URL_impl();
+ var impl = utils.implSymbol;
+ function URL2(url) {
+ if (!this || this[impl] || !(this instanceof URL2)) {
+ throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");
+ }
+ if (arguments.length < 1) {
+ throw new TypeError("Failed to construct 'URL': 1 argument required, but only " + arguments.length + " present.");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length && i < 2; ++i) {
+ args[i] = arguments[i];
+ }
+ args[0] = conversions["USVString"](args[0]);
+ if (args[1] !== void 0) {
+ args[1] = conversions["USVString"](args[1]);
+ }
+ module2.exports.setup(this, args);
+ }
+ URL2.prototype.toJSON = function toJSON() {
+ if (!this || !module2.exports.is(this)) {
+ throw new TypeError("Illegal invocation");
+ }
+ const args = [];
+ for (let i = 0; i < arguments.length && i < 0; ++i) {
+ args[i] = arguments[i];
+ }
+ return this[impl].toJSON.apply(this[impl], args);
+ };
+ Object.defineProperty(URL2.prototype, "href", {
+ get() {
+ return this[impl].href;
+ },
+ set(V) {
+ V = conversions["USVString"](V);
+ this[impl].href = V;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ URL2.prototype.toString = function() {
+ if (!this || !module2.exports.is(this)) {
+ throw new TypeError("Illegal invocation");
+ }
+ return this.href;
+ };
+ Object.defineProperty(URL2.prototype, "origin", {
+ get() {
+ return this[impl].origin;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(URL2.prototype, "protocol", {
+ get() {
+ return this[impl].protocol;
+ },
+ set(V) {
+ V = conversions["USVString"](V);
+ this[impl].protocol = V;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(URL2.prototype, "username", {
+ get() {
+ return this[impl].username;
+ },
+ set(V) {
+ V = conversions["USVString"](V);
+ this[impl].username = V;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(URL2.prototype, "password", {
+ get() {
+ return this[impl].password;
+ },
+ set(V) {
+ V = conversions["USVString"](V);
+ this[impl].password = V;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(URL2.prototype, "host", {
+ get() {
+ return this[impl].host;
+ },
+ set(V) {
+ V = conversions["USVString"](V);
+ this[impl].host = V;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(URL2.prototype, "hostname", {
+ get() {
+ return this[impl].hostname;
+ },
+ set(V) {
+ V = conversions["USVString"](V);
+ this[impl].hostname = V;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(URL2.prototype, "port", {
+ get() {
+ return this[impl].port;
+ },
+ set(V) {
+ V = conversions["USVString"](V);
+ this[impl].port = V;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(URL2.prototype, "pathname", {
+ get() {
+ return this[impl].pathname;
+ },
+ set(V) {
+ V = conversions["USVString"](V);
+ this[impl].pathname = V;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(URL2.prototype, "search", {
+ get() {
+ return this[impl].search;
+ },
+ set(V) {
+ V = conversions["USVString"](V);
+ this[impl].search = V;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(URL2.prototype, "hash", {
+ get() {
+ return this[impl].hash;
+ },
+ set(V) {
+ V = conversions["USVString"](V);
+ this[impl].hash = V;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ module2.exports = {
+ is(obj) {
+ return !!obj && obj[impl] instanceof Impl.implementation;
+ },
+ create(constructorArgs, privateData) {
+ let obj = Object.create(URL2.prototype);
+ this.setup(obj, constructorArgs, privateData);
+ return obj;
+ },
+ setup(obj, constructorArgs, privateData) {
+ if (!privateData)
+ privateData = {};
+ privateData.wrapper = obj;
+ obj[impl] = new Impl.implementation(constructorArgs, privateData);
+ obj[impl][utils.wrapperSymbol] = obj;
+ },
+ interface: URL2,
+ expose: {
+ Window: { URL: URL2 },
+ Worker: { URL: URL2 }
+ }
+ };
+ }
+});
+
+// node_modules/whatwg-url/lib/public-api.js
+var require_public_api = __commonJS({
+ "node_modules/whatwg-url/lib/public-api.js"(exports2) {
+ "use strict";
+ exports2.URL = require_URL().interface;
+ exports2.serializeURL = require_url_state_machine().serializeURL;
+ exports2.serializeURLOrigin = require_url_state_machine().serializeURLOrigin;
+ exports2.basicURLParse = require_url_state_machine().basicURLParse;
+ exports2.setTheUsername = require_url_state_machine().setTheUsername;
+ exports2.setThePassword = require_url_state_machine().setThePassword;
+ exports2.serializeHost = require_url_state_machine().serializeHost;
+ exports2.serializeInteger = require_url_state_machine().serializeInteger;
+ exports2.parseURL = require_url_state_machine().parseURL;
+ }
+});
+
+// node_modules/node-fetch/lib/index.js
+var require_lib4 = __commonJS({
+ "node_modules/node-fetch/lib/index.js"(exports2, module2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ function _interopDefault(ex) {
+ return ex && typeof ex === "object" && "default" in ex ? ex["default"] : ex;
+ }
+ var Stream = _interopDefault(require("stream"));
+ var http = _interopDefault(require("http"));
+ var Url = _interopDefault(require("url"));
+ var whatwgUrl = _interopDefault(require_public_api());
+ var https = _interopDefault(require("https"));
+ var zlib = _interopDefault(require("zlib"));
+ var Readable = Stream.Readable;
+ var BUFFER = Symbol("buffer");
+ var TYPE = Symbol("type");
+ var Blob2 = class _Blob {
+ constructor() {
+ this[TYPE] = "";
+ const blobParts = arguments[0];
+ const options = arguments[1];
+ const buffers = [];
+ let size = 0;
+ if (blobParts) {
+ const a = blobParts;
+ const length = Number(a.length);
+ for (let i = 0; i < length; i++) {
+ const element = a[i];
+ let buffer;
+ if (element instanceof Buffer) {
+ buffer = element;
+ } else if (ArrayBuffer.isView(element)) {
+ buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength);
+ } else if (element instanceof ArrayBuffer) {
+ buffer = Buffer.from(element);
+ } else if (element instanceof _Blob) {
+ buffer = element[BUFFER];
+ } else {
+ buffer = Buffer.from(typeof element === "string" ? element : String(element));
+ }
+ size += buffer.length;
+ buffers.push(buffer);
+ }
+ }
+ this[BUFFER] = Buffer.concat(buffers);
+ let type = options && options.type !== void 0 && String(options.type).toLowerCase();
+ if (type && !/[^\u0020-\u007E]/.test(type)) {
+ this[TYPE] = type;
+ }
+ }
+ get size() {
+ return this[BUFFER].length;
+ }
+ get type() {
+ return this[TYPE];
+ }
+ text() {
+ return Promise.resolve(this[BUFFER].toString());
+ }
+ arrayBuffer() {
+ const buf = this[BUFFER];
+ const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
+ return Promise.resolve(ab);
+ }
+ stream() {
+ const readable = new Readable();
+ readable._read = function() {
+ };
+ readable.push(this[BUFFER]);
+ readable.push(null);
+ return readable;
+ }
+ toString() {
+ return "[object Blob]";
+ }
+ slice() {
+ const size = this.size;
+ const start = arguments[0];
+ const end = arguments[1];
+ let relativeStart, relativeEnd;
+ if (start === void 0) {
+ relativeStart = 0;
+ } else if (start < 0) {
+ relativeStart = Math.max(size + start, 0);
+ } else {
+ relativeStart = Math.min(start, size);
+ }
+ if (end === void 0) {
+ relativeEnd = size;
+ } else if (end < 0) {
+ relativeEnd = Math.max(size + end, 0);
+ } else {
+ relativeEnd = Math.min(end, size);
+ }
+ const span = Math.max(relativeEnd - relativeStart, 0);
+ const buffer = this[BUFFER];
+ const slicedBuffer = buffer.slice(relativeStart, relativeStart + span);
+ const blob = new _Blob([], { type: arguments[2] });
+ blob[BUFFER] = slicedBuffer;
+ return blob;
+ }
+ };
+ Object.defineProperties(Blob2.prototype, {
+ size: { enumerable: true },
+ type: { enumerable: true },
+ slice: { enumerable: true }
+ });
+ Object.defineProperty(Blob2.prototype, Symbol.toStringTag, {
+ value: "Blob",
+ writable: false,
+ enumerable: false,
+ configurable: true
+ });
+ function FetchError(message, type, systemError) {
+ Error.call(this, message);
+ this.message = message;
+ this.type = type;
+ if (systemError) {
+ this.code = this.errno = systemError.code;
+ }
+ Error.captureStackTrace(this, this.constructor);
+ }
+ FetchError.prototype = Object.create(Error.prototype);
+ FetchError.prototype.constructor = FetchError;
+ FetchError.prototype.name = "FetchError";
+ var convert;
+ try {
+ convert = require("encoding").convert;
+ } catch (e) {
+ }
+ var INTERNALS = Symbol("Body internals");
+ var PassThrough = Stream.PassThrough;
+ function Body(body) {
+ var _this = this;
+ var _ref = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref$size = _ref.size;
+ let size = _ref$size === void 0 ? 0 : _ref$size;
+ var _ref$timeout = _ref.timeout;
+ let timeout = _ref$timeout === void 0 ? 0 : _ref$timeout;
+ if (body == null) {
+ body = null;
+ } else if (isURLSearchParams(body)) {
+ body = Buffer.from(body.toString());
+ } else if (isBlob(body))
+ ;
+ else if (Buffer.isBuffer(body))
+ ;
+ else if (Object.prototype.toString.call(body) === "[object ArrayBuffer]") {
+ body = Buffer.from(body);
+ } else if (ArrayBuffer.isView(body)) {
+ body = Buffer.from(body.buffer, body.byteOffset, body.byteLength);
+ } else if (body instanceof Stream)
+ ;
+ else {
+ body = Buffer.from(String(body));
+ }
+ this[INTERNALS] = {
+ body,
+ disturbed: false,
+ error: null
+ };
+ this.size = size;
+ this.timeout = timeout;
+ if (body instanceof Stream) {
+ body.on("error", function(err) {
+ const error = err.name === "AbortError" ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, "system", err);
+ _this[INTERNALS].error = error;
+ });
+ }
+ }
+ Body.prototype = {
+ get body() {
+ return this[INTERNALS].body;
+ },
+ get bodyUsed() {
+ return this[INTERNALS].disturbed;
+ },
+ /**
+ * Decode response as ArrayBuffer
+ *
+ * @return Promise
+ */
+ arrayBuffer() {
+ return consumeBody.call(this).then(function(buf) {
+ return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
+ });
+ },
+ /**
+ * Return raw response as Blob
+ *
+ * @return Promise
+ */
+ blob() {
+ let ct = this.headers && this.headers.get("content-type") || "";
+ return consumeBody.call(this).then(function(buf) {
+ return Object.assign(
+ // Prevent copying
+ new Blob2([], {
+ type: ct.toLowerCase()
+ }),
+ {
+ [BUFFER]: buf
+ }
+ );
+ });
+ },
+ /**
+ * Decode response as json
+ *
+ * @return Promise
+ */
+ json() {
+ var _this2 = this;
+ return consumeBody.call(this).then(function(buffer) {
+ try {
+ return JSON.parse(buffer.toString());
+ } catch (err) {
+ return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, "invalid-json"));
+ }
+ });
+ },
+ /**
+ * Decode response as text
+ *
+ * @return Promise
+ */
+ text() {
+ return consumeBody.call(this).then(function(buffer) {
+ return buffer.toString();
+ });
+ },
+ /**
+ * Decode response as buffer (non-spec api)
+ *
+ * @return Promise
+ */
+ buffer() {
+ return consumeBody.call(this);
+ },
+ /**
+ * Decode response as text, while automatically detecting the encoding and
+ * trying to decode to UTF-8 (non-spec api)
+ *
+ * @return Promise
+ */
+ textConverted() {
+ var _this3 = this;
+ return consumeBody.call(this).then(function(buffer) {
+ return convertBody(buffer, _this3.headers);
+ });
+ }
+ };
+ Object.defineProperties(Body.prototype, {
+ body: { enumerable: true },
+ bodyUsed: { enumerable: true },
+ arrayBuffer: { enumerable: true },
+ blob: { enumerable: true },
+ json: { enumerable: true },
+ text: { enumerable: true }
+ });
+ Body.mixIn = function(proto) {
+ for (const name of Object.getOwnPropertyNames(Body.prototype)) {
+ if (!(name in proto)) {
+ const desc = Object.getOwnPropertyDescriptor(Body.prototype, name);
+ Object.defineProperty(proto, name, desc);
+ }
+ }
+ };
+ function consumeBody() {
+ var _this4 = this;
+ if (this[INTERNALS].disturbed) {
+ return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`));
+ }
+ this[INTERNALS].disturbed = true;
+ if (this[INTERNALS].error) {
+ return Body.Promise.reject(this[INTERNALS].error);
+ }
+ let body = this.body;
+ if (body === null) {
+ return Body.Promise.resolve(Buffer.alloc(0));
+ }
+ if (isBlob(body)) {
+ body = body.stream();
+ }
+ if (Buffer.isBuffer(body)) {
+ return Body.Promise.resolve(body);
+ }
+ if (!(body instanceof Stream)) {
+ return Body.Promise.resolve(Buffer.alloc(0));
+ }
+ let accum = [];
+ let accumBytes = 0;
+ let abort = false;
+ return new Body.Promise(function(resolve, reject) {
+ let resTimeout;
+ if (_this4.timeout) {
+ resTimeout = setTimeout(function() {
+ abort = true;
+ reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, "body-timeout"));
+ }, _this4.timeout);
+ }
+ body.on("error", function(err) {
+ if (err.name === "AbortError") {
+ abort = true;
+ reject(err);
+ } else {
+ reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, "system", err));
+ }
+ });
+ body.on("data", function(chunk) {
+ if (abort || chunk === null) {
+ return;
+ }
+ if (_this4.size && accumBytes + chunk.length > _this4.size) {
+ abort = true;
+ reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, "max-size"));
+ return;
+ }
+ accumBytes += chunk.length;
+ accum.push(chunk);
+ });
+ body.on("end", function() {
+ if (abort) {
+ return;
+ }
+ clearTimeout(resTimeout);
+ try {
+ resolve(Buffer.concat(accum, accumBytes));
+ } catch (err) {
+ reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, "system", err));
+ }
+ });
+ });
+ }
+ function convertBody(buffer, headers) {
+ if (typeof convert !== "function") {
+ throw new Error("The package `encoding` must be installed to use the textConverted() function");
+ }
+ const ct = headers.get("content-type");
+ let charset = "utf-8";
+ let res, str;
+ if (ct) {
+ res = /charset=([^;]*)/i.exec(ct);
+ }
+ str = buffer.slice(0, 1024).toString();
+ if (!res && str) {
+ res = / 0 && arguments[0] !== void 0 ? arguments[0] : void 0;
+ this[MAP] = /* @__PURE__ */ Object.create(null);
+ if (init instanceof _Headers) {
+ const rawHeaders = init.raw();
+ const headerNames = Object.keys(rawHeaders);
+ for (const headerName of headerNames) {
+ for (const value of rawHeaders[headerName]) {
+ this.append(headerName, value);
+ }
+ }
+ return;
+ }
+ if (init == null)
+ ;
+ else if (typeof init === "object") {
+ const method = init[Symbol.iterator];
+ if (method != null) {
+ if (typeof method !== "function") {
+ throw new TypeError("Header pairs must be iterable");
+ }
+ const pairs = [];
+ for (const pair of init) {
+ if (typeof pair !== "object" || typeof pair[Symbol.iterator] !== "function") {
+ throw new TypeError("Each header pair must be iterable");
+ }
+ pairs.push(Array.from(pair));
+ }
+ for (const pair of pairs) {
+ if (pair.length !== 2) {
+ throw new TypeError("Each header pair must be a name/value tuple");
+ }
+ this.append(pair[0], pair[1]);
+ }
+ } else {
+ for (const key of Object.keys(init)) {
+ const value = init[key];
+ this.append(key, value);
+ }
+ }
+ } else {
+ throw new TypeError("Provided initializer must be an object");
+ }
+ }
+ /**
+ * Return combined header value given name
+ *
+ * @param String name Header name
+ * @return Mixed
+ */
+ get(name) {
+ name = `${name}`;
+ validateName(name);
+ const key = find(this[MAP], name);
+ if (key === void 0) {
+ return null;
+ }
+ return this[MAP][key].join(", ");
+ }
+ /**
+ * Iterate over all headers
+ *
+ * @param Function callback Executed for each item with parameters (value, name, thisArg)
+ * @param Boolean thisArg `this` context for callback function
+ * @return Void
+ */
+ forEach(callback) {
+ let thisArg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : void 0;
+ let pairs = getHeaders(this);
+ let i = 0;
+ while (i < pairs.length) {
+ var _pairs$i = pairs[i];
+ const name = _pairs$i[0], value = _pairs$i[1];
+ callback.call(thisArg, value, name, this);
+ pairs = getHeaders(this);
+ i++;
+ }
+ }
+ /**
+ * Overwrite header values given name
+ *
+ * @param String name Header name
+ * @param String value Header value
+ * @return Void
+ */
+ set(name, value) {
+ name = `${name}`;
+ value = `${value}`;
+ validateName(name);
+ validateValue(value);
+ const key = find(this[MAP], name);
+ this[MAP][key !== void 0 ? key : name] = [value];
+ }
+ /**
+ * Append a value onto existing header
+ *
+ * @param String name Header name
+ * @param String value Header value
+ * @return Void
+ */
+ append(name, value) {
+ name = `${name}`;
+ value = `${value}`;
+ validateName(name);
+ validateValue(value);
+ const key = find(this[MAP], name);
+ if (key !== void 0) {
+ this[MAP][key].push(value);
+ } else {
+ this[MAP][name] = [value];
+ }
+ }
+ /**
+ * Check for header name existence
+ *
+ * @param String name Header name
+ * @return Boolean
+ */
+ has(name) {
+ name = `${name}`;
+ validateName(name);
+ return find(this[MAP], name) !== void 0;
+ }
+ /**
+ * Delete all header values given name
+ *
+ * @param String name Header name
+ * @return Void
+ */
+ delete(name) {
+ name = `${name}`;
+ validateName(name);
+ const key = find(this[MAP], name);
+ if (key !== void 0) {
+ delete this[MAP][key];
+ }
+ }
+ /**
+ * Return raw headers (non-spec api)
+ *
+ * @return Object
+ */
+ raw() {
+ return this[MAP];
+ }
+ /**
+ * Get an iterator on keys.
+ *
+ * @return Iterator
+ */
+ keys() {
+ return createHeadersIterator(this, "key");
+ }
+ /**
+ * Get an iterator on values.
+ *
+ * @return Iterator
+ */
+ values() {
+ return createHeadersIterator(this, "value");
+ }
+ /**
+ * Get an iterator on entries.
+ *
+ * This is the default iterator of the Headers object.
+ *
+ * @return Iterator
+ */
+ [Symbol.iterator]() {
+ return createHeadersIterator(this, "key+value");
+ }
+ };
+ Headers.prototype.entries = Headers.prototype[Symbol.iterator];
+ Object.defineProperty(Headers.prototype, Symbol.toStringTag, {
+ value: "Headers",
+ writable: false,
+ enumerable: false,
+ configurable: true
+ });
+ Object.defineProperties(Headers.prototype, {
+ get: { enumerable: true },
+ forEach: { enumerable: true },
+ set: { enumerable: true },
+ append: { enumerable: true },
+ has: { enumerable: true },
+ delete: { enumerable: true },
+ keys: { enumerable: true },
+ values: { enumerable: true },
+ entries: { enumerable: true }
+ });
+ function getHeaders(headers) {
+ let kind = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "key+value";
+ const keys = Object.keys(headers[MAP]).sort();
+ return keys.map(kind === "key" ? function(k) {
+ return k.toLowerCase();
+ } : kind === "value" ? function(k) {
+ return headers[MAP][k].join(", ");
+ } : function(k) {
+ return [k.toLowerCase(), headers[MAP][k].join(", ")];
+ });
+ }
+ var INTERNAL = Symbol("internal");
+ function createHeadersIterator(target, kind) {
+ const iterator = Object.create(HeadersIteratorPrototype);
+ iterator[INTERNAL] = {
+ target,
+ kind,
+ index: 0
+ };
+ return iterator;
+ }
+ var HeadersIteratorPrototype = Object.setPrototypeOf({
+ next() {
+ if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {
+ throw new TypeError("Value of `this` is not a HeadersIterator");
+ }
+ var _INTERNAL = this[INTERNAL];
+ const target = _INTERNAL.target, kind = _INTERNAL.kind, index = _INTERNAL.index;
+ const values = getHeaders(target, kind);
+ const len = values.length;
+ if (index >= len) {
+ return {
+ value: void 0,
+ done: true
+ };
+ }
+ this[INTERNAL].index = index + 1;
+ return {
+ value: values[index],
+ done: false
+ };
+ }
+ }, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));
+ Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {
+ value: "HeadersIterator",
+ writable: false,
+ enumerable: false,
+ configurable: true
+ });
+ function exportNodeCompatibleHeaders(headers) {
+ const obj = Object.assign({ __proto__: null }, headers[MAP]);
+ const hostHeaderKey = find(headers[MAP], "Host");
+ if (hostHeaderKey !== void 0) {
+ obj[hostHeaderKey] = obj[hostHeaderKey][0];
+ }
+ return obj;
+ }
+ function createHeadersLenient(obj) {
+ const headers = new Headers();
+ for (const name of Object.keys(obj)) {
+ if (invalidTokenRegex.test(name)) {
+ continue;
+ }
+ if (Array.isArray(obj[name])) {
+ for (const val of obj[name]) {
+ if (invalidHeaderCharRegex.test(val)) {
+ continue;
+ }
+ if (headers[MAP][name] === void 0) {
+ headers[MAP][name] = [val];
+ } else {
+ headers[MAP][name].push(val);
+ }
+ }
+ } else if (!invalidHeaderCharRegex.test(obj[name])) {
+ headers[MAP][name] = [obj[name]];
+ }
+ }
+ return headers;
+ }
+ var INTERNALS$1 = Symbol("Response internals");
+ var STATUS_CODES = http.STATUS_CODES;
+ var Response2 = class _Response {
+ constructor() {
+ let body = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null;
+ let opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
+ Body.call(this, body, opts);
+ const status = opts.status || 200;
+ const headers = new Headers(opts.headers);
+ if (body != null && !headers.has("Content-Type")) {
+ const contentType = extractContentType(body);
+ if (contentType) {
+ headers.append("Content-Type", contentType);
+ }
+ }
+ this[INTERNALS$1] = {
+ url: opts.url,
+ status,
+ statusText: opts.statusText || STATUS_CODES[status],
+ headers,
+ counter: opts.counter
+ };
+ }
+ get url() {
+ return this[INTERNALS$1].url || "";
+ }
+ get status() {
+ return this[INTERNALS$1].status;
+ }
+ /**
+ * Convenience property representing if the request ended normally
+ */
+ get ok() {
+ return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300;
+ }
+ get redirected() {
+ return this[INTERNALS$1].counter > 0;
+ }
+ get statusText() {
+ return this[INTERNALS$1].statusText;
+ }
+ get headers() {
+ return this[INTERNALS$1].headers;
+ }
+ /**
+ * Clone this response
+ *
+ * @return Response
+ */
+ clone() {
+ return new _Response(clone(this), {
+ url: this.url,
+ status: this.status,
+ statusText: this.statusText,
+ headers: this.headers,
+ ok: this.ok,
+ redirected: this.redirected
+ });
+ }
+ };
+ Body.mixIn(Response2.prototype);
+ Object.defineProperties(Response2.prototype, {
+ url: { enumerable: true },
+ status: { enumerable: true },
+ ok: { enumerable: true },
+ redirected: { enumerable: true },
+ statusText: { enumerable: true },
+ headers: { enumerable: true },
+ clone: { enumerable: true }
+ });
+ Object.defineProperty(Response2.prototype, Symbol.toStringTag, {
+ value: "Response",
+ writable: false,
+ enumerable: false,
+ configurable: true
+ });
+ var INTERNALS$2 = Symbol("Request internals");
+ var URL2 = Url.URL || whatwgUrl.URL;
+ var parse_url = Url.parse;
+ var format_url = Url.format;
+ function parseURL(urlStr) {
+ if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) {
+ urlStr = new URL2(urlStr).toString();
+ }
+ return parse_url(urlStr);
+ }
+ var streamDestructionSupported = "destroy" in Stream.Readable.prototype;
+ function isRequest(input) {
+ return typeof input === "object" && typeof input[INTERNALS$2] === "object";
+ }
+ function isAbortSignal(signal) {
+ const proto = signal && typeof signal === "object" && Object.getPrototypeOf(signal);
+ return !!(proto && proto.constructor.name === "AbortSignal");
+ }
+ var Request = class _Request {
+ constructor(input) {
+ let init = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
+ let parsedURL;
+ if (!isRequest(input)) {
+ if (input && input.href) {
+ parsedURL = parseURL(input.href);
+ } else {
+ parsedURL = parseURL(`${input}`);
+ }
+ input = {};
+ } else {
+ parsedURL = parseURL(input.url);
+ }
+ let method = init.method || input.method || "GET";
+ method = method.toUpperCase();
+ if ((init.body != null || isRequest(input) && input.body !== null) && (method === "GET" || method === "HEAD")) {
+ throw new TypeError("Request with GET/HEAD method cannot have body");
+ }
+ let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null;
+ Body.call(this, inputBody, {
+ timeout: init.timeout || input.timeout || 0,
+ size: init.size || input.size || 0
+ });
+ const headers = new Headers(init.headers || input.headers || {});
+ if (inputBody != null && !headers.has("Content-Type")) {
+ const contentType = extractContentType(inputBody);
+ if (contentType) {
+ headers.append("Content-Type", contentType);
+ }
+ }
+ let signal = isRequest(input) ? input.signal : null;
+ if ("signal" in init)
+ signal = init.signal;
+ if (signal != null && !isAbortSignal(signal)) {
+ throw new TypeError("Expected signal to be an instanceof AbortSignal");
+ }
+ this[INTERNALS$2] = {
+ method,
+ redirect: init.redirect || input.redirect || "follow",
+ headers,
+ parsedURL,
+ signal
+ };
+ this.follow = init.follow !== void 0 ? init.follow : input.follow !== void 0 ? input.follow : 20;
+ this.compress = init.compress !== void 0 ? init.compress : input.compress !== void 0 ? input.compress : true;
+ this.counter = init.counter || input.counter || 0;
+ this.agent = init.agent || input.agent;
+ }
+ get method() {
+ return this[INTERNALS$2].method;
+ }
+ get url() {
+ return format_url(this[INTERNALS$2].parsedURL);
+ }
+ get headers() {
+ return this[INTERNALS$2].headers;
+ }
+ get redirect() {
+ return this[INTERNALS$2].redirect;
+ }
+ get signal() {
+ return this[INTERNALS$2].signal;
+ }
+ /**
+ * Clone this request
+ *
+ * @return Request
+ */
+ clone() {
+ return new _Request(this);
+ }
+ };
+ Body.mixIn(Request.prototype);
+ Object.defineProperty(Request.prototype, Symbol.toStringTag, {
+ value: "Request",
+ writable: false,
+ enumerable: false,
+ configurable: true
+ });
+ Object.defineProperties(Request.prototype, {
+ method: { enumerable: true },
+ url: { enumerable: true },
+ headers: { enumerable: true },
+ redirect: { enumerable: true },
+ clone: { enumerable: true },
+ signal: { enumerable: true }
+ });
+ function getNodeRequestOptions(request) {
+ const parsedURL = request[INTERNALS$2].parsedURL;
+ const headers = new Headers(request[INTERNALS$2].headers);
+ if (!headers.has("Accept")) {
+ headers.set("Accept", "*/*");
+ }
+ if (!parsedURL.protocol || !parsedURL.hostname) {
+ throw new TypeError("Only absolute URLs are supported");
+ }
+ if (!/^https?:$/.test(parsedURL.protocol)) {
+ throw new TypeError("Only HTTP(S) protocols are supported");
+ }
+ if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) {
+ throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");
+ }
+ let contentLengthValue = null;
+ if (request.body == null && /^(POST|PUT)$/i.test(request.method)) {
+ contentLengthValue = "0";
+ }
+ if (request.body != null) {
+ const totalBytes = getTotalBytes(request);
+ if (typeof totalBytes === "number") {
+ contentLengthValue = String(totalBytes);
+ }
+ }
+ if (contentLengthValue) {
+ headers.set("Content-Length", contentLengthValue);
+ }
+ if (!headers.has("User-Agent")) {
+ headers.set("User-Agent", "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)");
+ }
+ if (request.compress && !headers.has("Accept-Encoding")) {
+ headers.set("Accept-Encoding", "gzip,deflate");
+ }
+ let agent = request.agent;
+ if (typeof agent === "function") {
+ agent = agent(parsedURL);
+ }
+ return Object.assign({}, parsedURL, {
+ method: request.method,
+ headers: exportNodeCompatibleHeaders(headers),
+ agent
+ });
+ }
+ function AbortError(message) {
+ Error.call(this, message);
+ this.type = "aborted";
+ this.message = message;
+ Error.captureStackTrace(this, this.constructor);
+ }
+ AbortError.prototype = Object.create(Error.prototype);
+ AbortError.prototype.constructor = AbortError;
+ AbortError.prototype.name = "AbortError";
+ var URL$1 = Url.URL || whatwgUrl.URL;
+ var PassThrough$1 = Stream.PassThrough;
+ var isDomainOrSubdomain = function isDomainOrSubdomain2(destination, original) {
+ const orig = new URL$1(original).hostname;
+ const dest = new URL$1(destination).hostname;
+ return orig === dest || orig[orig.length - dest.length - 1] === "." && orig.endsWith(dest);
+ };
+ var isSameProtocol = function isSameProtocol2(destination, original) {
+ const orig = new URL$1(original).protocol;
+ const dest = new URL$1(destination).protocol;
+ return orig === dest;
+ };
+ function fetch2(url, opts) {
+ if (!fetch2.Promise) {
+ throw new Error("native promise missing, set fetch.Promise to your favorite alternative");
+ }
+ Body.Promise = fetch2.Promise;
+ return new fetch2.Promise(function(resolve, reject) {
+ const request = new Request(url, opts);
+ const options = getNodeRequestOptions(request);
+ const send = (options.protocol === "https:" ? https : http).request;
+ const signal = request.signal;
+ let response = null;
+ const abort = function abort2() {
+ let error = new AbortError("The user aborted a request.");
+ reject(error);
+ if (request.body && request.body instanceof Stream.Readable) {
+ destroyStream(request.body, error);
+ }
+ if (!response || !response.body)
+ return;
+ response.body.emit("error", error);
+ };
+ if (signal && signal.aborted) {
+ abort();
+ return;
+ }
+ const abortAndFinalize = function abortAndFinalize2() {
+ abort();
+ finalize();
+ };
+ const req = send(options);
+ let reqTimeout;
+ if (signal) {
+ signal.addEventListener("abort", abortAndFinalize);
+ }
+ function finalize() {
+ req.abort();
+ if (signal)
+ signal.removeEventListener("abort", abortAndFinalize);
+ clearTimeout(reqTimeout);
+ }
+ if (request.timeout) {
+ req.once("socket", function(socket) {
+ reqTimeout = setTimeout(function() {
+ reject(new FetchError(`network timeout at: ${request.url}`, "request-timeout"));
+ finalize();
+ }, request.timeout);
+ });
+ }
+ req.on("error", function(err) {
+ reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, "system", err));
+ if (response && response.body) {
+ destroyStream(response.body, err);
+ }
+ finalize();
+ });
+ fixResponseChunkedTransferBadEnding(req, function(err) {
+ if (signal && signal.aborted) {
+ return;
+ }
+ if (response && response.body) {
+ destroyStream(response.body, err);
+ }
+ });
+ if (parseInt(process.version.substring(1)) < 14) {
+ req.on("socket", function(s) {
+ s.addListener("close", function(hadError) {
+ const hasDataListener = s.listenerCount("data") > 0;
+ if (response && hasDataListener && !hadError && !(signal && signal.aborted)) {
+ const err = new Error("Premature close");
+ err.code = "ERR_STREAM_PREMATURE_CLOSE";
+ response.body.emit("error", err);
+ }
+ });
+ });
+ }
+ req.on("response", function(res) {
+ clearTimeout(reqTimeout);
+ const headers = createHeadersLenient(res.headers);
+ if (fetch2.isRedirect(res.statusCode)) {
+ const location = headers.get("Location");
+ let locationURL = null;
+ try {
+ locationURL = location === null ? null : new URL$1(location, request.url).toString();
+ } catch (err) {
+ if (request.redirect !== "manual") {
+ reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, "invalid-redirect"));
+ finalize();
+ return;
+ }
+ }
+ switch (request.redirect) {
+ case "error":
+ reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, "no-redirect"));
+ finalize();
+ return;
+ case "manual":
+ if (locationURL !== null) {
+ try {
+ headers.set("Location", locationURL);
+ } catch (err) {
+ reject(err);
+ }
+ }
+ break;
+ case "follow":
+ if (locationURL === null) {
+ break;
+ }
+ if (request.counter >= request.follow) {
+ reject(new FetchError(`maximum redirect reached at: ${request.url}`, "max-redirect"));
+ finalize();
+ return;
+ }
+ const requestOpts = {
+ headers: new Headers(request.headers),
+ follow: request.follow,
+ counter: request.counter + 1,
+ agent: request.agent,
+ compress: request.compress,
+ method: request.method,
+ body: request.body,
+ signal: request.signal,
+ timeout: request.timeout,
+ size: request.size
+ };
+ if (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) {
+ for (const name of ["authorization", "www-authenticate", "cookie", "cookie2"]) {
+ requestOpts.headers.delete(name);
+ }
+ }
+ if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) {
+ reject(new FetchError("Cannot follow redirect with body being a readable stream", "unsupported-redirect"));
+ finalize();
+ return;
+ }
+ if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === "POST") {
+ requestOpts.method = "GET";
+ requestOpts.body = void 0;
+ requestOpts.headers.delete("content-length");
+ }
+ resolve(fetch2(new Request(locationURL, requestOpts)));
+ finalize();
+ return;
+ }
+ }
+ res.once("end", function() {
+ if (signal)
+ signal.removeEventListener("abort", abortAndFinalize);
+ });
+ let body = res.pipe(new PassThrough$1());
+ const response_options = {
+ url: request.url,
+ status: res.statusCode,
+ statusText: res.statusMessage,
+ headers,
+ size: request.size,
+ timeout: request.timeout,
+ counter: request.counter
+ };
+ const codings = headers.get("Content-Encoding");
+ if (!request.compress || request.method === "HEAD" || codings === null || res.statusCode === 204 || res.statusCode === 304) {
+ response = new Response2(body, response_options);
+ resolve(response);
+ return;
+ }
+ const zlibOptions = {
+ flush: zlib.Z_SYNC_FLUSH,
+ finishFlush: zlib.Z_SYNC_FLUSH
+ };
+ if (codings == "gzip" || codings == "x-gzip") {
+ body = body.pipe(zlib.createGunzip(zlibOptions));
+ response = new Response2(body, response_options);
+ resolve(response);
+ return;
+ }
+ if (codings == "deflate" || codings == "x-deflate") {
+ const raw = res.pipe(new PassThrough$1());
+ raw.once("data", function(chunk) {
+ if ((chunk[0] & 15) === 8) {
+ body = body.pipe(zlib.createInflate());
+ } else {
+ body = body.pipe(zlib.createInflateRaw());
+ }
+ response = new Response2(body, response_options);
+ resolve(response);
+ });
+ raw.on("end", function() {
+ if (!response) {
+ response = new Response2(body, response_options);
+ resolve(response);
+ }
+ });
+ return;
+ }
+ if (codings == "br" && typeof zlib.createBrotliDecompress === "function") {
+ body = body.pipe(zlib.createBrotliDecompress());
+ response = new Response2(body, response_options);
+ resolve(response);
+ return;
+ }
+ response = new Response2(body, response_options);
+ resolve(response);
+ });
+ writeToStream(req, request);
+ });
+ }
+ function fixResponseChunkedTransferBadEnding(request, errorCallback) {
+ let socket;
+ request.on("socket", function(s) {
+ socket = s;
+ });
+ request.on("response", function(response) {
+ const headers = response.headers;
+ if (headers["transfer-encoding"] === "chunked" && !headers["content-length"]) {
+ response.once("close", function(hadError) {
+ const hasDataListener = socket && socket.listenerCount("data") > 0;
+ if (hasDataListener && !hadError) {
+ const err = new Error("Premature close");
+ err.code = "ERR_STREAM_PREMATURE_CLOSE";
+ errorCallback(err);
+ }
+ });
+ }
+ });
+ }
+ function destroyStream(stream, err) {
+ if (stream.destroy) {
+ stream.destroy(err);
+ } else {
+ stream.emit("error", err);
+ stream.end();
+ }
+ }
+ fetch2.isRedirect = function(code) {
+ return code === 301 || code === 302 || code === 303 || code === 307 || code === 308;
+ };
+ fetch2.Promise = global.Promise;
+ module2.exports = exports2 = fetch2;
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.default = exports2;
+ exports2.Headers = Headers;
+ exports2.Request = Request;
+ exports2.Response = Response2;
+ exports2.FetchError = FetchError;
+ exports2.AbortError = AbortError;
+ }
+});
+
+// node_modules/cross-fetch/dist/node-ponyfill.js
+var require_node_ponyfill = __commonJS({
+ "node_modules/cross-fetch/dist/node-ponyfill.js"(exports2, module2) {
+ var nodeFetch = require_lib4();
+ var realFetch = nodeFetch.default || nodeFetch;
+ var fetch2 = function(url, options) {
+ if (/^\/\//.test(url)) {
+ url = "https:" + url;
+ }
+ return realFetch.call(this, url, options);
+ };
+ fetch2.ponyfill = true;
+ module2.exports = exports2 = fetch2;
+ exports2.fetch = fetch2;
+ exports2.Headers = nodeFetch.Headers;
+ exports2.Request = nodeFetch.Request;
+ exports2.Response = nodeFetch.Response;
+ exports2.default = fetch2;
+ }
+});
+
+// node_modules/cross-fetch/dist/node-polyfill.js
+var require_node_polyfill = __commonJS({
+ "node_modules/cross-fetch/dist/node-polyfill.js"() {
+ var fetchNode = require_node_ponyfill();
+ var fetch2 = fetchNode.fetch.bind({});
+ fetch2.polyfill = true;
+ if (!global.fetch) {
+ global.fetch = fetch2;
+ global.Response = fetchNode.Response;
+ global.Headers = fetchNode.Headers;
+ global.Request = fetchNode.Request;
+ }
+ }
+});
+
+// node_modules/@ethersproject/logger/lib/_version.js
+var require_version = __commonJS({
+ "node_modules/@ethersproject/logger/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "logger/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/logger/lib/index.js
+var require_lib5 = __commonJS({
+ "node_modules/@ethersproject/logger/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.Logger = exports2.ErrorCode = exports2.LogLevel = void 0;
+ var _permanentCensorErrors = false;
+ var _censorErrors = false;
+ var LogLevels = { debug: 1, "default": 2, info: 2, warning: 3, error: 4, off: 5 };
+ var _logLevel = LogLevels["default"];
+ var _version_1 = require_version();
+ var _globalLogger = null;
+ function _checkNormalize() {
+ try {
+ var missing_1 = [];
+ ["NFD", "NFC", "NFKD", "NFKC"].forEach(function(form) {
+ try {
+ if ("test".normalize(form) !== "test") {
+ throw new Error("bad normalize");
+ }
+ ;
+ } catch (error) {
+ missing_1.push(form);
+ }
+ });
+ if (missing_1.length) {
+ throw new Error("missing " + missing_1.join(", "));
+ }
+ if (String.fromCharCode(233).normalize("NFD") !== String.fromCharCode(101, 769)) {
+ throw new Error("broken implementation");
+ }
+ } catch (error) {
+ return error.message;
+ }
+ return null;
+ }
+ var _normalizeError = _checkNormalize();
+ var LogLevel;
+ (function(LogLevel2) {
+ LogLevel2["DEBUG"] = "DEBUG";
+ LogLevel2["INFO"] = "INFO";
+ LogLevel2["WARNING"] = "WARNING";
+ LogLevel2["ERROR"] = "ERROR";
+ LogLevel2["OFF"] = "OFF";
+ })(LogLevel = exports2.LogLevel || (exports2.LogLevel = {}));
+ var ErrorCode;
+ (function(ErrorCode2) {
+ ErrorCode2["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
+ ErrorCode2["NOT_IMPLEMENTED"] = "NOT_IMPLEMENTED";
+ ErrorCode2["UNSUPPORTED_OPERATION"] = "UNSUPPORTED_OPERATION";
+ ErrorCode2["NETWORK_ERROR"] = "NETWORK_ERROR";
+ ErrorCode2["SERVER_ERROR"] = "SERVER_ERROR";
+ ErrorCode2["TIMEOUT"] = "TIMEOUT";
+ ErrorCode2["BUFFER_OVERRUN"] = "BUFFER_OVERRUN";
+ ErrorCode2["NUMERIC_FAULT"] = "NUMERIC_FAULT";
+ ErrorCode2["MISSING_NEW"] = "MISSING_NEW";
+ ErrorCode2["INVALID_ARGUMENT"] = "INVALID_ARGUMENT";
+ ErrorCode2["MISSING_ARGUMENT"] = "MISSING_ARGUMENT";
+ ErrorCode2["UNEXPECTED_ARGUMENT"] = "UNEXPECTED_ARGUMENT";
+ ErrorCode2["CALL_EXCEPTION"] = "CALL_EXCEPTION";
+ ErrorCode2["INSUFFICIENT_FUNDS"] = "INSUFFICIENT_FUNDS";
+ ErrorCode2["NONCE_EXPIRED"] = "NONCE_EXPIRED";
+ ErrorCode2["REPLACEMENT_UNDERPRICED"] = "REPLACEMENT_UNDERPRICED";
+ ErrorCode2["UNPREDICTABLE_GAS_LIMIT"] = "UNPREDICTABLE_GAS_LIMIT";
+ ErrorCode2["TRANSACTION_REPLACED"] = "TRANSACTION_REPLACED";
+ ErrorCode2["ACTION_REJECTED"] = "ACTION_REJECTED";
+ })(ErrorCode = exports2.ErrorCode || (exports2.ErrorCode = {}));
+ var HEX = "0123456789abcdef";
+ var Logger = (
+ /** @class */
+ function() {
+ function Logger2(version) {
+ Object.defineProperty(this, "version", {
+ enumerable: true,
+ value: version,
+ writable: false
+ });
+ }
+ Logger2.prototype._log = function(logLevel, args) {
+ var level = logLevel.toLowerCase();
+ if (LogLevels[level] == null) {
+ this.throwArgumentError("invalid log level name", "logLevel", logLevel);
+ }
+ if (_logLevel > LogLevels[level]) {
+ return;
+ }
+ console.log.apply(console, args);
+ };
+ Logger2.prototype.debug = function() {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ this._log(Logger2.levels.DEBUG, args);
+ };
+ Logger2.prototype.info = function() {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ this._log(Logger2.levels.INFO, args);
+ };
+ Logger2.prototype.warn = function() {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ this._log(Logger2.levels.WARNING, args);
+ };
+ Logger2.prototype.makeError = function(message, code, params) {
+ if (_censorErrors) {
+ return this.makeError("censored error", code, {});
+ }
+ if (!code) {
+ code = Logger2.errors.UNKNOWN_ERROR;
+ }
+ if (!params) {
+ params = {};
+ }
+ var messageDetails = [];
+ Object.keys(params).forEach(function(key) {
+ var value = params[key];
+ try {
+ if (value instanceof Uint8Array) {
+ var hex = "";
+ for (var i = 0; i < value.length; i++) {
+ hex += HEX[value[i] >> 4];
+ hex += HEX[value[i] & 15];
+ }
+ messageDetails.push(key + "=Uint8Array(0x" + hex + ")");
+ } else {
+ messageDetails.push(key + "=" + JSON.stringify(value));
+ }
+ } catch (error2) {
+ messageDetails.push(key + "=" + JSON.stringify(params[key].toString()));
+ }
+ });
+ messageDetails.push("code=" + code);
+ messageDetails.push("version=" + this.version);
+ var reason = message;
+ var url = "";
+ switch (code) {
+ case ErrorCode.NUMERIC_FAULT: {
+ url = "NUMERIC_FAULT";
+ var fault = message;
+ switch (fault) {
+ case "overflow":
+ case "underflow":
+ case "division-by-zero":
+ url += "-" + fault;
+ break;
+ case "negative-power":
+ case "negative-width":
+ url += "-unsupported";
+ break;
+ case "unbound-bitwise-result":
+ url += "-unbound-result";
+ break;
+ }
+ break;
+ }
+ case ErrorCode.CALL_EXCEPTION:
+ case ErrorCode.INSUFFICIENT_FUNDS:
+ case ErrorCode.MISSING_NEW:
+ case ErrorCode.NONCE_EXPIRED:
+ case ErrorCode.REPLACEMENT_UNDERPRICED:
+ case ErrorCode.TRANSACTION_REPLACED:
+ case ErrorCode.UNPREDICTABLE_GAS_LIMIT:
+ url = code;
+ break;
+ }
+ if (url) {
+ message += " [ See: https://links.ethers.org/v5-errors-" + url + " ]";
+ }
+ if (messageDetails.length) {
+ message += " (" + messageDetails.join(", ") + ")";
+ }
+ var error = new Error(message);
+ error.reason = reason;
+ error.code = code;
+ Object.keys(params).forEach(function(key) {
+ error[key] = params[key];
+ });
+ return error;
+ };
+ Logger2.prototype.throwError = function(message, code, params) {
+ throw this.makeError(message, code, params);
+ };
+ Logger2.prototype.throwArgumentError = function(message, name, value) {
+ return this.throwError(message, Logger2.errors.INVALID_ARGUMENT, {
+ argument: name,
+ value
+ });
+ };
+ Logger2.prototype.assert = function(condition, message, code, params) {
+ if (!!condition) {
+ return;
+ }
+ this.throwError(message, code, params);
+ };
+ Logger2.prototype.assertArgument = function(condition, message, name, value) {
+ if (!!condition) {
+ return;
+ }
+ this.throwArgumentError(message, name, value);
+ };
+ Logger2.prototype.checkNormalize = function(message) {
+ if (message == null) {
+ message = "platform missing String.prototype.normalize";
+ }
+ if (_normalizeError) {
+ this.throwError("platform missing String.prototype.normalize", Logger2.errors.UNSUPPORTED_OPERATION, {
+ operation: "String.prototype.normalize",
+ form: _normalizeError
+ });
+ }
+ };
+ Logger2.prototype.checkSafeUint53 = function(value, message) {
+ if (typeof value !== "number") {
+ return;
+ }
+ if (message == null) {
+ message = "value not safe";
+ }
+ if (value < 0 || value >= 9007199254740991) {
+ this.throwError(message, Logger2.errors.NUMERIC_FAULT, {
+ operation: "checkSafeInteger",
+ fault: "out-of-safe-range",
+ value
+ });
+ }
+ if (value % 1) {
+ this.throwError(message, Logger2.errors.NUMERIC_FAULT, {
+ operation: "checkSafeInteger",
+ fault: "non-integer",
+ value
+ });
+ }
+ };
+ Logger2.prototype.checkArgumentCount = function(count, expectedCount, message) {
+ if (message) {
+ message = ": " + message;
+ } else {
+ message = "";
+ }
+ if (count < expectedCount) {
+ this.throwError("missing argument" + message, Logger2.errors.MISSING_ARGUMENT, {
+ count,
+ expectedCount
+ });
+ }
+ if (count > expectedCount) {
+ this.throwError("too many arguments" + message, Logger2.errors.UNEXPECTED_ARGUMENT, {
+ count,
+ expectedCount
+ });
+ }
+ };
+ Logger2.prototype.checkNew = function(target, kind) {
+ if (target === Object || target == null) {
+ this.throwError("missing new", Logger2.errors.MISSING_NEW, { name: kind.name });
+ }
+ };
+ Logger2.prototype.checkAbstract = function(target, kind) {
+ if (target === kind) {
+ this.throwError("cannot instantiate abstract class " + JSON.stringify(kind.name) + " directly; use a sub-class", Logger2.errors.UNSUPPORTED_OPERATION, { name: target.name, operation: "new" });
+ } else if (target === Object || target == null) {
+ this.throwError("missing new", Logger2.errors.MISSING_NEW, { name: kind.name });
+ }
+ };
+ Logger2.globalLogger = function() {
+ if (!_globalLogger) {
+ _globalLogger = new Logger2(_version_1.version);
+ }
+ return _globalLogger;
+ };
+ Logger2.setCensorship = function(censorship, permanent) {
+ if (!censorship && permanent) {
+ this.globalLogger().throwError("cannot permanently disable censorship", Logger2.errors.UNSUPPORTED_OPERATION, {
+ operation: "setCensorship"
+ });
+ }
+ if (_permanentCensorErrors) {
+ if (!censorship) {
+ return;
+ }
+ this.globalLogger().throwError("error censorship permanent", Logger2.errors.UNSUPPORTED_OPERATION, {
+ operation: "setCensorship"
+ });
+ }
+ _censorErrors = !!censorship;
+ _permanentCensorErrors = !!permanent;
+ };
+ Logger2.setLogLevel = function(logLevel) {
+ var level = LogLevels[logLevel.toLowerCase()];
+ if (level == null) {
+ Logger2.globalLogger().warn("invalid log level - " + logLevel);
+ return;
+ }
+ _logLevel = level;
+ };
+ Logger2.from = function(version) {
+ return new Logger2(version);
+ };
+ Logger2.errors = ErrorCode;
+ Logger2.levels = LogLevel;
+ return Logger2;
+ }()
+ );
+ exports2.Logger = Logger;
+ }
+});
+
+// node_modules/@ethersproject/bytes/lib/_version.js
+var require_version2 = __commonJS({
+ "node_modules/@ethersproject/bytes/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "bytes/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/bytes/lib/index.js
+var require_lib6 = __commonJS({
+ "node_modules/@ethersproject/bytes/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.joinSignature = exports2.splitSignature = exports2.hexZeroPad = exports2.hexStripZeros = exports2.hexValue = exports2.hexConcat = exports2.hexDataSlice = exports2.hexDataLength = exports2.hexlify = exports2.isHexString = exports2.zeroPad = exports2.stripZeros = exports2.concat = exports2.arrayify = exports2.isBytes = exports2.isBytesLike = void 0;
+ var logger_1 = require_lib5();
+ var _version_1 = require_version2();
+ var logger = new logger_1.Logger(_version_1.version);
+ function isHexable(value) {
+ return !!value.toHexString;
+ }
+ function addSlice(array) {
+ if (array.slice) {
+ return array;
+ }
+ array.slice = function() {
+ var args = Array.prototype.slice.call(arguments);
+ return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));
+ };
+ return array;
+ }
+ function isBytesLike(value) {
+ return isHexString(value) && !(value.length % 2) || isBytes(value);
+ }
+ exports2.isBytesLike = isBytesLike;
+ function isInteger(value) {
+ return typeof value === "number" && value == value && value % 1 === 0;
+ }
+ function isBytes(value) {
+ if (value == null) {
+ return false;
+ }
+ if (value.constructor === Uint8Array) {
+ return true;
+ }
+ if (typeof value === "string") {
+ return false;
+ }
+ if (!isInteger(value.length) || value.length < 0) {
+ return false;
+ }
+ for (var i = 0; i < value.length; i++) {
+ var v = value[i];
+ if (!isInteger(v) || v < 0 || v >= 256) {
+ return false;
+ }
+ }
+ return true;
+ }
+ exports2.isBytes = isBytes;
+ function arrayify(value, options) {
+ if (!options) {
+ options = {};
+ }
+ if (typeof value === "number") {
+ logger.checkSafeUint53(value, "invalid arrayify value");
+ var result = [];
+ while (value) {
+ result.unshift(value & 255);
+ value = parseInt(String(value / 256));
+ }
+ if (result.length === 0) {
+ result.push(0);
+ }
+ return addSlice(new Uint8Array(result));
+ }
+ if (options.allowMissingPrefix && typeof value === "string" && value.substring(0, 2) !== "0x") {
+ value = "0x" + value;
+ }
+ if (isHexable(value)) {
+ value = value.toHexString();
+ }
+ if (isHexString(value)) {
+ var hex = value.substring(2);
+ if (hex.length % 2) {
+ if (options.hexPad === "left") {
+ hex = "0" + hex;
+ } else if (options.hexPad === "right") {
+ hex += "0";
+ } else {
+ logger.throwArgumentError("hex data is odd-length", "value", value);
+ }
+ }
+ var result = [];
+ for (var i = 0; i < hex.length; i += 2) {
+ result.push(parseInt(hex.substring(i, i + 2), 16));
+ }
+ return addSlice(new Uint8Array(result));
+ }
+ if (isBytes(value)) {
+ return addSlice(new Uint8Array(value));
+ }
+ return logger.throwArgumentError("invalid arrayify value", "value", value);
+ }
+ exports2.arrayify = arrayify;
+ function concat(items) {
+ var objects = items.map(function(item) {
+ return arrayify(item);
+ });
+ var length = objects.reduce(function(accum, item) {
+ return accum + item.length;
+ }, 0);
+ var result = new Uint8Array(length);
+ objects.reduce(function(offset, object) {
+ result.set(object, offset);
+ return offset + object.length;
+ }, 0);
+ return addSlice(result);
+ }
+ exports2.concat = concat;
+ function stripZeros(value) {
+ var result = arrayify(value);
+ if (result.length === 0) {
+ return result;
+ }
+ var start = 0;
+ while (start < result.length && result[start] === 0) {
+ start++;
+ }
+ if (start) {
+ result = result.slice(start);
+ }
+ return result;
+ }
+ exports2.stripZeros = stripZeros;
+ function zeroPad(value, length) {
+ value = arrayify(value);
+ if (value.length > length) {
+ logger.throwArgumentError("value out of range", "value", arguments[0]);
+ }
+ var result = new Uint8Array(length);
+ result.set(value, length - value.length);
+ return addSlice(result);
+ }
+ exports2.zeroPad = zeroPad;
+ function isHexString(value, length) {
+ if (typeof value !== "string" || !value.match(/^0x[0-9A-Fa-f]*$/)) {
+ return false;
+ }
+ if (length && value.length !== 2 + 2 * length) {
+ return false;
+ }
+ return true;
+ }
+ exports2.isHexString = isHexString;
+ var HexCharacters = "0123456789abcdef";
+ function hexlify(value, options) {
+ if (!options) {
+ options = {};
+ }
+ if (typeof value === "number") {
+ logger.checkSafeUint53(value, "invalid hexlify value");
+ var hex = "";
+ while (value) {
+ hex = HexCharacters[value & 15] + hex;
+ value = Math.floor(value / 16);
+ }
+ if (hex.length) {
+ if (hex.length % 2) {
+ hex = "0" + hex;
+ }
+ return "0x" + hex;
+ }
+ return "0x00";
+ }
+ if (typeof value === "bigint") {
+ value = value.toString(16);
+ if (value.length % 2) {
+ return "0x0" + value;
+ }
+ return "0x" + value;
+ }
+ if (options.allowMissingPrefix && typeof value === "string" && value.substring(0, 2) !== "0x") {
+ value = "0x" + value;
+ }
+ if (isHexable(value)) {
+ return value.toHexString();
+ }
+ if (isHexString(value)) {
+ if (value.length % 2) {
+ if (options.hexPad === "left") {
+ value = "0x0" + value.substring(2);
+ } else if (options.hexPad === "right") {
+ value += "0";
+ } else {
+ logger.throwArgumentError("hex data is odd-length", "value", value);
+ }
+ }
+ return value.toLowerCase();
+ }
+ if (isBytes(value)) {
+ var result = "0x";
+ for (var i = 0; i < value.length; i++) {
+ var v = value[i];
+ result += HexCharacters[(v & 240) >> 4] + HexCharacters[v & 15];
+ }
+ return result;
+ }
+ return logger.throwArgumentError("invalid hexlify value", "value", value);
+ }
+ exports2.hexlify = hexlify;
+ function hexDataLength(data) {
+ if (typeof data !== "string") {
+ data = hexlify(data);
+ } else if (!isHexString(data) || data.length % 2) {
+ return null;
+ }
+ return (data.length - 2) / 2;
+ }
+ exports2.hexDataLength = hexDataLength;
+ function hexDataSlice(data, offset, endOffset) {
+ if (typeof data !== "string") {
+ data = hexlify(data);
+ } else if (!isHexString(data) || data.length % 2) {
+ logger.throwArgumentError("invalid hexData", "value", data);
+ }
+ offset = 2 + 2 * offset;
+ if (endOffset != null) {
+ return "0x" + data.substring(offset, 2 + 2 * endOffset);
+ }
+ return "0x" + data.substring(offset);
+ }
+ exports2.hexDataSlice = hexDataSlice;
+ function hexConcat(items) {
+ var result = "0x";
+ items.forEach(function(item) {
+ result += hexlify(item).substring(2);
+ });
+ return result;
+ }
+ exports2.hexConcat = hexConcat;
+ function hexValue(value) {
+ var trimmed = hexStripZeros(hexlify(value, { hexPad: "left" }));
+ if (trimmed === "0x") {
+ return "0x0";
+ }
+ return trimmed;
+ }
+ exports2.hexValue = hexValue;
+ function hexStripZeros(value) {
+ if (typeof value !== "string") {
+ value = hexlify(value);
+ }
+ if (!isHexString(value)) {
+ logger.throwArgumentError("invalid hex string", "value", value);
+ }
+ value = value.substring(2);
+ var offset = 0;
+ while (offset < value.length && value[offset] === "0") {
+ offset++;
+ }
+ return "0x" + value.substring(offset);
+ }
+ exports2.hexStripZeros = hexStripZeros;
+ function hexZeroPad(value, length) {
+ if (typeof value !== "string") {
+ value = hexlify(value);
+ } else if (!isHexString(value)) {
+ logger.throwArgumentError("invalid hex string", "value", value);
+ }
+ if (value.length > 2 * length + 2) {
+ logger.throwArgumentError("value out of range", "value", arguments[1]);
+ }
+ while (value.length < 2 * length + 2) {
+ value = "0x0" + value.substring(2);
+ }
+ return value;
+ }
+ exports2.hexZeroPad = hexZeroPad;
+ function splitSignature(signature) {
+ var result = {
+ r: "0x",
+ s: "0x",
+ _vs: "0x",
+ recoveryParam: 0,
+ v: 0,
+ yParityAndS: "0x",
+ compact: "0x"
+ };
+ if (isBytesLike(signature)) {
+ var bytes = arrayify(signature);
+ if (bytes.length === 64) {
+ result.v = 27 + (bytes[32] >> 7);
+ bytes[32] &= 127;
+ result.r = hexlify(bytes.slice(0, 32));
+ result.s = hexlify(bytes.slice(32, 64));
+ } else if (bytes.length === 65) {
+ result.r = hexlify(bytes.slice(0, 32));
+ result.s = hexlify(bytes.slice(32, 64));
+ result.v = bytes[64];
+ } else {
+ logger.throwArgumentError("invalid signature string", "signature", signature);
+ }
+ if (result.v < 27) {
+ if (result.v === 0 || result.v === 1) {
+ result.v += 27;
+ } else {
+ logger.throwArgumentError("signature invalid v byte", "signature", signature);
+ }
+ }
+ result.recoveryParam = 1 - result.v % 2;
+ if (result.recoveryParam) {
+ bytes[32] |= 128;
+ }
+ result._vs = hexlify(bytes.slice(32, 64));
+ } else {
+ result.r = signature.r;
+ result.s = signature.s;
+ result.v = signature.v;
+ result.recoveryParam = signature.recoveryParam;
+ result._vs = signature._vs;
+ if (result._vs != null) {
+ var vs_1 = zeroPad(arrayify(result._vs), 32);
+ result._vs = hexlify(vs_1);
+ var recoveryParam = vs_1[0] >= 128 ? 1 : 0;
+ if (result.recoveryParam == null) {
+ result.recoveryParam = recoveryParam;
+ } else if (result.recoveryParam !== recoveryParam) {
+ logger.throwArgumentError("signature recoveryParam mismatch _vs", "signature", signature);
+ }
+ vs_1[0] &= 127;
+ var s = hexlify(vs_1);
+ if (result.s == null) {
+ result.s = s;
+ } else if (result.s !== s) {
+ logger.throwArgumentError("signature v mismatch _vs", "signature", signature);
+ }
+ }
+ if (result.recoveryParam == null) {
+ if (result.v == null) {
+ logger.throwArgumentError("signature missing v and recoveryParam", "signature", signature);
+ } else if (result.v === 0 || result.v === 1) {
+ result.recoveryParam = result.v;
+ } else {
+ result.recoveryParam = 1 - result.v % 2;
+ }
+ } else {
+ if (result.v == null) {
+ result.v = 27 + result.recoveryParam;
+ } else {
+ var recId = result.v === 0 || result.v === 1 ? result.v : 1 - result.v % 2;
+ if (result.recoveryParam !== recId) {
+ logger.throwArgumentError("signature recoveryParam mismatch v", "signature", signature);
+ }
+ }
+ }
+ if (result.r == null || !isHexString(result.r)) {
+ logger.throwArgumentError("signature missing or invalid r", "signature", signature);
+ } else {
+ result.r = hexZeroPad(result.r, 32);
+ }
+ if (result.s == null || !isHexString(result.s)) {
+ logger.throwArgumentError("signature missing or invalid s", "signature", signature);
+ } else {
+ result.s = hexZeroPad(result.s, 32);
+ }
+ var vs = arrayify(result.s);
+ if (vs[0] >= 128) {
+ logger.throwArgumentError("signature s out of range", "signature", signature);
+ }
+ if (result.recoveryParam) {
+ vs[0] |= 128;
+ }
+ var _vs = hexlify(vs);
+ if (result._vs) {
+ if (!isHexString(result._vs)) {
+ logger.throwArgumentError("signature invalid _vs", "signature", signature);
+ }
+ result._vs = hexZeroPad(result._vs, 32);
+ }
+ if (result._vs == null) {
+ result._vs = _vs;
+ } else if (result._vs !== _vs) {
+ logger.throwArgumentError("signature _vs mismatch v and s", "signature", signature);
+ }
+ }
+ result.yParityAndS = result._vs;
+ result.compact = result.r + result.yParityAndS.substring(2);
+ return result;
+ }
+ exports2.splitSignature = splitSignature;
+ function joinSignature(signature) {
+ signature = splitSignature(signature);
+ return hexlify(concat([
+ signature.r,
+ signature.s,
+ signature.recoveryParam ? "0x1c" : "0x1b"
+ ]));
+ }
+ exports2.joinSignature = joinSignature;
+ }
+});
+
+// node_modules/bn.js/lib/bn.js
+var require_bn = __commonJS({
+ "node_modules/bn.js/lib/bn.js"(exports2, module2) {
+ (function(module3, exports3) {
+ "use strict";
+ function assert(val, msg) {
+ if (!val)
+ throw new Error(msg || "Assertion failed");
+ }
+ function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor;
+ var TempCtor = function() {
+ };
+ TempCtor.prototype = superCtor.prototype;
+ ctor.prototype = new TempCtor();
+ ctor.prototype.constructor = ctor;
+ }
+ function BN(number, base, endian) {
+ if (BN.isBN(number)) {
+ return number;
+ }
+ this.negative = 0;
+ this.words = null;
+ this.length = 0;
+ this.red = null;
+ if (number !== null) {
+ if (base === "le" || base === "be") {
+ endian = base;
+ base = 10;
+ }
+ this._init(number || 0, base || 10, endian || "be");
+ }
+ }
+ if (typeof module3 === "object") {
+ module3.exports = BN;
+ } else {
+ exports3.BN = BN;
+ }
+ BN.BN = BN;
+ BN.wordSize = 26;
+ var Buffer2;
+ try {
+ if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") {
+ Buffer2 = window.Buffer;
+ } else {
+ Buffer2 = require("buffer").Buffer;
+ }
+ } catch (e) {
+ }
+ BN.isBN = function isBN(num) {
+ if (num instanceof BN) {
+ return true;
+ }
+ return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
+ };
+ BN.max = function max(left, right) {
+ if (left.cmp(right) > 0)
+ return left;
+ return right;
+ };
+ BN.min = function min(left, right) {
+ if (left.cmp(right) < 0)
+ return left;
+ return right;
+ };
+ BN.prototype._init = function init(number, base, endian) {
+ if (typeof number === "number") {
+ return this._initNumber(number, base, endian);
+ }
+ if (typeof number === "object") {
+ return this._initArray(number, base, endian);
+ }
+ if (base === "hex") {
+ base = 16;
+ }
+ assert(base === (base | 0) && base >= 2 && base <= 36);
+ number = number.toString().replace(/\s+/g, "");
+ var start = 0;
+ if (number[0] === "-") {
+ start++;
+ this.negative = 1;
+ }
+ if (start < number.length) {
+ if (base === 16) {
+ this._parseHex(number, start, endian);
+ } else {
+ this._parseBase(number, base, start);
+ if (endian === "le") {
+ this._initArray(this.toArray(), base, endian);
+ }
+ }
+ }
+ };
+ BN.prototype._initNumber = function _initNumber(number, base, endian) {
+ if (number < 0) {
+ this.negative = 1;
+ number = -number;
+ }
+ if (number < 67108864) {
+ this.words = [number & 67108863];
+ this.length = 1;
+ } else if (number < 4503599627370496) {
+ this.words = [
+ number & 67108863,
+ number / 67108864 & 67108863
+ ];
+ this.length = 2;
+ } else {
+ assert(number < 9007199254740992);
+ this.words = [
+ number & 67108863,
+ number / 67108864 & 67108863,
+ 1
+ ];
+ this.length = 3;
+ }
+ if (endian !== "le")
+ return;
+ this._initArray(this.toArray(), base, endian);
+ };
+ BN.prototype._initArray = function _initArray(number, base, endian) {
+ assert(typeof number.length === "number");
+ if (number.length <= 0) {
+ this.words = [0];
+ this.length = 1;
+ return this;
+ }
+ this.length = Math.ceil(number.length / 3);
+ this.words = new Array(this.length);
+ for (var i = 0; i < this.length; i++) {
+ this.words[i] = 0;
+ }
+ var j, w;
+ var off = 0;
+ if (endian === "be") {
+ for (i = number.length - 1, j = 0; i >= 0; i -= 3) {
+ w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;
+ this.words[j] |= w << off & 67108863;
+ this.words[j + 1] = w >>> 26 - off & 67108863;
+ off += 24;
+ if (off >= 26) {
+ off -= 26;
+ j++;
+ }
+ }
+ } else if (endian === "le") {
+ for (i = 0, j = 0; i < number.length; i += 3) {
+ w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;
+ this.words[j] |= w << off & 67108863;
+ this.words[j + 1] = w >>> 26 - off & 67108863;
+ off += 24;
+ if (off >= 26) {
+ off -= 26;
+ j++;
+ }
+ }
+ }
+ return this._strip();
+ };
+ function parseHex4Bits(string, index) {
+ var c = string.charCodeAt(index);
+ if (c >= 48 && c <= 57) {
+ return c - 48;
+ } else if (c >= 65 && c <= 70) {
+ return c - 55;
+ } else if (c >= 97 && c <= 102) {
+ return c - 87;
+ } else {
+ assert(false, "Invalid character in " + string);
+ }
+ }
+ function parseHexByte(string, lowerBound, index) {
+ var r = parseHex4Bits(string, index);
+ if (index - 1 >= lowerBound) {
+ r |= parseHex4Bits(string, index - 1) << 4;
+ }
+ return r;
+ }
+ BN.prototype._parseHex = function _parseHex(number, start, endian) {
+ this.length = Math.ceil((number.length - start) / 6);
+ this.words = new Array(this.length);
+ for (var i = 0; i < this.length; i++) {
+ this.words[i] = 0;
+ }
+ var off = 0;
+ var j = 0;
+ var w;
+ if (endian === "be") {
+ for (i = number.length - 1; i >= start; i -= 2) {
+ w = parseHexByte(number, start, i) << off;
+ this.words[j] |= w & 67108863;
+ if (off >= 18) {
+ off -= 18;
+ j += 1;
+ this.words[j] |= w >>> 26;
+ } else {
+ off += 8;
+ }
+ }
+ } else {
+ var parseLength = number.length - start;
+ for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {
+ w = parseHexByte(number, start, i) << off;
+ this.words[j] |= w & 67108863;
+ if (off >= 18) {
+ off -= 18;
+ j += 1;
+ this.words[j] |= w >>> 26;
+ } else {
+ off += 8;
+ }
+ }
+ }
+ this._strip();
+ };
+ function parseBase(str, start, end, mul) {
+ var r = 0;
+ var b = 0;
+ var len = Math.min(str.length, end);
+ for (var i = start; i < len; i++) {
+ var c = str.charCodeAt(i) - 48;
+ r *= mul;
+ if (c >= 49) {
+ b = c - 49 + 10;
+ } else if (c >= 17) {
+ b = c - 17 + 10;
+ } else {
+ b = c;
+ }
+ assert(c >= 0 && b < mul, "Invalid character");
+ r += b;
+ }
+ return r;
+ }
+ BN.prototype._parseBase = function _parseBase(number, base, start) {
+ this.words = [0];
+ this.length = 1;
+ for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) {
+ limbLen++;
+ }
+ limbLen--;
+ limbPow = limbPow / base | 0;
+ var total = number.length - start;
+ var mod = total % limbLen;
+ var end = Math.min(total, total - mod) + start;
+ var word = 0;
+ for (var i = start; i < end; i += limbLen) {
+ word = parseBase(number, i, i + limbLen, base);
+ this.imuln(limbPow);
+ if (this.words[0] + word < 67108864) {
+ this.words[0] += word;
+ } else {
+ this._iaddn(word);
+ }
+ }
+ if (mod !== 0) {
+ var pow = 1;
+ word = parseBase(number, i, number.length, base);
+ for (i = 0; i < mod; i++) {
+ pow *= base;
+ }
+ this.imuln(pow);
+ if (this.words[0] + word < 67108864) {
+ this.words[0] += word;
+ } else {
+ this._iaddn(word);
+ }
+ }
+ this._strip();
+ };
+ BN.prototype.copy = function copy(dest) {
+ dest.words = new Array(this.length);
+ for (var i = 0; i < this.length; i++) {
+ dest.words[i] = this.words[i];
+ }
+ dest.length = this.length;
+ dest.negative = this.negative;
+ dest.red = this.red;
+ };
+ function move(dest, src) {
+ dest.words = src.words;
+ dest.length = src.length;
+ dest.negative = src.negative;
+ dest.red = src.red;
+ }
+ BN.prototype._move = function _move(dest) {
+ move(dest, this);
+ };
+ BN.prototype.clone = function clone() {
+ var r = new BN(null);
+ this.copy(r);
+ return r;
+ };
+ BN.prototype._expand = function _expand(size) {
+ while (this.length < size) {
+ this.words[this.length++] = 0;
+ }
+ return this;
+ };
+ BN.prototype._strip = function strip() {
+ while (this.length > 1 && this.words[this.length - 1] === 0) {
+ this.length--;
+ }
+ return this._normSign();
+ };
+ BN.prototype._normSign = function _normSign() {
+ if (this.length === 1 && this.words[0] === 0) {
+ this.negative = 0;
+ }
+ return this;
+ };
+ if (typeof Symbol !== "undefined" && typeof Symbol.for === "function") {
+ try {
+ BN.prototype[Symbol.for("nodejs.util.inspect.custom")] = inspect;
+ } catch (e) {
+ BN.prototype.inspect = inspect;
+ }
+ } else {
+ BN.prototype.inspect = inspect;
+ }
+ function inspect() {
+ return (this.red ? "";
+ }
+ var zeros = [
+ "",
+ "0",
+ "00",
+ "000",
+ "0000",
+ "00000",
+ "000000",
+ "0000000",
+ "00000000",
+ "000000000",
+ "0000000000",
+ "00000000000",
+ "000000000000",
+ "0000000000000",
+ "00000000000000",
+ "000000000000000",
+ "0000000000000000",
+ "00000000000000000",
+ "000000000000000000",
+ "0000000000000000000",
+ "00000000000000000000",
+ "000000000000000000000",
+ "0000000000000000000000",
+ "00000000000000000000000",
+ "000000000000000000000000",
+ "0000000000000000000000000"
+ ];
+ var groupSizes = [
+ 0,
+ 0,
+ 25,
+ 16,
+ 12,
+ 11,
+ 10,
+ 9,
+ 8,
+ 8,
+ 7,
+ 7,
+ 7,
+ 7,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5
+ ];
+ var groupBases = [
+ 0,
+ 0,
+ 33554432,
+ 43046721,
+ 16777216,
+ 48828125,
+ 60466176,
+ 40353607,
+ 16777216,
+ 43046721,
+ 1e7,
+ 19487171,
+ 35831808,
+ 62748517,
+ 7529536,
+ 11390625,
+ 16777216,
+ 24137569,
+ 34012224,
+ 47045881,
+ 64e6,
+ 4084101,
+ 5153632,
+ 6436343,
+ 7962624,
+ 9765625,
+ 11881376,
+ 14348907,
+ 17210368,
+ 20511149,
+ 243e5,
+ 28629151,
+ 33554432,
+ 39135393,
+ 45435424,
+ 52521875,
+ 60466176
+ ];
+ BN.prototype.toString = function toString2(base, padding) {
+ base = base || 10;
+ padding = padding | 0 || 1;
+ var out;
+ if (base === 16 || base === "hex") {
+ out = "";
+ var off = 0;
+ var carry = 0;
+ for (var i = 0; i < this.length; i++) {
+ var w = this.words[i];
+ var word = ((w << off | carry) & 16777215).toString(16);
+ carry = w >>> 24 - off & 16777215;
+ off += 2;
+ if (off >= 26) {
+ off -= 26;
+ i--;
+ }
+ if (carry !== 0 || i !== this.length - 1) {
+ out = zeros[6 - word.length] + word + out;
+ } else {
+ out = word + out;
+ }
+ }
+ if (carry !== 0) {
+ out = carry.toString(16) + out;
+ }
+ while (out.length % padding !== 0) {
+ out = "0" + out;
+ }
+ if (this.negative !== 0) {
+ out = "-" + out;
+ }
+ return out;
+ }
+ if (base === (base | 0) && base >= 2 && base <= 36) {
+ var groupSize = groupSizes[base];
+ var groupBase = groupBases[base];
+ out = "";
+ var c = this.clone();
+ c.negative = 0;
+ while (!c.isZero()) {
+ var r = c.modrn(groupBase).toString(base);
+ c = c.idivn(groupBase);
+ if (!c.isZero()) {
+ out = zeros[groupSize - r.length] + r + out;
+ } else {
+ out = r + out;
+ }
+ }
+ if (this.isZero()) {
+ out = "0" + out;
+ }
+ while (out.length % padding !== 0) {
+ out = "0" + out;
+ }
+ if (this.negative !== 0) {
+ out = "-" + out;
+ }
+ return out;
+ }
+ assert(false, "Base should be between 2 and 36");
+ };
+ BN.prototype.toNumber = function toNumber() {
+ var ret = this.words[0];
+ if (this.length === 2) {
+ ret += this.words[1] * 67108864;
+ } else if (this.length === 3 && this.words[2] === 1) {
+ ret += 4503599627370496 + this.words[1] * 67108864;
+ } else if (this.length > 2) {
+ assert(false, "Number can only safely store up to 53 bits");
+ }
+ return this.negative !== 0 ? -ret : ret;
+ };
+ BN.prototype.toJSON = function toJSON() {
+ return this.toString(16, 2);
+ };
+ if (Buffer2) {
+ BN.prototype.toBuffer = function toBuffer(endian, length) {
+ return this.toArrayLike(Buffer2, endian, length);
+ };
+ }
+ BN.prototype.toArray = function toArray(endian, length) {
+ return this.toArrayLike(Array, endian, length);
+ };
+ var allocate = function allocate2(ArrayType, size) {
+ if (ArrayType.allocUnsafe) {
+ return ArrayType.allocUnsafe(size);
+ }
+ return new ArrayType(size);
+ };
+ BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {
+ this._strip();
+ var byteLength = this.byteLength();
+ var reqLength = length || Math.max(1, byteLength);
+ assert(byteLength <= reqLength, "byte array longer than desired length");
+ assert(reqLength > 0, "Requested array length <= 0");
+ var res = allocate(ArrayType, reqLength);
+ var postfix = endian === "le" ? "LE" : "BE";
+ this["_toArrayLike" + postfix](res, byteLength);
+ return res;
+ };
+ BN.prototype._toArrayLikeLE = function _toArrayLikeLE(res, byteLength) {
+ var position = 0;
+ var carry = 0;
+ for (var i = 0, shift = 0; i < this.length; i++) {
+ var word = this.words[i] << shift | carry;
+ res[position++] = word & 255;
+ if (position < res.length) {
+ res[position++] = word >> 8 & 255;
+ }
+ if (position < res.length) {
+ res[position++] = word >> 16 & 255;
+ }
+ if (shift === 6) {
+ if (position < res.length) {
+ res[position++] = word >> 24 & 255;
+ }
+ carry = 0;
+ shift = 0;
+ } else {
+ carry = word >>> 24;
+ shift += 2;
+ }
+ }
+ if (position < res.length) {
+ res[position++] = carry;
+ while (position < res.length) {
+ res[position++] = 0;
+ }
+ }
+ };
+ BN.prototype._toArrayLikeBE = function _toArrayLikeBE(res, byteLength) {
+ var position = res.length - 1;
+ var carry = 0;
+ for (var i = 0, shift = 0; i < this.length; i++) {
+ var word = this.words[i] << shift | carry;
+ res[position--] = word & 255;
+ if (position >= 0) {
+ res[position--] = word >> 8 & 255;
+ }
+ if (position >= 0) {
+ res[position--] = word >> 16 & 255;
+ }
+ if (shift === 6) {
+ if (position >= 0) {
+ res[position--] = word >> 24 & 255;
+ }
+ carry = 0;
+ shift = 0;
+ } else {
+ carry = word >>> 24;
+ shift += 2;
+ }
+ }
+ if (position >= 0) {
+ res[position--] = carry;
+ while (position >= 0) {
+ res[position--] = 0;
+ }
+ }
+ };
+ if (Math.clz32) {
+ BN.prototype._countBits = function _countBits(w) {
+ return 32 - Math.clz32(w);
+ };
+ } else {
+ BN.prototype._countBits = function _countBits(w) {
+ var t = w;
+ var r = 0;
+ if (t >= 4096) {
+ r += 13;
+ t >>>= 13;
+ }
+ if (t >= 64) {
+ r += 7;
+ t >>>= 7;
+ }
+ if (t >= 8) {
+ r += 4;
+ t >>>= 4;
+ }
+ if (t >= 2) {
+ r += 2;
+ t >>>= 2;
+ }
+ return r + t;
+ };
+ }
+ BN.prototype._zeroBits = function _zeroBits(w) {
+ if (w === 0)
+ return 26;
+ var t = w;
+ var r = 0;
+ if ((t & 8191) === 0) {
+ r += 13;
+ t >>>= 13;
+ }
+ if ((t & 127) === 0) {
+ r += 7;
+ t >>>= 7;
+ }
+ if ((t & 15) === 0) {
+ r += 4;
+ t >>>= 4;
+ }
+ if ((t & 3) === 0) {
+ r += 2;
+ t >>>= 2;
+ }
+ if ((t & 1) === 0) {
+ r++;
+ }
+ return r;
+ };
+ BN.prototype.bitLength = function bitLength() {
+ var w = this.words[this.length - 1];
+ var hi = this._countBits(w);
+ return (this.length - 1) * 26 + hi;
+ };
+ function toBitArray(num) {
+ var w = new Array(num.bitLength());
+ for (var bit = 0; bit < w.length; bit++) {
+ var off = bit / 26 | 0;
+ var wbit = bit % 26;
+ w[bit] = num.words[off] >>> wbit & 1;
+ }
+ return w;
+ }
+ BN.prototype.zeroBits = function zeroBits() {
+ if (this.isZero())
+ return 0;
+ var r = 0;
+ for (var i = 0; i < this.length; i++) {
+ var b = this._zeroBits(this.words[i]);
+ r += b;
+ if (b !== 26)
+ break;
+ }
+ return r;
+ };
+ BN.prototype.byteLength = function byteLength() {
+ return Math.ceil(this.bitLength() / 8);
+ };
+ BN.prototype.toTwos = function toTwos(width) {
+ if (this.negative !== 0) {
+ return this.abs().inotn(width).iaddn(1);
+ }
+ return this.clone();
+ };
+ BN.prototype.fromTwos = function fromTwos(width) {
+ if (this.testn(width - 1)) {
+ return this.notn(width).iaddn(1).ineg();
+ }
+ return this.clone();
+ };
+ BN.prototype.isNeg = function isNeg() {
+ return this.negative !== 0;
+ };
+ BN.prototype.neg = function neg() {
+ return this.clone().ineg();
+ };
+ BN.prototype.ineg = function ineg() {
+ if (!this.isZero()) {
+ this.negative ^= 1;
+ }
+ return this;
+ };
+ BN.prototype.iuor = function iuor(num) {
+ while (this.length < num.length) {
+ this.words[this.length++] = 0;
+ }
+ for (var i = 0; i < num.length; i++) {
+ this.words[i] = this.words[i] | num.words[i];
+ }
+ return this._strip();
+ };
+ BN.prototype.ior = function ior(num) {
+ assert((this.negative | num.negative) === 0);
+ return this.iuor(num);
+ };
+ BN.prototype.or = function or(num) {
+ if (this.length > num.length)
+ return this.clone().ior(num);
+ return num.clone().ior(this);
+ };
+ BN.prototype.uor = function uor(num) {
+ if (this.length > num.length)
+ return this.clone().iuor(num);
+ return num.clone().iuor(this);
+ };
+ BN.prototype.iuand = function iuand(num) {
+ var b;
+ if (this.length > num.length) {
+ b = num;
+ } else {
+ b = this;
+ }
+ for (var i = 0; i < b.length; i++) {
+ this.words[i] = this.words[i] & num.words[i];
+ }
+ this.length = b.length;
+ return this._strip();
+ };
+ BN.prototype.iand = function iand(num) {
+ assert((this.negative | num.negative) === 0);
+ return this.iuand(num);
+ };
+ BN.prototype.and = function and(num) {
+ if (this.length > num.length)
+ return this.clone().iand(num);
+ return num.clone().iand(this);
+ };
+ BN.prototype.uand = function uand(num) {
+ if (this.length > num.length)
+ return this.clone().iuand(num);
+ return num.clone().iuand(this);
+ };
+ BN.prototype.iuxor = function iuxor(num) {
+ var a;
+ var b;
+ if (this.length > num.length) {
+ a = this;
+ b = num;
+ } else {
+ a = num;
+ b = this;
+ }
+ for (var i = 0; i < b.length; i++) {
+ this.words[i] = a.words[i] ^ b.words[i];
+ }
+ if (this !== a) {
+ for (; i < a.length; i++) {
+ this.words[i] = a.words[i];
+ }
+ }
+ this.length = a.length;
+ return this._strip();
+ };
+ BN.prototype.ixor = function ixor(num) {
+ assert((this.negative | num.negative) === 0);
+ return this.iuxor(num);
+ };
+ BN.prototype.xor = function xor(num) {
+ if (this.length > num.length)
+ return this.clone().ixor(num);
+ return num.clone().ixor(this);
+ };
+ BN.prototype.uxor = function uxor(num) {
+ if (this.length > num.length)
+ return this.clone().iuxor(num);
+ return num.clone().iuxor(this);
+ };
+ BN.prototype.inotn = function inotn(width) {
+ assert(typeof width === "number" && width >= 0);
+ var bytesNeeded = Math.ceil(width / 26) | 0;
+ var bitsLeft = width % 26;
+ this._expand(bytesNeeded);
+ if (bitsLeft > 0) {
+ bytesNeeded--;
+ }
+ for (var i = 0; i < bytesNeeded; i++) {
+ this.words[i] = ~this.words[i] & 67108863;
+ }
+ if (bitsLeft > 0) {
+ this.words[i] = ~this.words[i] & 67108863 >> 26 - bitsLeft;
+ }
+ return this._strip();
+ };
+ BN.prototype.notn = function notn(width) {
+ return this.clone().inotn(width);
+ };
+ BN.prototype.setn = function setn(bit, val) {
+ assert(typeof bit === "number" && bit >= 0);
+ var off = bit / 26 | 0;
+ var wbit = bit % 26;
+ this._expand(off + 1);
+ if (val) {
+ this.words[off] = this.words[off] | 1 << wbit;
+ } else {
+ this.words[off] = this.words[off] & ~(1 << wbit);
+ }
+ return this._strip();
+ };
+ BN.prototype.iadd = function iadd(num) {
+ var r;
+ if (this.negative !== 0 && num.negative === 0) {
+ this.negative = 0;
+ r = this.isub(num);
+ this.negative ^= 1;
+ return this._normSign();
+ } else if (this.negative === 0 && num.negative !== 0) {
+ num.negative = 0;
+ r = this.isub(num);
+ num.negative = 1;
+ return r._normSign();
+ }
+ var a, b;
+ if (this.length > num.length) {
+ a = this;
+ b = num;
+ } else {
+ a = num;
+ b = this;
+ }
+ var carry = 0;
+ for (var i = 0; i < b.length; i++) {
+ r = (a.words[i] | 0) + (b.words[i] | 0) + carry;
+ this.words[i] = r & 67108863;
+ carry = r >>> 26;
+ }
+ for (; carry !== 0 && i < a.length; i++) {
+ r = (a.words[i] | 0) + carry;
+ this.words[i] = r & 67108863;
+ carry = r >>> 26;
+ }
+ this.length = a.length;
+ if (carry !== 0) {
+ this.words[this.length] = carry;
+ this.length++;
+ } else if (a !== this) {
+ for (; i < a.length; i++) {
+ this.words[i] = a.words[i];
+ }
+ }
+ return this;
+ };
+ BN.prototype.add = function add(num) {
+ var res;
+ if (num.negative !== 0 && this.negative === 0) {
+ num.negative = 0;
+ res = this.sub(num);
+ num.negative ^= 1;
+ return res;
+ } else if (num.negative === 0 && this.negative !== 0) {
+ this.negative = 0;
+ res = num.sub(this);
+ this.negative = 1;
+ return res;
+ }
+ if (this.length > num.length)
+ return this.clone().iadd(num);
+ return num.clone().iadd(this);
+ };
+ BN.prototype.isub = function isub(num) {
+ if (num.negative !== 0) {
+ num.negative = 0;
+ var r = this.iadd(num);
+ num.negative = 1;
+ return r._normSign();
+ } else if (this.negative !== 0) {
+ this.negative = 0;
+ this.iadd(num);
+ this.negative = 1;
+ return this._normSign();
+ }
+ var cmp = this.cmp(num);
+ if (cmp === 0) {
+ this.negative = 0;
+ this.length = 1;
+ this.words[0] = 0;
+ return this;
+ }
+ var a, b;
+ if (cmp > 0) {
+ a = this;
+ b = num;
+ } else {
+ a = num;
+ b = this;
+ }
+ var carry = 0;
+ for (var i = 0; i < b.length; i++) {
+ r = (a.words[i] | 0) - (b.words[i] | 0) + carry;
+ carry = r >> 26;
+ this.words[i] = r & 67108863;
+ }
+ for (; carry !== 0 && i < a.length; i++) {
+ r = (a.words[i] | 0) + carry;
+ carry = r >> 26;
+ this.words[i] = r & 67108863;
+ }
+ if (carry === 0 && i < a.length && a !== this) {
+ for (; i < a.length; i++) {
+ this.words[i] = a.words[i];
+ }
+ }
+ this.length = Math.max(this.length, i);
+ if (a !== this) {
+ this.negative = 1;
+ }
+ return this._strip();
+ };
+ BN.prototype.sub = function sub(num) {
+ return this.clone().isub(num);
+ };
+ function smallMulTo(self2, num, out) {
+ out.negative = num.negative ^ self2.negative;
+ var len = self2.length + num.length | 0;
+ out.length = len;
+ len = len - 1 | 0;
+ var a = self2.words[0] | 0;
+ var b = num.words[0] | 0;
+ var r = a * b;
+ var lo = r & 67108863;
+ var carry = r / 67108864 | 0;
+ out.words[0] = lo;
+ for (var k = 1; k < len; k++) {
+ var ncarry = carry >>> 26;
+ var rword = carry & 67108863;
+ var maxJ = Math.min(k, num.length - 1);
+ for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) {
+ var i = k - j | 0;
+ a = self2.words[i] | 0;
+ b = num.words[j] | 0;
+ r = a * b + rword;
+ ncarry += r / 67108864 | 0;
+ rword = r & 67108863;
+ }
+ out.words[k] = rword | 0;
+ carry = ncarry | 0;
+ }
+ if (carry !== 0) {
+ out.words[k] = carry | 0;
+ } else {
+ out.length--;
+ }
+ return out._strip();
+ }
+ var comb10MulTo = function comb10MulTo2(self2, num, out) {
+ var a = self2.words;
+ var b = num.words;
+ var o = out.words;
+ var c = 0;
+ var lo;
+ var mid;
+ var hi;
+ var a0 = a[0] | 0;
+ var al0 = a0 & 8191;
+ var ah0 = a0 >>> 13;
+ var a1 = a[1] | 0;
+ var al1 = a1 & 8191;
+ var ah1 = a1 >>> 13;
+ var a2 = a[2] | 0;
+ var al2 = a2 & 8191;
+ var ah2 = a2 >>> 13;
+ var a3 = a[3] | 0;
+ var al3 = a3 & 8191;
+ var ah3 = a3 >>> 13;
+ var a4 = a[4] | 0;
+ var al4 = a4 & 8191;
+ var ah4 = a4 >>> 13;
+ var a5 = a[5] | 0;
+ var al5 = a5 & 8191;
+ var ah5 = a5 >>> 13;
+ var a6 = a[6] | 0;
+ var al6 = a6 & 8191;
+ var ah6 = a6 >>> 13;
+ var a7 = a[7] | 0;
+ var al7 = a7 & 8191;
+ var ah7 = a7 >>> 13;
+ var a8 = a[8] | 0;
+ var al8 = a8 & 8191;
+ var ah8 = a8 >>> 13;
+ var a9 = a[9] | 0;
+ var al9 = a9 & 8191;
+ var ah9 = a9 >>> 13;
+ var b0 = b[0] | 0;
+ var bl0 = b0 & 8191;
+ var bh0 = b0 >>> 13;
+ var b1 = b[1] | 0;
+ var bl1 = b1 & 8191;
+ var bh1 = b1 >>> 13;
+ var b2 = b[2] | 0;
+ var bl2 = b2 & 8191;
+ var bh2 = b2 >>> 13;
+ var b3 = b[3] | 0;
+ var bl3 = b3 & 8191;
+ var bh3 = b3 >>> 13;
+ var b4 = b[4] | 0;
+ var bl4 = b4 & 8191;
+ var bh4 = b4 >>> 13;
+ var b5 = b[5] | 0;
+ var bl5 = b5 & 8191;
+ var bh5 = b5 >>> 13;
+ var b6 = b[6] | 0;
+ var bl6 = b6 & 8191;
+ var bh6 = b6 >>> 13;
+ var b7 = b[7] | 0;
+ var bl7 = b7 & 8191;
+ var bh7 = b7 >>> 13;
+ var b8 = b[8] | 0;
+ var bl8 = b8 & 8191;
+ var bh8 = b8 >>> 13;
+ var b9 = b[9] | 0;
+ var bl9 = b9 & 8191;
+ var bh9 = b9 >>> 13;
+ out.negative = self2.negative ^ num.negative;
+ out.length = 19;
+ lo = Math.imul(al0, bl0);
+ mid = Math.imul(al0, bh0);
+ mid = mid + Math.imul(ah0, bl0) | 0;
+ hi = Math.imul(ah0, bh0);
+ var w0 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;
+ w0 &= 67108863;
+ lo = Math.imul(al1, bl0);
+ mid = Math.imul(al1, bh0);
+ mid = mid + Math.imul(ah1, bl0) | 0;
+ hi = Math.imul(ah1, bh0);
+ lo = lo + Math.imul(al0, bl1) | 0;
+ mid = mid + Math.imul(al0, bh1) | 0;
+ mid = mid + Math.imul(ah0, bl1) | 0;
+ hi = hi + Math.imul(ah0, bh1) | 0;
+ var w1 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;
+ w1 &= 67108863;
+ lo = Math.imul(al2, bl0);
+ mid = Math.imul(al2, bh0);
+ mid = mid + Math.imul(ah2, bl0) | 0;
+ hi = Math.imul(ah2, bh0);
+ lo = lo + Math.imul(al1, bl1) | 0;
+ mid = mid + Math.imul(al1, bh1) | 0;
+ mid = mid + Math.imul(ah1, bl1) | 0;
+ hi = hi + Math.imul(ah1, bh1) | 0;
+ lo = lo + Math.imul(al0, bl2) | 0;
+ mid = mid + Math.imul(al0, bh2) | 0;
+ mid = mid + Math.imul(ah0, bl2) | 0;
+ hi = hi + Math.imul(ah0, bh2) | 0;
+ var w2 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;
+ w2 &= 67108863;
+ lo = Math.imul(al3, bl0);
+ mid = Math.imul(al3, bh0);
+ mid = mid + Math.imul(ah3, bl0) | 0;
+ hi = Math.imul(ah3, bh0);
+ lo = lo + Math.imul(al2, bl1) | 0;
+ mid = mid + Math.imul(al2, bh1) | 0;
+ mid = mid + Math.imul(ah2, bl1) | 0;
+ hi = hi + Math.imul(ah2, bh1) | 0;
+ lo = lo + Math.imul(al1, bl2) | 0;
+ mid = mid + Math.imul(al1, bh2) | 0;
+ mid = mid + Math.imul(ah1, bl2) | 0;
+ hi = hi + Math.imul(ah1, bh2) | 0;
+ lo = lo + Math.imul(al0, bl3) | 0;
+ mid = mid + Math.imul(al0, bh3) | 0;
+ mid = mid + Math.imul(ah0, bl3) | 0;
+ hi = hi + Math.imul(ah0, bh3) | 0;
+ var w3 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;
+ w3 &= 67108863;
+ lo = Math.imul(al4, bl0);
+ mid = Math.imul(al4, bh0);
+ mid = mid + Math.imul(ah4, bl0) | 0;
+ hi = Math.imul(ah4, bh0);
+ lo = lo + Math.imul(al3, bl1) | 0;
+ mid = mid + Math.imul(al3, bh1) | 0;
+ mid = mid + Math.imul(ah3, bl1) | 0;
+ hi = hi + Math.imul(ah3, bh1) | 0;
+ lo = lo + Math.imul(al2, bl2) | 0;
+ mid = mid + Math.imul(al2, bh2) | 0;
+ mid = mid + Math.imul(ah2, bl2) | 0;
+ hi = hi + Math.imul(ah2, bh2) | 0;
+ lo = lo + Math.imul(al1, bl3) | 0;
+ mid = mid + Math.imul(al1, bh3) | 0;
+ mid = mid + Math.imul(ah1, bl3) | 0;
+ hi = hi + Math.imul(ah1, bh3) | 0;
+ lo = lo + Math.imul(al0, bl4) | 0;
+ mid = mid + Math.imul(al0, bh4) | 0;
+ mid = mid + Math.imul(ah0, bl4) | 0;
+ hi = hi + Math.imul(ah0, bh4) | 0;
+ var w4 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;
+ w4 &= 67108863;
+ lo = Math.imul(al5, bl0);
+ mid = Math.imul(al5, bh0);
+ mid = mid + Math.imul(ah5, bl0) | 0;
+ hi = Math.imul(ah5, bh0);
+ lo = lo + Math.imul(al4, bl1) | 0;
+ mid = mid + Math.imul(al4, bh1) | 0;
+ mid = mid + Math.imul(ah4, bl1) | 0;
+ hi = hi + Math.imul(ah4, bh1) | 0;
+ lo = lo + Math.imul(al3, bl2) | 0;
+ mid = mid + Math.imul(al3, bh2) | 0;
+ mid = mid + Math.imul(ah3, bl2) | 0;
+ hi = hi + Math.imul(ah3, bh2) | 0;
+ lo = lo + Math.imul(al2, bl3) | 0;
+ mid = mid + Math.imul(al2, bh3) | 0;
+ mid = mid + Math.imul(ah2, bl3) | 0;
+ hi = hi + Math.imul(ah2, bh3) | 0;
+ lo = lo + Math.imul(al1, bl4) | 0;
+ mid = mid + Math.imul(al1, bh4) | 0;
+ mid = mid + Math.imul(ah1, bl4) | 0;
+ hi = hi + Math.imul(ah1, bh4) | 0;
+ lo = lo + Math.imul(al0, bl5) | 0;
+ mid = mid + Math.imul(al0, bh5) | 0;
+ mid = mid + Math.imul(ah0, bl5) | 0;
+ hi = hi + Math.imul(ah0, bh5) | 0;
+ var w5 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;
+ w5 &= 67108863;
+ lo = Math.imul(al6, bl0);
+ mid = Math.imul(al6, bh0);
+ mid = mid + Math.imul(ah6, bl0) | 0;
+ hi = Math.imul(ah6, bh0);
+ lo = lo + Math.imul(al5, bl1) | 0;
+ mid = mid + Math.imul(al5, bh1) | 0;
+ mid = mid + Math.imul(ah5, bl1) | 0;
+ hi = hi + Math.imul(ah5, bh1) | 0;
+ lo = lo + Math.imul(al4, bl2) | 0;
+ mid = mid + Math.imul(al4, bh2) | 0;
+ mid = mid + Math.imul(ah4, bl2) | 0;
+ hi = hi + Math.imul(ah4, bh2) | 0;
+ lo = lo + Math.imul(al3, bl3) | 0;
+ mid = mid + Math.imul(al3, bh3) | 0;
+ mid = mid + Math.imul(ah3, bl3) | 0;
+ hi = hi + Math.imul(ah3, bh3) | 0;
+ lo = lo + Math.imul(al2, bl4) | 0;
+ mid = mid + Math.imul(al2, bh4) | 0;
+ mid = mid + Math.imul(ah2, bl4) | 0;
+ hi = hi + Math.imul(ah2, bh4) | 0;
+ lo = lo + Math.imul(al1, bl5) | 0;
+ mid = mid + Math.imul(al1, bh5) | 0;
+ mid = mid + Math.imul(ah1, bl5) | 0;
+ hi = hi + Math.imul(ah1, bh5) | 0;
+ lo = lo + Math.imul(al0, bl6) | 0;
+ mid = mid + Math.imul(al0, bh6) | 0;
+ mid = mid + Math.imul(ah0, bl6) | 0;
+ hi = hi + Math.imul(ah0, bh6) | 0;
+ var w6 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;
+ w6 &= 67108863;
+ lo = Math.imul(al7, bl0);
+ mid = Math.imul(al7, bh0);
+ mid = mid + Math.imul(ah7, bl0) | 0;
+ hi = Math.imul(ah7, bh0);
+ lo = lo + Math.imul(al6, bl1) | 0;
+ mid = mid + Math.imul(al6, bh1) | 0;
+ mid = mid + Math.imul(ah6, bl1) | 0;
+ hi = hi + Math.imul(ah6, bh1) | 0;
+ lo = lo + Math.imul(al5, bl2) | 0;
+ mid = mid + Math.imul(al5, bh2) | 0;
+ mid = mid + Math.imul(ah5, bl2) | 0;
+ hi = hi + Math.imul(ah5, bh2) | 0;
+ lo = lo + Math.imul(al4, bl3) | 0;
+ mid = mid + Math.imul(al4, bh3) | 0;
+ mid = mid + Math.imul(ah4, bl3) | 0;
+ hi = hi + Math.imul(ah4, bh3) | 0;
+ lo = lo + Math.imul(al3, bl4) | 0;
+ mid = mid + Math.imul(al3, bh4) | 0;
+ mid = mid + Math.imul(ah3, bl4) | 0;
+ hi = hi + Math.imul(ah3, bh4) | 0;
+ lo = lo + Math.imul(al2, bl5) | 0;
+ mid = mid + Math.imul(al2, bh5) | 0;
+ mid = mid + Math.imul(ah2, bl5) | 0;
+ hi = hi + Math.imul(ah2, bh5) | 0;
+ lo = lo + Math.imul(al1, bl6) | 0;
+ mid = mid + Math.imul(al1, bh6) | 0;
+ mid = mid + Math.imul(ah1, bl6) | 0;
+ hi = hi + Math.imul(ah1, bh6) | 0;
+ lo = lo + Math.imul(al0, bl7) | 0;
+ mid = mid + Math.imul(al0, bh7) | 0;
+ mid = mid + Math.imul(ah0, bl7) | 0;
+ hi = hi + Math.imul(ah0, bh7) | 0;
+ var w7 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;
+ w7 &= 67108863;
+ lo = Math.imul(al8, bl0);
+ mid = Math.imul(al8, bh0);
+ mid = mid + Math.imul(ah8, bl0) | 0;
+ hi = Math.imul(ah8, bh0);
+ lo = lo + Math.imul(al7, bl1) | 0;
+ mid = mid + Math.imul(al7, bh1) | 0;
+ mid = mid + Math.imul(ah7, bl1) | 0;
+ hi = hi + Math.imul(ah7, bh1) | 0;
+ lo = lo + Math.imul(al6, bl2) | 0;
+ mid = mid + Math.imul(al6, bh2) | 0;
+ mid = mid + Math.imul(ah6, bl2) | 0;
+ hi = hi + Math.imul(ah6, bh2) | 0;
+ lo = lo + Math.imul(al5, bl3) | 0;
+ mid = mid + Math.imul(al5, bh3) | 0;
+ mid = mid + Math.imul(ah5, bl3) | 0;
+ hi = hi + Math.imul(ah5, bh3) | 0;
+ lo = lo + Math.imul(al4, bl4) | 0;
+ mid = mid + Math.imul(al4, bh4) | 0;
+ mid = mid + Math.imul(ah4, bl4) | 0;
+ hi = hi + Math.imul(ah4, bh4) | 0;
+ lo = lo + Math.imul(al3, bl5) | 0;
+ mid = mid + Math.imul(al3, bh5) | 0;
+ mid = mid + Math.imul(ah3, bl5) | 0;
+ hi = hi + Math.imul(ah3, bh5) | 0;
+ lo = lo + Math.imul(al2, bl6) | 0;
+ mid = mid + Math.imul(al2, bh6) | 0;
+ mid = mid + Math.imul(ah2, bl6) | 0;
+ hi = hi + Math.imul(ah2, bh6) | 0;
+ lo = lo + Math.imul(al1, bl7) | 0;
+ mid = mid + Math.imul(al1, bh7) | 0;
+ mid = mid + Math.imul(ah1, bl7) | 0;
+ hi = hi + Math.imul(ah1, bh7) | 0;
+ lo = lo + Math.imul(al0, bl8) | 0;
+ mid = mid + Math.imul(al0, bh8) | 0;
+ mid = mid + Math.imul(ah0, bl8) | 0;
+ hi = hi + Math.imul(ah0, bh8) | 0;
+ var w8 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;
+ w8 &= 67108863;
+ lo = Math.imul(al9, bl0);
+ mid = Math.imul(al9, bh0);
+ mid = mid + Math.imul(ah9, bl0) | 0;
+ hi = Math.imul(ah9, bh0);
+ lo = lo + Math.imul(al8, bl1) | 0;
+ mid = mid + Math.imul(al8, bh1) | 0;
+ mid = mid + Math.imul(ah8, bl1) | 0;
+ hi = hi + Math.imul(ah8, bh1) | 0;
+ lo = lo + Math.imul(al7, bl2) | 0;
+ mid = mid + Math.imul(al7, bh2) | 0;
+ mid = mid + Math.imul(ah7, bl2) | 0;
+ hi = hi + Math.imul(ah7, bh2) | 0;
+ lo = lo + Math.imul(al6, bl3) | 0;
+ mid = mid + Math.imul(al6, bh3) | 0;
+ mid = mid + Math.imul(ah6, bl3) | 0;
+ hi = hi + Math.imul(ah6, bh3) | 0;
+ lo = lo + Math.imul(al5, bl4) | 0;
+ mid = mid + Math.imul(al5, bh4) | 0;
+ mid = mid + Math.imul(ah5, bl4) | 0;
+ hi = hi + Math.imul(ah5, bh4) | 0;
+ lo = lo + Math.imul(al4, bl5) | 0;
+ mid = mid + Math.imul(al4, bh5) | 0;
+ mid = mid + Math.imul(ah4, bl5) | 0;
+ hi = hi + Math.imul(ah4, bh5) | 0;
+ lo = lo + Math.imul(al3, bl6) | 0;
+ mid = mid + Math.imul(al3, bh6) | 0;
+ mid = mid + Math.imul(ah3, bl6) | 0;
+ hi = hi + Math.imul(ah3, bh6) | 0;
+ lo = lo + Math.imul(al2, bl7) | 0;
+ mid = mid + Math.imul(al2, bh7) | 0;
+ mid = mid + Math.imul(ah2, bl7) | 0;
+ hi = hi + Math.imul(ah2, bh7) | 0;
+ lo = lo + Math.imul(al1, bl8) | 0;
+ mid = mid + Math.imul(al1, bh8) | 0;
+ mid = mid + Math.imul(ah1, bl8) | 0;
+ hi = hi + Math.imul(ah1, bh8) | 0;
+ lo = lo + Math.imul(al0, bl9) | 0;
+ mid = mid + Math.imul(al0, bh9) | 0;
+ mid = mid + Math.imul(ah0, bl9) | 0;
+ hi = hi + Math.imul(ah0, bh9) | 0;
+ var w9 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;
+ w9 &= 67108863;
+ lo = Math.imul(al9, bl1);
+ mid = Math.imul(al9, bh1);
+ mid = mid + Math.imul(ah9, bl1) | 0;
+ hi = Math.imul(ah9, bh1);
+ lo = lo + Math.imul(al8, bl2) | 0;
+ mid = mid + Math.imul(al8, bh2) | 0;
+ mid = mid + Math.imul(ah8, bl2) | 0;
+ hi = hi + Math.imul(ah8, bh2) | 0;
+ lo = lo + Math.imul(al7, bl3) | 0;
+ mid = mid + Math.imul(al7, bh3) | 0;
+ mid = mid + Math.imul(ah7, bl3) | 0;
+ hi = hi + Math.imul(ah7, bh3) | 0;
+ lo = lo + Math.imul(al6, bl4) | 0;
+ mid = mid + Math.imul(al6, bh4) | 0;
+ mid = mid + Math.imul(ah6, bl4) | 0;
+ hi = hi + Math.imul(ah6, bh4) | 0;
+ lo = lo + Math.imul(al5, bl5) | 0;
+ mid = mid + Math.imul(al5, bh5) | 0;
+ mid = mid + Math.imul(ah5, bl5) | 0;
+ hi = hi + Math.imul(ah5, bh5) | 0;
+ lo = lo + Math.imul(al4, bl6) | 0;
+ mid = mid + Math.imul(al4, bh6) | 0;
+ mid = mid + Math.imul(ah4, bl6) | 0;
+ hi = hi + Math.imul(ah4, bh6) | 0;
+ lo = lo + Math.imul(al3, bl7) | 0;
+ mid = mid + Math.imul(al3, bh7) | 0;
+ mid = mid + Math.imul(ah3, bl7) | 0;
+ hi = hi + Math.imul(ah3, bh7) | 0;
+ lo = lo + Math.imul(al2, bl8) | 0;
+ mid = mid + Math.imul(al2, bh8) | 0;
+ mid = mid + Math.imul(ah2, bl8) | 0;
+ hi = hi + Math.imul(ah2, bh8) | 0;
+ lo = lo + Math.imul(al1, bl9) | 0;
+ mid = mid + Math.imul(al1, bh9) | 0;
+ mid = mid + Math.imul(ah1, bl9) | 0;
+ hi = hi + Math.imul(ah1, bh9) | 0;
+ var w10 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;
+ w10 &= 67108863;
+ lo = Math.imul(al9, bl2);
+ mid = Math.imul(al9, bh2);
+ mid = mid + Math.imul(ah9, bl2) | 0;
+ hi = Math.imul(ah9, bh2);
+ lo = lo + Math.imul(al8, bl3) | 0;
+ mid = mid + Math.imul(al8, bh3) | 0;
+ mid = mid + Math.imul(ah8, bl3) | 0;
+ hi = hi + Math.imul(ah8, bh3) | 0;
+ lo = lo + Math.imul(al7, bl4) | 0;
+ mid = mid + Math.imul(al7, bh4) | 0;
+ mid = mid + Math.imul(ah7, bl4) | 0;
+ hi = hi + Math.imul(ah7, bh4) | 0;
+ lo = lo + Math.imul(al6, bl5) | 0;
+ mid = mid + Math.imul(al6, bh5) | 0;
+ mid = mid + Math.imul(ah6, bl5) | 0;
+ hi = hi + Math.imul(ah6, bh5) | 0;
+ lo = lo + Math.imul(al5, bl6) | 0;
+ mid = mid + Math.imul(al5, bh6) | 0;
+ mid = mid + Math.imul(ah5, bl6) | 0;
+ hi = hi + Math.imul(ah5, bh6) | 0;
+ lo = lo + Math.imul(al4, bl7) | 0;
+ mid = mid + Math.imul(al4, bh7) | 0;
+ mid = mid + Math.imul(ah4, bl7) | 0;
+ hi = hi + Math.imul(ah4, bh7) | 0;
+ lo = lo + Math.imul(al3, bl8) | 0;
+ mid = mid + Math.imul(al3, bh8) | 0;
+ mid = mid + Math.imul(ah3, bl8) | 0;
+ hi = hi + Math.imul(ah3, bh8) | 0;
+ lo = lo + Math.imul(al2, bl9) | 0;
+ mid = mid + Math.imul(al2, bh9) | 0;
+ mid = mid + Math.imul(ah2, bl9) | 0;
+ hi = hi + Math.imul(ah2, bh9) | 0;
+ var w11 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;
+ w11 &= 67108863;
+ lo = Math.imul(al9, bl3);
+ mid = Math.imul(al9, bh3);
+ mid = mid + Math.imul(ah9, bl3) | 0;
+ hi = Math.imul(ah9, bh3);
+ lo = lo + Math.imul(al8, bl4) | 0;
+ mid = mid + Math.imul(al8, bh4) | 0;
+ mid = mid + Math.imul(ah8, bl4) | 0;
+ hi = hi + Math.imul(ah8, bh4) | 0;
+ lo = lo + Math.imul(al7, bl5) | 0;
+ mid = mid + Math.imul(al7, bh5) | 0;
+ mid = mid + Math.imul(ah7, bl5) | 0;
+ hi = hi + Math.imul(ah7, bh5) | 0;
+ lo = lo + Math.imul(al6, bl6) | 0;
+ mid = mid + Math.imul(al6, bh6) | 0;
+ mid = mid + Math.imul(ah6, bl6) | 0;
+ hi = hi + Math.imul(ah6, bh6) | 0;
+ lo = lo + Math.imul(al5, bl7) | 0;
+ mid = mid + Math.imul(al5, bh7) | 0;
+ mid = mid + Math.imul(ah5, bl7) | 0;
+ hi = hi + Math.imul(ah5, bh7) | 0;
+ lo = lo + Math.imul(al4, bl8) | 0;
+ mid = mid + Math.imul(al4, bh8) | 0;
+ mid = mid + Math.imul(ah4, bl8) | 0;
+ hi = hi + Math.imul(ah4, bh8) | 0;
+ lo = lo + Math.imul(al3, bl9) | 0;
+ mid = mid + Math.imul(al3, bh9) | 0;
+ mid = mid + Math.imul(ah3, bl9) | 0;
+ hi = hi + Math.imul(ah3, bh9) | 0;
+ var w12 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;
+ w12 &= 67108863;
+ lo = Math.imul(al9, bl4);
+ mid = Math.imul(al9, bh4);
+ mid = mid + Math.imul(ah9, bl4) | 0;
+ hi = Math.imul(ah9, bh4);
+ lo = lo + Math.imul(al8, bl5) | 0;
+ mid = mid + Math.imul(al8, bh5) | 0;
+ mid = mid + Math.imul(ah8, bl5) | 0;
+ hi = hi + Math.imul(ah8, bh5) | 0;
+ lo = lo + Math.imul(al7, bl6) | 0;
+ mid = mid + Math.imul(al7, bh6) | 0;
+ mid = mid + Math.imul(ah7, bl6) | 0;
+ hi = hi + Math.imul(ah7, bh6) | 0;
+ lo = lo + Math.imul(al6, bl7) | 0;
+ mid = mid + Math.imul(al6, bh7) | 0;
+ mid = mid + Math.imul(ah6, bl7) | 0;
+ hi = hi + Math.imul(ah6, bh7) | 0;
+ lo = lo + Math.imul(al5, bl8) | 0;
+ mid = mid + Math.imul(al5, bh8) | 0;
+ mid = mid + Math.imul(ah5, bl8) | 0;
+ hi = hi + Math.imul(ah5, bh8) | 0;
+ lo = lo + Math.imul(al4, bl9) | 0;
+ mid = mid + Math.imul(al4, bh9) | 0;
+ mid = mid + Math.imul(ah4, bl9) | 0;
+ hi = hi + Math.imul(ah4, bh9) | 0;
+ var w13 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;
+ w13 &= 67108863;
+ lo = Math.imul(al9, bl5);
+ mid = Math.imul(al9, bh5);
+ mid = mid + Math.imul(ah9, bl5) | 0;
+ hi = Math.imul(ah9, bh5);
+ lo = lo + Math.imul(al8, bl6) | 0;
+ mid = mid + Math.imul(al8, bh6) | 0;
+ mid = mid + Math.imul(ah8, bl6) | 0;
+ hi = hi + Math.imul(ah8, bh6) | 0;
+ lo = lo + Math.imul(al7, bl7) | 0;
+ mid = mid + Math.imul(al7, bh7) | 0;
+ mid = mid + Math.imul(ah7, bl7) | 0;
+ hi = hi + Math.imul(ah7, bh7) | 0;
+ lo = lo + Math.imul(al6, bl8) | 0;
+ mid = mid + Math.imul(al6, bh8) | 0;
+ mid = mid + Math.imul(ah6, bl8) | 0;
+ hi = hi + Math.imul(ah6, bh8) | 0;
+ lo = lo + Math.imul(al5, bl9) | 0;
+ mid = mid + Math.imul(al5, bh9) | 0;
+ mid = mid + Math.imul(ah5, bl9) | 0;
+ hi = hi + Math.imul(ah5, bh9) | 0;
+ var w14 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;
+ w14 &= 67108863;
+ lo = Math.imul(al9, bl6);
+ mid = Math.imul(al9, bh6);
+ mid = mid + Math.imul(ah9, bl6) | 0;
+ hi = Math.imul(ah9, bh6);
+ lo = lo + Math.imul(al8, bl7) | 0;
+ mid = mid + Math.imul(al8, bh7) | 0;
+ mid = mid + Math.imul(ah8, bl7) | 0;
+ hi = hi + Math.imul(ah8, bh7) | 0;
+ lo = lo + Math.imul(al7, bl8) | 0;
+ mid = mid + Math.imul(al7, bh8) | 0;
+ mid = mid + Math.imul(ah7, bl8) | 0;
+ hi = hi + Math.imul(ah7, bh8) | 0;
+ lo = lo + Math.imul(al6, bl9) | 0;
+ mid = mid + Math.imul(al6, bh9) | 0;
+ mid = mid + Math.imul(ah6, bl9) | 0;
+ hi = hi + Math.imul(ah6, bh9) | 0;
+ var w15 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;
+ w15 &= 67108863;
+ lo = Math.imul(al9, bl7);
+ mid = Math.imul(al9, bh7);
+ mid = mid + Math.imul(ah9, bl7) | 0;
+ hi = Math.imul(ah9, bh7);
+ lo = lo + Math.imul(al8, bl8) | 0;
+ mid = mid + Math.imul(al8, bh8) | 0;
+ mid = mid + Math.imul(ah8, bl8) | 0;
+ hi = hi + Math.imul(ah8, bh8) | 0;
+ lo = lo + Math.imul(al7, bl9) | 0;
+ mid = mid + Math.imul(al7, bh9) | 0;
+ mid = mid + Math.imul(ah7, bl9) | 0;
+ hi = hi + Math.imul(ah7, bh9) | 0;
+ var w16 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;
+ w16 &= 67108863;
+ lo = Math.imul(al9, bl8);
+ mid = Math.imul(al9, bh8);
+ mid = mid + Math.imul(ah9, bl8) | 0;
+ hi = Math.imul(ah9, bh8);
+ lo = lo + Math.imul(al8, bl9) | 0;
+ mid = mid + Math.imul(al8, bh9) | 0;
+ mid = mid + Math.imul(ah8, bl9) | 0;
+ hi = hi + Math.imul(ah8, bh9) | 0;
+ var w17 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;
+ w17 &= 67108863;
+ lo = Math.imul(al9, bl9);
+ mid = Math.imul(al9, bh9);
+ mid = mid + Math.imul(ah9, bl9) | 0;
+ hi = Math.imul(ah9, bh9);
+ var w18 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;
+ w18 &= 67108863;
+ o[0] = w0;
+ o[1] = w1;
+ o[2] = w2;
+ o[3] = w3;
+ o[4] = w4;
+ o[5] = w5;
+ o[6] = w6;
+ o[7] = w7;
+ o[8] = w8;
+ o[9] = w9;
+ o[10] = w10;
+ o[11] = w11;
+ o[12] = w12;
+ o[13] = w13;
+ o[14] = w14;
+ o[15] = w15;
+ o[16] = w16;
+ o[17] = w17;
+ o[18] = w18;
+ if (c !== 0) {
+ o[19] = c;
+ out.length++;
+ }
+ return out;
+ };
+ if (!Math.imul) {
+ comb10MulTo = smallMulTo;
+ }
+ function bigMulTo(self2, num, out) {
+ out.negative = num.negative ^ self2.negative;
+ out.length = self2.length + num.length;
+ var carry = 0;
+ var hncarry = 0;
+ for (var k = 0; k < out.length - 1; k++) {
+ var ncarry = hncarry;
+ hncarry = 0;
+ var rword = carry & 67108863;
+ var maxJ = Math.min(k, num.length - 1);
+ for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) {
+ var i = k - j;
+ var a = self2.words[i] | 0;
+ var b = num.words[j] | 0;
+ var r = a * b;
+ var lo = r & 67108863;
+ ncarry = ncarry + (r / 67108864 | 0) | 0;
+ lo = lo + rword | 0;
+ rword = lo & 67108863;
+ ncarry = ncarry + (lo >>> 26) | 0;
+ hncarry += ncarry >>> 26;
+ ncarry &= 67108863;
+ }
+ out.words[k] = rword;
+ carry = ncarry;
+ ncarry = hncarry;
+ }
+ if (carry !== 0) {
+ out.words[k] = carry;
+ } else {
+ out.length--;
+ }
+ return out._strip();
+ }
+ function jumboMulTo(self2, num, out) {
+ return bigMulTo(self2, num, out);
+ }
+ BN.prototype.mulTo = function mulTo(num, out) {
+ var res;
+ var len = this.length + num.length;
+ if (this.length === 10 && num.length === 10) {
+ res = comb10MulTo(this, num, out);
+ } else if (len < 63) {
+ res = smallMulTo(this, num, out);
+ } else if (len < 1024) {
+ res = bigMulTo(this, num, out);
+ } else {
+ res = jumboMulTo(this, num, out);
+ }
+ return res;
+ };
+ function FFTM(x, y) {
+ this.x = x;
+ this.y = y;
+ }
+ FFTM.prototype.makeRBT = function makeRBT(N) {
+ var t = new Array(N);
+ var l = BN.prototype._countBits(N) - 1;
+ for (var i = 0; i < N; i++) {
+ t[i] = this.revBin(i, l, N);
+ }
+ return t;
+ };
+ FFTM.prototype.revBin = function revBin(x, l, N) {
+ if (x === 0 || x === N - 1)
+ return x;
+ var rb = 0;
+ for (var i = 0; i < l; i++) {
+ rb |= (x & 1) << l - i - 1;
+ x >>= 1;
+ }
+ return rb;
+ };
+ FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {
+ for (var i = 0; i < N; i++) {
+ rtws[i] = rws[rbt[i]];
+ itws[i] = iws[rbt[i]];
+ }
+ };
+ FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {
+ this.permute(rbt, rws, iws, rtws, itws, N);
+ for (var s = 1; s < N; s <<= 1) {
+ var l = s << 1;
+ var rtwdf = Math.cos(2 * Math.PI / l);
+ var itwdf = Math.sin(2 * Math.PI / l);
+ for (var p = 0; p < N; p += l) {
+ var rtwdf_ = rtwdf;
+ var itwdf_ = itwdf;
+ for (var j = 0; j < s; j++) {
+ var re = rtws[p + j];
+ var ie = itws[p + j];
+ var ro = rtws[p + j + s];
+ var io = itws[p + j + s];
+ var rx = rtwdf_ * ro - itwdf_ * io;
+ io = rtwdf_ * io + itwdf_ * ro;
+ ro = rx;
+ rtws[p + j] = re + ro;
+ itws[p + j] = ie + io;
+ rtws[p + j + s] = re - ro;
+ itws[p + j + s] = ie - io;
+ if (j !== l) {
+ rx = rtwdf * rtwdf_ - itwdf * itwdf_;
+ itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
+ rtwdf_ = rx;
+ }
+ }
+ }
+ }
+ };
+ FFTM.prototype.guessLen13b = function guessLen13b(n, m) {
+ var N = Math.max(m, n) | 1;
+ var odd = N & 1;
+ var i = 0;
+ for (N = N / 2 | 0; N; N = N >>> 1) {
+ i++;
+ }
+ return 1 << i + 1 + odd;
+ };
+ FFTM.prototype.conjugate = function conjugate(rws, iws, N) {
+ if (N <= 1)
+ return;
+ for (var i = 0; i < N / 2; i++) {
+ var t = rws[i];
+ rws[i] = rws[N - i - 1];
+ rws[N - i - 1] = t;
+ t = iws[i];
+ iws[i] = -iws[N - i - 1];
+ iws[N - i - 1] = -t;
+ }
+ };
+ FFTM.prototype.normalize13b = function normalize13b(ws, N) {
+ var carry = 0;
+ for (var i = 0; i < N / 2; i++) {
+ var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
+ ws[i] = w & 67108863;
+ if (w < 67108864) {
+ carry = 0;
+ } else {
+ carry = w / 67108864 | 0;
+ }
+ }
+ return ws;
+ };
+ FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {
+ var carry = 0;
+ for (var i = 0; i < len; i++) {
+ carry = carry + (ws[i] | 0);
+ rws[2 * i] = carry & 8191;
+ carry = carry >>> 13;
+ rws[2 * i + 1] = carry & 8191;
+ carry = carry >>> 13;
+ }
+ for (i = 2 * len; i < N; ++i) {
+ rws[i] = 0;
+ }
+ assert(carry === 0);
+ assert((carry & ~8191) === 0);
+ };
+ FFTM.prototype.stub = function stub(N) {
+ var ph = new Array(N);
+ for (var i = 0; i < N; i++) {
+ ph[i] = 0;
+ }
+ return ph;
+ };
+ FFTM.prototype.mulp = function mulp(x, y, out) {
+ var N = 2 * this.guessLen13b(x.length, y.length);
+ var rbt = this.makeRBT(N);
+ var _ = this.stub(N);
+ var rws = new Array(N);
+ var rwst = new Array(N);
+ var iwst = new Array(N);
+ var nrws = new Array(N);
+ var nrwst = new Array(N);
+ var niwst = new Array(N);
+ var rmws = out.words;
+ rmws.length = N;
+ this.convert13b(x.words, x.length, rws, N);
+ this.convert13b(y.words, y.length, nrws, N);
+ this.transform(rws, _, rwst, iwst, N, rbt);
+ this.transform(nrws, _, nrwst, niwst, N, rbt);
+ for (var i = 0; i < N; i++) {
+ var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
+ iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
+ rwst[i] = rx;
+ }
+ this.conjugate(rwst, iwst, N);
+ this.transform(rwst, iwst, rmws, _, N, rbt);
+ this.conjugate(rmws, _, N);
+ this.normalize13b(rmws, N);
+ out.negative = x.negative ^ y.negative;
+ out.length = x.length + y.length;
+ return out._strip();
+ };
+ BN.prototype.mul = function mul(num) {
+ var out = new BN(null);
+ out.words = new Array(this.length + num.length);
+ return this.mulTo(num, out);
+ };
+ BN.prototype.mulf = function mulf(num) {
+ var out = new BN(null);
+ out.words = new Array(this.length + num.length);
+ return jumboMulTo(this, num, out);
+ };
+ BN.prototype.imul = function imul(num) {
+ return this.clone().mulTo(num, this);
+ };
+ BN.prototype.imuln = function imuln(num) {
+ var isNegNum = num < 0;
+ if (isNegNum)
+ num = -num;
+ assert(typeof num === "number");
+ assert(num < 67108864);
+ var carry = 0;
+ for (var i = 0; i < this.length; i++) {
+ var w = (this.words[i] | 0) * num;
+ var lo = (w & 67108863) + (carry & 67108863);
+ carry >>= 26;
+ carry += w / 67108864 | 0;
+ carry += lo >>> 26;
+ this.words[i] = lo & 67108863;
+ }
+ if (carry !== 0) {
+ this.words[i] = carry;
+ this.length++;
+ }
+ return isNegNum ? this.ineg() : this;
+ };
+ BN.prototype.muln = function muln(num) {
+ return this.clone().imuln(num);
+ };
+ BN.prototype.sqr = function sqr() {
+ return this.mul(this);
+ };
+ BN.prototype.isqr = function isqr() {
+ return this.imul(this.clone());
+ };
+ BN.prototype.pow = function pow(num) {
+ var w = toBitArray(num);
+ if (w.length === 0)
+ return new BN(1);
+ var res = this;
+ for (var i = 0; i < w.length; i++, res = res.sqr()) {
+ if (w[i] !== 0)
+ break;
+ }
+ if (++i < w.length) {
+ for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
+ if (w[i] === 0)
+ continue;
+ res = res.mul(q);
+ }
+ }
+ return res;
+ };
+ BN.prototype.iushln = function iushln(bits) {
+ assert(typeof bits === "number" && bits >= 0);
+ var r = bits % 26;
+ var s = (bits - r) / 26;
+ var carryMask = 67108863 >>> 26 - r << 26 - r;
+ var i;
+ if (r !== 0) {
+ var carry = 0;
+ for (i = 0; i < this.length; i++) {
+ var newCarry = this.words[i] & carryMask;
+ var c = (this.words[i] | 0) - newCarry << r;
+ this.words[i] = c | carry;
+ carry = newCarry >>> 26 - r;
+ }
+ if (carry) {
+ this.words[i] = carry;
+ this.length++;
+ }
+ }
+ if (s !== 0) {
+ for (i = this.length - 1; i >= 0; i--) {
+ this.words[i + s] = this.words[i];
+ }
+ for (i = 0; i < s; i++) {
+ this.words[i] = 0;
+ }
+ this.length += s;
+ }
+ return this._strip();
+ };
+ BN.prototype.ishln = function ishln(bits) {
+ assert(this.negative === 0);
+ return this.iushln(bits);
+ };
+ BN.prototype.iushrn = function iushrn(bits, hint, extended) {
+ assert(typeof bits === "number" && bits >= 0);
+ var h;
+ if (hint) {
+ h = (hint - hint % 26) / 26;
+ } else {
+ h = 0;
+ }
+ var r = bits % 26;
+ var s = Math.min((bits - r) / 26, this.length);
+ var mask = 67108863 ^ 67108863 >>> r << r;
+ var maskedWords = extended;
+ h -= s;
+ h = Math.max(0, h);
+ if (maskedWords) {
+ for (var i = 0; i < s; i++) {
+ maskedWords.words[i] = this.words[i];
+ }
+ maskedWords.length = s;
+ }
+ if (s === 0) {
+ } else if (this.length > s) {
+ this.length -= s;
+ for (i = 0; i < this.length; i++) {
+ this.words[i] = this.words[i + s];
+ }
+ } else {
+ this.words[0] = 0;
+ this.length = 1;
+ }
+ var carry = 0;
+ for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {
+ var word = this.words[i] | 0;
+ this.words[i] = carry << 26 - r | word >>> r;
+ carry = word & mask;
+ }
+ if (maskedWords && carry !== 0) {
+ maskedWords.words[maskedWords.length++] = carry;
+ }
+ if (this.length === 0) {
+ this.words[0] = 0;
+ this.length = 1;
+ }
+ return this._strip();
+ };
+ BN.prototype.ishrn = function ishrn(bits, hint, extended) {
+ assert(this.negative === 0);
+ return this.iushrn(bits, hint, extended);
+ };
+ BN.prototype.shln = function shln(bits) {
+ return this.clone().ishln(bits);
+ };
+ BN.prototype.ushln = function ushln(bits) {
+ return this.clone().iushln(bits);
+ };
+ BN.prototype.shrn = function shrn(bits) {
+ return this.clone().ishrn(bits);
+ };
+ BN.prototype.ushrn = function ushrn(bits) {
+ return this.clone().iushrn(bits);
+ };
+ BN.prototype.testn = function testn(bit) {
+ assert(typeof bit === "number" && bit >= 0);
+ var r = bit % 26;
+ var s = (bit - r) / 26;
+ var q = 1 << r;
+ if (this.length <= s)
+ return false;
+ var w = this.words[s];
+ return !!(w & q);
+ };
+ BN.prototype.imaskn = function imaskn(bits) {
+ assert(typeof bits === "number" && bits >= 0);
+ var r = bits % 26;
+ var s = (bits - r) / 26;
+ assert(this.negative === 0, "imaskn works only with positive numbers");
+ if (this.length <= s) {
+ return this;
+ }
+ if (r !== 0) {
+ s++;
+ }
+ this.length = Math.min(s, this.length);
+ if (r !== 0) {
+ var mask = 67108863 ^ 67108863 >>> r << r;
+ this.words[this.length - 1] &= mask;
+ }
+ return this._strip();
+ };
+ BN.prototype.maskn = function maskn(bits) {
+ return this.clone().imaskn(bits);
+ };
+ BN.prototype.iaddn = function iaddn(num) {
+ assert(typeof num === "number");
+ assert(num < 67108864);
+ if (num < 0)
+ return this.isubn(-num);
+ if (this.negative !== 0) {
+ if (this.length === 1 && (this.words[0] | 0) <= num) {
+ this.words[0] = num - (this.words[0] | 0);
+ this.negative = 0;
+ return this;
+ }
+ this.negative = 0;
+ this.isubn(num);
+ this.negative = 1;
+ return this;
+ }
+ return this._iaddn(num);
+ };
+ BN.prototype._iaddn = function _iaddn(num) {
+ this.words[0] += num;
+ for (var i = 0; i < this.length && this.words[i] >= 67108864; i++) {
+ this.words[i] -= 67108864;
+ if (i === this.length - 1) {
+ this.words[i + 1] = 1;
+ } else {
+ this.words[i + 1]++;
+ }
+ }
+ this.length = Math.max(this.length, i + 1);
+ return this;
+ };
+ BN.prototype.isubn = function isubn(num) {
+ assert(typeof num === "number");
+ assert(num < 67108864);
+ if (num < 0)
+ return this.iaddn(-num);
+ if (this.negative !== 0) {
+ this.negative = 0;
+ this.iaddn(num);
+ this.negative = 1;
+ return this;
+ }
+ this.words[0] -= num;
+ if (this.length === 1 && this.words[0] < 0) {
+ this.words[0] = -this.words[0];
+ this.negative = 1;
+ } else {
+ for (var i = 0; i < this.length && this.words[i] < 0; i++) {
+ this.words[i] += 67108864;
+ this.words[i + 1] -= 1;
+ }
+ }
+ return this._strip();
+ };
+ BN.prototype.addn = function addn(num) {
+ return this.clone().iaddn(num);
+ };
+ BN.prototype.subn = function subn(num) {
+ return this.clone().isubn(num);
+ };
+ BN.prototype.iabs = function iabs() {
+ this.negative = 0;
+ return this;
+ };
+ BN.prototype.abs = function abs() {
+ return this.clone().iabs();
+ };
+ BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {
+ var len = num.length + shift;
+ var i;
+ this._expand(len);
+ var w;
+ var carry = 0;
+ for (i = 0; i < num.length; i++) {
+ w = (this.words[i + shift] | 0) + carry;
+ var right = (num.words[i] | 0) * mul;
+ w -= right & 67108863;
+ carry = (w >> 26) - (right / 67108864 | 0);
+ this.words[i + shift] = w & 67108863;
+ }
+ for (; i < this.length - shift; i++) {
+ w = (this.words[i + shift] | 0) + carry;
+ carry = w >> 26;
+ this.words[i + shift] = w & 67108863;
+ }
+ if (carry === 0)
+ return this._strip();
+ assert(carry === -1);
+ carry = 0;
+ for (i = 0; i < this.length; i++) {
+ w = -(this.words[i] | 0) + carry;
+ carry = w >> 26;
+ this.words[i] = w & 67108863;
+ }
+ this.negative = 1;
+ return this._strip();
+ };
+ BN.prototype._wordDiv = function _wordDiv(num, mode) {
+ var shift = this.length - num.length;
+ var a = this.clone();
+ var b = num;
+ var bhi = b.words[b.length - 1] | 0;
+ var bhiBits = this._countBits(bhi);
+ shift = 26 - bhiBits;
+ if (shift !== 0) {
+ b = b.ushln(shift);
+ a.iushln(shift);
+ bhi = b.words[b.length - 1] | 0;
+ }
+ var m = a.length - b.length;
+ var q;
+ if (mode !== "mod") {
+ q = new BN(null);
+ q.length = m + 1;
+ q.words = new Array(q.length);
+ for (var i = 0; i < q.length; i++) {
+ q.words[i] = 0;
+ }
+ }
+ var diff = a.clone()._ishlnsubmul(b, 1, m);
+ if (diff.negative === 0) {
+ a = diff;
+ if (q) {
+ q.words[m] = 1;
+ }
+ }
+ for (var j = m - 1; j >= 0; j--) {
+ var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
+ qj = Math.min(qj / bhi | 0, 67108863);
+ a._ishlnsubmul(b, qj, j);
+ while (a.negative !== 0) {
+ qj--;
+ a.negative = 0;
+ a._ishlnsubmul(b, 1, j);
+ if (!a.isZero()) {
+ a.negative ^= 1;
+ }
+ }
+ if (q) {
+ q.words[j] = qj;
+ }
+ }
+ if (q) {
+ q._strip();
+ }
+ a._strip();
+ if (mode !== "div" && shift !== 0) {
+ a.iushrn(shift);
+ }
+ return {
+ div: q || null,
+ mod: a
+ };
+ };
+ BN.prototype.divmod = function divmod(num, mode, positive) {
+ assert(!num.isZero());
+ if (this.isZero()) {
+ return {
+ div: new BN(0),
+ mod: new BN(0)
+ };
+ }
+ var div, mod, res;
+ if (this.negative !== 0 && num.negative === 0) {
+ res = this.neg().divmod(num, mode);
+ if (mode !== "mod") {
+ div = res.div.neg();
+ }
+ if (mode !== "div") {
+ mod = res.mod.neg();
+ if (positive && mod.negative !== 0) {
+ mod.iadd(num);
+ }
+ }
+ return {
+ div,
+ mod
+ };
+ }
+ if (this.negative === 0 && num.negative !== 0) {
+ res = this.divmod(num.neg(), mode);
+ if (mode !== "mod") {
+ div = res.div.neg();
+ }
+ return {
+ div,
+ mod: res.mod
+ };
+ }
+ if ((this.negative & num.negative) !== 0) {
+ res = this.neg().divmod(num.neg(), mode);
+ if (mode !== "div") {
+ mod = res.mod.neg();
+ if (positive && mod.negative !== 0) {
+ mod.isub(num);
+ }
+ }
+ return {
+ div: res.div,
+ mod
+ };
+ }
+ if (num.length > this.length || this.cmp(num) < 0) {
+ return {
+ div: new BN(0),
+ mod: this
+ };
+ }
+ if (num.length === 1) {
+ if (mode === "div") {
+ return {
+ div: this.divn(num.words[0]),
+ mod: null
+ };
+ }
+ if (mode === "mod") {
+ return {
+ div: null,
+ mod: new BN(this.modrn(num.words[0]))
+ };
+ }
+ return {
+ div: this.divn(num.words[0]),
+ mod: new BN(this.modrn(num.words[0]))
+ };
+ }
+ return this._wordDiv(num, mode);
+ };
+ BN.prototype.div = function div(num) {
+ return this.divmod(num, "div", false).div;
+ };
+ BN.prototype.mod = function mod(num) {
+ return this.divmod(num, "mod", false).mod;
+ };
+ BN.prototype.umod = function umod(num) {
+ return this.divmod(num, "mod", true).mod;
+ };
+ BN.prototype.divRound = function divRound(num) {
+ var dm = this.divmod(num);
+ if (dm.mod.isZero())
+ return dm.div;
+ var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;
+ var half = num.ushrn(1);
+ var r2 = num.andln(1);
+ var cmp = mod.cmp(half);
+ if (cmp < 0 || r2 === 1 && cmp === 0)
+ return dm.div;
+ return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);
+ };
+ BN.prototype.modrn = function modrn(num) {
+ var isNegNum = num < 0;
+ if (isNegNum)
+ num = -num;
+ assert(num <= 67108863);
+ var p = (1 << 26) % num;
+ var acc = 0;
+ for (var i = this.length - 1; i >= 0; i--) {
+ acc = (p * acc + (this.words[i] | 0)) % num;
+ }
+ return isNegNum ? -acc : acc;
+ };
+ BN.prototype.modn = function modn(num) {
+ return this.modrn(num);
+ };
+ BN.prototype.idivn = function idivn(num) {
+ var isNegNum = num < 0;
+ if (isNegNum)
+ num = -num;
+ assert(num <= 67108863);
+ var carry = 0;
+ for (var i = this.length - 1; i >= 0; i--) {
+ var w = (this.words[i] | 0) + carry * 67108864;
+ this.words[i] = w / num | 0;
+ carry = w % num;
+ }
+ this._strip();
+ return isNegNum ? this.ineg() : this;
+ };
+ BN.prototype.divn = function divn(num) {
+ return this.clone().idivn(num);
+ };
+ BN.prototype.egcd = function egcd(p) {
+ assert(p.negative === 0);
+ assert(!p.isZero());
+ var x = this;
+ var y = p.clone();
+ if (x.negative !== 0) {
+ x = x.umod(p);
+ } else {
+ x = x.clone();
+ }
+ var A = new BN(1);
+ var B = new BN(0);
+ var C = new BN(0);
+ var D = new BN(1);
+ var g = 0;
+ while (x.isEven() && y.isEven()) {
+ x.iushrn(1);
+ y.iushrn(1);
+ ++g;
+ }
+ var yp = y.clone();
+ var xp = x.clone();
+ while (!x.isZero()) {
+ for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1)
+ ;
+ if (i > 0) {
+ x.iushrn(i);
+ while (i-- > 0) {
+ if (A.isOdd() || B.isOdd()) {
+ A.iadd(yp);
+ B.isub(xp);
+ }
+ A.iushrn(1);
+ B.iushrn(1);
+ }
+ }
+ for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1)
+ ;
+ if (j > 0) {
+ y.iushrn(j);
+ while (j-- > 0) {
+ if (C.isOdd() || D.isOdd()) {
+ C.iadd(yp);
+ D.isub(xp);
+ }
+ C.iushrn(1);
+ D.iushrn(1);
+ }
+ }
+ if (x.cmp(y) >= 0) {
+ x.isub(y);
+ A.isub(C);
+ B.isub(D);
+ } else {
+ y.isub(x);
+ C.isub(A);
+ D.isub(B);
+ }
+ }
+ return {
+ a: C,
+ b: D,
+ gcd: y.iushln(g)
+ };
+ };
+ BN.prototype._invmp = function _invmp(p) {
+ assert(p.negative === 0);
+ assert(!p.isZero());
+ var a = this;
+ var b = p.clone();
+ if (a.negative !== 0) {
+ a = a.umod(p);
+ } else {
+ a = a.clone();
+ }
+ var x1 = new BN(1);
+ var x2 = new BN(0);
+ var delta = b.clone();
+ while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {
+ for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1)
+ ;
+ if (i > 0) {
+ a.iushrn(i);
+ while (i-- > 0) {
+ if (x1.isOdd()) {
+ x1.iadd(delta);
+ }
+ x1.iushrn(1);
+ }
+ }
+ for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1)
+ ;
+ if (j > 0) {
+ b.iushrn(j);
+ while (j-- > 0) {
+ if (x2.isOdd()) {
+ x2.iadd(delta);
+ }
+ x2.iushrn(1);
+ }
+ }
+ if (a.cmp(b) >= 0) {
+ a.isub(b);
+ x1.isub(x2);
+ } else {
+ b.isub(a);
+ x2.isub(x1);
+ }
+ }
+ var res;
+ if (a.cmpn(1) === 0) {
+ res = x1;
+ } else {
+ res = x2;
+ }
+ if (res.cmpn(0) < 0) {
+ res.iadd(p);
+ }
+ return res;
+ };
+ BN.prototype.gcd = function gcd(num) {
+ if (this.isZero())
+ return num.abs();
+ if (num.isZero())
+ return this.abs();
+ var a = this.clone();
+ var b = num.clone();
+ a.negative = 0;
+ b.negative = 0;
+ for (var shift = 0; a.isEven() && b.isEven(); shift++) {
+ a.iushrn(1);
+ b.iushrn(1);
+ }
+ do {
+ while (a.isEven()) {
+ a.iushrn(1);
+ }
+ while (b.isEven()) {
+ b.iushrn(1);
+ }
+ var r = a.cmp(b);
+ if (r < 0) {
+ var t = a;
+ a = b;
+ b = t;
+ } else if (r === 0 || b.cmpn(1) === 0) {
+ break;
+ }
+ a.isub(b);
+ } while (true);
+ return b.iushln(shift);
+ };
+ BN.prototype.invm = function invm(num) {
+ return this.egcd(num).a.umod(num);
+ };
+ BN.prototype.isEven = function isEven() {
+ return (this.words[0] & 1) === 0;
+ };
+ BN.prototype.isOdd = function isOdd() {
+ return (this.words[0] & 1) === 1;
+ };
+ BN.prototype.andln = function andln(num) {
+ return this.words[0] & num;
+ };
+ BN.prototype.bincn = function bincn(bit) {
+ assert(typeof bit === "number");
+ var r = bit % 26;
+ var s = (bit - r) / 26;
+ var q = 1 << r;
+ if (this.length <= s) {
+ this._expand(s + 1);
+ this.words[s] |= q;
+ return this;
+ }
+ var carry = q;
+ for (var i = s; carry !== 0 && i < this.length; i++) {
+ var w = this.words[i] | 0;
+ w += carry;
+ carry = w >>> 26;
+ w &= 67108863;
+ this.words[i] = w;
+ }
+ if (carry !== 0) {
+ this.words[i] = carry;
+ this.length++;
+ }
+ return this;
+ };
+ BN.prototype.isZero = function isZero() {
+ return this.length === 1 && this.words[0] === 0;
+ };
+ BN.prototype.cmpn = function cmpn(num) {
+ var negative = num < 0;
+ if (this.negative !== 0 && !negative)
+ return -1;
+ if (this.negative === 0 && negative)
+ return 1;
+ this._strip();
+ var res;
+ if (this.length > 1) {
+ res = 1;
+ } else {
+ if (negative) {
+ num = -num;
+ }
+ assert(num <= 67108863, "Number is too big");
+ var w = this.words[0] | 0;
+ res = w === num ? 0 : w < num ? -1 : 1;
+ }
+ if (this.negative !== 0)
+ return -res | 0;
+ return res;
+ };
+ BN.prototype.cmp = function cmp(num) {
+ if (this.negative !== 0 && num.negative === 0)
+ return -1;
+ if (this.negative === 0 && num.negative !== 0)
+ return 1;
+ var res = this.ucmp(num);
+ if (this.negative !== 0)
+ return -res | 0;
+ return res;
+ };
+ BN.prototype.ucmp = function ucmp(num) {
+ if (this.length > num.length)
+ return 1;
+ if (this.length < num.length)
+ return -1;
+ var res = 0;
+ for (var i = this.length - 1; i >= 0; i--) {
+ var a = this.words[i] | 0;
+ var b = num.words[i] | 0;
+ if (a === b)
+ continue;
+ if (a < b) {
+ res = -1;
+ } else if (a > b) {
+ res = 1;
+ }
+ break;
+ }
+ return res;
+ };
+ BN.prototype.gtn = function gtn(num) {
+ return this.cmpn(num) === 1;
+ };
+ BN.prototype.gt = function gt(num) {
+ return this.cmp(num) === 1;
+ };
+ BN.prototype.gten = function gten(num) {
+ return this.cmpn(num) >= 0;
+ };
+ BN.prototype.gte = function gte(num) {
+ return this.cmp(num) >= 0;
+ };
+ BN.prototype.ltn = function ltn(num) {
+ return this.cmpn(num) === -1;
+ };
+ BN.prototype.lt = function lt(num) {
+ return this.cmp(num) === -1;
+ };
+ BN.prototype.lten = function lten(num) {
+ return this.cmpn(num) <= 0;
+ };
+ BN.prototype.lte = function lte(num) {
+ return this.cmp(num) <= 0;
+ };
+ BN.prototype.eqn = function eqn(num) {
+ return this.cmpn(num) === 0;
+ };
+ BN.prototype.eq = function eq(num) {
+ return this.cmp(num) === 0;
+ };
+ BN.red = function red(num) {
+ return new Red(num);
+ };
+ BN.prototype.toRed = function toRed(ctx) {
+ assert(!this.red, "Already a number in reduction context");
+ assert(this.negative === 0, "red works only with positives");
+ return ctx.convertTo(this)._forceRed(ctx);
+ };
+ BN.prototype.fromRed = function fromRed() {
+ assert(this.red, "fromRed works only with numbers in reduction context");
+ return this.red.convertFrom(this);
+ };
+ BN.prototype._forceRed = function _forceRed(ctx) {
+ this.red = ctx;
+ return this;
+ };
+ BN.prototype.forceRed = function forceRed(ctx) {
+ assert(!this.red, "Already a number in reduction context");
+ return this._forceRed(ctx);
+ };
+ BN.prototype.redAdd = function redAdd(num) {
+ assert(this.red, "redAdd works only with red numbers");
+ return this.red.add(this, num);
+ };
+ BN.prototype.redIAdd = function redIAdd(num) {
+ assert(this.red, "redIAdd works only with red numbers");
+ return this.red.iadd(this, num);
+ };
+ BN.prototype.redSub = function redSub(num) {
+ assert(this.red, "redSub works only with red numbers");
+ return this.red.sub(this, num);
+ };
+ BN.prototype.redISub = function redISub(num) {
+ assert(this.red, "redISub works only with red numbers");
+ return this.red.isub(this, num);
+ };
+ BN.prototype.redShl = function redShl(num) {
+ assert(this.red, "redShl works only with red numbers");
+ return this.red.shl(this, num);
+ };
+ BN.prototype.redMul = function redMul(num) {
+ assert(this.red, "redMul works only with red numbers");
+ this.red._verify2(this, num);
+ return this.red.mul(this, num);
+ };
+ BN.prototype.redIMul = function redIMul(num) {
+ assert(this.red, "redMul works only with red numbers");
+ this.red._verify2(this, num);
+ return this.red.imul(this, num);
+ };
+ BN.prototype.redSqr = function redSqr() {
+ assert(this.red, "redSqr works only with red numbers");
+ this.red._verify1(this);
+ return this.red.sqr(this);
+ };
+ BN.prototype.redISqr = function redISqr() {
+ assert(this.red, "redISqr works only with red numbers");
+ this.red._verify1(this);
+ return this.red.isqr(this);
+ };
+ BN.prototype.redSqrt = function redSqrt() {
+ assert(this.red, "redSqrt works only with red numbers");
+ this.red._verify1(this);
+ return this.red.sqrt(this);
+ };
+ BN.prototype.redInvm = function redInvm() {
+ assert(this.red, "redInvm works only with red numbers");
+ this.red._verify1(this);
+ return this.red.invm(this);
+ };
+ BN.prototype.redNeg = function redNeg() {
+ assert(this.red, "redNeg works only with red numbers");
+ this.red._verify1(this);
+ return this.red.neg(this);
+ };
+ BN.prototype.redPow = function redPow(num) {
+ assert(this.red && !num.red, "redPow(normalNum)");
+ this.red._verify1(this);
+ return this.red.pow(this, num);
+ };
+ var primes = {
+ k256: null,
+ p224: null,
+ p192: null,
+ p25519: null
+ };
+ function MPrime(name, p) {
+ this.name = name;
+ this.p = new BN(p, 16);
+ this.n = this.p.bitLength();
+ this.k = new BN(1).iushln(this.n).isub(this.p);
+ this.tmp = this._tmp();
+ }
+ MPrime.prototype._tmp = function _tmp() {
+ var tmp = new BN(null);
+ tmp.words = new Array(Math.ceil(this.n / 13));
+ return tmp;
+ };
+ MPrime.prototype.ireduce = function ireduce(num) {
+ var r = num;
+ var rlen;
+ do {
+ this.split(r, this.tmp);
+ r = this.imulK(r);
+ r = r.iadd(this.tmp);
+ rlen = r.bitLength();
+ } while (rlen > this.n);
+ var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
+ if (cmp === 0) {
+ r.words[0] = 0;
+ r.length = 1;
+ } else if (cmp > 0) {
+ r.isub(this.p);
+ } else {
+ if (r.strip !== void 0) {
+ r.strip();
+ } else {
+ r._strip();
+ }
+ }
+ return r;
+ };
+ MPrime.prototype.split = function split(input, out) {
+ input.iushrn(this.n, 0, out);
+ };
+ MPrime.prototype.imulK = function imulK(num) {
+ return num.imul(this.k);
+ };
+ function K256() {
+ MPrime.call(
+ this,
+ "k256",
+ "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"
+ );
+ }
+ inherits(K256, MPrime);
+ K256.prototype.split = function split(input, output) {
+ var mask = 4194303;
+ var outLen = Math.min(input.length, 9);
+ for (var i = 0; i < outLen; i++) {
+ output.words[i] = input.words[i];
+ }
+ output.length = outLen;
+ if (input.length <= 9) {
+ input.words[0] = 0;
+ input.length = 1;
+ return;
+ }
+ var prev = input.words[9];
+ output.words[output.length++] = prev & mask;
+ for (i = 10; i < input.length; i++) {
+ var next = input.words[i] | 0;
+ input.words[i - 10] = (next & mask) << 4 | prev >>> 22;
+ prev = next;
+ }
+ prev >>>= 22;
+ input.words[i - 10] = prev;
+ if (prev === 0 && input.length > 10) {
+ input.length -= 10;
+ } else {
+ input.length -= 9;
+ }
+ };
+ K256.prototype.imulK = function imulK(num) {
+ num.words[num.length] = 0;
+ num.words[num.length + 1] = 0;
+ num.length += 2;
+ var lo = 0;
+ for (var i = 0; i < num.length; i++) {
+ var w = num.words[i] | 0;
+ lo += w * 977;
+ num.words[i] = lo & 67108863;
+ lo = w * 64 + (lo / 67108864 | 0);
+ }
+ if (num.words[num.length - 1] === 0) {
+ num.length--;
+ if (num.words[num.length - 1] === 0) {
+ num.length--;
+ }
+ }
+ return num;
+ };
+ function P224() {
+ MPrime.call(
+ this,
+ "p224",
+ "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"
+ );
+ }
+ inherits(P224, MPrime);
+ function P192() {
+ MPrime.call(
+ this,
+ "p192",
+ "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"
+ );
+ }
+ inherits(P192, MPrime);
+ function P25519() {
+ MPrime.call(
+ this,
+ "25519",
+ "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"
+ );
+ }
+ inherits(P25519, MPrime);
+ P25519.prototype.imulK = function imulK(num) {
+ var carry = 0;
+ for (var i = 0; i < num.length; i++) {
+ var hi = (num.words[i] | 0) * 19 + carry;
+ var lo = hi & 67108863;
+ hi >>>= 26;
+ num.words[i] = lo;
+ carry = hi;
+ }
+ if (carry !== 0) {
+ num.words[num.length++] = carry;
+ }
+ return num;
+ };
+ BN._prime = function prime(name) {
+ if (primes[name])
+ return primes[name];
+ var prime2;
+ if (name === "k256") {
+ prime2 = new K256();
+ } else if (name === "p224") {
+ prime2 = new P224();
+ } else if (name === "p192") {
+ prime2 = new P192();
+ } else if (name === "p25519") {
+ prime2 = new P25519();
+ } else {
+ throw new Error("Unknown prime " + name);
+ }
+ primes[name] = prime2;
+ return prime2;
+ };
+ function Red(m) {
+ if (typeof m === "string") {
+ var prime = BN._prime(m);
+ this.m = prime.p;
+ this.prime = prime;
+ } else {
+ assert(m.gtn(1), "modulus must be greater than 1");
+ this.m = m;
+ this.prime = null;
+ }
+ }
+ Red.prototype._verify1 = function _verify1(a) {
+ assert(a.negative === 0, "red works only with positives");
+ assert(a.red, "red works only with red numbers");
+ };
+ Red.prototype._verify2 = function _verify2(a, b) {
+ assert((a.negative | b.negative) === 0, "red works only with positives");
+ assert(
+ a.red && a.red === b.red,
+ "red works only with red numbers"
+ );
+ };
+ Red.prototype.imod = function imod(a) {
+ if (this.prime)
+ return this.prime.ireduce(a)._forceRed(this);
+ move(a, a.umod(this.m)._forceRed(this));
+ return a;
+ };
+ Red.prototype.neg = function neg(a) {
+ if (a.isZero()) {
+ return a.clone();
+ }
+ return this.m.sub(a)._forceRed(this);
+ };
+ Red.prototype.add = function add(a, b) {
+ this._verify2(a, b);
+ var res = a.add(b);
+ if (res.cmp(this.m) >= 0) {
+ res.isub(this.m);
+ }
+ return res._forceRed(this);
+ };
+ Red.prototype.iadd = function iadd(a, b) {
+ this._verify2(a, b);
+ var res = a.iadd(b);
+ if (res.cmp(this.m) >= 0) {
+ res.isub(this.m);
+ }
+ return res;
+ };
+ Red.prototype.sub = function sub(a, b) {
+ this._verify2(a, b);
+ var res = a.sub(b);
+ if (res.cmpn(0) < 0) {
+ res.iadd(this.m);
+ }
+ return res._forceRed(this);
+ };
+ Red.prototype.isub = function isub(a, b) {
+ this._verify2(a, b);
+ var res = a.isub(b);
+ if (res.cmpn(0) < 0) {
+ res.iadd(this.m);
+ }
+ return res;
+ };
+ Red.prototype.shl = function shl(a, num) {
+ this._verify1(a);
+ return this.imod(a.ushln(num));
+ };
+ Red.prototype.imul = function imul(a, b) {
+ this._verify2(a, b);
+ return this.imod(a.imul(b));
+ };
+ Red.prototype.mul = function mul(a, b) {
+ this._verify2(a, b);
+ return this.imod(a.mul(b));
+ };
+ Red.prototype.isqr = function isqr(a) {
+ return this.imul(a, a.clone());
+ };
+ Red.prototype.sqr = function sqr(a) {
+ return this.mul(a, a);
+ };
+ Red.prototype.sqrt = function sqrt(a) {
+ if (a.isZero())
+ return a.clone();
+ var mod3 = this.m.andln(3);
+ assert(mod3 % 2 === 1);
+ if (mod3 === 3) {
+ var pow = this.m.add(new BN(1)).iushrn(2);
+ return this.pow(a, pow);
+ }
+ var q = this.m.subn(1);
+ var s = 0;
+ while (!q.isZero() && q.andln(1) === 0) {
+ s++;
+ q.iushrn(1);
+ }
+ assert(!q.isZero());
+ var one = new BN(1).toRed(this);
+ var nOne = one.redNeg();
+ var lpow = this.m.subn(1).iushrn(1);
+ var z = this.m.bitLength();
+ z = new BN(2 * z * z).toRed(this);
+ while (this.pow(z, lpow).cmp(nOne) !== 0) {
+ z.redIAdd(nOne);
+ }
+ var c = this.pow(z, q);
+ var r = this.pow(a, q.addn(1).iushrn(1));
+ var t = this.pow(a, q);
+ var m = s;
+ while (t.cmp(one) !== 0) {
+ var tmp = t;
+ for (var i = 0; tmp.cmp(one) !== 0; i++) {
+ tmp = tmp.redSqr();
+ }
+ assert(i < m);
+ var b = this.pow(c, new BN(1).iushln(m - i - 1));
+ r = r.redMul(b);
+ c = b.redSqr();
+ t = t.redMul(c);
+ m = i;
+ }
+ return r;
+ };
+ Red.prototype.invm = function invm(a) {
+ var inv = a._invmp(this.m);
+ if (inv.negative !== 0) {
+ inv.negative = 0;
+ return this.imod(inv).redNeg();
+ } else {
+ return this.imod(inv);
+ }
+ };
+ Red.prototype.pow = function pow(a, num) {
+ if (num.isZero())
+ return new BN(1).toRed(this);
+ if (num.cmpn(1) === 0)
+ return a.clone();
+ var windowSize = 4;
+ var wnd = new Array(1 << windowSize);
+ wnd[0] = new BN(1).toRed(this);
+ wnd[1] = a;
+ for (var i = 2; i < wnd.length; i++) {
+ wnd[i] = this.mul(wnd[i - 1], a);
+ }
+ var res = wnd[0];
+ var current = 0;
+ var currentLen = 0;
+ var start = num.bitLength() % 26;
+ if (start === 0) {
+ start = 26;
+ }
+ for (i = num.length - 1; i >= 0; i--) {
+ var word = num.words[i];
+ for (var j = start - 1; j >= 0; j--) {
+ var bit = word >> j & 1;
+ if (res !== wnd[0]) {
+ res = this.sqr(res);
+ }
+ if (bit === 0 && current === 0) {
+ currentLen = 0;
+ continue;
+ }
+ current <<= 1;
+ current |= bit;
+ currentLen++;
+ if (currentLen !== windowSize && (i !== 0 || j !== 0))
+ continue;
+ res = this.mul(res, wnd[current]);
+ currentLen = 0;
+ current = 0;
+ }
+ start = 26;
+ }
+ return res;
+ };
+ Red.prototype.convertTo = function convertTo(num) {
+ var r = num.umod(this.m);
+ return r === num ? r.clone() : r;
+ };
+ Red.prototype.convertFrom = function convertFrom(num) {
+ var res = num.clone();
+ res.red = null;
+ return res;
+ };
+ BN.mont = function mont(num) {
+ return new Mont(num);
+ };
+ function Mont(m) {
+ Red.call(this, m);
+ this.shift = this.m.bitLength();
+ if (this.shift % 26 !== 0) {
+ this.shift += 26 - this.shift % 26;
+ }
+ this.r = new BN(1).iushln(this.shift);
+ this.r2 = this.imod(this.r.sqr());
+ this.rinv = this.r._invmp(this.m);
+ this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);
+ this.minv = this.minv.umod(this.r);
+ this.minv = this.r.sub(this.minv);
+ }
+ inherits(Mont, Red);
+ Mont.prototype.convertTo = function convertTo(num) {
+ return this.imod(num.ushln(this.shift));
+ };
+ Mont.prototype.convertFrom = function convertFrom(num) {
+ var r = this.imod(num.mul(this.rinv));
+ r.red = null;
+ return r;
+ };
+ Mont.prototype.imul = function imul(a, b) {
+ if (a.isZero() || b.isZero()) {
+ a.words[0] = 0;
+ a.length = 1;
+ return a;
+ }
+ var t = a.imul(b);
+ var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
+ var u = t.isub(c).iushrn(this.shift);
+ var res = u;
+ if (u.cmp(this.m) >= 0) {
+ res = u.isub(this.m);
+ } else if (u.cmpn(0) < 0) {
+ res = u.iadd(this.m);
+ }
+ return res._forceRed(this);
+ };
+ Mont.prototype.mul = function mul(a, b) {
+ if (a.isZero() || b.isZero())
+ return new BN(0)._forceRed(this);
+ var t = a.mul(b);
+ var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
+ var u = t.isub(c).iushrn(this.shift);
+ var res = u;
+ if (u.cmp(this.m) >= 0) {
+ res = u.isub(this.m);
+ } else if (u.cmpn(0) < 0) {
+ res = u.iadd(this.m);
+ }
+ return res._forceRed(this);
+ };
+ Mont.prototype.invm = function invm(a) {
+ var res = this.imod(a._invmp(this.m).mul(this.r2));
+ return res._forceRed(this);
+ };
+ })(typeof module2 === "undefined" || module2, exports2);
+ }
+});
+
+// node_modules/@ethersproject/bignumber/lib/_version.js
+var require_version3 = __commonJS({
+ "node_modules/@ethersproject/bignumber/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "bignumber/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/bignumber/lib/bignumber.js
+var require_bignumber = __commonJS({
+ "node_modules/@ethersproject/bignumber/lib/bignumber.js"(exports2) {
+ "use strict";
+ var __importDefault13 = exports2 && exports2.__importDefault || function(mod) {
+ return mod && mod.__esModule ? mod : { "default": mod };
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2._base16To36 = exports2._base36To16 = exports2.BigNumber = exports2.isBigNumberish = void 0;
+ var bn_js_1 = __importDefault13(require_bn());
+ var BN = bn_js_1.default.BN;
+ var bytes_1 = require_lib6();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version3();
+ var logger = new logger_1.Logger(_version_1.version);
+ var _constructorGuard = {};
+ var MAX_SAFE = 9007199254740991;
+ function isBigNumberish(value) {
+ return value != null && (BigNumber.isBigNumber(value) || typeof value === "number" && value % 1 === 0 || typeof value === "string" && !!value.match(/^-?[0-9]+$/) || (0, bytes_1.isHexString)(value) || typeof value === "bigint" || (0, bytes_1.isBytes)(value));
+ }
+ exports2.isBigNumberish = isBigNumberish;
+ var _warnedToStringRadix = false;
+ var BigNumber = (
+ /** @class */
+ function() {
+ function BigNumber2(constructorGuard, hex) {
+ if (constructorGuard !== _constructorGuard) {
+ logger.throwError("cannot call constructor directly; use BigNumber.from", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "new (BigNumber)"
+ });
+ }
+ this._hex = hex;
+ this._isBigNumber = true;
+ Object.freeze(this);
+ }
+ BigNumber2.prototype.fromTwos = function(value) {
+ return toBigNumber(toBN(this).fromTwos(value));
+ };
+ BigNumber2.prototype.toTwos = function(value) {
+ return toBigNumber(toBN(this).toTwos(value));
+ };
+ BigNumber2.prototype.abs = function() {
+ if (this._hex[0] === "-") {
+ return BigNumber2.from(this._hex.substring(1));
+ }
+ return this;
+ };
+ BigNumber2.prototype.add = function(other) {
+ return toBigNumber(toBN(this).add(toBN(other)));
+ };
+ BigNumber2.prototype.sub = function(other) {
+ return toBigNumber(toBN(this).sub(toBN(other)));
+ };
+ BigNumber2.prototype.div = function(other) {
+ var o = BigNumber2.from(other);
+ if (o.isZero()) {
+ throwFault("division-by-zero", "div");
+ }
+ return toBigNumber(toBN(this).div(toBN(other)));
+ };
+ BigNumber2.prototype.mul = function(other) {
+ return toBigNumber(toBN(this).mul(toBN(other)));
+ };
+ BigNumber2.prototype.mod = function(other) {
+ var value = toBN(other);
+ if (value.isNeg()) {
+ throwFault("division-by-zero", "mod");
+ }
+ return toBigNumber(toBN(this).umod(value));
+ };
+ BigNumber2.prototype.pow = function(other) {
+ var value = toBN(other);
+ if (value.isNeg()) {
+ throwFault("negative-power", "pow");
+ }
+ return toBigNumber(toBN(this).pow(value));
+ };
+ BigNumber2.prototype.and = function(other) {
+ var value = toBN(other);
+ if (this.isNegative() || value.isNeg()) {
+ throwFault("unbound-bitwise-result", "and");
+ }
+ return toBigNumber(toBN(this).and(value));
+ };
+ BigNumber2.prototype.or = function(other) {
+ var value = toBN(other);
+ if (this.isNegative() || value.isNeg()) {
+ throwFault("unbound-bitwise-result", "or");
+ }
+ return toBigNumber(toBN(this).or(value));
+ };
+ BigNumber2.prototype.xor = function(other) {
+ var value = toBN(other);
+ if (this.isNegative() || value.isNeg()) {
+ throwFault("unbound-bitwise-result", "xor");
+ }
+ return toBigNumber(toBN(this).xor(value));
+ };
+ BigNumber2.prototype.mask = function(value) {
+ if (this.isNegative() || value < 0) {
+ throwFault("negative-width", "mask");
+ }
+ return toBigNumber(toBN(this).maskn(value));
+ };
+ BigNumber2.prototype.shl = function(value) {
+ if (this.isNegative() || value < 0) {
+ throwFault("negative-width", "shl");
+ }
+ return toBigNumber(toBN(this).shln(value));
+ };
+ BigNumber2.prototype.shr = function(value) {
+ if (this.isNegative() || value < 0) {
+ throwFault("negative-width", "shr");
+ }
+ return toBigNumber(toBN(this).shrn(value));
+ };
+ BigNumber2.prototype.eq = function(other) {
+ return toBN(this).eq(toBN(other));
+ };
+ BigNumber2.prototype.lt = function(other) {
+ return toBN(this).lt(toBN(other));
+ };
+ BigNumber2.prototype.lte = function(other) {
+ return toBN(this).lte(toBN(other));
+ };
+ BigNumber2.prototype.gt = function(other) {
+ return toBN(this).gt(toBN(other));
+ };
+ BigNumber2.prototype.gte = function(other) {
+ return toBN(this).gte(toBN(other));
+ };
+ BigNumber2.prototype.isNegative = function() {
+ return this._hex[0] === "-";
+ };
+ BigNumber2.prototype.isZero = function() {
+ return toBN(this).isZero();
+ };
+ BigNumber2.prototype.toNumber = function() {
+ try {
+ return toBN(this).toNumber();
+ } catch (error) {
+ throwFault("overflow", "toNumber", this.toString());
+ }
+ return null;
+ };
+ BigNumber2.prototype.toBigInt = function() {
+ try {
+ return BigInt(this.toString());
+ } catch (e) {
+ }
+ return logger.throwError("this platform does not support BigInt", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ value: this.toString()
+ });
+ };
+ BigNumber2.prototype.toString = function() {
+ if (arguments.length > 0) {
+ if (arguments[0] === 10) {
+ if (!_warnedToStringRadix) {
+ _warnedToStringRadix = true;
+ logger.warn("BigNumber.toString does not accept any parameters; base-10 is assumed");
+ }
+ } else if (arguments[0] === 16) {
+ logger.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()", logger_1.Logger.errors.UNEXPECTED_ARGUMENT, {});
+ } else {
+ logger.throwError("BigNumber.toString does not accept parameters", logger_1.Logger.errors.UNEXPECTED_ARGUMENT, {});
+ }
+ }
+ return toBN(this).toString(10);
+ };
+ BigNumber2.prototype.toHexString = function() {
+ return this._hex;
+ };
+ BigNumber2.prototype.toJSON = function(key) {
+ return { type: "BigNumber", hex: this.toHexString() };
+ };
+ BigNumber2.from = function(value) {
+ if (value instanceof BigNumber2) {
+ return value;
+ }
+ if (typeof value === "string") {
+ if (value.match(/^-?0x[0-9a-f]+$/i)) {
+ return new BigNumber2(_constructorGuard, toHex(value));
+ }
+ if (value.match(/^-?[0-9]+$/)) {
+ return new BigNumber2(_constructorGuard, toHex(new BN(value)));
+ }
+ return logger.throwArgumentError("invalid BigNumber string", "value", value);
+ }
+ if (typeof value === "number") {
+ if (value % 1) {
+ throwFault("underflow", "BigNumber.from", value);
+ }
+ if (value >= MAX_SAFE || value <= -MAX_SAFE) {
+ throwFault("overflow", "BigNumber.from", value);
+ }
+ return BigNumber2.from(String(value));
+ }
+ var anyValue = value;
+ if (typeof anyValue === "bigint") {
+ return BigNumber2.from(anyValue.toString());
+ }
+ if ((0, bytes_1.isBytes)(anyValue)) {
+ return BigNumber2.from((0, bytes_1.hexlify)(anyValue));
+ }
+ if (anyValue) {
+ if (anyValue.toHexString) {
+ var hex = anyValue.toHexString();
+ if (typeof hex === "string") {
+ return BigNumber2.from(hex);
+ }
+ } else {
+ var hex = anyValue._hex;
+ if (hex == null && anyValue.type === "BigNumber") {
+ hex = anyValue.hex;
+ }
+ if (typeof hex === "string") {
+ if ((0, bytes_1.isHexString)(hex) || hex[0] === "-" && (0, bytes_1.isHexString)(hex.substring(1))) {
+ return BigNumber2.from(hex);
+ }
+ }
+ }
+ }
+ return logger.throwArgumentError("invalid BigNumber value", "value", value);
+ };
+ BigNumber2.isBigNumber = function(value) {
+ return !!(value && value._isBigNumber);
+ };
+ return BigNumber2;
+ }()
+ );
+ exports2.BigNumber = BigNumber;
+ function toHex(value) {
+ if (typeof value !== "string") {
+ return toHex(value.toString(16));
+ }
+ if (value[0] === "-") {
+ value = value.substring(1);
+ if (value[0] === "-") {
+ logger.throwArgumentError("invalid hex", "value", value);
+ }
+ value = toHex(value);
+ if (value === "0x00") {
+ return value;
+ }
+ return "-" + value;
+ }
+ if (value.substring(0, 2) !== "0x") {
+ value = "0x" + value;
+ }
+ if (value === "0x") {
+ return "0x00";
+ }
+ if (value.length % 2) {
+ value = "0x0" + value.substring(2);
+ }
+ while (value.length > 4 && value.substring(0, 4) === "0x00") {
+ value = "0x" + value.substring(4);
+ }
+ return value;
+ }
+ function toBigNumber(value) {
+ return BigNumber.from(toHex(value));
+ }
+ function toBN(value) {
+ var hex = BigNumber.from(value).toHexString();
+ if (hex[0] === "-") {
+ return new BN("-" + hex.substring(3), 16);
+ }
+ return new BN(hex.substring(2), 16);
+ }
+ function throwFault(fault, operation, value) {
+ var params = { fault, operation };
+ if (value != null) {
+ params.value = value;
+ }
+ return logger.throwError(fault, logger_1.Logger.errors.NUMERIC_FAULT, params);
+ }
+ function _base36To16(value) {
+ return new BN(value, 36).toString(16);
+ }
+ exports2._base36To16 = _base36To16;
+ function _base16To36(value) {
+ return new BN(value, 16).toString(36);
+ }
+ exports2._base16To36 = _base16To36;
+ }
+});
+
+// node_modules/@ethersproject/bignumber/lib/fixednumber.js
+var require_fixednumber = __commonJS({
+ "node_modules/@ethersproject/bignumber/lib/fixednumber.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.FixedNumber = exports2.FixedFormat = exports2.parseFixed = exports2.formatFixed = void 0;
+ var bytes_1 = require_lib6();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version3();
+ var logger = new logger_1.Logger(_version_1.version);
+ var bignumber_1 = require_bignumber();
+ var _constructorGuard = {};
+ var Zero = bignumber_1.BigNumber.from(0);
+ var NegativeOne = bignumber_1.BigNumber.from(-1);
+ function throwFault(message, fault, operation, value) {
+ var params = { fault, operation };
+ if (value !== void 0) {
+ params.value = value;
+ }
+ return logger.throwError(message, logger_1.Logger.errors.NUMERIC_FAULT, params);
+ }
+ var zeros = "0";
+ while (zeros.length < 256) {
+ zeros += zeros;
+ }
+ function getMultiplier(decimals) {
+ if (typeof decimals !== "number") {
+ try {
+ decimals = bignumber_1.BigNumber.from(decimals).toNumber();
+ } catch (e) {
+ }
+ }
+ if (typeof decimals === "number" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) {
+ return "1" + zeros.substring(0, decimals);
+ }
+ return logger.throwArgumentError("invalid decimal size", "decimals", decimals);
+ }
+ function formatFixed(value, decimals) {
+ if (decimals == null) {
+ decimals = 0;
+ }
+ var multiplier = getMultiplier(decimals);
+ value = bignumber_1.BigNumber.from(value);
+ var negative = value.lt(Zero);
+ if (negative) {
+ value = value.mul(NegativeOne);
+ }
+ var fraction = value.mod(multiplier).toString();
+ while (fraction.length < multiplier.length - 1) {
+ fraction = "0" + fraction;
+ }
+ fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];
+ var whole = value.div(multiplier).toString();
+ if (multiplier.length === 1) {
+ value = whole;
+ } else {
+ value = whole + "." + fraction;
+ }
+ if (negative) {
+ value = "-" + value;
+ }
+ return value;
+ }
+ exports2.formatFixed = formatFixed;
+ function parseFixed(value, decimals) {
+ if (decimals == null) {
+ decimals = 0;
+ }
+ var multiplier = getMultiplier(decimals);
+ if (typeof value !== "string" || !value.match(/^-?[0-9.]+$/)) {
+ logger.throwArgumentError("invalid decimal value", "value", value);
+ }
+ var negative = value.substring(0, 1) === "-";
+ if (negative) {
+ value = value.substring(1);
+ }
+ if (value === ".") {
+ logger.throwArgumentError("missing value", "value", value);
+ }
+ var comps = value.split(".");
+ if (comps.length > 2) {
+ logger.throwArgumentError("too many decimal points", "value", value);
+ }
+ var whole = comps[0], fraction = comps[1];
+ if (!whole) {
+ whole = "0";
+ }
+ if (!fraction) {
+ fraction = "0";
+ }
+ while (fraction[fraction.length - 1] === "0") {
+ fraction = fraction.substring(0, fraction.length - 1);
+ }
+ if (fraction.length > multiplier.length - 1) {
+ throwFault("fractional component exceeds decimals", "underflow", "parseFixed");
+ }
+ if (fraction === "") {
+ fraction = "0";
+ }
+ while (fraction.length < multiplier.length - 1) {
+ fraction += "0";
+ }
+ var wholeValue = bignumber_1.BigNumber.from(whole);
+ var fractionValue = bignumber_1.BigNumber.from(fraction);
+ var wei = wholeValue.mul(multiplier).add(fractionValue);
+ if (negative) {
+ wei = wei.mul(NegativeOne);
+ }
+ return wei;
+ }
+ exports2.parseFixed = parseFixed;
+ var FixedFormat = (
+ /** @class */
+ function() {
+ function FixedFormat2(constructorGuard, signed, width, decimals) {
+ if (constructorGuard !== _constructorGuard) {
+ logger.throwError("cannot use FixedFormat constructor; use FixedFormat.from", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "new FixedFormat"
+ });
+ }
+ this.signed = signed;
+ this.width = width;
+ this.decimals = decimals;
+ this.name = (signed ? "" : "u") + "fixed" + String(width) + "x" + String(decimals);
+ this._multiplier = getMultiplier(decimals);
+ Object.freeze(this);
+ }
+ FixedFormat2.from = function(value) {
+ if (value instanceof FixedFormat2) {
+ return value;
+ }
+ if (typeof value === "number") {
+ value = "fixed128x" + value;
+ }
+ var signed = true;
+ var width = 128;
+ var decimals = 18;
+ if (typeof value === "string") {
+ if (value === "fixed") {
+ } else if (value === "ufixed") {
+ signed = false;
+ } else {
+ var match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);
+ if (!match) {
+ logger.throwArgumentError("invalid fixed format", "format", value);
+ }
+ signed = match[1] !== "u";
+ width = parseInt(match[2]);
+ decimals = parseInt(match[3]);
+ }
+ } else if (value) {
+ var check = function(key, type, defaultValue) {
+ if (value[key] == null) {
+ return defaultValue;
+ }
+ if (typeof value[key] !== type) {
+ logger.throwArgumentError("invalid fixed format (" + key + " not " + type + ")", "format." + key, value[key]);
+ }
+ return value[key];
+ };
+ signed = check("signed", "boolean", signed);
+ width = check("width", "number", width);
+ decimals = check("decimals", "number", decimals);
+ }
+ if (width % 8) {
+ logger.throwArgumentError("invalid fixed format width (not byte aligned)", "format.width", width);
+ }
+ if (decimals > 80) {
+ logger.throwArgumentError("invalid fixed format (decimals too large)", "format.decimals", decimals);
+ }
+ return new FixedFormat2(_constructorGuard, signed, width, decimals);
+ };
+ return FixedFormat2;
+ }()
+ );
+ exports2.FixedFormat = FixedFormat;
+ var FixedNumber = (
+ /** @class */
+ function() {
+ function FixedNumber2(constructorGuard, hex, value, format) {
+ if (constructorGuard !== _constructorGuard) {
+ logger.throwError("cannot use FixedNumber constructor; use FixedNumber.from", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "new FixedFormat"
+ });
+ }
+ this.format = format;
+ this._hex = hex;
+ this._value = value;
+ this._isFixedNumber = true;
+ Object.freeze(this);
+ }
+ FixedNumber2.prototype._checkFormat = function(other) {
+ if (this.format.name !== other.format.name) {
+ logger.throwArgumentError("incompatible format; use fixedNumber.toFormat", "other", other);
+ }
+ };
+ FixedNumber2.prototype.addUnsafe = function(other) {
+ this._checkFormat(other);
+ var a = parseFixed(this._value, this.format.decimals);
+ var b = parseFixed(other._value, other.format.decimals);
+ return FixedNumber2.fromValue(a.add(b), this.format.decimals, this.format);
+ };
+ FixedNumber2.prototype.subUnsafe = function(other) {
+ this._checkFormat(other);
+ var a = parseFixed(this._value, this.format.decimals);
+ var b = parseFixed(other._value, other.format.decimals);
+ return FixedNumber2.fromValue(a.sub(b), this.format.decimals, this.format);
+ };
+ FixedNumber2.prototype.mulUnsafe = function(other) {
+ this._checkFormat(other);
+ var a = parseFixed(this._value, this.format.decimals);
+ var b = parseFixed(other._value, other.format.decimals);
+ return FixedNumber2.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format);
+ };
+ FixedNumber2.prototype.divUnsafe = function(other) {
+ this._checkFormat(other);
+ var a = parseFixed(this._value, this.format.decimals);
+ var b = parseFixed(other._value, other.format.decimals);
+ return FixedNumber2.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format);
+ };
+ FixedNumber2.prototype.floor = function() {
+ var comps = this.toString().split(".");
+ if (comps.length === 1) {
+ comps.push("0");
+ }
+ var result = FixedNumber2.from(comps[0], this.format);
+ var hasFraction = !comps[1].match(/^(0*)$/);
+ if (this.isNegative() && hasFraction) {
+ result = result.subUnsafe(ONE.toFormat(result.format));
+ }
+ return result;
+ };
+ FixedNumber2.prototype.ceiling = function() {
+ var comps = this.toString().split(".");
+ if (comps.length === 1) {
+ comps.push("0");
+ }
+ var result = FixedNumber2.from(comps[0], this.format);
+ var hasFraction = !comps[1].match(/^(0*)$/);
+ if (!this.isNegative() && hasFraction) {
+ result = result.addUnsafe(ONE.toFormat(result.format));
+ }
+ return result;
+ };
+ FixedNumber2.prototype.round = function(decimals) {
+ if (decimals == null) {
+ decimals = 0;
+ }
+ var comps = this.toString().split(".");
+ if (comps.length === 1) {
+ comps.push("0");
+ }
+ if (decimals < 0 || decimals > 80 || decimals % 1) {
+ logger.throwArgumentError("invalid decimal count", "decimals", decimals);
+ }
+ if (comps[1].length <= decimals) {
+ return this;
+ }
+ var factor = FixedNumber2.from("1" + zeros.substring(0, decimals), this.format);
+ var bump = BUMP.toFormat(this.format);
+ return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor);
+ };
+ FixedNumber2.prototype.isZero = function() {
+ return this._value === "0.0" || this._value === "0";
+ };
+ FixedNumber2.prototype.isNegative = function() {
+ return this._value[0] === "-";
+ };
+ FixedNumber2.prototype.toString = function() {
+ return this._value;
+ };
+ FixedNumber2.prototype.toHexString = function(width) {
+ if (width == null) {
+ return this._hex;
+ }
+ if (width % 8) {
+ logger.throwArgumentError("invalid byte width", "width", width);
+ }
+ var hex = bignumber_1.BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString();
+ return (0, bytes_1.hexZeroPad)(hex, width / 8);
+ };
+ FixedNumber2.prototype.toUnsafeFloat = function() {
+ return parseFloat(this.toString());
+ };
+ FixedNumber2.prototype.toFormat = function(format) {
+ return FixedNumber2.fromString(this._value, format);
+ };
+ FixedNumber2.fromValue = function(value, decimals, format) {
+ if (format == null && decimals != null && !(0, bignumber_1.isBigNumberish)(decimals)) {
+ format = decimals;
+ decimals = null;
+ }
+ if (decimals == null) {
+ decimals = 0;
+ }
+ if (format == null) {
+ format = "fixed";
+ }
+ return FixedNumber2.fromString(formatFixed(value, decimals), FixedFormat.from(format));
+ };
+ FixedNumber2.fromString = function(value, format) {
+ if (format == null) {
+ format = "fixed";
+ }
+ var fixedFormat = FixedFormat.from(format);
+ var numeric = parseFixed(value, fixedFormat.decimals);
+ if (!fixedFormat.signed && numeric.lt(Zero)) {
+ throwFault("unsigned value cannot be negative", "overflow", "value", value);
+ }
+ var hex = null;
+ if (fixedFormat.signed) {
+ hex = numeric.toTwos(fixedFormat.width).toHexString();
+ } else {
+ hex = numeric.toHexString();
+ hex = (0, bytes_1.hexZeroPad)(hex, fixedFormat.width / 8);
+ }
+ var decimal = formatFixed(numeric, fixedFormat.decimals);
+ return new FixedNumber2(_constructorGuard, hex, decimal, fixedFormat);
+ };
+ FixedNumber2.fromBytes = function(value, format) {
+ if (format == null) {
+ format = "fixed";
+ }
+ var fixedFormat = FixedFormat.from(format);
+ if ((0, bytes_1.arrayify)(value).length > fixedFormat.width / 8) {
+ throw new Error("overflow");
+ }
+ var numeric = bignumber_1.BigNumber.from(value);
+ if (fixedFormat.signed) {
+ numeric = numeric.fromTwos(fixedFormat.width);
+ }
+ var hex = numeric.toTwos((fixedFormat.signed ? 0 : 1) + fixedFormat.width).toHexString();
+ var decimal = formatFixed(numeric, fixedFormat.decimals);
+ return new FixedNumber2(_constructorGuard, hex, decimal, fixedFormat);
+ };
+ FixedNumber2.from = function(value, format) {
+ if (typeof value === "string") {
+ return FixedNumber2.fromString(value, format);
+ }
+ if ((0, bytes_1.isBytes)(value)) {
+ return FixedNumber2.fromBytes(value, format);
+ }
+ try {
+ return FixedNumber2.fromValue(value, 0, format);
+ } catch (error) {
+ if (error.code !== logger_1.Logger.errors.INVALID_ARGUMENT) {
+ throw error;
+ }
+ }
+ return logger.throwArgumentError("invalid FixedNumber value", "value", value);
+ };
+ FixedNumber2.isFixedNumber = function(value) {
+ return !!(value && value._isFixedNumber);
+ };
+ return FixedNumber2;
+ }()
+ );
+ exports2.FixedNumber = FixedNumber;
+ var ONE = FixedNumber.from(1);
+ var BUMP = FixedNumber.from("0.5");
+ }
+});
+
+// node_modules/@ethersproject/bignumber/lib/index.js
+var require_lib7 = __commonJS({
+ "node_modules/@ethersproject/bignumber/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2._base36To16 = exports2._base16To36 = exports2.parseFixed = exports2.FixedNumber = exports2.FixedFormat = exports2.formatFixed = exports2.BigNumber = void 0;
+ var bignumber_1 = require_bignumber();
+ Object.defineProperty(exports2, "BigNumber", { enumerable: true, get: function() {
+ return bignumber_1.BigNumber;
+ } });
+ var fixednumber_1 = require_fixednumber();
+ Object.defineProperty(exports2, "formatFixed", { enumerable: true, get: function() {
+ return fixednumber_1.formatFixed;
+ } });
+ Object.defineProperty(exports2, "FixedFormat", { enumerable: true, get: function() {
+ return fixednumber_1.FixedFormat;
+ } });
+ Object.defineProperty(exports2, "FixedNumber", { enumerable: true, get: function() {
+ return fixednumber_1.FixedNumber;
+ } });
+ Object.defineProperty(exports2, "parseFixed", { enumerable: true, get: function() {
+ return fixednumber_1.parseFixed;
+ } });
+ var bignumber_2 = require_bignumber();
+ Object.defineProperty(exports2, "_base16To36", { enumerable: true, get: function() {
+ return bignumber_2._base16To36;
+ } });
+ Object.defineProperty(exports2, "_base36To16", { enumerable: true, get: function() {
+ return bignumber_2._base36To16;
+ } });
+ }
+});
+
+// node_modules/js-sha3/src/sha3.js
+var require_sha3 = __commonJS({
+ "node_modules/js-sha3/src/sha3.js"(exports2, module2) {
+ (function() {
+ "use strict";
+ var INPUT_ERROR = "input is invalid type";
+ var FINALIZE_ERROR = "finalize already called";
+ var WINDOW = typeof window === "object";
+ var root = WINDOW ? window : {};
+ if (root.JS_SHA3_NO_WINDOW) {
+ WINDOW = false;
+ }
+ var WEB_WORKER = !WINDOW && typeof self === "object";
+ var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === "object" && process.versions && process.versions.node;
+ if (NODE_JS) {
+ root = global;
+ } else if (WEB_WORKER) {
+ root = self;
+ }
+ var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module2 === "object" && module2.exports;
+ var AMD = typeof define === "function" && define.amd;
+ var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== "undefined";
+ var HEX_CHARS = "0123456789abcdef".split("");
+ var SHAKE_PADDING = [31, 7936, 2031616, 520093696];
+ var CSHAKE_PADDING = [4, 1024, 262144, 67108864];
+ var KECCAK_PADDING = [1, 256, 65536, 16777216];
+ var PADDING = [6, 1536, 393216, 100663296];
+ var SHIFT = [0, 8, 16, 24];
+ var RC = [
+ 1,
+ 0,
+ 32898,
+ 0,
+ 32906,
+ 2147483648,
+ 2147516416,
+ 2147483648,
+ 32907,
+ 0,
+ 2147483649,
+ 0,
+ 2147516545,
+ 2147483648,
+ 32777,
+ 2147483648,
+ 138,
+ 0,
+ 136,
+ 0,
+ 2147516425,
+ 0,
+ 2147483658,
+ 0,
+ 2147516555,
+ 0,
+ 139,
+ 2147483648,
+ 32905,
+ 2147483648,
+ 32771,
+ 2147483648,
+ 32770,
+ 2147483648,
+ 128,
+ 2147483648,
+ 32778,
+ 0,
+ 2147483658,
+ 2147483648,
+ 2147516545,
+ 2147483648,
+ 32896,
+ 2147483648,
+ 2147483649,
+ 0,
+ 2147516424,
+ 2147483648
+ ];
+ var BITS = [224, 256, 384, 512];
+ var SHAKE_BITS = [128, 256];
+ var OUTPUT_TYPES = ["hex", "buffer", "arrayBuffer", "array", "digest"];
+ var CSHAKE_BYTEPAD = {
+ "128": 168,
+ "256": 136
+ };
+ if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {
+ Array.isArray = function(obj) {
+ return Object.prototype.toString.call(obj) === "[object Array]";
+ };
+ }
+ if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {
+ ArrayBuffer.isView = function(obj) {
+ return typeof obj === "object" && obj.buffer && obj.buffer.constructor === ArrayBuffer;
+ };
+ }
+ var createOutputMethod = function(bits2, padding, outputType) {
+ return function(message) {
+ return new Keccak(bits2, padding, bits2).update(message)[outputType]();
+ };
+ };
+ var createShakeOutputMethod = function(bits2, padding, outputType) {
+ return function(message, outputBits) {
+ return new Keccak(bits2, padding, outputBits).update(message)[outputType]();
+ };
+ };
+ var createCshakeOutputMethod = function(bits2, padding, outputType) {
+ return function(message, outputBits, n, s) {
+ return methods["cshake" + bits2].update(message, outputBits, n, s)[outputType]();
+ };
+ };
+ var createKmacOutputMethod = function(bits2, padding, outputType) {
+ return function(key, message, outputBits, s) {
+ return methods["kmac" + bits2].update(key, message, outputBits, s)[outputType]();
+ };
+ };
+ var createOutputMethods = function(method, createMethod2, bits2, padding) {
+ for (var i2 = 0; i2 < OUTPUT_TYPES.length; ++i2) {
+ var type = OUTPUT_TYPES[i2];
+ method[type] = createMethod2(bits2, padding, type);
+ }
+ return method;
+ };
+ var createMethod = function(bits2, padding) {
+ var method = createOutputMethod(bits2, padding, "hex");
+ method.create = function() {
+ return new Keccak(bits2, padding, bits2);
+ };
+ method.update = function(message) {
+ return method.create().update(message);
+ };
+ return createOutputMethods(method, createOutputMethod, bits2, padding);
+ };
+ var createShakeMethod = function(bits2, padding) {
+ var method = createShakeOutputMethod(bits2, padding, "hex");
+ method.create = function(outputBits) {
+ return new Keccak(bits2, padding, outputBits);
+ };
+ method.update = function(message, outputBits) {
+ return method.create(outputBits).update(message);
+ };
+ return createOutputMethods(method, createShakeOutputMethod, bits2, padding);
+ };
+ var createCshakeMethod = function(bits2, padding) {
+ var w = CSHAKE_BYTEPAD[bits2];
+ var method = createCshakeOutputMethod(bits2, padding, "hex");
+ method.create = function(outputBits, n, s) {
+ if (!n && !s) {
+ return methods["shake" + bits2].create(outputBits);
+ } else {
+ return new Keccak(bits2, padding, outputBits).bytepad([n, s], w);
+ }
+ };
+ method.update = function(message, outputBits, n, s) {
+ return method.create(outputBits, n, s).update(message);
+ };
+ return createOutputMethods(method, createCshakeOutputMethod, bits2, padding);
+ };
+ var createKmacMethod = function(bits2, padding) {
+ var w = CSHAKE_BYTEPAD[bits2];
+ var method = createKmacOutputMethod(bits2, padding, "hex");
+ method.create = function(key, outputBits, s) {
+ return new Kmac(bits2, padding, outputBits).bytepad(["KMAC", s], w).bytepad([key], w);
+ };
+ method.update = function(key, message, outputBits, s) {
+ return method.create(key, outputBits, s).update(message);
+ };
+ return createOutputMethods(method, createKmacOutputMethod, bits2, padding);
+ };
+ var algorithms = [
+ { name: "keccak", padding: KECCAK_PADDING, bits: BITS, createMethod },
+ { name: "sha3", padding: PADDING, bits: BITS, createMethod },
+ { name: "shake", padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },
+ { name: "cshake", padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },
+ { name: "kmac", padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }
+ ];
+ var methods = {}, methodNames = [];
+ for (var i = 0; i < algorithms.length; ++i) {
+ var algorithm = algorithms[i];
+ var bits = algorithm.bits;
+ for (var j = 0; j < bits.length; ++j) {
+ var methodName = algorithm.name + "_" + bits[j];
+ methodNames.push(methodName);
+ methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);
+ if (algorithm.name !== "sha3") {
+ var newMethodName = algorithm.name + bits[j];
+ methodNames.push(newMethodName);
+ methods[newMethodName] = methods[methodName];
+ }
+ }
+ }
+ function Keccak(bits2, padding, outputBits) {
+ this.blocks = [];
+ this.s = [];
+ this.padding = padding;
+ this.outputBits = outputBits;
+ this.reset = true;
+ this.finalized = false;
+ this.block = 0;
+ this.start = 0;
+ this.blockCount = 1600 - (bits2 << 1) >> 5;
+ this.byteCount = this.blockCount << 2;
+ this.outputBlocks = outputBits >> 5;
+ this.extraBytes = (outputBits & 31) >> 3;
+ for (var i2 = 0; i2 < 50; ++i2) {
+ this.s[i2] = 0;
+ }
+ }
+ Keccak.prototype.update = function(message) {
+ if (this.finalized) {
+ throw new Error(FINALIZE_ERROR);
+ }
+ var notString, type = typeof message;
+ if (type !== "string") {
+ if (type === "object") {
+ if (message === null) {
+ throw new Error(INPUT_ERROR);
+ } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {
+ message = new Uint8Array(message);
+ } else if (!Array.isArray(message)) {
+ if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {
+ throw new Error(INPUT_ERROR);
+ }
+ }
+ } else {
+ throw new Error(INPUT_ERROR);
+ }
+ notString = true;
+ }
+ var blocks = this.blocks, byteCount = this.byteCount, length = message.length, blockCount = this.blockCount, index = 0, s = this.s, i2, code;
+ while (index < length) {
+ if (this.reset) {
+ this.reset = false;
+ blocks[0] = this.block;
+ for (i2 = 1; i2 < blockCount + 1; ++i2) {
+ blocks[i2] = 0;
+ }
+ }
+ if (notString) {
+ for (i2 = this.start; index < length && i2 < byteCount; ++index) {
+ blocks[i2 >> 2] |= message[index] << SHIFT[i2++ & 3];
+ }
+ } else {
+ for (i2 = this.start; index < length && i2 < byteCount; ++index) {
+ code = message.charCodeAt(index);
+ if (code < 128) {
+ blocks[i2 >> 2] |= code << SHIFT[i2++ & 3];
+ } else if (code < 2048) {
+ blocks[i2 >> 2] |= (192 | code >> 6) << SHIFT[i2++ & 3];
+ blocks[i2 >> 2] |= (128 | code & 63) << SHIFT[i2++ & 3];
+ } else if (code < 55296 || code >= 57344) {
+ blocks[i2 >> 2] |= (224 | code >> 12) << SHIFT[i2++ & 3];
+ blocks[i2 >> 2] |= (128 | code >> 6 & 63) << SHIFT[i2++ & 3];
+ blocks[i2 >> 2] |= (128 | code & 63) << SHIFT[i2++ & 3];
+ } else {
+ code = 65536 + ((code & 1023) << 10 | message.charCodeAt(++index) & 1023);
+ blocks[i2 >> 2] |= (240 | code >> 18) << SHIFT[i2++ & 3];
+ blocks[i2 >> 2] |= (128 | code >> 12 & 63) << SHIFT[i2++ & 3];
+ blocks[i2 >> 2] |= (128 | code >> 6 & 63) << SHIFT[i2++ & 3];
+ blocks[i2 >> 2] |= (128 | code & 63) << SHIFT[i2++ & 3];
+ }
+ }
+ }
+ this.lastByteIndex = i2;
+ if (i2 >= byteCount) {
+ this.start = i2 - byteCount;
+ this.block = blocks[blockCount];
+ for (i2 = 0; i2 < blockCount; ++i2) {
+ s[i2] ^= blocks[i2];
+ }
+ f(s);
+ this.reset = true;
+ } else {
+ this.start = i2;
+ }
+ }
+ return this;
+ };
+ Keccak.prototype.encode = function(x, right) {
+ var o = x & 255, n = 1;
+ var bytes = [o];
+ x = x >> 8;
+ o = x & 255;
+ while (o > 0) {
+ bytes.unshift(o);
+ x = x >> 8;
+ o = x & 255;
+ ++n;
+ }
+ if (right) {
+ bytes.push(n);
+ } else {
+ bytes.unshift(n);
+ }
+ this.update(bytes);
+ return bytes.length;
+ };
+ Keccak.prototype.encodeString = function(str) {
+ var notString, type = typeof str;
+ if (type !== "string") {
+ if (type === "object") {
+ if (str === null) {
+ throw new Error(INPUT_ERROR);
+ } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {
+ str = new Uint8Array(str);
+ } else if (!Array.isArray(str)) {
+ if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {
+ throw new Error(INPUT_ERROR);
+ }
+ }
+ } else {
+ throw new Error(INPUT_ERROR);
+ }
+ notString = true;
+ }
+ var bytes = 0, length = str.length;
+ if (notString) {
+ bytes = length;
+ } else {
+ for (var i2 = 0; i2 < str.length; ++i2) {
+ var code = str.charCodeAt(i2);
+ if (code < 128) {
+ bytes += 1;
+ } else if (code < 2048) {
+ bytes += 2;
+ } else if (code < 55296 || code >= 57344) {
+ bytes += 3;
+ } else {
+ code = 65536 + ((code & 1023) << 10 | str.charCodeAt(++i2) & 1023);
+ bytes += 4;
+ }
+ }
+ }
+ bytes += this.encode(bytes * 8);
+ this.update(str);
+ return bytes;
+ };
+ Keccak.prototype.bytepad = function(strs, w) {
+ var bytes = this.encode(w);
+ for (var i2 = 0; i2 < strs.length; ++i2) {
+ bytes += this.encodeString(strs[i2]);
+ }
+ var paddingBytes = w - bytes % w;
+ var zeros = [];
+ zeros.length = paddingBytes;
+ this.update(zeros);
+ return this;
+ };
+ Keccak.prototype.finalize = function() {
+ if (this.finalized) {
+ return;
+ }
+ this.finalized = true;
+ var blocks = this.blocks, i2 = this.lastByteIndex, blockCount = this.blockCount, s = this.s;
+ blocks[i2 >> 2] |= this.padding[i2 & 3];
+ if (this.lastByteIndex === this.byteCount) {
+ blocks[0] = blocks[blockCount];
+ for (i2 = 1; i2 < blockCount + 1; ++i2) {
+ blocks[i2] = 0;
+ }
+ }
+ blocks[blockCount - 1] |= 2147483648;
+ for (i2 = 0; i2 < blockCount; ++i2) {
+ s[i2] ^= blocks[i2];
+ }
+ f(s);
+ };
+ Keccak.prototype.toString = Keccak.prototype.hex = function() {
+ this.finalize();
+ var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i2 = 0, j2 = 0;
+ var hex = "", block;
+ while (j2 < outputBlocks) {
+ for (i2 = 0; i2 < blockCount && j2 < outputBlocks; ++i2, ++j2) {
+ block = s[i2];
+ hex += HEX_CHARS[block >> 4 & 15] + HEX_CHARS[block & 15] + HEX_CHARS[block >> 12 & 15] + HEX_CHARS[block >> 8 & 15] + HEX_CHARS[block >> 20 & 15] + HEX_CHARS[block >> 16 & 15] + HEX_CHARS[block >> 28 & 15] + HEX_CHARS[block >> 24 & 15];
+ }
+ if (j2 % blockCount === 0) {
+ f(s);
+ i2 = 0;
+ }
+ }
+ if (extraBytes) {
+ block = s[i2];
+ hex += HEX_CHARS[block >> 4 & 15] + HEX_CHARS[block & 15];
+ if (extraBytes > 1) {
+ hex += HEX_CHARS[block >> 12 & 15] + HEX_CHARS[block >> 8 & 15];
+ }
+ if (extraBytes > 2) {
+ hex += HEX_CHARS[block >> 20 & 15] + HEX_CHARS[block >> 16 & 15];
+ }
+ }
+ return hex;
+ };
+ Keccak.prototype.arrayBuffer = function() {
+ this.finalize();
+ var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i2 = 0, j2 = 0;
+ var bytes = this.outputBits >> 3;
+ var buffer;
+ if (extraBytes) {
+ buffer = new ArrayBuffer(outputBlocks + 1 << 2);
+ } else {
+ buffer = new ArrayBuffer(bytes);
+ }
+ var array = new Uint32Array(buffer);
+ while (j2 < outputBlocks) {
+ for (i2 = 0; i2 < blockCount && j2 < outputBlocks; ++i2, ++j2) {
+ array[j2] = s[i2];
+ }
+ if (j2 % blockCount === 0) {
+ f(s);
+ }
+ }
+ if (extraBytes) {
+ array[i2] = s[i2];
+ buffer = buffer.slice(0, bytes);
+ }
+ return buffer;
+ };
+ Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;
+ Keccak.prototype.digest = Keccak.prototype.array = function() {
+ this.finalize();
+ var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks, extraBytes = this.extraBytes, i2 = 0, j2 = 0;
+ var array = [], offset, block;
+ while (j2 < outputBlocks) {
+ for (i2 = 0; i2 < blockCount && j2 < outputBlocks; ++i2, ++j2) {
+ offset = j2 << 2;
+ block = s[i2];
+ array[offset] = block & 255;
+ array[offset + 1] = block >> 8 & 255;
+ array[offset + 2] = block >> 16 & 255;
+ array[offset + 3] = block >> 24 & 255;
+ }
+ if (j2 % blockCount === 0) {
+ f(s);
+ }
+ }
+ if (extraBytes) {
+ offset = j2 << 2;
+ block = s[i2];
+ array[offset] = block & 255;
+ if (extraBytes > 1) {
+ array[offset + 1] = block >> 8 & 255;
+ }
+ if (extraBytes > 2) {
+ array[offset + 2] = block >> 16 & 255;
+ }
+ }
+ return array;
+ };
+ function Kmac(bits2, padding, outputBits) {
+ Keccak.call(this, bits2, padding, outputBits);
+ }
+ Kmac.prototype = new Keccak();
+ Kmac.prototype.finalize = function() {
+ this.encode(this.outputBits, true);
+ return Keccak.prototype.finalize.call(this);
+ };
+ var f = function(s) {
+ var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;
+ for (n = 0; n < 48; n += 2) {
+ c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];
+ c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];
+ c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];
+ c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];
+ c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];
+ c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];
+ c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];
+ c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];
+ c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];
+ c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];
+ h = c8 ^ (c2 << 1 | c3 >>> 31);
+ l = c9 ^ (c3 << 1 | c2 >>> 31);
+ s[0] ^= h;
+ s[1] ^= l;
+ s[10] ^= h;
+ s[11] ^= l;
+ s[20] ^= h;
+ s[21] ^= l;
+ s[30] ^= h;
+ s[31] ^= l;
+ s[40] ^= h;
+ s[41] ^= l;
+ h = c0 ^ (c4 << 1 | c5 >>> 31);
+ l = c1 ^ (c5 << 1 | c4 >>> 31);
+ s[2] ^= h;
+ s[3] ^= l;
+ s[12] ^= h;
+ s[13] ^= l;
+ s[22] ^= h;
+ s[23] ^= l;
+ s[32] ^= h;
+ s[33] ^= l;
+ s[42] ^= h;
+ s[43] ^= l;
+ h = c2 ^ (c6 << 1 | c7 >>> 31);
+ l = c3 ^ (c7 << 1 | c6 >>> 31);
+ s[4] ^= h;
+ s[5] ^= l;
+ s[14] ^= h;
+ s[15] ^= l;
+ s[24] ^= h;
+ s[25] ^= l;
+ s[34] ^= h;
+ s[35] ^= l;
+ s[44] ^= h;
+ s[45] ^= l;
+ h = c4 ^ (c8 << 1 | c9 >>> 31);
+ l = c5 ^ (c9 << 1 | c8 >>> 31);
+ s[6] ^= h;
+ s[7] ^= l;
+ s[16] ^= h;
+ s[17] ^= l;
+ s[26] ^= h;
+ s[27] ^= l;
+ s[36] ^= h;
+ s[37] ^= l;
+ s[46] ^= h;
+ s[47] ^= l;
+ h = c6 ^ (c0 << 1 | c1 >>> 31);
+ l = c7 ^ (c1 << 1 | c0 >>> 31);
+ s[8] ^= h;
+ s[9] ^= l;
+ s[18] ^= h;
+ s[19] ^= l;
+ s[28] ^= h;
+ s[29] ^= l;
+ s[38] ^= h;
+ s[39] ^= l;
+ s[48] ^= h;
+ s[49] ^= l;
+ b0 = s[0];
+ b1 = s[1];
+ b32 = s[11] << 4 | s[10] >>> 28;
+ b33 = s[10] << 4 | s[11] >>> 28;
+ b14 = s[20] << 3 | s[21] >>> 29;
+ b15 = s[21] << 3 | s[20] >>> 29;
+ b46 = s[31] << 9 | s[30] >>> 23;
+ b47 = s[30] << 9 | s[31] >>> 23;
+ b28 = s[40] << 18 | s[41] >>> 14;
+ b29 = s[41] << 18 | s[40] >>> 14;
+ b20 = s[2] << 1 | s[3] >>> 31;
+ b21 = s[3] << 1 | s[2] >>> 31;
+ b2 = s[13] << 12 | s[12] >>> 20;
+ b3 = s[12] << 12 | s[13] >>> 20;
+ b34 = s[22] << 10 | s[23] >>> 22;
+ b35 = s[23] << 10 | s[22] >>> 22;
+ b16 = s[33] << 13 | s[32] >>> 19;
+ b17 = s[32] << 13 | s[33] >>> 19;
+ b48 = s[42] << 2 | s[43] >>> 30;
+ b49 = s[43] << 2 | s[42] >>> 30;
+ b40 = s[5] << 30 | s[4] >>> 2;
+ b41 = s[4] << 30 | s[5] >>> 2;
+ b22 = s[14] << 6 | s[15] >>> 26;
+ b23 = s[15] << 6 | s[14] >>> 26;
+ b4 = s[25] << 11 | s[24] >>> 21;
+ b5 = s[24] << 11 | s[25] >>> 21;
+ b36 = s[34] << 15 | s[35] >>> 17;
+ b37 = s[35] << 15 | s[34] >>> 17;
+ b18 = s[45] << 29 | s[44] >>> 3;
+ b19 = s[44] << 29 | s[45] >>> 3;
+ b10 = s[6] << 28 | s[7] >>> 4;
+ b11 = s[7] << 28 | s[6] >>> 4;
+ b42 = s[17] << 23 | s[16] >>> 9;
+ b43 = s[16] << 23 | s[17] >>> 9;
+ b24 = s[26] << 25 | s[27] >>> 7;
+ b25 = s[27] << 25 | s[26] >>> 7;
+ b6 = s[36] << 21 | s[37] >>> 11;
+ b7 = s[37] << 21 | s[36] >>> 11;
+ b38 = s[47] << 24 | s[46] >>> 8;
+ b39 = s[46] << 24 | s[47] >>> 8;
+ b30 = s[8] << 27 | s[9] >>> 5;
+ b31 = s[9] << 27 | s[8] >>> 5;
+ b12 = s[18] << 20 | s[19] >>> 12;
+ b13 = s[19] << 20 | s[18] >>> 12;
+ b44 = s[29] << 7 | s[28] >>> 25;
+ b45 = s[28] << 7 | s[29] >>> 25;
+ b26 = s[38] << 8 | s[39] >>> 24;
+ b27 = s[39] << 8 | s[38] >>> 24;
+ b8 = s[48] << 14 | s[49] >>> 18;
+ b9 = s[49] << 14 | s[48] >>> 18;
+ s[0] = b0 ^ ~b2 & b4;
+ s[1] = b1 ^ ~b3 & b5;
+ s[10] = b10 ^ ~b12 & b14;
+ s[11] = b11 ^ ~b13 & b15;
+ s[20] = b20 ^ ~b22 & b24;
+ s[21] = b21 ^ ~b23 & b25;
+ s[30] = b30 ^ ~b32 & b34;
+ s[31] = b31 ^ ~b33 & b35;
+ s[40] = b40 ^ ~b42 & b44;
+ s[41] = b41 ^ ~b43 & b45;
+ s[2] = b2 ^ ~b4 & b6;
+ s[3] = b3 ^ ~b5 & b7;
+ s[12] = b12 ^ ~b14 & b16;
+ s[13] = b13 ^ ~b15 & b17;
+ s[22] = b22 ^ ~b24 & b26;
+ s[23] = b23 ^ ~b25 & b27;
+ s[32] = b32 ^ ~b34 & b36;
+ s[33] = b33 ^ ~b35 & b37;
+ s[42] = b42 ^ ~b44 & b46;
+ s[43] = b43 ^ ~b45 & b47;
+ s[4] = b4 ^ ~b6 & b8;
+ s[5] = b5 ^ ~b7 & b9;
+ s[14] = b14 ^ ~b16 & b18;
+ s[15] = b15 ^ ~b17 & b19;
+ s[24] = b24 ^ ~b26 & b28;
+ s[25] = b25 ^ ~b27 & b29;
+ s[34] = b34 ^ ~b36 & b38;
+ s[35] = b35 ^ ~b37 & b39;
+ s[44] = b44 ^ ~b46 & b48;
+ s[45] = b45 ^ ~b47 & b49;
+ s[6] = b6 ^ ~b8 & b0;
+ s[7] = b7 ^ ~b9 & b1;
+ s[16] = b16 ^ ~b18 & b10;
+ s[17] = b17 ^ ~b19 & b11;
+ s[26] = b26 ^ ~b28 & b20;
+ s[27] = b27 ^ ~b29 & b21;
+ s[36] = b36 ^ ~b38 & b30;
+ s[37] = b37 ^ ~b39 & b31;
+ s[46] = b46 ^ ~b48 & b40;
+ s[47] = b47 ^ ~b49 & b41;
+ s[8] = b8 ^ ~b0 & b2;
+ s[9] = b9 ^ ~b1 & b3;
+ s[18] = b18 ^ ~b10 & b12;
+ s[19] = b19 ^ ~b11 & b13;
+ s[28] = b28 ^ ~b20 & b22;
+ s[29] = b29 ^ ~b21 & b23;
+ s[38] = b38 ^ ~b30 & b32;
+ s[39] = b39 ^ ~b31 & b33;
+ s[48] = b48 ^ ~b40 & b42;
+ s[49] = b49 ^ ~b41 & b43;
+ s[0] ^= RC[n];
+ s[1] ^= RC[n + 1];
+ }
+ };
+ if (COMMON_JS) {
+ module2.exports = methods;
+ } else {
+ for (i = 0; i < methodNames.length; ++i) {
+ root[methodNames[i]] = methods[methodNames[i]];
+ }
+ if (AMD) {
+ define(function() {
+ return methods;
+ });
+ }
+ }
+ })();
+ }
+});
+
+// node_modules/@ethersproject/keccak256/lib/index.js
+var require_lib8 = __commonJS({
+ "node_modules/@ethersproject/keccak256/lib/index.js"(exports2) {
+ "use strict";
+ var __importDefault13 = exports2 && exports2.__importDefault || function(mod) {
+ return mod && mod.__esModule ? mod : { "default": mod };
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.keccak256 = void 0;
+ var js_sha3_1 = __importDefault13(require_sha3());
+ var bytes_1 = require_lib6();
+ function keccak256(data) {
+ return "0x" + js_sha3_1.default.keccak_256((0, bytes_1.arrayify)(data));
+ }
+ exports2.keccak256 = keccak256;
+ }
+});
+
+// node_modules/@ethersproject/rlp/lib/_version.js
+var require_version4 = __commonJS({
+ "node_modules/@ethersproject/rlp/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "rlp/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/rlp/lib/index.js
+var require_lib9 = __commonJS({
+ "node_modules/@ethersproject/rlp/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.decode = exports2.encode = void 0;
+ var bytes_1 = require_lib6();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version4();
+ var logger = new logger_1.Logger(_version_1.version);
+ function arrayifyInteger(value) {
+ var result = [];
+ while (value) {
+ result.unshift(value & 255);
+ value >>= 8;
+ }
+ return result;
+ }
+ function unarrayifyInteger(data, offset, length) {
+ var result = 0;
+ for (var i = 0; i < length; i++) {
+ result = result * 256 + data[offset + i];
+ }
+ return result;
+ }
+ function _encode(object) {
+ if (Array.isArray(object)) {
+ var payload_1 = [];
+ object.forEach(function(child) {
+ payload_1 = payload_1.concat(_encode(child));
+ });
+ if (payload_1.length <= 55) {
+ payload_1.unshift(192 + payload_1.length);
+ return payload_1;
+ }
+ var length_1 = arrayifyInteger(payload_1.length);
+ length_1.unshift(247 + length_1.length);
+ return length_1.concat(payload_1);
+ }
+ if (!(0, bytes_1.isBytesLike)(object)) {
+ logger.throwArgumentError("RLP object must be BytesLike", "object", object);
+ }
+ var data = Array.prototype.slice.call((0, bytes_1.arrayify)(object));
+ if (data.length === 1 && data[0] <= 127) {
+ return data;
+ } else if (data.length <= 55) {
+ data.unshift(128 + data.length);
+ return data;
+ }
+ var length = arrayifyInteger(data.length);
+ length.unshift(183 + length.length);
+ return length.concat(data);
+ }
+ function encode(object) {
+ return (0, bytes_1.hexlify)(_encode(object));
+ }
+ exports2.encode = encode;
+ function _decodeChildren(data, offset, childOffset, length) {
+ var result = [];
+ while (childOffset < offset + 1 + length) {
+ var decoded = _decode(data, childOffset);
+ result.push(decoded.result);
+ childOffset += decoded.consumed;
+ if (childOffset > offset + 1 + length) {
+ logger.throwError("child data too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
+ }
+ }
+ return { consumed: 1 + length, result };
+ }
+ function _decode(data, offset) {
+ if (data.length === 0) {
+ logger.throwError("data too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
+ }
+ if (data[offset] >= 248) {
+ var lengthLength = data[offset] - 247;
+ if (offset + 1 + lengthLength > data.length) {
+ logger.throwError("data short segment too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
+ }
+ var length_2 = unarrayifyInteger(data, offset + 1, lengthLength);
+ if (offset + 1 + lengthLength + length_2 > data.length) {
+ logger.throwError("data long segment too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
+ }
+ return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length_2);
+ } else if (data[offset] >= 192) {
+ var length_3 = data[offset] - 192;
+ if (offset + 1 + length_3 > data.length) {
+ logger.throwError("data array too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
+ }
+ return _decodeChildren(data, offset, offset + 1, length_3);
+ } else if (data[offset] >= 184) {
+ var lengthLength = data[offset] - 183;
+ if (offset + 1 + lengthLength > data.length) {
+ logger.throwError("data array too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
+ }
+ var length_4 = unarrayifyInteger(data, offset + 1, lengthLength);
+ if (offset + 1 + lengthLength + length_4 > data.length) {
+ logger.throwError("data array too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
+ }
+ var result = (0, bytes_1.hexlify)(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length_4));
+ return { consumed: 1 + lengthLength + length_4, result };
+ } else if (data[offset] >= 128) {
+ var length_5 = data[offset] - 128;
+ if (offset + 1 + length_5 > data.length) {
+ logger.throwError("data too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
+ }
+ var result = (0, bytes_1.hexlify)(data.slice(offset + 1, offset + 1 + length_5));
+ return { consumed: 1 + length_5, result };
+ }
+ return { consumed: 1, result: (0, bytes_1.hexlify)(data[offset]) };
+ }
+ function decode(data) {
+ var bytes = (0, bytes_1.arrayify)(data);
+ var decoded = _decode(bytes, 0);
+ if (decoded.consumed !== bytes.length) {
+ logger.throwArgumentError("invalid rlp data", "data", data);
+ }
+ return decoded.result;
+ }
+ exports2.decode = decode;
+ }
+});
+
+// node_modules/@ethersproject/address/lib/_version.js
+var require_version5 = __commonJS({
+ "node_modules/@ethersproject/address/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "address/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/address/lib/index.js
+var require_lib10 = __commonJS({
+ "node_modules/@ethersproject/address/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getCreate2Address = exports2.getContractAddress = exports2.getIcapAddress = exports2.isAddress = exports2.getAddress = void 0;
+ var bytes_1 = require_lib6();
+ var bignumber_1 = require_lib7();
+ var keccak256_1 = require_lib8();
+ var rlp_1 = require_lib9();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version5();
+ var logger = new logger_1.Logger(_version_1.version);
+ function getChecksumAddress(address) {
+ if (!(0, bytes_1.isHexString)(address, 20)) {
+ logger.throwArgumentError("invalid address", "address", address);
+ }
+ address = address.toLowerCase();
+ var chars = address.substring(2).split("");
+ var expanded = new Uint8Array(40);
+ for (var i2 = 0; i2 < 40; i2++) {
+ expanded[i2] = chars[i2].charCodeAt(0);
+ }
+ var hashed = (0, bytes_1.arrayify)((0, keccak256_1.keccak256)(expanded));
+ for (var i2 = 0; i2 < 40; i2 += 2) {
+ if (hashed[i2 >> 1] >> 4 >= 8) {
+ chars[i2] = chars[i2].toUpperCase();
+ }
+ if ((hashed[i2 >> 1] & 15) >= 8) {
+ chars[i2 + 1] = chars[i2 + 1].toUpperCase();
+ }
+ }
+ return "0x" + chars.join("");
+ }
+ var MAX_SAFE_INTEGER = 9007199254740991;
+ function log10(x) {
+ if (Math.log10) {
+ return Math.log10(x);
+ }
+ return Math.log(x) / Math.LN10;
+ }
+ var ibanLookup = {};
+ for (i = 0; i < 10; i++) {
+ ibanLookup[String(i)] = String(i);
+ }
+ var i;
+ for (i = 0; i < 26; i++) {
+ ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);
+ }
+ var i;
+ var safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));
+ function ibanChecksum(address) {
+ address = address.toUpperCase();
+ address = address.substring(4) + address.substring(0, 2) + "00";
+ var expanded = address.split("").map(function(c) {
+ return ibanLookup[c];
+ }).join("");
+ while (expanded.length >= safeDigits) {
+ var block = expanded.substring(0, safeDigits);
+ expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);
+ }
+ var checksum = String(98 - parseInt(expanded, 10) % 97);
+ while (checksum.length < 2) {
+ checksum = "0" + checksum;
+ }
+ return checksum;
+ }
+ function getAddress(address) {
+ var result = null;
+ if (typeof address !== "string") {
+ logger.throwArgumentError("invalid address", "address", address);
+ }
+ if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {
+ if (address.substring(0, 2) !== "0x") {
+ address = "0x" + address;
+ }
+ result = getChecksumAddress(address);
+ if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {
+ logger.throwArgumentError("bad address checksum", "address", address);
+ }
+ } else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {
+ if (address.substring(2, 4) !== ibanChecksum(address)) {
+ logger.throwArgumentError("bad icap checksum", "address", address);
+ }
+ result = (0, bignumber_1._base36To16)(address.substring(4));
+ while (result.length < 40) {
+ result = "0" + result;
+ }
+ result = getChecksumAddress("0x" + result);
+ } else {
+ logger.throwArgumentError("invalid address", "address", address);
+ }
+ return result;
+ }
+ exports2.getAddress = getAddress;
+ function isAddress(address) {
+ try {
+ getAddress(address);
+ return true;
+ } catch (error) {
+ }
+ return false;
+ }
+ exports2.isAddress = isAddress;
+ function getIcapAddress(address) {
+ var base36 = (0, bignumber_1._base16To36)(getAddress(address).substring(2)).toUpperCase();
+ while (base36.length < 30) {
+ base36 = "0" + base36;
+ }
+ return "XE" + ibanChecksum("XE00" + base36) + base36;
+ }
+ exports2.getIcapAddress = getIcapAddress;
+ function getContractAddress(transaction) {
+ var from = null;
+ try {
+ from = getAddress(transaction.from);
+ } catch (error) {
+ logger.throwArgumentError("missing from address", "transaction", transaction);
+ }
+ var nonce = (0, bytes_1.stripZeros)((0, bytes_1.arrayify)(bignumber_1.BigNumber.from(transaction.nonce).toHexString()));
+ return getAddress((0, bytes_1.hexDataSlice)((0, keccak256_1.keccak256)((0, rlp_1.encode)([from, nonce])), 12));
+ }
+ exports2.getContractAddress = getContractAddress;
+ function getCreate2Address(from, salt, initCodeHash) {
+ if ((0, bytes_1.hexDataLength)(salt) !== 32) {
+ logger.throwArgumentError("salt must be 32 bytes", "salt", salt);
+ }
+ if ((0, bytes_1.hexDataLength)(initCodeHash) !== 32) {
+ logger.throwArgumentError("initCodeHash must be 32 bytes", "initCodeHash", initCodeHash);
+ }
+ return getAddress((0, bytes_1.hexDataSlice)((0, keccak256_1.keccak256)((0, bytes_1.concat)(["0xff", getAddress(from), salt, initCodeHash])), 12));
+ }
+ exports2.getCreate2Address = getCreate2Address;
+ }
+});
+
+// node_modules/@ethersproject/constants/lib/addresses.js
+var require_addresses = __commonJS({
+ "node_modules/@ethersproject/constants/lib/addresses.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.AddressZero = void 0;
+ exports2.AddressZero = "0x0000000000000000000000000000000000000000";
+ }
+});
+
+// node_modules/@ethersproject/constants/lib/bignumbers.js
+var require_bignumbers = __commonJS({
+ "node_modules/@ethersproject/constants/lib/bignumbers.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.MaxInt256 = exports2.MinInt256 = exports2.MaxUint256 = exports2.WeiPerEther = exports2.Two = exports2.One = exports2.Zero = exports2.NegativeOne = void 0;
+ var bignumber_1 = require_lib7();
+ var NegativeOne = /* @__PURE__ */ bignumber_1.BigNumber.from(-1);
+ exports2.NegativeOne = NegativeOne;
+ var Zero = /* @__PURE__ */ bignumber_1.BigNumber.from(0);
+ exports2.Zero = Zero;
+ var One = /* @__PURE__ */ bignumber_1.BigNumber.from(1);
+ exports2.One = One;
+ var Two = /* @__PURE__ */ bignumber_1.BigNumber.from(2);
+ exports2.Two = Two;
+ var WeiPerEther = /* @__PURE__ */ bignumber_1.BigNumber.from("1000000000000000000");
+ exports2.WeiPerEther = WeiPerEther;
+ var MaxUint256 = /* @__PURE__ */ bignumber_1.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
+ exports2.MaxUint256 = MaxUint256;
+ var MinInt256 = /* @__PURE__ */ bignumber_1.BigNumber.from("-0x8000000000000000000000000000000000000000000000000000000000000000");
+ exports2.MinInt256 = MinInt256;
+ var MaxInt256 = /* @__PURE__ */ bignumber_1.BigNumber.from("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
+ exports2.MaxInt256 = MaxInt256;
+ }
+});
+
+// node_modules/@ethersproject/constants/lib/hashes.js
+var require_hashes = __commonJS({
+ "node_modules/@ethersproject/constants/lib/hashes.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.HashZero = void 0;
+ exports2.HashZero = "0x0000000000000000000000000000000000000000000000000000000000000000";
+ }
+});
+
+// node_modules/@ethersproject/constants/lib/strings.js
+var require_strings = __commonJS({
+ "node_modules/@ethersproject/constants/lib/strings.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.EtherSymbol = void 0;
+ exports2.EtherSymbol = "\u039E";
+ }
+});
+
+// node_modules/@ethersproject/constants/lib/index.js
+var require_lib11 = __commonJS({
+ "node_modules/@ethersproject/constants/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.EtherSymbol = exports2.HashZero = exports2.MaxInt256 = exports2.MinInt256 = exports2.MaxUint256 = exports2.WeiPerEther = exports2.Two = exports2.One = exports2.Zero = exports2.NegativeOne = exports2.AddressZero = void 0;
+ var addresses_1 = require_addresses();
+ Object.defineProperty(exports2, "AddressZero", { enumerable: true, get: function() {
+ return addresses_1.AddressZero;
+ } });
+ var bignumbers_1 = require_bignumbers();
+ Object.defineProperty(exports2, "NegativeOne", { enumerable: true, get: function() {
+ return bignumbers_1.NegativeOne;
+ } });
+ Object.defineProperty(exports2, "Zero", { enumerable: true, get: function() {
+ return bignumbers_1.Zero;
+ } });
+ Object.defineProperty(exports2, "One", { enumerable: true, get: function() {
+ return bignumbers_1.One;
+ } });
+ Object.defineProperty(exports2, "Two", { enumerable: true, get: function() {
+ return bignumbers_1.Two;
+ } });
+ Object.defineProperty(exports2, "WeiPerEther", { enumerable: true, get: function() {
+ return bignumbers_1.WeiPerEther;
+ } });
+ Object.defineProperty(exports2, "MaxUint256", { enumerable: true, get: function() {
+ return bignumbers_1.MaxUint256;
+ } });
+ Object.defineProperty(exports2, "MinInt256", { enumerable: true, get: function() {
+ return bignumbers_1.MinInt256;
+ } });
+ Object.defineProperty(exports2, "MaxInt256", { enumerable: true, get: function() {
+ return bignumbers_1.MaxInt256;
+ } });
+ var hashes_1 = require_hashes();
+ Object.defineProperty(exports2, "HashZero", { enumerable: true, get: function() {
+ return hashes_1.HashZero;
+ } });
+ var strings_1 = require_strings();
+ Object.defineProperty(exports2, "EtherSymbol", { enumerable: true, get: function() {
+ return strings_1.EtherSymbol;
+ } });
+ }
+});
+
+// node_modules/@ethersproject/properties/lib/_version.js
+var require_version6 = __commonJS({
+ "node_modules/@ethersproject/properties/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "properties/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/properties/lib/index.js
+var require_lib12 = __commonJS({
+ "node_modules/@ethersproject/properties/lib/index.js"(exports2) {
+ "use strict";
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.Description = exports2.deepCopy = exports2.shallowCopy = exports2.checkProperties = exports2.resolveProperties = exports2.getStatic = exports2.defineReadOnly = void 0;
+ var logger_1 = require_lib5();
+ var _version_1 = require_version6();
+ var logger = new logger_1.Logger(_version_1.version);
+ function defineReadOnly(object, name, value) {
+ Object.defineProperty(object, name, {
+ enumerable: true,
+ value,
+ writable: false
+ });
+ }
+ exports2.defineReadOnly = defineReadOnly;
+ function getStatic(ctor, key) {
+ for (var i = 0; i < 32; i++) {
+ if (ctor[key]) {
+ return ctor[key];
+ }
+ if (!ctor.prototype || typeof ctor.prototype !== "object") {
+ break;
+ }
+ ctor = Object.getPrototypeOf(ctor.prototype).constructor;
+ }
+ return null;
+ }
+ exports2.getStatic = getStatic;
+ function resolveProperties(object) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var promises, results;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ promises = Object.keys(object).map(function(key) {
+ var value = object[key];
+ return Promise.resolve(value).then(function(v) {
+ return { key, value: v };
+ });
+ });
+ return [4, Promise.all(promises)];
+ case 1:
+ results = _a.sent();
+ return [2, results.reduce(function(accum, result) {
+ accum[result.key] = result.value;
+ return accum;
+ }, {})];
+ }
+ });
+ });
+ }
+ exports2.resolveProperties = resolveProperties;
+ function checkProperties(object, properties) {
+ if (!object || typeof object !== "object") {
+ logger.throwArgumentError("invalid object", "object", object);
+ }
+ Object.keys(object).forEach(function(key) {
+ if (!properties[key]) {
+ logger.throwArgumentError("invalid object key - " + key, "transaction:" + key, object);
+ }
+ });
+ }
+ exports2.checkProperties = checkProperties;
+ function shallowCopy(object) {
+ var result = {};
+ for (var key in object) {
+ result[key] = object[key];
+ }
+ return result;
+ }
+ exports2.shallowCopy = shallowCopy;
+ var opaque = { bigint: true, boolean: true, "function": true, number: true, string: true };
+ function _isFrozen(object) {
+ if (object === void 0 || object === null || opaque[typeof object]) {
+ return true;
+ }
+ if (Array.isArray(object) || typeof object === "object") {
+ if (!Object.isFrozen(object)) {
+ return false;
+ }
+ var keys = Object.keys(object);
+ for (var i = 0; i < keys.length; i++) {
+ var value = null;
+ try {
+ value = object[keys[i]];
+ } catch (error) {
+ continue;
+ }
+ if (!_isFrozen(value)) {
+ return false;
+ }
+ }
+ return true;
+ }
+ return logger.throwArgumentError("Cannot deepCopy " + typeof object, "object", object);
+ }
+ function _deepCopy(object) {
+ if (_isFrozen(object)) {
+ return object;
+ }
+ if (Array.isArray(object)) {
+ return Object.freeze(object.map(function(item) {
+ return deepCopy(item);
+ }));
+ }
+ if (typeof object === "object") {
+ var result = {};
+ for (var key in object) {
+ var value = object[key];
+ if (value === void 0) {
+ continue;
+ }
+ defineReadOnly(result, key, deepCopy(value));
+ }
+ return result;
+ }
+ return logger.throwArgumentError("Cannot deepCopy " + typeof object, "object", object);
+ }
+ function deepCopy(object) {
+ return _deepCopy(object);
+ }
+ exports2.deepCopy = deepCopy;
+ var Description = (
+ /** @class */
+ /* @__PURE__ */ function() {
+ function Description2(info) {
+ for (var key in info) {
+ this[key] = deepCopy(info[key]);
+ }
+ }
+ return Description2;
+ }()
+ );
+ exports2.Description = Description;
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/package.json
+var require_package = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/package.json"(exports2, module2) {
+ module2.exports = {
+ name: "elliptic",
+ version: "6.5.4",
+ description: "EC cryptography",
+ main: "lib/elliptic.js",
+ files: [
+ "lib"
+ ],
+ scripts: {
+ lint: "eslint lib test",
+ "lint:fix": "npm run lint -- --fix",
+ unit: "istanbul test _mocha --reporter=spec test/index.js",
+ test: "npm run lint && npm run unit",
+ version: "grunt dist && git add dist/"
+ },
+ repository: {
+ type: "git",
+ url: "git@github.com:indutny/elliptic"
+ },
+ keywords: [
+ "EC",
+ "Elliptic",
+ "curve",
+ "Cryptography"
+ ],
+ author: "Fedor Indutny ",
+ license: "MIT",
+ bugs: {
+ url: "https://github.com/indutny/elliptic/issues"
+ },
+ homepage: "https://github.com/indutny/elliptic",
+ devDependencies: {
+ brfs: "^2.0.2",
+ coveralls: "^3.1.0",
+ eslint: "^7.6.0",
+ grunt: "^1.2.1",
+ "grunt-browserify": "^5.3.0",
+ "grunt-cli": "^1.3.2",
+ "grunt-contrib-connect": "^3.0.0",
+ "grunt-contrib-copy": "^1.0.0",
+ "grunt-contrib-uglify": "^5.0.0",
+ "grunt-mocha-istanbul": "^5.0.2",
+ "grunt-saucelabs": "^9.0.1",
+ istanbul: "^0.4.5",
+ mocha: "^8.0.1"
+ },
+ 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/@ethersproject/signing-key/node_modules/elliptic/node_modules/bn.js/lib/bn.js
+var require_bn2 = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/node_modules/bn.js/lib/bn.js"(exports2, module2) {
+ (function(module3, exports3) {
+ "use strict";
+ function assert(val, msg) {
+ if (!val)
+ throw new Error(msg || "Assertion failed");
+ }
+ function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor;
+ var TempCtor = function() {
+ };
+ TempCtor.prototype = superCtor.prototype;
+ ctor.prototype = new TempCtor();
+ ctor.prototype.constructor = ctor;
+ }
+ function BN(number, base, endian) {
+ if (BN.isBN(number)) {
+ return number;
+ }
+ this.negative = 0;
+ this.words = null;
+ this.length = 0;
+ this.red = null;
+ if (number !== null) {
+ if (base === "le" || base === "be") {
+ endian = base;
+ base = 10;
+ }
+ this._init(number || 0, base || 10, endian || "be");
+ }
+ }
+ if (typeof module3 === "object") {
+ module3.exports = BN;
+ } else {
+ exports3.BN = BN;
+ }
+ BN.BN = BN;
+ BN.wordSize = 26;
+ var Buffer2;
+ try {
+ if (typeof window !== "undefined" && typeof window.Buffer !== "undefined") {
+ Buffer2 = window.Buffer;
+ } else {
+ Buffer2 = require("buffer").Buffer;
+ }
+ } catch (e) {
+ }
+ BN.isBN = function isBN(num) {
+ if (num instanceof BN) {
+ return true;
+ }
+ return num !== null && typeof num === "object" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
+ };
+ BN.max = function max(left, right) {
+ if (left.cmp(right) > 0)
+ return left;
+ return right;
+ };
+ BN.min = function min(left, right) {
+ if (left.cmp(right) < 0)
+ return left;
+ return right;
+ };
+ BN.prototype._init = function init(number, base, endian) {
+ if (typeof number === "number") {
+ return this._initNumber(number, base, endian);
+ }
+ if (typeof number === "object") {
+ return this._initArray(number, base, endian);
+ }
+ if (base === "hex") {
+ base = 16;
+ }
+ assert(base === (base | 0) && base >= 2 && base <= 36);
+ number = number.toString().replace(/\s+/g, "");
+ var start = 0;
+ if (number[0] === "-") {
+ start++;
+ this.negative = 1;
+ }
+ if (start < number.length) {
+ if (base === 16) {
+ this._parseHex(number, start, endian);
+ } else {
+ this._parseBase(number, base, start);
+ if (endian === "le") {
+ this._initArray(this.toArray(), base, endian);
+ }
+ }
+ }
+ };
+ BN.prototype._initNumber = function _initNumber(number, base, endian) {
+ if (number < 0) {
+ this.negative = 1;
+ number = -number;
+ }
+ if (number < 67108864) {
+ this.words = [number & 67108863];
+ this.length = 1;
+ } else if (number < 4503599627370496) {
+ this.words = [
+ number & 67108863,
+ number / 67108864 & 67108863
+ ];
+ this.length = 2;
+ } else {
+ assert(number < 9007199254740992);
+ this.words = [
+ number & 67108863,
+ number / 67108864 & 67108863,
+ 1
+ ];
+ this.length = 3;
+ }
+ if (endian !== "le")
+ return;
+ this._initArray(this.toArray(), base, endian);
+ };
+ BN.prototype._initArray = function _initArray(number, base, endian) {
+ assert(typeof number.length === "number");
+ if (number.length <= 0) {
+ this.words = [0];
+ this.length = 1;
+ return this;
+ }
+ this.length = Math.ceil(number.length / 3);
+ this.words = new Array(this.length);
+ for (var i = 0; i < this.length; i++) {
+ this.words[i] = 0;
+ }
+ var j, w;
+ var off = 0;
+ if (endian === "be") {
+ for (i = number.length - 1, j = 0; i >= 0; i -= 3) {
+ w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;
+ this.words[j] |= w << off & 67108863;
+ this.words[j + 1] = w >>> 26 - off & 67108863;
+ off += 24;
+ if (off >= 26) {
+ off -= 26;
+ j++;
+ }
+ }
+ } else if (endian === "le") {
+ for (i = 0, j = 0; i < number.length; i += 3) {
+ w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;
+ this.words[j] |= w << off & 67108863;
+ this.words[j + 1] = w >>> 26 - off & 67108863;
+ off += 24;
+ if (off >= 26) {
+ off -= 26;
+ j++;
+ }
+ }
+ }
+ return this.strip();
+ };
+ function parseHex4Bits(string, index) {
+ var c = string.charCodeAt(index);
+ if (c >= 65 && c <= 70) {
+ return c - 55;
+ } else if (c >= 97 && c <= 102) {
+ return c - 87;
+ } else {
+ return c - 48 & 15;
+ }
+ }
+ function parseHexByte(string, lowerBound, index) {
+ var r = parseHex4Bits(string, index);
+ if (index - 1 >= lowerBound) {
+ r |= parseHex4Bits(string, index - 1) << 4;
+ }
+ return r;
+ }
+ BN.prototype._parseHex = function _parseHex(number, start, endian) {
+ this.length = Math.ceil((number.length - start) / 6);
+ this.words = new Array(this.length);
+ for (var i = 0; i < this.length; i++) {
+ this.words[i] = 0;
+ }
+ var off = 0;
+ var j = 0;
+ var w;
+ if (endian === "be") {
+ for (i = number.length - 1; i >= start; i -= 2) {
+ w = parseHexByte(number, start, i) << off;
+ this.words[j] |= w & 67108863;
+ if (off >= 18) {
+ off -= 18;
+ j += 1;
+ this.words[j] |= w >>> 26;
+ } else {
+ off += 8;
+ }
+ }
+ } else {
+ var parseLength = number.length - start;
+ for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {
+ w = parseHexByte(number, start, i) << off;
+ this.words[j] |= w & 67108863;
+ if (off >= 18) {
+ off -= 18;
+ j += 1;
+ this.words[j] |= w >>> 26;
+ } else {
+ off += 8;
+ }
+ }
+ }
+ this.strip();
+ };
+ function parseBase(str, start, end, mul) {
+ var r = 0;
+ var len = Math.min(str.length, end);
+ for (var i = start; i < len; i++) {
+ var c = str.charCodeAt(i) - 48;
+ r *= mul;
+ if (c >= 49) {
+ r += c - 49 + 10;
+ } else if (c >= 17) {
+ r += c - 17 + 10;
+ } else {
+ r += c;
+ }
+ }
+ return r;
+ }
+ BN.prototype._parseBase = function _parseBase(number, base, start) {
+ this.words = [0];
+ this.length = 1;
+ for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) {
+ limbLen++;
+ }
+ limbLen--;
+ limbPow = limbPow / base | 0;
+ var total = number.length - start;
+ var mod = total % limbLen;
+ var end = Math.min(total, total - mod) + start;
+ var word = 0;
+ for (var i = start; i < end; i += limbLen) {
+ word = parseBase(number, i, i + limbLen, base);
+ this.imuln(limbPow);
+ if (this.words[0] + word < 67108864) {
+ this.words[0] += word;
+ } else {
+ this._iaddn(word);
+ }
+ }
+ if (mod !== 0) {
+ var pow = 1;
+ word = parseBase(number, i, number.length, base);
+ for (i = 0; i < mod; i++) {
+ pow *= base;
+ }
+ this.imuln(pow);
+ if (this.words[0] + word < 67108864) {
+ this.words[0] += word;
+ } else {
+ this._iaddn(word);
+ }
+ }
+ this.strip();
+ };
+ BN.prototype.copy = function copy(dest) {
+ dest.words = new Array(this.length);
+ for (var i = 0; i < this.length; i++) {
+ dest.words[i] = this.words[i];
+ }
+ dest.length = this.length;
+ dest.negative = this.negative;
+ dest.red = this.red;
+ };
+ BN.prototype.clone = function clone() {
+ var r = new BN(null);
+ this.copy(r);
+ return r;
+ };
+ BN.prototype._expand = function _expand(size) {
+ while (this.length < size) {
+ this.words[this.length++] = 0;
+ }
+ return this;
+ };
+ BN.prototype.strip = function strip() {
+ while (this.length > 1 && this.words[this.length - 1] === 0) {
+ this.length--;
+ }
+ return this._normSign();
+ };
+ BN.prototype._normSign = function _normSign() {
+ if (this.length === 1 && this.words[0] === 0) {
+ this.negative = 0;
+ }
+ return this;
+ };
+ BN.prototype.inspect = function inspect() {
+ return (this.red ? "";
+ };
+ var zeros = [
+ "",
+ "0",
+ "00",
+ "000",
+ "0000",
+ "00000",
+ "000000",
+ "0000000",
+ "00000000",
+ "000000000",
+ "0000000000",
+ "00000000000",
+ "000000000000",
+ "0000000000000",
+ "00000000000000",
+ "000000000000000",
+ "0000000000000000",
+ "00000000000000000",
+ "000000000000000000",
+ "0000000000000000000",
+ "00000000000000000000",
+ "000000000000000000000",
+ "0000000000000000000000",
+ "00000000000000000000000",
+ "000000000000000000000000",
+ "0000000000000000000000000"
+ ];
+ var groupSizes = [
+ 0,
+ 0,
+ 25,
+ 16,
+ 12,
+ 11,
+ 10,
+ 9,
+ 8,
+ 8,
+ 7,
+ 7,
+ 7,
+ 7,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 6,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5,
+ 5
+ ];
+ var groupBases = [
+ 0,
+ 0,
+ 33554432,
+ 43046721,
+ 16777216,
+ 48828125,
+ 60466176,
+ 40353607,
+ 16777216,
+ 43046721,
+ 1e7,
+ 19487171,
+ 35831808,
+ 62748517,
+ 7529536,
+ 11390625,
+ 16777216,
+ 24137569,
+ 34012224,
+ 47045881,
+ 64e6,
+ 4084101,
+ 5153632,
+ 6436343,
+ 7962624,
+ 9765625,
+ 11881376,
+ 14348907,
+ 17210368,
+ 20511149,
+ 243e5,
+ 28629151,
+ 33554432,
+ 39135393,
+ 45435424,
+ 52521875,
+ 60466176
+ ];
+ BN.prototype.toString = function toString2(base, padding) {
+ base = base || 10;
+ padding = padding | 0 || 1;
+ var out;
+ if (base === 16 || base === "hex") {
+ out = "";
+ var off = 0;
+ var carry = 0;
+ for (var i = 0; i < this.length; i++) {
+ var w = this.words[i];
+ var word = ((w << off | carry) & 16777215).toString(16);
+ carry = w >>> 24 - off & 16777215;
+ off += 2;
+ if (off >= 26) {
+ off -= 26;
+ i--;
+ }
+ if (carry !== 0 || i !== this.length - 1) {
+ out = zeros[6 - word.length] + word + out;
+ } else {
+ out = word + out;
+ }
+ }
+ if (carry !== 0) {
+ out = carry.toString(16) + out;
+ }
+ while (out.length % padding !== 0) {
+ out = "0" + out;
+ }
+ if (this.negative !== 0) {
+ out = "-" + out;
+ }
+ return out;
+ }
+ if (base === (base | 0) && base >= 2 && base <= 36) {
+ var groupSize = groupSizes[base];
+ var groupBase = groupBases[base];
+ out = "";
+ var c = this.clone();
+ c.negative = 0;
+ while (!c.isZero()) {
+ var r = c.modn(groupBase).toString(base);
+ c = c.idivn(groupBase);
+ if (!c.isZero()) {
+ out = zeros[groupSize - r.length] + r + out;
+ } else {
+ out = r + out;
+ }
+ }
+ if (this.isZero()) {
+ out = "0" + out;
+ }
+ while (out.length % padding !== 0) {
+ out = "0" + out;
+ }
+ if (this.negative !== 0) {
+ out = "-" + out;
+ }
+ return out;
+ }
+ assert(false, "Base should be between 2 and 36");
+ };
+ BN.prototype.toNumber = function toNumber() {
+ var ret = this.words[0];
+ if (this.length === 2) {
+ ret += this.words[1] * 67108864;
+ } else if (this.length === 3 && this.words[2] === 1) {
+ ret += 4503599627370496 + this.words[1] * 67108864;
+ } else if (this.length > 2) {
+ assert(false, "Number can only safely store up to 53 bits");
+ }
+ return this.negative !== 0 ? -ret : ret;
+ };
+ BN.prototype.toJSON = function toJSON() {
+ return this.toString(16);
+ };
+ BN.prototype.toBuffer = function toBuffer(endian, length) {
+ assert(typeof Buffer2 !== "undefined");
+ return this.toArrayLike(Buffer2, endian, length);
+ };
+ BN.prototype.toArray = function toArray(endian, length) {
+ return this.toArrayLike(Array, endian, length);
+ };
+ BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {
+ var byteLength = this.byteLength();
+ var reqLength = length || Math.max(1, byteLength);
+ assert(byteLength <= reqLength, "byte array longer than desired length");
+ assert(reqLength > 0, "Requested array length <= 0");
+ this.strip();
+ var littleEndian = endian === "le";
+ var res = new ArrayType(reqLength);
+ var b, i;
+ var q = this.clone();
+ if (!littleEndian) {
+ for (i = 0; i < reqLength - byteLength; i++) {
+ res[i] = 0;
+ }
+ for (i = 0; !q.isZero(); i++) {
+ b = q.andln(255);
+ q.iushrn(8);
+ res[reqLength - i - 1] = b;
+ }
+ } else {
+ for (i = 0; !q.isZero(); i++) {
+ b = q.andln(255);
+ q.iushrn(8);
+ res[i] = b;
+ }
+ for (; i < reqLength; i++) {
+ res[i] = 0;
+ }
+ }
+ return res;
+ };
+ if (Math.clz32) {
+ BN.prototype._countBits = function _countBits(w) {
+ return 32 - Math.clz32(w);
+ };
+ } else {
+ BN.prototype._countBits = function _countBits(w) {
+ var t = w;
+ var r = 0;
+ if (t >= 4096) {
+ r += 13;
+ t >>>= 13;
+ }
+ if (t >= 64) {
+ r += 7;
+ t >>>= 7;
+ }
+ if (t >= 8) {
+ r += 4;
+ t >>>= 4;
+ }
+ if (t >= 2) {
+ r += 2;
+ t >>>= 2;
+ }
+ return r + t;
+ };
+ }
+ BN.prototype._zeroBits = function _zeroBits(w) {
+ if (w === 0)
+ return 26;
+ var t = w;
+ var r = 0;
+ if ((t & 8191) === 0) {
+ r += 13;
+ t >>>= 13;
+ }
+ if ((t & 127) === 0) {
+ r += 7;
+ t >>>= 7;
+ }
+ if ((t & 15) === 0) {
+ r += 4;
+ t >>>= 4;
+ }
+ if ((t & 3) === 0) {
+ r += 2;
+ t >>>= 2;
+ }
+ if ((t & 1) === 0) {
+ r++;
+ }
+ return r;
+ };
+ BN.prototype.bitLength = function bitLength() {
+ var w = this.words[this.length - 1];
+ var hi = this._countBits(w);
+ return (this.length - 1) * 26 + hi;
+ };
+ function toBitArray(num) {
+ var w = new Array(num.bitLength());
+ for (var bit = 0; bit < w.length; bit++) {
+ var off = bit / 26 | 0;
+ var wbit = bit % 26;
+ w[bit] = (num.words[off] & 1 << wbit) >>> wbit;
+ }
+ return w;
+ }
+ BN.prototype.zeroBits = function zeroBits() {
+ if (this.isZero())
+ return 0;
+ var r = 0;
+ for (var i = 0; i < this.length; i++) {
+ var b = this._zeroBits(this.words[i]);
+ r += b;
+ if (b !== 26)
+ break;
+ }
+ return r;
+ };
+ BN.prototype.byteLength = function byteLength() {
+ return Math.ceil(this.bitLength() / 8);
+ };
+ BN.prototype.toTwos = function toTwos(width) {
+ if (this.negative !== 0) {
+ return this.abs().inotn(width).iaddn(1);
+ }
+ return this.clone();
+ };
+ BN.prototype.fromTwos = function fromTwos(width) {
+ if (this.testn(width - 1)) {
+ return this.notn(width).iaddn(1).ineg();
+ }
+ return this.clone();
+ };
+ BN.prototype.isNeg = function isNeg() {
+ return this.negative !== 0;
+ };
+ BN.prototype.neg = function neg() {
+ return this.clone().ineg();
+ };
+ BN.prototype.ineg = function ineg() {
+ if (!this.isZero()) {
+ this.negative ^= 1;
+ }
+ return this;
+ };
+ BN.prototype.iuor = function iuor(num) {
+ while (this.length < num.length) {
+ this.words[this.length++] = 0;
+ }
+ for (var i = 0; i < num.length; i++) {
+ this.words[i] = this.words[i] | num.words[i];
+ }
+ return this.strip();
+ };
+ BN.prototype.ior = function ior(num) {
+ assert((this.negative | num.negative) === 0);
+ return this.iuor(num);
+ };
+ BN.prototype.or = function or(num) {
+ if (this.length > num.length)
+ return this.clone().ior(num);
+ return num.clone().ior(this);
+ };
+ BN.prototype.uor = function uor(num) {
+ if (this.length > num.length)
+ return this.clone().iuor(num);
+ return num.clone().iuor(this);
+ };
+ BN.prototype.iuand = function iuand(num) {
+ var b;
+ if (this.length > num.length) {
+ b = num;
+ } else {
+ b = this;
+ }
+ for (var i = 0; i < b.length; i++) {
+ this.words[i] = this.words[i] & num.words[i];
+ }
+ this.length = b.length;
+ return this.strip();
+ };
+ BN.prototype.iand = function iand(num) {
+ assert((this.negative | num.negative) === 0);
+ return this.iuand(num);
+ };
+ BN.prototype.and = function and(num) {
+ if (this.length > num.length)
+ return this.clone().iand(num);
+ return num.clone().iand(this);
+ };
+ BN.prototype.uand = function uand(num) {
+ if (this.length > num.length)
+ return this.clone().iuand(num);
+ return num.clone().iuand(this);
+ };
+ BN.prototype.iuxor = function iuxor(num) {
+ var a;
+ var b;
+ if (this.length > num.length) {
+ a = this;
+ b = num;
+ } else {
+ a = num;
+ b = this;
+ }
+ for (var i = 0; i < b.length; i++) {
+ this.words[i] = a.words[i] ^ b.words[i];
+ }
+ if (this !== a) {
+ for (; i < a.length; i++) {
+ this.words[i] = a.words[i];
+ }
+ }
+ this.length = a.length;
+ return this.strip();
+ };
+ BN.prototype.ixor = function ixor(num) {
+ assert((this.negative | num.negative) === 0);
+ return this.iuxor(num);
+ };
+ BN.prototype.xor = function xor(num) {
+ if (this.length > num.length)
+ return this.clone().ixor(num);
+ return num.clone().ixor(this);
+ };
+ BN.prototype.uxor = function uxor(num) {
+ if (this.length > num.length)
+ return this.clone().iuxor(num);
+ return num.clone().iuxor(this);
+ };
+ BN.prototype.inotn = function inotn(width) {
+ assert(typeof width === "number" && width >= 0);
+ var bytesNeeded = Math.ceil(width / 26) | 0;
+ var bitsLeft = width % 26;
+ this._expand(bytesNeeded);
+ if (bitsLeft > 0) {
+ bytesNeeded--;
+ }
+ for (var i = 0; i < bytesNeeded; i++) {
+ this.words[i] = ~this.words[i] & 67108863;
+ }
+ if (bitsLeft > 0) {
+ this.words[i] = ~this.words[i] & 67108863 >> 26 - bitsLeft;
+ }
+ return this.strip();
+ };
+ BN.prototype.notn = function notn(width) {
+ return this.clone().inotn(width);
+ };
+ BN.prototype.setn = function setn(bit, val) {
+ assert(typeof bit === "number" && bit >= 0);
+ var off = bit / 26 | 0;
+ var wbit = bit % 26;
+ this._expand(off + 1);
+ if (val) {
+ this.words[off] = this.words[off] | 1 << wbit;
+ } else {
+ this.words[off] = this.words[off] & ~(1 << wbit);
+ }
+ return this.strip();
+ };
+ BN.prototype.iadd = function iadd(num) {
+ var r;
+ if (this.negative !== 0 && num.negative === 0) {
+ this.negative = 0;
+ r = this.isub(num);
+ this.negative ^= 1;
+ return this._normSign();
+ } else if (this.negative === 0 && num.negative !== 0) {
+ num.negative = 0;
+ r = this.isub(num);
+ num.negative = 1;
+ return r._normSign();
+ }
+ var a, b;
+ if (this.length > num.length) {
+ a = this;
+ b = num;
+ } else {
+ a = num;
+ b = this;
+ }
+ var carry = 0;
+ for (var i = 0; i < b.length; i++) {
+ r = (a.words[i] | 0) + (b.words[i] | 0) + carry;
+ this.words[i] = r & 67108863;
+ carry = r >>> 26;
+ }
+ for (; carry !== 0 && i < a.length; i++) {
+ r = (a.words[i] | 0) + carry;
+ this.words[i] = r & 67108863;
+ carry = r >>> 26;
+ }
+ this.length = a.length;
+ if (carry !== 0) {
+ this.words[this.length] = carry;
+ this.length++;
+ } else if (a !== this) {
+ for (; i < a.length; i++) {
+ this.words[i] = a.words[i];
+ }
+ }
+ return this;
+ };
+ BN.prototype.add = function add(num) {
+ var res;
+ if (num.negative !== 0 && this.negative === 0) {
+ num.negative = 0;
+ res = this.sub(num);
+ num.negative ^= 1;
+ return res;
+ } else if (num.negative === 0 && this.negative !== 0) {
+ this.negative = 0;
+ res = num.sub(this);
+ this.negative = 1;
+ return res;
+ }
+ if (this.length > num.length)
+ return this.clone().iadd(num);
+ return num.clone().iadd(this);
+ };
+ BN.prototype.isub = function isub(num) {
+ if (num.negative !== 0) {
+ num.negative = 0;
+ var r = this.iadd(num);
+ num.negative = 1;
+ return r._normSign();
+ } else if (this.negative !== 0) {
+ this.negative = 0;
+ this.iadd(num);
+ this.negative = 1;
+ return this._normSign();
+ }
+ var cmp = this.cmp(num);
+ if (cmp === 0) {
+ this.negative = 0;
+ this.length = 1;
+ this.words[0] = 0;
+ return this;
+ }
+ var a, b;
+ if (cmp > 0) {
+ a = this;
+ b = num;
+ } else {
+ a = num;
+ b = this;
+ }
+ var carry = 0;
+ for (var i = 0; i < b.length; i++) {
+ r = (a.words[i] | 0) - (b.words[i] | 0) + carry;
+ carry = r >> 26;
+ this.words[i] = r & 67108863;
+ }
+ for (; carry !== 0 && i < a.length; i++) {
+ r = (a.words[i] | 0) + carry;
+ carry = r >> 26;
+ this.words[i] = r & 67108863;
+ }
+ if (carry === 0 && i < a.length && a !== this) {
+ for (; i < a.length; i++) {
+ this.words[i] = a.words[i];
+ }
+ }
+ this.length = Math.max(this.length, i);
+ if (a !== this) {
+ this.negative = 1;
+ }
+ return this.strip();
+ };
+ BN.prototype.sub = function sub(num) {
+ return this.clone().isub(num);
+ };
+ function smallMulTo(self2, num, out) {
+ out.negative = num.negative ^ self2.negative;
+ var len = self2.length + num.length | 0;
+ out.length = len;
+ len = len - 1 | 0;
+ var a = self2.words[0] | 0;
+ var b = num.words[0] | 0;
+ var r = a * b;
+ var lo = r & 67108863;
+ var carry = r / 67108864 | 0;
+ out.words[0] = lo;
+ for (var k = 1; k < len; k++) {
+ var ncarry = carry >>> 26;
+ var rword = carry & 67108863;
+ var maxJ = Math.min(k, num.length - 1);
+ for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) {
+ var i = k - j | 0;
+ a = self2.words[i] | 0;
+ b = num.words[j] | 0;
+ r = a * b + rword;
+ ncarry += r / 67108864 | 0;
+ rword = r & 67108863;
+ }
+ out.words[k] = rword | 0;
+ carry = ncarry | 0;
+ }
+ if (carry !== 0) {
+ out.words[k] = carry | 0;
+ } else {
+ out.length--;
+ }
+ return out.strip();
+ }
+ var comb10MulTo = function comb10MulTo2(self2, num, out) {
+ var a = self2.words;
+ var b = num.words;
+ var o = out.words;
+ var c = 0;
+ var lo;
+ var mid;
+ var hi;
+ var a0 = a[0] | 0;
+ var al0 = a0 & 8191;
+ var ah0 = a0 >>> 13;
+ var a1 = a[1] | 0;
+ var al1 = a1 & 8191;
+ var ah1 = a1 >>> 13;
+ var a2 = a[2] | 0;
+ var al2 = a2 & 8191;
+ var ah2 = a2 >>> 13;
+ var a3 = a[3] | 0;
+ var al3 = a3 & 8191;
+ var ah3 = a3 >>> 13;
+ var a4 = a[4] | 0;
+ var al4 = a4 & 8191;
+ var ah4 = a4 >>> 13;
+ var a5 = a[5] | 0;
+ var al5 = a5 & 8191;
+ var ah5 = a5 >>> 13;
+ var a6 = a[6] | 0;
+ var al6 = a6 & 8191;
+ var ah6 = a6 >>> 13;
+ var a7 = a[7] | 0;
+ var al7 = a7 & 8191;
+ var ah7 = a7 >>> 13;
+ var a8 = a[8] | 0;
+ var al8 = a8 & 8191;
+ var ah8 = a8 >>> 13;
+ var a9 = a[9] | 0;
+ var al9 = a9 & 8191;
+ var ah9 = a9 >>> 13;
+ var b0 = b[0] | 0;
+ var bl0 = b0 & 8191;
+ var bh0 = b0 >>> 13;
+ var b1 = b[1] | 0;
+ var bl1 = b1 & 8191;
+ var bh1 = b1 >>> 13;
+ var b2 = b[2] | 0;
+ var bl2 = b2 & 8191;
+ var bh2 = b2 >>> 13;
+ var b3 = b[3] | 0;
+ var bl3 = b3 & 8191;
+ var bh3 = b3 >>> 13;
+ var b4 = b[4] | 0;
+ var bl4 = b4 & 8191;
+ var bh4 = b4 >>> 13;
+ var b5 = b[5] | 0;
+ var bl5 = b5 & 8191;
+ var bh5 = b5 >>> 13;
+ var b6 = b[6] | 0;
+ var bl6 = b6 & 8191;
+ var bh6 = b6 >>> 13;
+ var b7 = b[7] | 0;
+ var bl7 = b7 & 8191;
+ var bh7 = b7 >>> 13;
+ var b8 = b[8] | 0;
+ var bl8 = b8 & 8191;
+ var bh8 = b8 >>> 13;
+ var b9 = b[9] | 0;
+ var bl9 = b9 & 8191;
+ var bh9 = b9 >>> 13;
+ out.negative = self2.negative ^ num.negative;
+ out.length = 19;
+ lo = Math.imul(al0, bl0);
+ mid = Math.imul(al0, bh0);
+ mid = mid + Math.imul(ah0, bl0) | 0;
+ hi = Math.imul(ah0, bh0);
+ var w0 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;
+ w0 &= 67108863;
+ lo = Math.imul(al1, bl0);
+ mid = Math.imul(al1, bh0);
+ mid = mid + Math.imul(ah1, bl0) | 0;
+ hi = Math.imul(ah1, bh0);
+ lo = lo + Math.imul(al0, bl1) | 0;
+ mid = mid + Math.imul(al0, bh1) | 0;
+ mid = mid + Math.imul(ah0, bl1) | 0;
+ hi = hi + Math.imul(ah0, bh1) | 0;
+ var w1 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;
+ w1 &= 67108863;
+ lo = Math.imul(al2, bl0);
+ mid = Math.imul(al2, bh0);
+ mid = mid + Math.imul(ah2, bl0) | 0;
+ hi = Math.imul(ah2, bh0);
+ lo = lo + Math.imul(al1, bl1) | 0;
+ mid = mid + Math.imul(al1, bh1) | 0;
+ mid = mid + Math.imul(ah1, bl1) | 0;
+ hi = hi + Math.imul(ah1, bh1) | 0;
+ lo = lo + Math.imul(al0, bl2) | 0;
+ mid = mid + Math.imul(al0, bh2) | 0;
+ mid = mid + Math.imul(ah0, bl2) | 0;
+ hi = hi + Math.imul(ah0, bh2) | 0;
+ var w2 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;
+ w2 &= 67108863;
+ lo = Math.imul(al3, bl0);
+ mid = Math.imul(al3, bh0);
+ mid = mid + Math.imul(ah3, bl0) | 0;
+ hi = Math.imul(ah3, bh0);
+ lo = lo + Math.imul(al2, bl1) | 0;
+ mid = mid + Math.imul(al2, bh1) | 0;
+ mid = mid + Math.imul(ah2, bl1) | 0;
+ hi = hi + Math.imul(ah2, bh1) | 0;
+ lo = lo + Math.imul(al1, bl2) | 0;
+ mid = mid + Math.imul(al1, bh2) | 0;
+ mid = mid + Math.imul(ah1, bl2) | 0;
+ hi = hi + Math.imul(ah1, bh2) | 0;
+ lo = lo + Math.imul(al0, bl3) | 0;
+ mid = mid + Math.imul(al0, bh3) | 0;
+ mid = mid + Math.imul(ah0, bl3) | 0;
+ hi = hi + Math.imul(ah0, bh3) | 0;
+ var w3 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;
+ w3 &= 67108863;
+ lo = Math.imul(al4, bl0);
+ mid = Math.imul(al4, bh0);
+ mid = mid + Math.imul(ah4, bl0) | 0;
+ hi = Math.imul(ah4, bh0);
+ lo = lo + Math.imul(al3, bl1) | 0;
+ mid = mid + Math.imul(al3, bh1) | 0;
+ mid = mid + Math.imul(ah3, bl1) | 0;
+ hi = hi + Math.imul(ah3, bh1) | 0;
+ lo = lo + Math.imul(al2, bl2) | 0;
+ mid = mid + Math.imul(al2, bh2) | 0;
+ mid = mid + Math.imul(ah2, bl2) | 0;
+ hi = hi + Math.imul(ah2, bh2) | 0;
+ lo = lo + Math.imul(al1, bl3) | 0;
+ mid = mid + Math.imul(al1, bh3) | 0;
+ mid = mid + Math.imul(ah1, bl3) | 0;
+ hi = hi + Math.imul(ah1, bh3) | 0;
+ lo = lo + Math.imul(al0, bl4) | 0;
+ mid = mid + Math.imul(al0, bh4) | 0;
+ mid = mid + Math.imul(ah0, bl4) | 0;
+ hi = hi + Math.imul(ah0, bh4) | 0;
+ var w4 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;
+ w4 &= 67108863;
+ lo = Math.imul(al5, bl0);
+ mid = Math.imul(al5, bh0);
+ mid = mid + Math.imul(ah5, bl0) | 0;
+ hi = Math.imul(ah5, bh0);
+ lo = lo + Math.imul(al4, bl1) | 0;
+ mid = mid + Math.imul(al4, bh1) | 0;
+ mid = mid + Math.imul(ah4, bl1) | 0;
+ hi = hi + Math.imul(ah4, bh1) | 0;
+ lo = lo + Math.imul(al3, bl2) | 0;
+ mid = mid + Math.imul(al3, bh2) | 0;
+ mid = mid + Math.imul(ah3, bl2) | 0;
+ hi = hi + Math.imul(ah3, bh2) | 0;
+ lo = lo + Math.imul(al2, bl3) | 0;
+ mid = mid + Math.imul(al2, bh3) | 0;
+ mid = mid + Math.imul(ah2, bl3) | 0;
+ hi = hi + Math.imul(ah2, bh3) | 0;
+ lo = lo + Math.imul(al1, bl4) | 0;
+ mid = mid + Math.imul(al1, bh4) | 0;
+ mid = mid + Math.imul(ah1, bl4) | 0;
+ hi = hi + Math.imul(ah1, bh4) | 0;
+ lo = lo + Math.imul(al0, bl5) | 0;
+ mid = mid + Math.imul(al0, bh5) | 0;
+ mid = mid + Math.imul(ah0, bl5) | 0;
+ hi = hi + Math.imul(ah0, bh5) | 0;
+ var w5 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;
+ w5 &= 67108863;
+ lo = Math.imul(al6, bl0);
+ mid = Math.imul(al6, bh0);
+ mid = mid + Math.imul(ah6, bl0) | 0;
+ hi = Math.imul(ah6, bh0);
+ lo = lo + Math.imul(al5, bl1) | 0;
+ mid = mid + Math.imul(al5, bh1) | 0;
+ mid = mid + Math.imul(ah5, bl1) | 0;
+ hi = hi + Math.imul(ah5, bh1) | 0;
+ lo = lo + Math.imul(al4, bl2) | 0;
+ mid = mid + Math.imul(al4, bh2) | 0;
+ mid = mid + Math.imul(ah4, bl2) | 0;
+ hi = hi + Math.imul(ah4, bh2) | 0;
+ lo = lo + Math.imul(al3, bl3) | 0;
+ mid = mid + Math.imul(al3, bh3) | 0;
+ mid = mid + Math.imul(ah3, bl3) | 0;
+ hi = hi + Math.imul(ah3, bh3) | 0;
+ lo = lo + Math.imul(al2, bl4) | 0;
+ mid = mid + Math.imul(al2, bh4) | 0;
+ mid = mid + Math.imul(ah2, bl4) | 0;
+ hi = hi + Math.imul(ah2, bh4) | 0;
+ lo = lo + Math.imul(al1, bl5) | 0;
+ mid = mid + Math.imul(al1, bh5) | 0;
+ mid = mid + Math.imul(ah1, bl5) | 0;
+ hi = hi + Math.imul(ah1, bh5) | 0;
+ lo = lo + Math.imul(al0, bl6) | 0;
+ mid = mid + Math.imul(al0, bh6) | 0;
+ mid = mid + Math.imul(ah0, bl6) | 0;
+ hi = hi + Math.imul(ah0, bh6) | 0;
+ var w6 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;
+ w6 &= 67108863;
+ lo = Math.imul(al7, bl0);
+ mid = Math.imul(al7, bh0);
+ mid = mid + Math.imul(ah7, bl0) | 0;
+ hi = Math.imul(ah7, bh0);
+ lo = lo + Math.imul(al6, bl1) | 0;
+ mid = mid + Math.imul(al6, bh1) | 0;
+ mid = mid + Math.imul(ah6, bl1) | 0;
+ hi = hi + Math.imul(ah6, bh1) | 0;
+ lo = lo + Math.imul(al5, bl2) | 0;
+ mid = mid + Math.imul(al5, bh2) | 0;
+ mid = mid + Math.imul(ah5, bl2) | 0;
+ hi = hi + Math.imul(ah5, bh2) | 0;
+ lo = lo + Math.imul(al4, bl3) | 0;
+ mid = mid + Math.imul(al4, bh3) | 0;
+ mid = mid + Math.imul(ah4, bl3) | 0;
+ hi = hi + Math.imul(ah4, bh3) | 0;
+ lo = lo + Math.imul(al3, bl4) | 0;
+ mid = mid + Math.imul(al3, bh4) | 0;
+ mid = mid + Math.imul(ah3, bl4) | 0;
+ hi = hi + Math.imul(ah3, bh4) | 0;
+ lo = lo + Math.imul(al2, bl5) | 0;
+ mid = mid + Math.imul(al2, bh5) | 0;
+ mid = mid + Math.imul(ah2, bl5) | 0;
+ hi = hi + Math.imul(ah2, bh5) | 0;
+ lo = lo + Math.imul(al1, bl6) | 0;
+ mid = mid + Math.imul(al1, bh6) | 0;
+ mid = mid + Math.imul(ah1, bl6) | 0;
+ hi = hi + Math.imul(ah1, bh6) | 0;
+ lo = lo + Math.imul(al0, bl7) | 0;
+ mid = mid + Math.imul(al0, bh7) | 0;
+ mid = mid + Math.imul(ah0, bl7) | 0;
+ hi = hi + Math.imul(ah0, bh7) | 0;
+ var w7 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;
+ w7 &= 67108863;
+ lo = Math.imul(al8, bl0);
+ mid = Math.imul(al8, bh0);
+ mid = mid + Math.imul(ah8, bl0) | 0;
+ hi = Math.imul(ah8, bh0);
+ lo = lo + Math.imul(al7, bl1) | 0;
+ mid = mid + Math.imul(al7, bh1) | 0;
+ mid = mid + Math.imul(ah7, bl1) | 0;
+ hi = hi + Math.imul(ah7, bh1) | 0;
+ lo = lo + Math.imul(al6, bl2) | 0;
+ mid = mid + Math.imul(al6, bh2) | 0;
+ mid = mid + Math.imul(ah6, bl2) | 0;
+ hi = hi + Math.imul(ah6, bh2) | 0;
+ lo = lo + Math.imul(al5, bl3) | 0;
+ mid = mid + Math.imul(al5, bh3) | 0;
+ mid = mid + Math.imul(ah5, bl3) | 0;
+ hi = hi + Math.imul(ah5, bh3) | 0;
+ lo = lo + Math.imul(al4, bl4) | 0;
+ mid = mid + Math.imul(al4, bh4) | 0;
+ mid = mid + Math.imul(ah4, bl4) | 0;
+ hi = hi + Math.imul(ah4, bh4) | 0;
+ lo = lo + Math.imul(al3, bl5) | 0;
+ mid = mid + Math.imul(al3, bh5) | 0;
+ mid = mid + Math.imul(ah3, bl5) | 0;
+ hi = hi + Math.imul(ah3, bh5) | 0;
+ lo = lo + Math.imul(al2, bl6) | 0;
+ mid = mid + Math.imul(al2, bh6) | 0;
+ mid = mid + Math.imul(ah2, bl6) | 0;
+ hi = hi + Math.imul(ah2, bh6) | 0;
+ lo = lo + Math.imul(al1, bl7) | 0;
+ mid = mid + Math.imul(al1, bh7) | 0;
+ mid = mid + Math.imul(ah1, bl7) | 0;
+ hi = hi + Math.imul(ah1, bh7) | 0;
+ lo = lo + Math.imul(al0, bl8) | 0;
+ mid = mid + Math.imul(al0, bh8) | 0;
+ mid = mid + Math.imul(ah0, bl8) | 0;
+ hi = hi + Math.imul(ah0, bh8) | 0;
+ var w8 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;
+ w8 &= 67108863;
+ lo = Math.imul(al9, bl0);
+ mid = Math.imul(al9, bh0);
+ mid = mid + Math.imul(ah9, bl0) | 0;
+ hi = Math.imul(ah9, bh0);
+ lo = lo + Math.imul(al8, bl1) | 0;
+ mid = mid + Math.imul(al8, bh1) | 0;
+ mid = mid + Math.imul(ah8, bl1) | 0;
+ hi = hi + Math.imul(ah8, bh1) | 0;
+ lo = lo + Math.imul(al7, bl2) | 0;
+ mid = mid + Math.imul(al7, bh2) | 0;
+ mid = mid + Math.imul(ah7, bl2) | 0;
+ hi = hi + Math.imul(ah7, bh2) | 0;
+ lo = lo + Math.imul(al6, bl3) | 0;
+ mid = mid + Math.imul(al6, bh3) | 0;
+ mid = mid + Math.imul(ah6, bl3) | 0;
+ hi = hi + Math.imul(ah6, bh3) | 0;
+ lo = lo + Math.imul(al5, bl4) | 0;
+ mid = mid + Math.imul(al5, bh4) | 0;
+ mid = mid + Math.imul(ah5, bl4) | 0;
+ hi = hi + Math.imul(ah5, bh4) | 0;
+ lo = lo + Math.imul(al4, bl5) | 0;
+ mid = mid + Math.imul(al4, bh5) | 0;
+ mid = mid + Math.imul(ah4, bl5) | 0;
+ hi = hi + Math.imul(ah4, bh5) | 0;
+ lo = lo + Math.imul(al3, bl6) | 0;
+ mid = mid + Math.imul(al3, bh6) | 0;
+ mid = mid + Math.imul(ah3, bl6) | 0;
+ hi = hi + Math.imul(ah3, bh6) | 0;
+ lo = lo + Math.imul(al2, bl7) | 0;
+ mid = mid + Math.imul(al2, bh7) | 0;
+ mid = mid + Math.imul(ah2, bl7) | 0;
+ hi = hi + Math.imul(ah2, bh7) | 0;
+ lo = lo + Math.imul(al1, bl8) | 0;
+ mid = mid + Math.imul(al1, bh8) | 0;
+ mid = mid + Math.imul(ah1, bl8) | 0;
+ hi = hi + Math.imul(ah1, bh8) | 0;
+ lo = lo + Math.imul(al0, bl9) | 0;
+ mid = mid + Math.imul(al0, bh9) | 0;
+ mid = mid + Math.imul(ah0, bl9) | 0;
+ hi = hi + Math.imul(ah0, bh9) | 0;
+ var w9 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;
+ w9 &= 67108863;
+ lo = Math.imul(al9, bl1);
+ mid = Math.imul(al9, bh1);
+ mid = mid + Math.imul(ah9, bl1) | 0;
+ hi = Math.imul(ah9, bh1);
+ lo = lo + Math.imul(al8, bl2) | 0;
+ mid = mid + Math.imul(al8, bh2) | 0;
+ mid = mid + Math.imul(ah8, bl2) | 0;
+ hi = hi + Math.imul(ah8, bh2) | 0;
+ lo = lo + Math.imul(al7, bl3) | 0;
+ mid = mid + Math.imul(al7, bh3) | 0;
+ mid = mid + Math.imul(ah7, bl3) | 0;
+ hi = hi + Math.imul(ah7, bh3) | 0;
+ lo = lo + Math.imul(al6, bl4) | 0;
+ mid = mid + Math.imul(al6, bh4) | 0;
+ mid = mid + Math.imul(ah6, bl4) | 0;
+ hi = hi + Math.imul(ah6, bh4) | 0;
+ lo = lo + Math.imul(al5, bl5) | 0;
+ mid = mid + Math.imul(al5, bh5) | 0;
+ mid = mid + Math.imul(ah5, bl5) | 0;
+ hi = hi + Math.imul(ah5, bh5) | 0;
+ lo = lo + Math.imul(al4, bl6) | 0;
+ mid = mid + Math.imul(al4, bh6) | 0;
+ mid = mid + Math.imul(ah4, bl6) | 0;
+ hi = hi + Math.imul(ah4, bh6) | 0;
+ lo = lo + Math.imul(al3, bl7) | 0;
+ mid = mid + Math.imul(al3, bh7) | 0;
+ mid = mid + Math.imul(ah3, bl7) | 0;
+ hi = hi + Math.imul(ah3, bh7) | 0;
+ lo = lo + Math.imul(al2, bl8) | 0;
+ mid = mid + Math.imul(al2, bh8) | 0;
+ mid = mid + Math.imul(ah2, bl8) | 0;
+ hi = hi + Math.imul(ah2, bh8) | 0;
+ lo = lo + Math.imul(al1, bl9) | 0;
+ mid = mid + Math.imul(al1, bh9) | 0;
+ mid = mid + Math.imul(ah1, bl9) | 0;
+ hi = hi + Math.imul(ah1, bh9) | 0;
+ var w10 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;
+ w10 &= 67108863;
+ lo = Math.imul(al9, bl2);
+ mid = Math.imul(al9, bh2);
+ mid = mid + Math.imul(ah9, bl2) | 0;
+ hi = Math.imul(ah9, bh2);
+ lo = lo + Math.imul(al8, bl3) | 0;
+ mid = mid + Math.imul(al8, bh3) | 0;
+ mid = mid + Math.imul(ah8, bl3) | 0;
+ hi = hi + Math.imul(ah8, bh3) | 0;
+ lo = lo + Math.imul(al7, bl4) | 0;
+ mid = mid + Math.imul(al7, bh4) | 0;
+ mid = mid + Math.imul(ah7, bl4) | 0;
+ hi = hi + Math.imul(ah7, bh4) | 0;
+ lo = lo + Math.imul(al6, bl5) | 0;
+ mid = mid + Math.imul(al6, bh5) | 0;
+ mid = mid + Math.imul(ah6, bl5) | 0;
+ hi = hi + Math.imul(ah6, bh5) | 0;
+ lo = lo + Math.imul(al5, bl6) | 0;
+ mid = mid + Math.imul(al5, bh6) | 0;
+ mid = mid + Math.imul(ah5, bl6) | 0;
+ hi = hi + Math.imul(ah5, bh6) | 0;
+ lo = lo + Math.imul(al4, bl7) | 0;
+ mid = mid + Math.imul(al4, bh7) | 0;
+ mid = mid + Math.imul(ah4, bl7) | 0;
+ hi = hi + Math.imul(ah4, bh7) | 0;
+ lo = lo + Math.imul(al3, bl8) | 0;
+ mid = mid + Math.imul(al3, bh8) | 0;
+ mid = mid + Math.imul(ah3, bl8) | 0;
+ hi = hi + Math.imul(ah3, bh8) | 0;
+ lo = lo + Math.imul(al2, bl9) | 0;
+ mid = mid + Math.imul(al2, bh9) | 0;
+ mid = mid + Math.imul(ah2, bl9) | 0;
+ hi = hi + Math.imul(ah2, bh9) | 0;
+ var w11 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;
+ w11 &= 67108863;
+ lo = Math.imul(al9, bl3);
+ mid = Math.imul(al9, bh3);
+ mid = mid + Math.imul(ah9, bl3) | 0;
+ hi = Math.imul(ah9, bh3);
+ lo = lo + Math.imul(al8, bl4) | 0;
+ mid = mid + Math.imul(al8, bh4) | 0;
+ mid = mid + Math.imul(ah8, bl4) | 0;
+ hi = hi + Math.imul(ah8, bh4) | 0;
+ lo = lo + Math.imul(al7, bl5) | 0;
+ mid = mid + Math.imul(al7, bh5) | 0;
+ mid = mid + Math.imul(ah7, bl5) | 0;
+ hi = hi + Math.imul(ah7, bh5) | 0;
+ lo = lo + Math.imul(al6, bl6) | 0;
+ mid = mid + Math.imul(al6, bh6) | 0;
+ mid = mid + Math.imul(ah6, bl6) | 0;
+ hi = hi + Math.imul(ah6, bh6) | 0;
+ lo = lo + Math.imul(al5, bl7) | 0;
+ mid = mid + Math.imul(al5, bh7) | 0;
+ mid = mid + Math.imul(ah5, bl7) | 0;
+ hi = hi + Math.imul(ah5, bh7) | 0;
+ lo = lo + Math.imul(al4, bl8) | 0;
+ mid = mid + Math.imul(al4, bh8) | 0;
+ mid = mid + Math.imul(ah4, bl8) | 0;
+ hi = hi + Math.imul(ah4, bh8) | 0;
+ lo = lo + Math.imul(al3, bl9) | 0;
+ mid = mid + Math.imul(al3, bh9) | 0;
+ mid = mid + Math.imul(ah3, bl9) | 0;
+ hi = hi + Math.imul(ah3, bh9) | 0;
+ var w12 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;
+ w12 &= 67108863;
+ lo = Math.imul(al9, bl4);
+ mid = Math.imul(al9, bh4);
+ mid = mid + Math.imul(ah9, bl4) | 0;
+ hi = Math.imul(ah9, bh4);
+ lo = lo + Math.imul(al8, bl5) | 0;
+ mid = mid + Math.imul(al8, bh5) | 0;
+ mid = mid + Math.imul(ah8, bl5) | 0;
+ hi = hi + Math.imul(ah8, bh5) | 0;
+ lo = lo + Math.imul(al7, bl6) | 0;
+ mid = mid + Math.imul(al7, bh6) | 0;
+ mid = mid + Math.imul(ah7, bl6) | 0;
+ hi = hi + Math.imul(ah7, bh6) | 0;
+ lo = lo + Math.imul(al6, bl7) | 0;
+ mid = mid + Math.imul(al6, bh7) | 0;
+ mid = mid + Math.imul(ah6, bl7) | 0;
+ hi = hi + Math.imul(ah6, bh7) | 0;
+ lo = lo + Math.imul(al5, bl8) | 0;
+ mid = mid + Math.imul(al5, bh8) | 0;
+ mid = mid + Math.imul(ah5, bl8) | 0;
+ hi = hi + Math.imul(ah5, bh8) | 0;
+ lo = lo + Math.imul(al4, bl9) | 0;
+ mid = mid + Math.imul(al4, bh9) | 0;
+ mid = mid + Math.imul(ah4, bl9) | 0;
+ hi = hi + Math.imul(ah4, bh9) | 0;
+ var w13 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;
+ w13 &= 67108863;
+ lo = Math.imul(al9, bl5);
+ mid = Math.imul(al9, bh5);
+ mid = mid + Math.imul(ah9, bl5) | 0;
+ hi = Math.imul(ah9, bh5);
+ lo = lo + Math.imul(al8, bl6) | 0;
+ mid = mid + Math.imul(al8, bh6) | 0;
+ mid = mid + Math.imul(ah8, bl6) | 0;
+ hi = hi + Math.imul(ah8, bh6) | 0;
+ lo = lo + Math.imul(al7, bl7) | 0;
+ mid = mid + Math.imul(al7, bh7) | 0;
+ mid = mid + Math.imul(ah7, bl7) | 0;
+ hi = hi + Math.imul(ah7, bh7) | 0;
+ lo = lo + Math.imul(al6, bl8) | 0;
+ mid = mid + Math.imul(al6, bh8) | 0;
+ mid = mid + Math.imul(ah6, bl8) | 0;
+ hi = hi + Math.imul(ah6, bh8) | 0;
+ lo = lo + Math.imul(al5, bl9) | 0;
+ mid = mid + Math.imul(al5, bh9) | 0;
+ mid = mid + Math.imul(ah5, bl9) | 0;
+ hi = hi + Math.imul(ah5, bh9) | 0;
+ var w14 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;
+ w14 &= 67108863;
+ lo = Math.imul(al9, bl6);
+ mid = Math.imul(al9, bh6);
+ mid = mid + Math.imul(ah9, bl6) | 0;
+ hi = Math.imul(ah9, bh6);
+ lo = lo + Math.imul(al8, bl7) | 0;
+ mid = mid + Math.imul(al8, bh7) | 0;
+ mid = mid + Math.imul(ah8, bl7) | 0;
+ hi = hi + Math.imul(ah8, bh7) | 0;
+ lo = lo + Math.imul(al7, bl8) | 0;
+ mid = mid + Math.imul(al7, bh8) | 0;
+ mid = mid + Math.imul(ah7, bl8) | 0;
+ hi = hi + Math.imul(ah7, bh8) | 0;
+ lo = lo + Math.imul(al6, bl9) | 0;
+ mid = mid + Math.imul(al6, bh9) | 0;
+ mid = mid + Math.imul(ah6, bl9) | 0;
+ hi = hi + Math.imul(ah6, bh9) | 0;
+ var w15 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;
+ w15 &= 67108863;
+ lo = Math.imul(al9, bl7);
+ mid = Math.imul(al9, bh7);
+ mid = mid + Math.imul(ah9, bl7) | 0;
+ hi = Math.imul(ah9, bh7);
+ lo = lo + Math.imul(al8, bl8) | 0;
+ mid = mid + Math.imul(al8, bh8) | 0;
+ mid = mid + Math.imul(ah8, bl8) | 0;
+ hi = hi + Math.imul(ah8, bh8) | 0;
+ lo = lo + Math.imul(al7, bl9) | 0;
+ mid = mid + Math.imul(al7, bh9) | 0;
+ mid = mid + Math.imul(ah7, bl9) | 0;
+ hi = hi + Math.imul(ah7, bh9) | 0;
+ var w16 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;
+ w16 &= 67108863;
+ lo = Math.imul(al9, bl8);
+ mid = Math.imul(al9, bh8);
+ mid = mid + Math.imul(ah9, bl8) | 0;
+ hi = Math.imul(ah9, bh8);
+ lo = lo + Math.imul(al8, bl9) | 0;
+ mid = mid + Math.imul(al8, bh9) | 0;
+ mid = mid + Math.imul(ah8, bl9) | 0;
+ hi = hi + Math.imul(ah8, bh9) | 0;
+ var w17 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;
+ w17 &= 67108863;
+ lo = Math.imul(al9, bl9);
+ mid = Math.imul(al9, bh9);
+ mid = mid + Math.imul(ah9, bl9) | 0;
+ hi = Math.imul(ah9, bh9);
+ var w18 = (c + lo | 0) + ((mid & 8191) << 13) | 0;
+ c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;
+ w18 &= 67108863;
+ o[0] = w0;
+ o[1] = w1;
+ o[2] = w2;
+ o[3] = w3;
+ o[4] = w4;
+ o[5] = w5;
+ o[6] = w6;
+ o[7] = w7;
+ o[8] = w8;
+ o[9] = w9;
+ o[10] = w10;
+ o[11] = w11;
+ o[12] = w12;
+ o[13] = w13;
+ o[14] = w14;
+ o[15] = w15;
+ o[16] = w16;
+ o[17] = w17;
+ o[18] = w18;
+ if (c !== 0) {
+ o[19] = c;
+ out.length++;
+ }
+ return out;
+ };
+ if (!Math.imul) {
+ comb10MulTo = smallMulTo;
+ }
+ function bigMulTo(self2, num, out) {
+ out.negative = num.negative ^ self2.negative;
+ out.length = self2.length + num.length;
+ var carry = 0;
+ var hncarry = 0;
+ for (var k = 0; k < out.length - 1; k++) {
+ var ncarry = hncarry;
+ hncarry = 0;
+ var rword = carry & 67108863;
+ var maxJ = Math.min(k, num.length - 1);
+ for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) {
+ var i = k - j;
+ var a = self2.words[i] | 0;
+ var b = num.words[j] | 0;
+ var r = a * b;
+ var lo = r & 67108863;
+ ncarry = ncarry + (r / 67108864 | 0) | 0;
+ lo = lo + rword | 0;
+ rword = lo & 67108863;
+ ncarry = ncarry + (lo >>> 26) | 0;
+ hncarry += ncarry >>> 26;
+ ncarry &= 67108863;
+ }
+ out.words[k] = rword;
+ carry = ncarry;
+ ncarry = hncarry;
+ }
+ if (carry !== 0) {
+ out.words[k] = carry;
+ } else {
+ out.length--;
+ }
+ return out.strip();
+ }
+ function jumboMulTo(self2, num, out) {
+ var fftm = new FFTM();
+ return fftm.mulp(self2, num, out);
+ }
+ BN.prototype.mulTo = function mulTo(num, out) {
+ var res;
+ var len = this.length + num.length;
+ if (this.length === 10 && num.length === 10) {
+ res = comb10MulTo(this, num, out);
+ } else if (len < 63) {
+ res = smallMulTo(this, num, out);
+ } else if (len < 1024) {
+ res = bigMulTo(this, num, out);
+ } else {
+ res = jumboMulTo(this, num, out);
+ }
+ return res;
+ };
+ function FFTM(x, y) {
+ this.x = x;
+ this.y = y;
+ }
+ FFTM.prototype.makeRBT = function makeRBT(N) {
+ var t = new Array(N);
+ var l = BN.prototype._countBits(N) - 1;
+ for (var i = 0; i < N; i++) {
+ t[i] = this.revBin(i, l, N);
+ }
+ return t;
+ };
+ FFTM.prototype.revBin = function revBin(x, l, N) {
+ if (x === 0 || x === N - 1)
+ return x;
+ var rb = 0;
+ for (var i = 0; i < l; i++) {
+ rb |= (x & 1) << l - i - 1;
+ x >>= 1;
+ }
+ return rb;
+ };
+ FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {
+ for (var i = 0; i < N; i++) {
+ rtws[i] = rws[rbt[i]];
+ itws[i] = iws[rbt[i]];
+ }
+ };
+ FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {
+ this.permute(rbt, rws, iws, rtws, itws, N);
+ for (var s = 1; s < N; s <<= 1) {
+ var l = s << 1;
+ var rtwdf = Math.cos(2 * Math.PI / l);
+ var itwdf = Math.sin(2 * Math.PI / l);
+ for (var p = 0; p < N; p += l) {
+ var rtwdf_ = rtwdf;
+ var itwdf_ = itwdf;
+ for (var j = 0; j < s; j++) {
+ var re = rtws[p + j];
+ var ie = itws[p + j];
+ var ro = rtws[p + j + s];
+ var io = itws[p + j + s];
+ var rx = rtwdf_ * ro - itwdf_ * io;
+ io = rtwdf_ * io + itwdf_ * ro;
+ ro = rx;
+ rtws[p + j] = re + ro;
+ itws[p + j] = ie + io;
+ rtws[p + j + s] = re - ro;
+ itws[p + j + s] = ie - io;
+ if (j !== l) {
+ rx = rtwdf * rtwdf_ - itwdf * itwdf_;
+ itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
+ rtwdf_ = rx;
+ }
+ }
+ }
+ }
+ };
+ FFTM.prototype.guessLen13b = function guessLen13b(n, m) {
+ var N = Math.max(m, n) | 1;
+ var odd = N & 1;
+ var i = 0;
+ for (N = N / 2 | 0; N; N = N >>> 1) {
+ i++;
+ }
+ return 1 << i + 1 + odd;
+ };
+ FFTM.prototype.conjugate = function conjugate(rws, iws, N) {
+ if (N <= 1)
+ return;
+ for (var i = 0; i < N / 2; i++) {
+ var t = rws[i];
+ rws[i] = rws[N - i - 1];
+ rws[N - i - 1] = t;
+ t = iws[i];
+ iws[i] = -iws[N - i - 1];
+ iws[N - i - 1] = -t;
+ }
+ };
+ FFTM.prototype.normalize13b = function normalize13b(ws, N) {
+ var carry = 0;
+ for (var i = 0; i < N / 2; i++) {
+ var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;
+ ws[i] = w & 67108863;
+ if (w < 67108864) {
+ carry = 0;
+ } else {
+ carry = w / 67108864 | 0;
+ }
+ }
+ return ws;
+ };
+ FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {
+ var carry = 0;
+ for (var i = 0; i < len; i++) {
+ carry = carry + (ws[i] | 0);
+ rws[2 * i] = carry & 8191;
+ carry = carry >>> 13;
+ rws[2 * i + 1] = carry & 8191;
+ carry = carry >>> 13;
+ }
+ for (i = 2 * len; i < N; ++i) {
+ rws[i] = 0;
+ }
+ assert(carry === 0);
+ assert((carry & ~8191) === 0);
+ };
+ FFTM.prototype.stub = function stub(N) {
+ var ph = new Array(N);
+ for (var i = 0; i < N; i++) {
+ ph[i] = 0;
+ }
+ return ph;
+ };
+ FFTM.prototype.mulp = function mulp(x, y, out) {
+ var N = 2 * this.guessLen13b(x.length, y.length);
+ var rbt = this.makeRBT(N);
+ var _ = this.stub(N);
+ var rws = new Array(N);
+ var rwst = new Array(N);
+ var iwst = new Array(N);
+ var nrws = new Array(N);
+ var nrwst = new Array(N);
+ var niwst = new Array(N);
+ var rmws = out.words;
+ rmws.length = N;
+ this.convert13b(x.words, x.length, rws, N);
+ this.convert13b(y.words, y.length, nrws, N);
+ this.transform(rws, _, rwst, iwst, N, rbt);
+ this.transform(nrws, _, nrwst, niwst, N, rbt);
+ for (var i = 0; i < N; i++) {
+ var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
+ iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
+ rwst[i] = rx;
+ }
+ this.conjugate(rwst, iwst, N);
+ this.transform(rwst, iwst, rmws, _, N, rbt);
+ this.conjugate(rmws, _, N);
+ this.normalize13b(rmws, N);
+ out.negative = x.negative ^ y.negative;
+ out.length = x.length + y.length;
+ return out.strip();
+ };
+ BN.prototype.mul = function mul(num) {
+ var out = new BN(null);
+ out.words = new Array(this.length + num.length);
+ return this.mulTo(num, out);
+ };
+ BN.prototype.mulf = function mulf(num) {
+ var out = new BN(null);
+ out.words = new Array(this.length + num.length);
+ return jumboMulTo(this, num, out);
+ };
+ BN.prototype.imul = function imul(num) {
+ return this.clone().mulTo(num, this);
+ };
+ BN.prototype.imuln = function imuln(num) {
+ assert(typeof num === "number");
+ assert(num < 67108864);
+ var carry = 0;
+ for (var i = 0; i < this.length; i++) {
+ var w = (this.words[i] | 0) * num;
+ var lo = (w & 67108863) + (carry & 67108863);
+ carry >>= 26;
+ carry += w / 67108864 | 0;
+ carry += lo >>> 26;
+ this.words[i] = lo & 67108863;
+ }
+ if (carry !== 0) {
+ this.words[i] = carry;
+ this.length++;
+ }
+ return this;
+ };
+ BN.prototype.muln = function muln(num) {
+ return this.clone().imuln(num);
+ };
+ BN.prototype.sqr = function sqr() {
+ return this.mul(this);
+ };
+ BN.prototype.isqr = function isqr() {
+ return this.imul(this.clone());
+ };
+ BN.prototype.pow = function pow(num) {
+ var w = toBitArray(num);
+ if (w.length === 0)
+ return new BN(1);
+ var res = this;
+ for (var i = 0; i < w.length; i++, res = res.sqr()) {
+ if (w[i] !== 0)
+ break;
+ }
+ if (++i < w.length) {
+ for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
+ if (w[i] === 0)
+ continue;
+ res = res.mul(q);
+ }
+ }
+ return res;
+ };
+ BN.prototype.iushln = function iushln(bits) {
+ assert(typeof bits === "number" && bits >= 0);
+ var r = bits % 26;
+ var s = (bits - r) / 26;
+ var carryMask = 67108863 >>> 26 - r << 26 - r;
+ var i;
+ if (r !== 0) {
+ var carry = 0;
+ for (i = 0; i < this.length; i++) {
+ var newCarry = this.words[i] & carryMask;
+ var c = (this.words[i] | 0) - newCarry << r;
+ this.words[i] = c | carry;
+ carry = newCarry >>> 26 - r;
+ }
+ if (carry) {
+ this.words[i] = carry;
+ this.length++;
+ }
+ }
+ if (s !== 0) {
+ for (i = this.length - 1; i >= 0; i--) {
+ this.words[i + s] = this.words[i];
+ }
+ for (i = 0; i < s; i++) {
+ this.words[i] = 0;
+ }
+ this.length += s;
+ }
+ return this.strip();
+ };
+ BN.prototype.ishln = function ishln(bits) {
+ assert(this.negative === 0);
+ return this.iushln(bits);
+ };
+ BN.prototype.iushrn = function iushrn(bits, hint, extended) {
+ assert(typeof bits === "number" && bits >= 0);
+ var h;
+ if (hint) {
+ h = (hint - hint % 26) / 26;
+ } else {
+ h = 0;
+ }
+ var r = bits % 26;
+ var s = Math.min((bits - r) / 26, this.length);
+ var mask = 67108863 ^ 67108863 >>> r << r;
+ var maskedWords = extended;
+ h -= s;
+ h = Math.max(0, h);
+ if (maskedWords) {
+ for (var i = 0; i < s; i++) {
+ maskedWords.words[i] = this.words[i];
+ }
+ maskedWords.length = s;
+ }
+ if (s === 0) {
+ } else if (this.length > s) {
+ this.length -= s;
+ for (i = 0; i < this.length; i++) {
+ this.words[i] = this.words[i + s];
+ }
+ } else {
+ this.words[0] = 0;
+ this.length = 1;
+ }
+ var carry = 0;
+ for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {
+ var word = this.words[i] | 0;
+ this.words[i] = carry << 26 - r | word >>> r;
+ carry = word & mask;
+ }
+ if (maskedWords && carry !== 0) {
+ maskedWords.words[maskedWords.length++] = carry;
+ }
+ if (this.length === 0) {
+ this.words[0] = 0;
+ this.length = 1;
+ }
+ return this.strip();
+ };
+ BN.prototype.ishrn = function ishrn(bits, hint, extended) {
+ assert(this.negative === 0);
+ return this.iushrn(bits, hint, extended);
+ };
+ BN.prototype.shln = function shln(bits) {
+ return this.clone().ishln(bits);
+ };
+ BN.prototype.ushln = function ushln(bits) {
+ return this.clone().iushln(bits);
+ };
+ BN.prototype.shrn = function shrn(bits) {
+ return this.clone().ishrn(bits);
+ };
+ BN.prototype.ushrn = function ushrn(bits) {
+ return this.clone().iushrn(bits);
+ };
+ BN.prototype.testn = function testn(bit) {
+ assert(typeof bit === "number" && bit >= 0);
+ var r = bit % 26;
+ var s = (bit - r) / 26;
+ var q = 1 << r;
+ if (this.length <= s)
+ return false;
+ var w = this.words[s];
+ return !!(w & q);
+ };
+ BN.prototype.imaskn = function imaskn(bits) {
+ assert(typeof bits === "number" && bits >= 0);
+ var r = bits % 26;
+ var s = (bits - r) / 26;
+ assert(this.negative === 0, "imaskn works only with positive numbers");
+ if (this.length <= s) {
+ return this;
+ }
+ if (r !== 0) {
+ s++;
+ }
+ this.length = Math.min(s, this.length);
+ if (r !== 0) {
+ var mask = 67108863 ^ 67108863 >>> r << r;
+ this.words[this.length - 1] &= mask;
+ }
+ return this.strip();
+ };
+ BN.prototype.maskn = function maskn(bits) {
+ return this.clone().imaskn(bits);
+ };
+ BN.prototype.iaddn = function iaddn(num) {
+ assert(typeof num === "number");
+ assert(num < 67108864);
+ if (num < 0)
+ return this.isubn(-num);
+ if (this.negative !== 0) {
+ if (this.length === 1 && (this.words[0] | 0) < num) {
+ this.words[0] = num - (this.words[0] | 0);
+ this.negative = 0;
+ return this;
+ }
+ this.negative = 0;
+ this.isubn(num);
+ this.negative = 1;
+ return this;
+ }
+ return this._iaddn(num);
+ };
+ BN.prototype._iaddn = function _iaddn(num) {
+ this.words[0] += num;
+ for (var i = 0; i < this.length && this.words[i] >= 67108864; i++) {
+ this.words[i] -= 67108864;
+ if (i === this.length - 1) {
+ this.words[i + 1] = 1;
+ } else {
+ this.words[i + 1]++;
+ }
+ }
+ this.length = Math.max(this.length, i + 1);
+ return this;
+ };
+ BN.prototype.isubn = function isubn(num) {
+ assert(typeof num === "number");
+ assert(num < 67108864);
+ if (num < 0)
+ return this.iaddn(-num);
+ if (this.negative !== 0) {
+ this.negative = 0;
+ this.iaddn(num);
+ this.negative = 1;
+ return this;
+ }
+ this.words[0] -= num;
+ if (this.length === 1 && this.words[0] < 0) {
+ this.words[0] = -this.words[0];
+ this.negative = 1;
+ } else {
+ for (var i = 0; i < this.length && this.words[i] < 0; i++) {
+ this.words[i] += 67108864;
+ this.words[i + 1] -= 1;
+ }
+ }
+ return this.strip();
+ };
+ BN.prototype.addn = function addn(num) {
+ return this.clone().iaddn(num);
+ };
+ BN.prototype.subn = function subn(num) {
+ return this.clone().isubn(num);
+ };
+ BN.prototype.iabs = function iabs() {
+ this.negative = 0;
+ return this;
+ };
+ BN.prototype.abs = function abs() {
+ return this.clone().iabs();
+ };
+ BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {
+ var len = num.length + shift;
+ var i;
+ this._expand(len);
+ var w;
+ var carry = 0;
+ for (i = 0; i < num.length; i++) {
+ w = (this.words[i + shift] | 0) + carry;
+ var right = (num.words[i] | 0) * mul;
+ w -= right & 67108863;
+ carry = (w >> 26) - (right / 67108864 | 0);
+ this.words[i + shift] = w & 67108863;
+ }
+ for (; i < this.length - shift; i++) {
+ w = (this.words[i + shift] | 0) + carry;
+ carry = w >> 26;
+ this.words[i + shift] = w & 67108863;
+ }
+ if (carry === 0)
+ return this.strip();
+ assert(carry === -1);
+ carry = 0;
+ for (i = 0; i < this.length; i++) {
+ w = -(this.words[i] | 0) + carry;
+ carry = w >> 26;
+ this.words[i] = w & 67108863;
+ }
+ this.negative = 1;
+ return this.strip();
+ };
+ BN.prototype._wordDiv = function _wordDiv(num, mode) {
+ var shift = this.length - num.length;
+ var a = this.clone();
+ var b = num;
+ var bhi = b.words[b.length - 1] | 0;
+ var bhiBits = this._countBits(bhi);
+ shift = 26 - bhiBits;
+ if (shift !== 0) {
+ b = b.ushln(shift);
+ a.iushln(shift);
+ bhi = b.words[b.length - 1] | 0;
+ }
+ var m = a.length - b.length;
+ var q;
+ if (mode !== "mod") {
+ q = new BN(null);
+ q.length = m + 1;
+ q.words = new Array(q.length);
+ for (var i = 0; i < q.length; i++) {
+ q.words[i] = 0;
+ }
+ }
+ var diff = a.clone()._ishlnsubmul(b, 1, m);
+ if (diff.negative === 0) {
+ a = diff;
+ if (q) {
+ q.words[m] = 1;
+ }
+ }
+ for (var j = m - 1; j >= 0; j--) {
+ var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);
+ qj = Math.min(qj / bhi | 0, 67108863);
+ a._ishlnsubmul(b, qj, j);
+ while (a.negative !== 0) {
+ qj--;
+ a.negative = 0;
+ a._ishlnsubmul(b, 1, j);
+ if (!a.isZero()) {
+ a.negative ^= 1;
+ }
+ }
+ if (q) {
+ q.words[j] = qj;
+ }
+ }
+ if (q) {
+ q.strip();
+ }
+ a.strip();
+ if (mode !== "div" && shift !== 0) {
+ a.iushrn(shift);
+ }
+ return {
+ div: q || null,
+ mod: a
+ };
+ };
+ BN.prototype.divmod = function divmod(num, mode, positive) {
+ assert(!num.isZero());
+ if (this.isZero()) {
+ return {
+ div: new BN(0),
+ mod: new BN(0)
+ };
+ }
+ var div, mod, res;
+ if (this.negative !== 0 && num.negative === 0) {
+ res = this.neg().divmod(num, mode);
+ if (mode !== "mod") {
+ div = res.div.neg();
+ }
+ if (mode !== "div") {
+ mod = res.mod.neg();
+ if (positive && mod.negative !== 0) {
+ mod.iadd(num);
+ }
+ }
+ return {
+ div,
+ mod
+ };
+ }
+ if (this.negative === 0 && num.negative !== 0) {
+ res = this.divmod(num.neg(), mode);
+ if (mode !== "mod") {
+ div = res.div.neg();
+ }
+ return {
+ div,
+ mod: res.mod
+ };
+ }
+ if ((this.negative & num.negative) !== 0) {
+ res = this.neg().divmod(num.neg(), mode);
+ if (mode !== "div") {
+ mod = res.mod.neg();
+ if (positive && mod.negative !== 0) {
+ mod.isub(num);
+ }
+ }
+ return {
+ div: res.div,
+ mod
+ };
+ }
+ if (num.length > this.length || this.cmp(num) < 0) {
+ return {
+ div: new BN(0),
+ mod: this
+ };
+ }
+ if (num.length === 1) {
+ if (mode === "div") {
+ return {
+ div: this.divn(num.words[0]),
+ mod: null
+ };
+ }
+ if (mode === "mod") {
+ return {
+ div: null,
+ mod: new BN(this.modn(num.words[0]))
+ };
+ }
+ return {
+ div: this.divn(num.words[0]),
+ mod: new BN(this.modn(num.words[0]))
+ };
+ }
+ return this._wordDiv(num, mode);
+ };
+ BN.prototype.div = function div(num) {
+ return this.divmod(num, "div", false).div;
+ };
+ BN.prototype.mod = function mod(num) {
+ return this.divmod(num, "mod", false).mod;
+ };
+ BN.prototype.umod = function umod(num) {
+ return this.divmod(num, "mod", true).mod;
+ };
+ BN.prototype.divRound = function divRound(num) {
+ var dm = this.divmod(num);
+ if (dm.mod.isZero())
+ return dm.div;
+ var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;
+ var half = num.ushrn(1);
+ var r2 = num.andln(1);
+ var cmp = mod.cmp(half);
+ if (cmp < 0 || r2 === 1 && cmp === 0)
+ return dm.div;
+ return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);
+ };
+ BN.prototype.modn = function modn(num) {
+ assert(num <= 67108863);
+ var p = (1 << 26) % num;
+ var acc = 0;
+ for (var i = this.length - 1; i >= 0; i--) {
+ acc = (p * acc + (this.words[i] | 0)) % num;
+ }
+ return acc;
+ };
+ BN.prototype.idivn = function idivn(num) {
+ assert(num <= 67108863);
+ var carry = 0;
+ for (var i = this.length - 1; i >= 0; i--) {
+ var w = (this.words[i] | 0) + carry * 67108864;
+ this.words[i] = w / num | 0;
+ carry = w % num;
+ }
+ return this.strip();
+ };
+ BN.prototype.divn = function divn(num) {
+ return this.clone().idivn(num);
+ };
+ BN.prototype.egcd = function egcd(p) {
+ assert(p.negative === 0);
+ assert(!p.isZero());
+ var x = this;
+ var y = p.clone();
+ if (x.negative !== 0) {
+ x = x.umod(p);
+ } else {
+ x = x.clone();
+ }
+ var A = new BN(1);
+ var B = new BN(0);
+ var C = new BN(0);
+ var D = new BN(1);
+ var g = 0;
+ while (x.isEven() && y.isEven()) {
+ x.iushrn(1);
+ y.iushrn(1);
+ ++g;
+ }
+ var yp = y.clone();
+ var xp = x.clone();
+ while (!x.isZero()) {
+ for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1)
+ ;
+ if (i > 0) {
+ x.iushrn(i);
+ while (i-- > 0) {
+ if (A.isOdd() || B.isOdd()) {
+ A.iadd(yp);
+ B.isub(xp);
+ }
+ A.iushrn(1);
+ B.iushrn(1);
+ }
+ }
+ for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1)
+ ;
+ if (j > 0) {
+ y.iushrn(j);
+ while (j-- > 0) {
+ if (C.isOdd() || D.isOdd()) {
+ C.iadd(yp);
+ D.isub(xp);
+ }
+ C.iushrn(1);
+ D.iushrn(1);
+ }
+ }
+ if (x.cmp(y) >= 0) {
+ x.isub(y);
+ A.isub(C);
+ B.isub(D);
+ } else {
+ y.isub(x);
+ C.isub(A);
+ D.isub(B);
+ }
+ }
+ return {
+ a: C,
+ b: D,
+ gcd: y.iushln(g)
+ };
+ };
+ BN.prototype._invmp = function _invmp(p) {
+ assert(p.negative === 0);
+ assert(!p.isZero());
+ var a = this;
+ var b = p.clone();
+ if (a.negative !== 0) {
+ a = a.umod(p);
+ } else {
+ a = a.clone();
+ }
+ var x1 = new BN(1);
+ var x2 = new BN(0);
+ var delta = b.clone();
+ while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {
+ for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1)
+ ;
+ if (i > 0) {
+ a.iushrn(i);
+ while (i-- > 0) {
+ if (x1.isOdd()) {
+ x1.iadd(delta);
+ }
+ x1.iushrn(1);
+ }
+ }
+ for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1)
+ ;
+ if (j > 0) {
+ b.iushrn(j);
+ while (j-- > 0) {
+ if (x2.isOdd()) {
+ x2.iadd(delta);
+ }
+ x2.iushrn(1);
+ }
+ }
+ if (a.cmp(b) >= 0) {
+ a.isub(b);
+ x1.isub(x2);
+ } else {
+ b.isub(a);
+ x2.isub(x1);
+ }
+ }
+ var res;
+ if (a.cmpn(1) === 0) {
+ res = x1;
+ } else {
+ res = x2;
+ }
+ if (res.cmpn(0) < 0) {
+ res.iadd(p);
+ }
+ return res;
+ };
+ BN.prototype.gcd = function gcd(num) {
+ if (this.isZero())
+ return num.abs();
+ if (num.isZero())
+ return this.abs();
+ var a = this.clone();
+ var b = num.clone();
+ a.negative = 0;
+ b.negative = 0;
+ for (var shift = 0; a.isEven() && b.isEven(); shift++) {
+ a.iushrn(1);
+ b.iushrn(1);
+ }
+ do {
+ while (a.isEven()) {
+ a.iushrn(1);
+ }
+ while (b.isEven()) {
+ b.iushrn(1);
+ }
+ var r = a.cmp(b);
+ if (r < 0) {
+ var t = a;
+ a = b;
+ b = t;
+ } else if (r === 0 || b.cmpn(1) === 0) {
+ break;
+ }
+ a.isub(b);
+ } while (true);
+ return b.iushln(shift);
+ };
+ BN.prototype.invm = function invm(num) {
+ return this.egcd(num).a.umod(num);
+ };
+ BN.prototype.isEven = function isEven() {
+ return (this.words[0] & 1) === 0;
+ };
+ BN.prototype.isOdd = function isOdd() {
+ return (this.words[0] & 1) === 1;
+ };
+ BN.prototype.andln = function andln(num) {
+ return this.words[0] & num;
+ };
+ BN.prototype.bincn = function bincn(bit) {
+ assert(typeof bit === "number");
+ var r = bit % 26;
+ var s = (bit - r) / 26;
+ var q = 1 << r;
+ if (this.length <= s) {
+ this._expand(s + 1);
+ this.words[s] |= q;
+ return this;
+ }
+ var carry = q;
+ for (var i = s; carry !== 0 && i < this.length; i++) {
+ var w = this.words[i] | 0;
+ w += carry;
+ carry = w >>> 26;
+ w &= 67108863;
+ this.words[i] = w;
+ }
+ if (carry !== 0) {
+ this.words[i] = carry;
+ this.length++;
+ }
+ return this;
+ };
+ BN.prototype.isZero = function isZero() {
+ return this.length === 1 && this.words[0] === 0;
+ };
+ BN.prototype.cmpn = function cmpn(num) {
+ var negative = num < 0;
+ if (this.negative !== 0 && !negative)
+ return -1;
+ if (this.negative === 0 && negative)
+ return 1;
+ this.strip();
+ var res;
+ if (this.length > 1) {
+ res = 1;
+ } else {
+ if (negative) {
+ num = -num;
+ }
+ assert(num <= 67108863, "Number is too big");
+ var w = this.words[0] | 0;
+ res = w === num ? 0 : w < num ? -1 : 1;
+ }
+ if (this.negative !== 0)
+ return -res | 0;
+ return res;
+ };
+ BN.prototype.cmp = function cmp(num) {
+ if (this.negative !== 0 && num.negative === 0)
+ return -1;
+ if (this.negative === 0 && num.negative !== 0)
+ return 1;
+ var res = this.ucmp(num);
+ if (this.negative !== 0)
+ return -res | 0;
+ return res;
+ };
+ BN.prototype.ucmp = function ucmp(num) {
+ if (this.length > num.length)
+ return 1;
+ if (this.length < num.length)
+ return -1;
+ var res = 0;
+ for (var i = this.length - 1; i >= 0; i--) {
+ var a = this.words[i] | 0;
+ var b = num.words[i] | 0;
+ if (a === b)
+ continue;
+ if (a < b) {
+ res = -1;
+ } else if (a > b) {
+ res = 1;
+ }
+ break;
+ }
+ return res;
+ };
+ BN.prototype.gtn = function gtn(num) {
+ return this.cmpn(num) === 1;
+ };
+ BN.prototype.gt = function gt(num) {
+ return this.cmp(num) === 1;
+ };
+ BN.prototype.gten = function gten(num) {
+ return this.cmpn(num) >= 0;
+ };
+ BN.prototype.gte = function gte(num) {
+ return this.cmp(num) >= 0;
+ };
+ BN.prototype.ltn = function ltn(num) {
+ return this.cmpn(num) === -1;
+ };
+ BN.prototype.lt = function lt(num) {
+ return this.cmp(num) === -1;
+ };
+ BN.prototype.lten = function lten(num) {
+ return this.cmpn(num) <= 0;
+ };
+ BN.prototype.lte = function lte(num) {
+ return this.cmp(num) <= 0;
+ };
+ BN.prototype.eqn = function eqn(num) {
+ return this.cmpn(num) === 0;
+ };
+ BN.prototype.eq = function eq(num) {
+ return this.cmp(num) === 0;
+ };
+ BN.red = function red(num) {
+ return new Red(num);
+ };
+ BN.prototype.toRed = function toRed(ctx) {
+ assert(!this.red, "Already a number in reduction context");
+ assert(this.negative === 0, "red works only with positives");
+ return ctx.convertTo(this)._forceRed(ctx);
+ };
+ BN.prototype.fromRed = function fromRed() {
+ assert(this.red, "fromRed works only with numbers in reduction context");
+ return this.red.convertFrom(this);
+ };
+ BN.prototype._forceRed = function _forceRed(ctx) {
+ this.red = ctx;
+ return this;
+ };
+ BN.prototype.forceRed = function forceRed(ctx) {
+ assert(!this.red, "Already a number in reduction context");
+ return this._forceRed(ctx);
+ };
+ BN.prototype.redAdd = function redAdd(num) {
+ assert(this.red, "redAdd works only with red numbers");
+ return this.red.add(this, num);
+ };
+ BN.prototype.redIAdd = function redIAdd(num) {
+ assert(this.red, "redIAdd works only with red numbers");
+ return this.red.iadd(this, num);
+ };
+ BN.prototype.redSub = function redSub(num) {
+ assert(this.red, "redSub works only with red numbers");
+ return this.red.sub(this, num);
+ };
+ BN.prototype.redISub = function redISub(num) {
+ assert(this.red, "redISub works only with red numbers");
+ return this.red.isub(this, num);
+ };
+ BN.prototype.redShl = function redShl(num) {
+ assert(this.red, "redShl works only with red numbers");
+ return this.red.shl(this, num);
+ };
+ BN.prototype.redMul = function redMul(num) {
+ assert(this.red, "redMul works only with red numbers");
+ this.red._verify2(this, num);
+ return this.red.mul(this, num);
+ };
+ BN.prototype.redIMul = function redIMul(num) {
+ assert(this.red, "redMul works only with red numbers");
+ this.red._verify2(this, num);
+ return this.red.imul(this, num);
+ };
+ BN.prototype.redSqr = function redSqr() {
+ assert(this.red, "redSqr works only with red numbers");
+ this.red._verify1(this);
+ return this.red.sqr(this);
+ };
+ BN.prototype.redISqr = function redISqr() {
+ assert(this.red, "redISqr works only with red numbers");
+ this.red._verify1(this);
+ return this.red.isqr(this);
+ };
+ BN.prototype.redSqrt = function redSqrt() {
+ assert(this.red, "redSqrt works only with red numbers");
+ this.red._verify1(this);
+ return this.red.sqrt(this);
+ };
+ BN.prototype.redInvm = function redInvm() {
+ assert(this.red, "redInvm works only with red numbers");
+ this.red._verify1(this);
+ return this.red.invm(this);
+ };
+ BN.prototype.redNeg = function redNeg() {
+ assert(this.red, "redNeg works only with red numbers");
+ this.red._verify1(this);
+ return this.red.neg(this);
+ };
+ BN.prototype.redPow = function redPow(num) {
+ assert(this.red && !num.red, "redPow(normalNum)");
+ this.red._verify1(this);
+ return this.red.pow(this, num);
+ };
+ var primes = {
+ k256: null,
+ p224: null,
+ p192: null,
+ p25519: null
+ };
+ function MPrime(name, p) {
+ this.name = name;
+ this.p = new BN(p, 16);
+ this.n = this.p.bitLength();
+ this.k = new BN(1).iushln(this.n).isub(this.p);
+ this.tmp = this._tmp();
+ }
+ MPrime.prototype._tmp = function _tmp() {
+ var tmp = new BN(null);
+ tmp.words = new Array(Math.ceil(this.n / 13));
+ return tmp;
+ };
+ MPrime.prototype.ireduce = function ireduce(num) {
+ var r = num;
+ var rlen;
+ do {
+ this.split(r, this.tmp);
+ r = this.imulK(r);
+ r = r.iadd(this.tmp);
+ rlen = r.bitLength();
+ } while (rlen > this.n);
+ var cmp = rlen < this.n ? -1 : r.ucmp(this.p);
+ if (cmp === 0) {
+ r.words[0] = 0;
+ r.length = 1;
+ } else if (cmp > 0) {
+ r.isub(this.p);
+ } else {
+ if (r.strip !== void 0) {
+ r.strip();
+ } else {
+ r._strip();
+ }
+ }
+ return r;
+ };
+ MPrime.prototype.split = function split(input, out) {
+ input.iushrn(this.n, 0, out);
+ };
+ MPrime.prototype.imulK = function imulK(num) {
+ return num.imul(this.k);
+ };
+ function K256() {
+ MPrime.call(
+ this,
+ "k256",
+ "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f"
+ );
+ }
+ inherits(K256, MPrime);
+ K256.prototype.split = function split(input, output) {
+ var mask = 4194303;
+ var outLen = Math.min(input.length, 9);
+ for (var i = 0; i < outLen; i++) {
+ output.words[i] = input.words[i];
+ }
+ output.length = outLen;
+ if (input.length <= 9) {
+ input.words[0] = 0;
+ input.length = 1;
+ return;
+ }
+ var prev = input.words[9];
+ output.words[output.length++] = prev & mask;
+ for (i = 10; i < input.length; i++) {
+ var next = input.words[i] | 0;
+ input.words[i - 10] = (next & mask) << 4 | prev >>> 22;
+ prev = next;
+ }
+ prev >>>= 22;
+ input.words[i - 10] = prev;
+ if (prev === 0 && input.length > 10) {
+ input.length -= 10;
+ } else {
+ input.length -= 9;
+ }
+ };
+ K256.prototype.imulK = function imulK(num) {
+ num.words[num.length] = 0;
+ num.words[num.length + 1] = 0;
+ num.length += 2;
+ var lo = 0;
+ for (var i = 0; i < num.length; i++) {
+ var w = num.words[i] | 0;
+ lo += w * 977;
+ num.words[i] = lo & 67108863;
+ lo = w * 64 + (lo / 67108864 | 0);
+ }
+ if (num.words[num.length - 1] === 0) {
+ num.length--;
+ if (num.words[num.length - 1] === 0) {
+ num.length--;
+ }
+ }
+ return num;
+ };
+ function P224() {
+ MPrime.call(
+ this,
+ "p224",
+ "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001"
+ );
+ }
+ inherits(P224, MPrime);
+ function P192() {
+ MPrime.call(
+ this,
+ "p192",
+ "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff"
+ );
+ }
+ inherits(P192, MPrime);
+ function P25519() {
+ MPrime.call(
+ this,
+ "25519",
+ "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed"
+ );
+ }
+ inherits(P25519, MPrime);
+ P25519.prototype.imulK = function imulK(num) {
+ var carry = 0;
+ for (var i = 0; i < num.length; i++) {
+ var hi = (num.words[i] | 0) * 19 + carry;
+ var lo = hi & 67108863;
+ hi >>>= 26;
+ num.words[i] = lo;
+ carry = hi;
+ }
+ if (carry !== 0) {
+ num.words[num.length++] = carry;
+ }
+ return num;
+ };
+ BN._prime = function prime(name) {
+ if (primes[name])
+ return primes[name];
+ var prime2;
+ if (name === "k256") {
+ prime2 = new K256();
+ } else if (name === "p224") {
+ prime2 = new P224();
+ } else if (name === "p192") {
+ prime2 = new P192();
+ } else if (name === "p25519") {
+ prime2 = new P25519();
+ } else {
+ throw new Error("Unknown prime " + name);
+ }
+ primes[name] = prime2;
+ return prime2;
+ };
+ function Red(m) {
+ if (typeof m === "string") {
+ var prime = BN._prime(m);
+ this.m = prime.p;
+ this.prime = prime;
+ } else {
+ assert(m.gtn(1), "modulus must be greater than 1");
+ this.m = m;
+ this.prime = null;
+ }
+ }
+ Red.prototype._verify1 = function _verify1(a) {
+ assert(a.negative === 0, "red works only with positives");
+ assert(a.red, "red works only with red numbers");
+ };
+ Red.prototype._verify2 = function _verify2(a, b) {
+ assert((a.negative | b.negative) === 0, "red works only with positives");
+ assert(
+ a.red && a.red === b.red,
+ "red works only with red numbers"
+ );
+ };
+ Red.prototype.imod = function imod(a) {
+ if (this.prime)
+ return this.prime.ireduce(a)._forceRed(this);
+ return a.umod(this.m)._forceRed(this);
+ };
+ Red.prototype.neg = function neg(a) {
+ if (a.isZero()) {
+ return a.clone();
+ }
+ return this.m.sub(a)._forceRed(this);
+ };
+ Red.prototype.add = function add(a, b) {
+ this._verify2(a, b);
+ var res = a.add(b);
+ if (res.cmp(this.m) >= 0) {
+ res.isub(this.m);
+ }
+ return res._forceRed(this);
+ };
+ Red.prototype.iadd = function iadd(a, b) {
+ this._verify2(a, b);
+ var res = a.iadd(b);
+ if (res.cmp(this.m) >= 0) {
+ res.isub(this.m);
+ }
+ return res;
+ };
+ Red.prototype.sub = function sub(a, b) {
+ this._verify2(a, b);
+ var res = a.sub(b);
+ if (res.cmpn(0) < 0) {
+ res.iadd(this.m);
+ }
+ return res._forceRed(this);
+ };
+ Red.prototype.isub = function isub(a, b) {
+ this._verify2(a, b);
+ var res = a.isub(b);
+ if (res.cmpn(0) < 0) {
+ res.iadd(this.m);
+ }
+ return res;
+ };
+ Red.prototype.shl = function shl(a, num) {
+ this._verify1(a);
+ return this.imod(a.ushln(num));
+ };
+ Red.prototype.imul = function imul(a, b) {
+ this._verify2(a, b);
+ return this.imod(a.imul(b));
+ };
+ Red.prototype.mul = function mul(a, b) {
+ this._verify2(a, b);
+ return this.imod(a.mul(b));
+ };
+ Red.prototype.isqr = function isqr(a) {
+ return this.imul(a, a.clone());
+ };
+ Red.prototype.sqr = function sqr(a) {
+ return this.mul(a, a);
+ };
+ Red.prototype.sqrt = function sqrt(a) {
+ if (a.isZero())
+ return a.clone();
+ var mod3 = this.m.andln(3);
+ assert(mod3 % 2 === 1);
+ if (mod3 === 3) {
+ var pow = this.m.add(new BN(1)).iushrn(2);
+ return this.pow(a, pow);
+ }
+ var q = this.m.subn(1);
+ var s = 0;
+ while (!q.isZero() && q.andln(1) === 0) {
+ s++;
+ q.iushrn(1);
+ }
+ assert(!q.isZero());
+ var one = new BN(1).toRed(this);
+ var nOne = one.redNeg();
+ var lpow = this.m.subn(1).iushrn(1);
+ var z = this.m.bitLength();
+ z = new BN(2 * z * z).toRed(this);
+ while (this.pow(z, lpow).cmp(nOne) !== 0) {
+ z.redIAdd(nOne);
+ }
+ var c = this.pow(z, q);
+ var r = this.pow(a, q.addn(1).iushrn(1));
+ var t = this.pow(a, q);
+ var m = s;
+ while (t.cmp(one) !== 0) {
+ var tmp = t;
+ for (var i = 0; tmp.cmp(one) !== 0; i++) {
+ tmp = tmp.redSqr();
+ }
+ assert(i < m);
+ var b = this.pow(c, new BN(1).iushln(m - i - 1));
+ r = r.redMul(b);
+ c = b.redSqr();
+ t = t.redMul(c);
+ m = i;
+ }
+ return r;
+ };
+ Red.prototype.invm = function invm(a) {
+ var inv = a._invmp(this.m);
+ if (inv.negative !== 0) {
+ inv.negative = 0;
+ return this.imod(inv).redNeg();
+ } else {
+ return this.imod(inv);
+ }
+ };
+ Red.prototype.pow = function pow(a, num) {
+ if (num.isZero())
+ return new BN(1).toRed(this);
+ if (num.cmpn(1) === 0)
+ return a.clone();
+ var windowSize = 4;
+ var wnd = new Array(1 << windowSize);
+ wnd[0] = new BN(1).toRed(this);
+ wnd[1] = a;
+ for (var i = 2; i < wnd.length; i++) {
+ wnd[i] = this.mul(wnd[i - 1], a);
+ }
+ var res = wnd[0];
+ var current = 0;
+ var currentLen = 0;
+ var start = num.bitLength() % 26;
+ if (start === 0) {
+ start = 26;
+ }
+ for (i = num.length - 1; i >= 0; i--) {
+ var word = num.words[i];
+ for (var j = start - 1; j >= 0; j--) {
+ var bit = word >> j & 1;
+ if (res !== wnd[0]) {
+ res = this.sqr(res);
+ }
+ if (bit === 0 && current === 0) {
+ currentLen = 0;
+ continue;
+ }
+ current <<= 1;
+ current |= bit;
+ currentLen++;
+ if (currentLen !== windowSize && (i !== 0 || j !== 0))
+ continue;
+ res = this.mul(res, wnd[current]);
+ currentLen = 0;
+ current = 0;
+ }
+ start = 26;
+ }
+ return res;
+ };
+ Red.prototype.convertTo = function convertTo(num) {
+ var r = num.umod(this.m);
+ return r === num ? r.clone() : r;
+ };
+ Red.prototype.convertFrom = function convertFrom(num) {
+ var res = num.clone();
+ res.red = null;
+ return res;
+ };
+ BN.mont = function mont(num) {
+ return new Mont(num);
+ };
+ function Mont(m) {
+ Red.call(this, m);
+ this.shift = this.m.bitLength();
+ if (this.shift % 26 !== 0) {
+ this.shift += 26 - this.shift % 26;
+ }
+ this.r = new BN(1).iushln(this.shift);
+ this.r2 = this.imod(this.r.sqr());
+ this.rinv = this.r._invmp(this.m);
+ this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);
+ this.minv = this.minv.umod(this.r);
+ this.minv = this.r.sub(this.minv);
+ }
+ inherits(Mont, Red);
+ Mont.prototype.convertTo = function convertTo(num) {
+ return this.imod(num.ushln(this.shift));
+ };
+ Mont.prototype.convertFrom = function convertFrom(num) {
+ var r = this.imod(num.mul(this.rinv));
+ r.red = null;
+ return r;
+ };
+ Mont.prototype.imul = function imul(a, b) {
+ if (a.isZero() || b.isZero()) {
+ a.words[0] = 0;
+ a.length = 1;
+ return a;
+ }
+ var t = a.imul(b);
+ var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
+ var u = t.isub(c).iushrn(this.shift);
+ var res = u;
+ if (u.cmp(this.m) >= 0) {
+ res = u.isub(this.m);
+ } else if (u.cmpn(0) < 0) {
+ res = u.iadd(this.m);
+ }
+ return res._forceRed(this);
+ };
+ Mont.prototype.mul = function mul(a, b) {
+ if (a.isZero() || b.isZero())
+ return new BN(0)._forceRed(this);
+ var t = a.mul(b);
+ var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
+ var u = t.isub(c).iushrn(this.shift);
+ var res = u;
+ if (u.cmp(this.m) >= 0) {
+ res = u.isub(this.m);
+ } else if (u.cmpn(0) < 0) {
+ res = u.iadd(this.m);
+ }
+ return res._forceRed(this);
+ };
+ Mont.prototype.invm = function invm(a) {
+ var res = this.imod(a._invmp(this.m).mul(this.r2));
+ return res._forceRed(this);
+ };
+ })(typeof module2 === "undefined" || module2, exports2);
+ }
+});
+
+// node_modules/minimalistic-assert/index.js
+var require_minimalistic_assert = __commonJS({
+ "node_modules/minimalistic-assert/index.js"(exports2, module2) {
+ module2.exports = assert;
+ function assert(val, msg) {
+ if (!val)
+ throw new Error(msg || "Assertion failed");
+ }
+ assert.equal = function assertEqual(l, r, msg) {
+ if (l != r)
+ throw new Error(msg || "Assertion failed: " + l + " != " + r);
+ };
+ }
+});
+
+// node_modules/minimalistic-crypto-utils/lib/utils.js
+var require_utils4 = __commonJS({
+ "node_modules/minimalistic-crypto-utils/lib/utils.js"(exports2) {
+ "use strict";
+ var utils = exports2;
+ function toArray(msg, enc) {
+ if (Array.isArray(msg))
+ return msg.slice();
+ if (!msg)
+ return [];
+ var res = [];
+ if (typeof msg !== "string") {
+ for (var i = 0; i < msg.length; i++)
+ res[i] = msg[i] | 0;
+ return res;
+ }
+ if (enc === "hex") {
+ msg = msg.replace(/[^a-z0-9]+/ig, "");
+ if (msg.length % 2 !== 0)
+ msg = "0" + msg;
+ for (var i = 0; i < msg.length; i += 2)
+ res.push(parseInt(msg[i] + msg[i + 1], 16));
+ } else {
+ for (var i = 0; i < msg.length; i++) {
+ var c = msg.charCodeAt(i);
+ var hi = c >> 8;
+ var lo = c & 255;
+ if (hi)
+ res.push(hi, lo);
+ else
+ res.push(lo);
+ }
+ }
+ return res;
+ }
+ utils.toArray = toArray;
+ function zero2(word) {
+ if (word.length === 1)
+ return "0" + word;
+ else
+ return word;
+ }
+ utils.zero2 = zero2;
+ function toHex(msg) {
+ var res = "";
+ for (var i = 0; i < msg.length; i++)
+ res += zero2(msg[i].toString(16));
+ return res;
+ }
+ utils.toHex = toHex;
+ utils.encode = function encode(arr, enc) {
+ if (enc === "hex")
+ return toHex(arr);
+ else
+ return arr;
+ };
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/utils.js
+var require_utils5 = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/utils.js"(exports2) {
+ "use strict";
+ var utils = exports2;
+ var BN = require_bn2();
+ var minAssert = require_minimalistic_assert();
+ var minUtils = require_utils4();
+ utils.assert = minAssert;
+ utils.toArray = minUtils.toArray;
+ utils.zero2 = minUtils.zero2;
+ utils.toHex = minUtils.toHex;
+ utils.encode = minUtils.encode;
+ function getNAF(num, w, bits) {
+ var naf = new Array(Math.max(num.bitLength(), bits) + 1);
+ naf.fill(0);
+ var ws = 1 << w + 1;
+ var k = num.clone();
+ for (var i = 0; i < naf.length; i++) {
+ var z;
+ var mod = k.andln(ws - 1);
+ if (k.isOdd()) {
+ if (mod > (ws >> 1) - 1)
+ z = (ws >> 1) - mod;
+ else
+ z = mod;
+ k.isubn(z);
+ } else {
+ z = 0;
+ }
+ naf[i] = z;
+ k.iushrn(1);
+ }
+ return naf;
+ }
+ utils.getNAF = getNAF;
+ function getJSF(k1, k2) {
+ var jsf = [
+ [],
+ []
+ ];
+ k1 = k1.clone();
+ k2 = k2.clone();
+ var d1 = 0;
+ var d2 = 0;
+ var m8;
+ while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {
+ var m14 = k1.andln(3) + d1 & 3;
+ var m24 = k2.andln(3) + d2 & 3;
+ if (m14 === 3)
+ m14 = -1;
+ if (m24 === 3)
+ m24 = -1;
+ var u1;
+ if ((m14 & 1) === 0) {
+ u1 = 0;
+ } else {
+ m8 = k1.andln(7) + d1 & 7;
+ if ((m8 === 3 || m8 === 5) && m24 === 2)
+ u1 = -m14;
+ else
+ u1 = m14;
+ }
+ jsf[0].push(u1);
+ var u2;
+ if ((m24 & 1) === 0) {
+ u2 = 0;
+ } else {
+ m8 = k2.andln(7) + d2 & 7;
+ if ((m8 === 3 || m8 === 5) && m14 === 2)
+ u2 = -m24;
+ else
+ u2 = m24;
+ }
+ jsf[1].push(u2);
+ if (2 * d1 === u1 + 1)
+ d1 = 1 - d1;
+ if (2 * d2 === u2 + 1)
+ d2 = 1 - d2;
+ k1.iushrn(1);
+ k2.iushrn(1);
+ }
+ return jsf;
+ }
+ utils.getJSF = getJSF;
+ function cachedProperty(obj, name, computer) {
+ var key = "_" + name;
+ obj.prototype[name] = function cachedProperty2() {
+ return this[key] !== void 0 ? this[key] : this[key] = computer.call(this);
+ };
+ }
+ utils.cachedProperty = cachedProperty;
+ function parseBytes(bytes) {
+ return typeof bytes === "string" ? utils.toArray(bytes, "hex") : bytes;
+ }
+ utils.parseBytes = parseBytes;
+ function intFromLE(bytes) {
+ return new BN(bytes, "hex", "le");
+ }
+ utils.intFromLE = intFromLE;
+ }
+});
+
+// node_modules/brorand/index.js
+var require_brorand = __commonJS({
+ "node_modules/brorand/index.js"(exports2, module2) {
+ var r;
+ module2.exports = function rand(len) {
+ if (!r)
+ r = new Rand(null);
+ return r.generate(len);
+ };
+ function Rand(rand) {
+ this.rand = rand;
+ }
+ module2.exports.Rand = Rand;
+ Rand.prototype.generate = function generate(len) {
+ return this._rand(len);
+ };
+ Rand.prototype._rand = function _rand(n) {
+ if (this.rand.getBytes)
+ return this.rand.getBytes(n);
+ var res = new Uint8Array(n);
+ for (var i = 0; i < res.length; i++)
+ res[i] = this.rand.getByte();
+ return res;
+ };
+ if (typeof self === "object") {
+ if (self.crypto && self.crypto.getRandomValues) {
+ Rand.prototype._rand = function _rand(n) {
+ var arr = new Uint8Array(n);
+ self.crypto.getRandomValues(arr);
+ return arr;
+ };
+ } else if (self.msCrypto && self.msCrypto.getRandomValues) {
+ Rand.prototype._rand = function _rand(n) {
+ var arr = new Uint8Array(n);
+ self.msCrypto.getRandomValues(arr);
+ return arr;
+ };
+ } else if (typeof window === "object") {
+ Rand.prototype._rand = function() {
+ throw new Error("Not implemented yet");
+ };
+ }
+ } else {
+ try {
+ crypto2 = require("crypto");
+ if (typeof crypto2.randomBytes !== "function")
+ throw new Error("Not supported");
+ Rand.prototype._rand = function _rand(n) {
+ return crypto2.randomBytes(n);
+ };
+ } catch (e) {
+ }
+ }
+ var crypto2;
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curve/base.js
+var require_base = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curve/base.js"(exports2, module2) {
+ "use strict";
+ var BN = require_bn2();
+ var utils = require_utils5();
+ var getNAF = utils.getNAF;
+ var getJSF = utils.getJSF;
+ var assert = utils.assert;
+ function BaseCurve(type, conf) {
+ this.type = type;
+ this.p = new BN(conf.p, 16);
+ this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
+ this.zero = new BN(0).toRed(this.red);
+ this.one = new BN(1).toRed(this.red);
+ this.two = new BN(2).toRed(this.red);
+ this.n = conf.n && new BN(conf.n, 16);
+ this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
+ this._wnafT1 = new Array(4);
+ this._wnafT2 = new Array(4);
+ this._wnafT3 = new Array(4);
+ this._wnafT4 = new Array(4);
+ this._bitLength = this.n ? this.n.bitLength() : 0;
+ var adjustCount = this.n && this.p.div(this.n);
+ if (!adjustCount || adjustCount.cmpn(100) > 0) {
+ this.redN = null;
+ } else {
+ this._maxwellTrick = true;
+ this.redN = this.n.toRed(this.red);
+ }
+ }
+ module2.exports = BaseCurve;
+ BaseCurve.prototype.point = function point() {
+ throw new Error("Not implemented");
+ };
+ BaseCurve.prototype.validate = function validate() {
+ throw new Error("Not implemented");
+ };
+ BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
+ assert(p.precomputed);
+ var doubles = p._getDoubles();
+ var naf = getNAF(k, 1, this._bitLength);
+ var I = (1 << doubles.step + 1) - (doubles.step % 2 === 0 ? 2 : 1);
+ I /= 3;
+ var repr = [];
+ var j;
+ var nafW;
+ for (j = 0; j < naf.length; j += doubles.step) {
+ nafW = 0;
+ for (var l = j + doubles.step - 1; l >= j; l--)
+ nafW = (nafW << 1) + naf[l];
+ repr.push(nafW);
+ }
+ var a = this.jpoint(null, null, null);
+ var b = this.jpoint(null, null, null);
+ for (var i = I; i > 0; i--) {
+ for (j = 0; j < repr.length; j++) {
+ nafW = repr[j];
+ if (nafW === i)
+ b = b.mixedAdd(doubles.points[j]);
+ else if (nafW === -i)
+ b = b.mixedAdd(doubles.points[j].neg());
+ }
+ a = a.add(b);
+ }
+ return a.toP();
+ };
+ BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
+ var w = 4;
+ var nafPoints = p._getNAFPoints(w);
+ w = nafPoints.wnd;
+ var wnd = nafPoints.points;
+ var naf = getNAF(k, w, this._bitLength);
+ var acc = this.jpoint(null, null, null);
+ for (var i = naf.length - 1; i >= 0; i--) {
+ for (var l = 0; i >= 0 && naf[i] === 0; i--)
+ l++;
+ if (i >= 0)
+ l++;
+ acc = acc.dblp(l);
+ if (i < 0)
+ break;
+ var z = naf[i];
+ assert(z !== 0);
+ if (p.type === "affine") {
+ if (z > 0)
+ acc = acc.mixedAdd(wnd[z - 1 >> 1]);
+ else
+ acc = acc.mixedAdd(wnd[-z - 1 >> 1].neg());
+ } else {
+ if (z > 0)
+ acc = acc.add(wnd[z - 1 >> 1]);
+ else
+ acc = acc.add(wnd[-z - 1 >> 1].neg());
+ }
+ }
+ return p.type === "affine" ? acc.toP() : acc;
+ };
+ BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW, points, coeffs, len, jacobianResult) {
+ var wndWidth = this._wnafT1;
+ var wnd = this._wnafT2;
+ var naf = this._wnafT3;
+ var max = 0;
+ var i;
+ var j;
+ var p;
+ for (i = 0; i < len; i++) {
+ p = points[i];
+ var nafPoints = p._getNAFPoints(defW);
+ wndWidth[i] = nafPoints.wnd;
+ wnd[i] = nafPoints.points;
+ }
+ for (i = len - 1; i >= 1; i -= 2) {
+ var a = i - 1;
+ var b = i;
+ if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {
+ naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);
+ naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);
+ max = Math.max(naf[a].length, max);
+ max = Math.max(naf[b].length, max);
+ continue;
+ }
+ var comb = [
+ points[a],
+ /* 1 */
+ null,
+ /* 3 */
+ null,
+ /* 5 */
+ points[b]
+ /* 7 */
+ ];
+ if (points[a].y.cmp(points[b].y) === 0) {
+ comb[1] = points[a].add(points[b]);
+ comb[2] = points[a].toJ().mixedAdd(points[b].neg());
+ } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {
+ comb[1] = points[a].toJ().mixedAdd(points[b]);
+ comb[2] = points[a].add(points[b].neg());
+ } else {
+ comb[1] = points[a].toJ().mixedAdd(points[b]);
+ comb[2] = points[a].toJ().mixedAdd(points[b].neg());
+ }
+ var index = [
+ -3,
+ /* -1 -1 */
+ -1,
+ /* -1 0 */
+ -5,
+ /* -1 1 */
+ -7,
+ /* 0 -1 */
+ 0,
+ /* 0 0 */
+ 7,
+ /* 0 1 */
+ 5,
+ /* 1 -1 */
+ 1,
+ /* 1 0 */
+ 3
+ /* 1 1 */
+ ];
+ var jsf = getJSF(coeffs[a], coeffs[b]);
+ max = Math.max(jsf[0].length, max);
+ naf[a] = new Array(max);
+ naf[b] = new Array(max);
+ for (j = 0; j < max; j++) {
+ var ja = jsf[0][j] | 0;
+ var jb = jsf[1][j] | 0;
+ naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];
+ naf[b][j] = 0;
+ wnd[a] = comb;
+ }
+ }
+ var acc = this.jpoint(null, null, null);
+ var tmp = this._wnafT4;
+ for (i = max; i >= 0; i--) {
+ var k = 0;
+ while (i >= 0) {
+ var zero = true;
+ for (j = 0; j < len; j++) {
+ tmp[j] = naf[j][i] | 0;
+ if (tmp[j] !== 0)
+ zero = false;
+ }
+ if (!zero)
+ break;
+ k++;
+ i--;
+ }
+ if (i >= 0)
+ k++;
+ acc = acc.dblp(k);
+ if (i < 0)
+ break;
+ for (j = 0; j < len; j++) {
+ var z = tmp[j];
+ p;
+ if (z === 0)
+ continue;
+ else if (z > 0)
+ p = wnd[j][z - 1 >> 1];
+ else if (z < 0)
+ p = wnd[j][-z - 1 >> 1].neg();
+ if (p.type === "affine")
+ acc = acc.mixedAdd(p);
+ else
+ acc = acc.add(p);
+ }
+ }
+ for (i = 0; i < len; i++)
+ wnd[i] = null;
+ if (jacobianResult)
+ return acc;
+ else
+ return acc.toP();
+ };
+ function BasePoint(curve, type) {
+ this.curve = curve;
+ this.type = type;
+ this.precomputed = null;
+ }
+ BaseCurve.BasePoint = BasePoint;
+ BasePoint.prototype.eq = function eq() {
+ throw new Error("Not implemented");
+ };
+ BasePoint.prototype.validate = function validate() {
+ return this.curve.validate(this);
+ };
+ BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
+ bytes = utils.toArray(bytes, enc);
+ var len = this.p.byteLength();
+ if ((bytes[0] === 4 || bytes[0] === 6 || bytes[0] === 7) && bytes.length - 1 === 2 * len) {
+ if (bytes[0] === 6)
+ assert(bytes[bytes.length - 1] % 2 === 0);
+ else if (bytes[0] === 7)
+ assert(bytes[bytes.length - 1] % 2 === 1);
+ var res = this.point(
+ bytes.slice(1, 1 + len),
+ bytes.slice(1 + len, 1 + 2 * len)
+ );
+ return res;
+ } else if ((bytes[0] === 2 || bytes[0] === 3) && bytes.length - 1 === len) {
+ return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 3);
+ }
+ throw new Error("Unknown point format");
+ };
+ BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
+ return this.encode(enc, true);
+ };
+ BasePoint.prototype._encode = function _encode(compact) {
+ var len = this.curve.p.byteLength();
+ var x = this.getX().toArray("be", len);
+ if (compact)
+ return [this.getY().isEven() ? 2 : 3].concat(x);
+ return [4].concat(x, this.getY().toArray("be", len));
+ };
+ BasePoint.prototype.encode = function encode(enc, compact) {
+ return utils.encode(this._encode(compact), enc);
+ };
+ BasePoint.prototype.precompute = function precompute(power) {
+ if (this.precomputed)
+ return this;
+ var precomputed = {
+ doubles: null,
+ naf: null,
+ beta: null
+ };
+ precomputed.naf = this._getNAFPoints(8);
+ precomputed.doubles = this._getDoubles(4, power);
+ precomputed.beta = this._getBeta();
+ this.precomputed = precomputed;
+ return this;
+ };
+ BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
+ if (!this.precomputed)
+ return false;
+ var doubles = this.precomputed.doubles;
+ if (!doubles)
+ return false;
+ return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);
+ };
+ BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
+ if (this.precomputed && this.precomputed.doubles)
+ return this.precomputed.doubles;
+ var doubles = [this];
+ var acc = this;
+ for (var i = 0; i < power; i += step) {
+ for (var j = 0; j < step; j++)
+ acc = acc.dbl();
+ doubles.push(acc);
+ }
+ return {
+ step,
+ points: doubles
+ };
+ };
+ BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
+ if (this.precomputed && this.precomputed.naf)
+ return this.precomputed.naf;
+ var res = [this];
+ var max = (1 << wnd) - 1;
+ var dbl = max === 1 ? null : this.dbl();
+ for (var i = 1; i < max; i++)
+ res[i] = res[i - 1].add(dbl);
+ return {
+ wnd,
+ points: res
+ };
+ };
+ BasePoint.prototype._getBeta = function _getBeta() {
+ return null;
+ };
+ BasePoint.prototype.dblp = function dblp(k) {
+ var r = this;
+ for (var i = 0; i < k; i++)
+ r = r.dbl();
+ return r;
+ };
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curve/short.js
+var require_short = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curve/short.js"(exports2, module2) {
+ "use strict";
+ var utils = require_utils5();
+ var BN = require_bn2();
+ var inherits = require_inherits();
+ var Base = require_base();
+ var assert = utils.assert;
+ function ShortCurve(conf) {
+ Base.call(this, "short", conf);
+ this.a = new BN(conf.a, 16).toRed(this.red);
+ this.b = new BN(conf.b, 16).toRed(this.red);
+ this.tinv = this.two.redInvm();
+ this.zeroA = this.a.fromRed().cmpn(0) === 0;
+ this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;
+ this.endo = this._getEndomorphism(conf);
+ this._endoWnafT1 = new Array(4);
+ this._endoWnafT2 = new Array(4);
+ }
+ inherits(ShortCurve, Base);
+ module2.exports = ShortCurve;
+ ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
+ if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)
+ return;
+ var beta;
+ var lambda;
+ if (conf.beta) {
+ beta = new BN(conf.beta, 16).toRed(this.red);
+ } else {
+ var betas = this._getEndoRoots(this.p);
+ beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];
+ beta = beta.toRed(this.red);
+ }
+ if (conf.lambda) {
+ lambda = new BN(conf.lambda, 16);
+ } else {
+ var lambdas = this._getEndoRoots(this.n);
+ if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {
+ lambda = lambdas[0];
+ } else {
+ lambda = lambdas[1];
+ assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);
+ }
+ }
+ var basis;
+ if (conf.basis) {
+ basis = conf.basis.map(function(vec) {
+ return {
+ a: new BN(vec.a, 16),
+ b: new BN(vec.b, 16)
+ };
+ });
+ } else {
+ basis = this._getEndoBasis(lambda);
+ }
+ return {
+ beta,
+ lambda,
+ basis
+ };
+ };
+ ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
+ var red = num === this.p ? this.red : BN.mont(num);
+ var tinv = new BN(2).toRed(red).redInvm();
+ var ntinv = tinv.redNeg();
+ var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);
+ var l1 = ntinv.redAdd(s).fromRed();
+ var l2 = ntinv.redSub(s).fromRed();
+ return [l1, l2];
+ };
+ ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
+ var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));
+ var u = lambda;
+ var v = this.n.clone();
+ var x1 = new BN(1);
+ var y1 = new BN(0);
+ var x2 = new BN(0);
+ var y2 = new BN(1);
+ var a0;
+ var b0;
+ var a1;
+ var b1;
+ var a2;
+ var b2;
+ var prevR;
+ var i = 0;
+ var r;
+ var x;
+ while (u.cmpn(0) !== 0) {
+ var q = v.div(u);
+ r = v.sub(q.mul(u));
+ x = x2.sub(q.mul(x1));
+ var y = y2.sub(q.mul(y1));
+ if (!a1 && r.cmp(aprxSqrt) < 0) {
+ a0 = prevR.neg();
+ b0 = x1;
+ a1 = r.neg();
+ b1 = x;
+ } else if (a1 && ++i === 2) {
+ break;
+ }
+ prevR = r;
+ v = u;
+ u = r;
+ x2 = x1;
+ x1 = x;
+ y2 = y1;
+ y1 = y;
+ }
+ a2 = r.neg();
+ b2 = x;
+ var len1 = a1.sqr().add(b1.sqr());
+ var len2 = a2.sqr().add(b2.sqr());
+ if (len2.cmp(len1) >= 0) {
+ a2 = a0;
+ b2 = b0;
+ }
+ if (a1.negative) {
+ a1 = a1.neg();
+ b1 = b1.neg();
+ }
+ if (a2.negative) {
+ a2 = a2.neg();
+ b2 = b2.neg();
+ }
+ return [
+ { a: a1, b: b1 },
+ { a: a2, b: b2 }
+ ];
+ };
+ ShortCurve.prototype._endoSplit = function _endoSplit(k) {
+ var basis = this.endo.basis;
+ var v1 = basis[0];
+ var v2 = basis[1];
+ var c1 = v2.b.mul(k).divRound(this.n);
+ var c2 = v1.b.neg().mul(k).divRound(this.n);
+ var p1 = c1.mul(v1.a);
+ var p2 = c2.mul(v2.a);
+ var q1 = c1.mul(v1.b);
+ var q2 = c2.mul(v2.b);
+ var k1 = k.sub(p1).sub(p2);
+ var k2 = q1.add(q2).neg();
+ return { k1, k2 };
+ };
+ ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
+ x = new BN(x, 16);
+ if (!x.red)
+ x = x.toRed(this.red);
+ var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
+ var y = y2.redSqrt();
+ if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)
+ throw new Error("invalid point");
+ var isOdd = y.fromRed().isOdd();
+ if (odd && !isOdd || !odd && isOdd)
+ y = y.redNeg();
+ return this.point(x, y);
+ };
+ ShortCurve.prototype.validate = function validate(point) {
+ if (point.inf)
+ return true;
+ var x = point.x;
+ var y = point.y;
+ var ax = this.a.redMul(x);
+ var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
+ return y.redSqr().redISub(rhs).cmpn(0) === 0;
+ };
+ ShortCurve.prototype._endoWnafMulAdd = function _endoWnafMulAdd(points, coeffs, jacobianResult) {
+ var npoints = this._endoWnafT1;
+ var ncoeffs = this._endoWnafT2;
+ for (var i = 0; i < points.length; i++) {
+ var split = this._endoSplit(coeffs[i]);
+ var p = points[i];
+ var beta = p._getBeta();
+ if (split.k1.negative) {
+ split.k1.ineg();
+ p = p.neg(true);
+ }
+ if (split.k2.negative) {
+ split.k2.ineg();
+ beta = beta.neg(true);
+ }
+ npoints[i * 2] = p;
+ npoints[i * 2 + 1] = beta;
+ ncoeffs[i * 2] = split.k1;
+ ncoeffs[i * 2 + 1] = split.k2;
+ }
+ var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);
+ for (var j = 0; j < i * 2; j++) {
+ npoints[j] = null;
+ ncoeffs[j] = null;
+ }
+ return res;
+ };
+ function Point(curve, x, y, isRed) {
+ Base.BasePoint.call(this, curve, "affine");
+ if (x === null && y === null) {
+ this.x = null;
+ this.y = null;
+ this.inf = true;
+ } else {
+ this.x = new BN(x, 16);
+ this.y = new BN(y, 16);
+ if (isRed) {
+ this.x.forceRed(this.curve.red);
+ this.y.forceRed(this.curve.red);
+ }
+ if (!this.x.red)
+ this.x = this.x.toRed(this.curve.red);
+ if (!this.y.red)
+ this.y = this.y.toRed(this.curve.red);
+ this.inf = false;
+ }
+ }
+ inherits(Point, Base.BasePoint);
+ ShortCurve.prototype.point = function point(x, y, isRed) {
+ return new Point(this, x, y, isRed);
+ };
+ ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
+ return Point.fromJSON(this, obj, red);
+ };
+ Point.prototype._getBeta = function _getBeta() {
+ if (!this.curve.endo)
+ return;
+ var pre = this.precomputed;
+ if (pre && pre.beta)
+ return pre.beta;
+ var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
+ if (pre) {
+ var curve = this.curve;
+ var endoMul = function(p) {
+ return curve.point(p.x.redMul(curve.endo.beta), p.y);
+ };
+ pre.beta = beta;
+ beta.precomputed = {
+ beta: null,
+ naf: pre.naf && {
+ wnd: pre.naf.wnd,
+ points: pre.naf.points.map(endoMul)
+ },
+ doubles: pre.doubles && {
+ step: pre.doubles.step,
+ points: pre.doubles.points.map(endoMul)
+ }
+ };
+ }
+ return beta;
+ };
+ Point.prototype.toJSON = function toJSON() {
+ if (!this.precomputed)
+ return [this.x, this.y];
+ return [this.x, this.y, this.precomputed && {
+ doubles: this.precomputed.doubles && {
+ step: this.precomputed.doubles.step,
+ points: this.precomputed.doubles.points.slice(1)
+ },
+ naf: this.precomputed.naf && {
+ wnd: this.precomputed.naf.wnd,
+ points: this.precomputed.naf.points.slice(1)
+ }
+ }];
+ };
+ Point.fromJSON = function fromJSON(curve, obj, red) {
+ if (typeof obj === "string")
+ obj = JSON.parse(obj);
+ var res = curve.point(obj[0], obj[1], red);
+ if (!obj[2])
+ return res;
+ function obj2point(obj2) {
+ return curve.point(obj2[0], obj2[1], red);
+ }
+ var pre = obj[2];
+ res.precomputed = {
+ beta: null,
+ doubles: pre.doubles && {
+ step: pre.doubles.step,
+ points: [res].concat(pre.doubles.points.map(obj2point))
+ },
+ naf: pre.naf && {
+ wnd: pre.naf.wnd,
+ points: [res].concat(pre.naf.points.map(obj2point))
+ }
+ };
+ return res;
+ };
+ Point.prototype.inspect = function inspect() {
+ if (this.isInfinity())
+ return "";
+ return "";
+ };
+ Point.prototype.isInfinity = function isInfinity() {
+ return this.inf;
+ };
+ Point.prototype.add = function add(p) {
+ if (this.inf)
+ return p;
+ if (p.inf)
+ return this;
+ if (this.eq(p))
+ return this.dbl();
+ if (this.neg().eq(p))
+ return this.curve.point(null, null);
+ if (this.x.cmp(p.x) === 0)
+ return this.curve.point(null, null);
+ var c = this.y.redSub(p.y);
+ if (c.cmpn(0) !== 0)
+ c = c.redMul(this.x.redSub(p.x).redInvm());
+ var nx = c.redSqr().redISub(this.x).redISub(p.x);
+ var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
+ return this.curve.point(nx, ny);
+ };
+ Point.prototype.dbl = function dbl() {
+ if (this.inf)
+ return this;
+ var ys1 = this.y.redAdd(this.y);
+ if (ys1.cmpn(0) === 0)
+ return this.curve.point(null, null);
+ var a = this.curve.a;
+ var x2 = this.x.redSqr();
+ var dyinv = ys1.redInvm();
+ var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
+ var nx = c.redSqr().redISub(this.x.redAdd(this.x));
+ var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
+ return this.curve.point(nx, ny);
+ };
+ Point.prototype.getX = function getX() {
+ return this.x.fromRed();
+ };
+ Point.prototype.getY = function getY() {
+ return this.y.fromRed();
+ };
+ Point.prototype.mul = function mul(k) {
+ k = new BN(k, 16);
+ if (this.isInfinity())
+ return this;
+ else if (this._hasDoubles(k))
+ return this.curve._fixedNafMul(this, k);
+ else if (this.curve.endo)
+ return this.curve._endoWnafMulAdd([this], [k]);
+ else
+ return this.curve._wnafMul(this, k);
+ };
+ Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
+ var points = [this, p2];
+ var coeffs = [k1, k2];
+ if (this.curve.endo)
+ return this.curve._endoWnafMulAdd(points, coeffs);
+ else
+ return this.curve._wnafMulAdd(1, points, coeffs, 2);
+ };
+ Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
+ var points = [this, p2];
+ var coeffs = [k1, k2];
+ if (this.curve.endo)
+ return this.curve._endoWnafMulAdd(points, coeffs, true);
+ else
+ return this.curve._wnafMulAdd(1, points, coeffs, 2, true);
+ };
+ Point.prototype.eq = function eq(p) {
+ return this === p || this.inf === p.inf && (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);
+ };
+ Point.prototype.neg = function neg(_precompute) {
+ if (this.inf)
+ return this;
+ var res = this.curve.point(this.x, this.y.redNeg());
+ if (_precompute && this.precomputed) {
+ var pre = this.precomputed;
+ var negate = function(p) {
+ return p.neg();
+ };
+ res.precomputed = {
+ naf: pre.naf && {
+ wnd: pre.naf.wnd,
+ points: pre.naf.points.map(negate)
+ },
+ doubles: pre.doubles && {
+ step: pre.doubles.step,
+ points: pre.doubles.points.map(negate)
+ }
+ };
+ }
+ return res;
+ };
+ Point.prototype.toJ = function toJ() {
+ if (this.inf)
+ return this.curve.jpoint(null, null, null);
+ var res = this.curve.jpoint(this.x, this.y, this.curve.one);
+ return res;
+ };
+ function JPoint(curve, x, y, z) {
+ Base.BasePoint.call(this, curve, "jacobian");
+ if (x === null && y === null && z === null) {
+ this.x = this.curve.one;
+ this.y = this.curve.one;
+ this.z = new BN(0);
+ } else {
+ this.x = new BN(x, 16);
+ this.y = new BN(y, 16);
+ this.z = new BN(z, 16);
+ }
+ if (!this.x.red)
+ this.x = this.x.toRed(this.curve.red);
+ if (!this.y.red)
+ this.y = this.y.toRed(this.curve.red);
+ if (!this.z.red)
+ this.z = this.z.toRed(this.curve.red);
+ this.zOne = this.z === this.curve.one;
+ }
+ inherits(JPoint, Base.BasePoint);
+ ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
+ return new JPoint(this, x, y, z);
+ };
+ JPoint.prototype.toP = function toP() {
+ if (this.isInfinity())
+ return this.curve.point(null, null);
+ var zinv = this.z.redInvm();
+ var zinv2 = zinv.redSqr();
+ var ax = this.x.redMul(zinv2);
+ var ay = this.y.redMul(zinv2).redMul(zinv);
+ return this.curve.point(ax, ay);
+ };
+ JPoint.prototype.neg = function neg() {
+ return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
+ };
+ JPoint.prototype.add = function add(p) {
+ if (this.isInfinity())
+ return p;
+ if (p.isInfinity())
+ return this;
+ var pz2 = p.z.redSqr();
+ var z2 = this.z.redSqr();
+ var u1 = this.x.redMul(pz2);
+ var u2 = p.x.redMul(z2);
+ var s1 = this.y.redMul(pz2.redMul(p.z));
+ var s2 = p.y.redMul(z2.redMul(this.z));
+ var h = u1.redSub(u2);
+ var r = s1.redSub(s2);
+ if (h.cmpn(0) === 0) {
+ if (r.cmpn(0) !== 0)
+ return this.curve.jpoint(null, null, null);
+ else
+ return this.dbl();
+ }
+ var h2 = h.redSqr();
+ var h3 = h2.redMul(h);
+ var v = u1.redMul(h2);
+ var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
+ var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
+ var nz = this.z.redMul(p.z).redMul(h);
+ return this.curve.jpoint(nx, ny, nz);
+ };
+ JPoint.prototype.mixedAdd = function mixedAdd(p) {
+ if (this.isInfinity())
+ return p.toJ();
+ if (p.isInfinity())
+ return this;
+ var z2 = this.z.redSqr();
+ var u1 = this.x;
+ var u2 = p.x.redMul(z2);
+ var s1 = this.y;
+ var s2 = p.y.redMul(z2).redMul(this.z);
+ var h = u1.redSub(u2);
+ var r = s1.redSub(s2);
+ if (h.cmpn(0) === 0) {
+ if (r.cmpn(0) !== 0)
+ return this.curve.jpoint(null, null, null);
+ else
+ return this.dbl();
+ }
+ var h2 = h.redSqr();
+ var h3 = h2.redMul(h);
+ var v = u1.redMul(h2);
+ var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
+ var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
+ var nz = this.z.redMul(h);
+ return this.curve.jpoint(nx, ny, nz);
+ };
+ JPoint.prototype.dblp = function dblp(pow) {
+ if (pow === 0)
+ return this;
+ if (this.isInfinity())
+ return this;
+ if (!pow)
+ return this.dbl();
+ var i;
+ if (this.curve.zeroA || this.curve.threeA) {
+ var r = this;
+ for (i = 0; i < pow; i++)
+ r = r.dbl();
+ return r;
+ }
+ var a = this.curve.a;
+ var tinv = this.curve.tinv;
+ var jx = this.x;
+ var jy = this.y;
+ var jz = this.z;
+ var jz4 = jz.redSqr().redSqr();
+ var jyd = jy.redAdd(jy);
+ for (i = 0; i < pow; i++) {
+ var jx2 = jx.redSqr();
+ var jyd2 = jyd.redSqr();
+ var jyd4 = jyd2.redSqr();
+ var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
+ var t1 = jx.redMul(jyd2);
+ var nx = c.redSqr().redISub(t1.redAdd(t1));
+ var t2 = t1.redISub(nx);
+ var dny = c.redMul(t2);
+ dny = dny.redIAdd(dny).redISub(jyd4);
+ var nz = jyd.redMul(jz);
+ if (i + 1 < pow)
+ jz4 = jz4.redMul(jyd4);
+ jx = nx;
+ jz = nz;
+ jyd = dny;
+ }
+ return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
+ };
+ JPoint.prototype.dbl = function dbl() {
+ if (this.isInfinity())
+ return this;
+ if (this.curve.zeroA)
+ return this._zeroDbl();
+ else if (this.curve.threeA)
+ return this._threeDbl();
+ else
+ return this._dbl();
+ };
+ JPoint.prototype._zeroDbl = function _zeroDbl() {
+ var nx;
+ var ny;
+ var nz;
+ if (this.zOne) {
+ var xx = this.x.redSqr();
+ var yy = this.y.redSqr();
+ var yyyy = yy.redSqr();
+ var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
+ s = s.redIAdd(s);
+ var m = xx.redAdd(xx).redIAdd(xx);
+ var t = m.redSqr().redISub(s).redISub(s);
+ var yyyy8 = yyyy.redIAdd(yyyy);
+ yyyy8 = yyyy8.redIAdd(yyyy8);
+ yyyy8 = yyyy8.redIAdd(yyyy8);
+ nx = t;
+ ny = m.redMul(s.redISub(t)).redISub(yyyy8);
+ nz = this.y.redAdd(this.y);
+ } else {
+ var a = this.x.redSqr();
+ var b = this.y.redSqr();
+ var c = b.redSqr();
+ var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
+ d = d.redIAdd(d);
+ var e = a.redAdd(a).redIAdd(a);
+ var f = e.redSqr();
+ var c8 = c.redIAdd(c);
+ c8 = c8.redIAdd(c8);
+ c8 = c8.redIAdd(c8);
+ nx = f.redISub(d).redISub(d);
+ ny = e.redMul(d.redISub(nx)).redISub(c8);
+ nz = this.y.redMul(this.z);
+ nz = nz.redIAdd(nz);
+ }
+ return this.curve.jpoint(nx, ny, nz);
+ };
+ JPoint.prototype._threeDbl = function _threeDbl() {
+ var nx;
+ var ny;
+ var nz;
+ if (this.zOne) {
+ var xx = this.x.redSqr();
+ var yy = this.y.redSqr();
+ var yyyy = yy.redSqr();
+ var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
+ s = s.redIAdd(s);
+ var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
+ var t = m.redSqr().redISub(s).redISub(s);
+ nx = t;
+ var yyyy8 = yyyy.redIAdd(yyyy);
+ yyyy8 = yyyy8.redIAdd(yyyy8);
+ yyyy8 = yyyy8.redIAdd(yyyy8);
+ ny = m.redMul(s.redISub(t)).redISub(yyyy8);
+ nz = this.y.redAdd(this.y);
+ } else {
+ var delta = this.z.redSqr();
+ var gamma = this.y.redSqr();
+ var beta = this.x.redMul(gamma);
+ var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
+ alpha = alpha.redAdd(alpha).redIAdd(alpha);
+ var beta4 = beta.redIAdd(beta);
+ beta4 = beta4.redIAdd(beta4);
+ var beta8 = beta4.redAdd(beta4);
+ nx = alpha.redSqr().redISub(beta8);
+ nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
+ var ggamma8 = gamma.redSqr();
+ ggamma8 = ggamma8.redIAdd(ggamma8);
+ ggamma8 = ggamma8.redIAdd(ggamma8);
+ ggamma8 = ggamma8.redIAdd(ggamma8);
+ ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
+ }
+ return this.curve.jpoint(nx, ny, nz);
+ };
+ JPoint.prototype._dbl = function _dbl() {
+ var a = this.curve.a;
+ var jx = this.x;
+ var jy = this.y;
+ var jz = this.z;
+ var jz4 = jz.redSqr().redSqr();
+ var jx2 = jx.redSqr();
+ var jy2 = jy.redSqr();
+ var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
+ var jxd4 = jx.redAdd(jx);
+ jxd4 = jxd4.redIAdd(jxd4);
+ var t1 = jxd4.redMul(jy2);
+ var nx = c.redSqr().redISub(t1.redAdd(t1));
+ var t2 = t1.redISub(nx);
+ var jyd8 = jy2.redSqr();
+ jyd8 = jyd8.redIAdd(jyd8);
+ jyd8 = jyd8.redIAdd(jyd8);
+ jyd8 = jyd8.redIAdd(jyd8);
+ var ny = c.redMul(t2).redISub(jyd8);
+ var nz = jy.redAdd(jy).redMul(jz);
+ return this.curve.jpoint(nx, ny, nz);
+ };
+ JPoint.prototype.trpl = function trpl() {
+ if (!this.curve.zeroA)
+ return this.dbl().add(this);
+ var xx = this.x.redSqr();
+ var yy = this.y.redSqr();
+ var zz = this.z.redSqr();
+ var yyyy = yy.redSqr();
+ var m = xx.redAdd(xx).redIAdd(xx);
+ var mm = m.redSqr();
+ var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
+ e = e.redIAdd(e);
+ e = e.redAdd(e).redIAdd(e);
+ e = e.redISub(mm);
+ var ee = e.redSqr();
+ var t = yyyy.redIAdd(yyyy);
+ t = t.redIAdd(t);
+ t = t.redIAdd(t);
+ t = t.redIAdd(t);
+ var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
+ var yyu4 = yy.redMul(u);
+ yyu4 = yyu4.redIAdd(yyu4);
+ yyu4 = yyu4.redIAdd(yyu4);
+ var nx = this.x.redMul(ee).redISub(yyu4);
+ nx = nx.redIAdd(nx);
+ nx = nx.redIAdd(nx);
+ var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
+ ny = ny.redIAdd(ny);
+ ny = ny.redIAdd(ny);
+ ny = ny.redIAdd(ny);
+ var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
+ return this.curve.jpoint(nx, ny, nz);
+ };
+ JPoint.prototype.mul = function mul(k, kbase) {
+ k = new BN(k, kbase);
+ return this.curve._wnafMul(this, k);
+ };
+ JPoint.prototype.eq = function eq(p) {
+ if (p.type === "affine")
+ return this.eq(p.toJ());
+ if (this === p)
+ return true;
+ var z2 = this.z.redSqr();
+ var pz2 = p.z.redSqr();
+ if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)
+ return false;
+ var z3 = z2.redMul(this.z);
+ var pz3 = pz2.redMul(p.z);
+ return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;
+ };
+ JPoint.prototype.eqXToP = function eqXToP(x) {
+ var zs = this.z.redSqr();
+ var rx = x.toRed(this.curve.red).redMul(zs);
+ if (this.x.cmp(rx) === 0)
+ return true;
+ var xc = x.clone();
+ var t = this.curve.redN.redMul(zs);
+ for (; ; ) {
+ xc.iadd(this.curve.n);
+ if (xc.cmp(this.curve.p) >= 0)
+ return false;
+ rx.redIAdd(t);
+ if (this.x.cmp(rx) === 0)
+ return true;
+ }
+ };
+ JPoint.prototype.inspect = function inspect() {
+ if (this.isInfinity())
+ return "";
+ return "";
+ };
+ JPoint.prototype.isInfinity = function isInfinity() {
+ return this.z.cmpn(0) === 0;
+ };
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curve/mont.js
+var require_mont = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curve/mont.js"(exports2, module2) {
+ "use strict";
+ var BN = require_bn2();
+ var inherits = require_inherits();
+ var Base = require_base();
+ var utils = require_utils5();
+ function MontCurve(conf) {
+ Base.call(this, "mont", conf);
+ this.a = new BN(conf.a, 16).toRed(this.red);
+ this.b = new BN(conf.b, 16).toRed(this.red);
+ this.i4 = new BN(4).toRed(this.red).redInvm();
+ this.two = new BN(2).toRed(this.red);
+ this.a24 = this.i4.redMul(this.a.redAdd(this.two));
+ }
+ inherits(MontCurve, Base);
+ module2.exports = MontCurve;
+ MontCurve.prototype.validate = function validate(point) {
+ var x = point.normalize().x;
+ var x2 = x.redSqr();
+ var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
+ var y = rhs.redSqrt();
+ return y.redSqr().cmp(rhs) === 0;
+ };
+ function Point(curve, x, z) {
+ Base.BasePoint.call(this, curve, "projective");
+ if (x === null && z === null) {
+ this.x = this.curve.one;
+ this.z = this.curve.zero;
+ } else {
+ this.x = new BN(x, 16);
+ this.z = new BN(z, 16);
+ if (!this.x.red)
+ this.x = this.x.toRed(this.curve.red);
+ if (!this.z.red)
+ this.z = this.z.toRed(this.curve.red);
+ }
+ }
+ inherits(Point, Base.BasePoint);
+ MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
+ return this.point(utils.toArray(bytes, enc), 1);
+ };
+ MontCurve.prototype.point = function point(x, z) {
+ return new Point(this, x, z);
+ };
+ MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
+ return Point.fromJSON(this, obj);
+ };
+ Point.prototype.precompute = function precompute() {
+ };
+ Point.prototype._encode = function _encode() {
+ return this.getX().toArray("be", this.curve.p.byteLength());
+ };
+ Point.fromJSON = function fromJSON(curve, obj) {
+ return new Point(curve, obj[0], obj[1] || curve.one);
+ };
+ Point.prototype.inspect = function inspect() {
+ if (this.isInfinity())
+ return "";
+ return "";
+ };
+ Point.prototype.isInfinity = function isInfinity() {
+ return this.z.cmpn(0) === 0;
+ };
+ Point.prototype.dbl = function dbl() {
+ var a = this.x.redAdd(this.z);
+ var aa = a.redSqr();
+ var b = this.x.redSub(this.z);
+ var bb = b.redSqr();
+ var c = aa.redSub(bb);
+ var nx = aa.redMul(bb);
+ var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
+ return this.curve.point(nx, nz);
+ };
+ Point.prototype.add = function add() {
+ throw new Error("Not supported on Montgomery curve");
+ };
+ Point.prototype.diffAdd = function diffAdd(p, diff) {
+ var a = this.x.redAdd(this.z);
+ var b = this.x.redSub(this.z);
+ var c = p.x.redAdd(p.z);
+ var d = p.x.redSub(p.z);
+ var da = d.redMul(a);
+ var cb = c.redMul(b);
+ var nx = diff.z.redMul(da.redAdd(cb).redSqr());
+ var nz = diff.x.redMul(da.redISub(cb).redSqr());
+ return this.curve.point(nx, nz);
+ };
+ Point.prototype.mul = function mul(k) {
+ var t = k.clone();
+ var a = this;
+ var b = this.curve.point(null, null);
+ var c = this;
+ for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))
+ bits.push(t.andln(1));
+ for (var i = bits.length - 1; i >= 0; i--) {
+ if (bits[i] === 0) {
+ a = a.diffAdd(b, c);
+ b = b.dbl();
+ } else {
+ b = a.diffAdd(b, c);
+ a = a.dbl();
+ }
+ }
+ return b;
+ };
+ Point.prototype.mulAdd = function mulAdd() {
+ throw new Error("Not supported on Montgomery curve");
+ };
+ Point.prototype.jumlAdd = function jumlAdd() {
+ throw new Error("Not supported on Montgomery curve");
+ };
+ Point.prototype.eq = function eq(other) {
+ return this.getX().cmp(other.getX()) === 0;
+ };
+ Point.prototype.normalize = function normalize() {
+ this.x = this.x.redMul(this.z.redInvm());
+ this.z = this.curve.one;
+ return this;
+ };
+ Point.prototype.getX = function getX() {
+ this.normalize();
+ return this.x.fromRed();
+ };
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curve/edwards.js
+var require_edwards = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curve/edwards.js"(exports2, module2) {
+ "use strict";
+ var utils = require_utils5();
+ var BN = require_bn2();
+ var inherits = require_inherits();
+ var Base = require_base();
+ var assert = utils.assert;
+ function EdwardsCurve(conf) {
+ this.twisted = (conf.a | 0) !== 1;
+ this.mOneA = this.twisted && (conf.a | 0) === -1;
+ this.extended = this.mOneA;
+ Base.call(this, "edwards", conf);
+ this.a = new BN(conf.a, 16).umod(this.red.m);
+ this.a = this.a.toRed(this.red);
+ this.c = new BN(conf.c, 16).toRed(this.red);
+ this.c2 = this.c.redSqr();
+ this.d = new BN(conf.d, 16).toRed(this.red);
+ this.dd = this.d.redAdd(this.d);
+ assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);
+ this.oneC = (conf.c | 0) === 1;
+ }
+ inherits(EdwardsCurve, Base);
+ module2.exports = EdwardsCurve;
+ EdwardsCurve.prototype._mulA = function _mulA(num) {
+ if (this.mOneA)
+ return num.redNeg();
+ else
+ return this.a.redMul(num);
+ };
+ EdwardsCurve.prototype._mulC = function _mulC(num) {
+ if (this.oneC)
+ return num;
+ else
+ return this.c.redMul(num);
+ };
+ EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
+ return this.point(x, y, z, t);
+ };
+ EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
+ x = new BN(x, 16);
+ if (!x.red)
+ x = x.toRed(this.red);
+ var x2 = x.redSqr();
+ var rhs = this.c2.redSub(this.a.redMul(x2));
+ var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
+ var y2 = rhs.redMul(lhs.redInvm());
+ var y = y2.redSqrt();
+ if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)
+ throw new Error("invalid point");
+ var isOdd = y.fromRed().isOdd();
+ if (odd && !isOdd || !odd && isOdd)
+ y = y.redNeg();
+ return this.point(x, y);
+ };
+ EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
+ y = new BN(y, 16);
+ if (!y.red)
+ y = y.toRed(this.red);
+ var y2 = y.redSqr();
+ var lhs = y2.redSub(this.c2);
+ var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);
+ var x2 = lhs.redMul(rhs.redInvm());
+ if (x2.cmp(this.zero) === 0) {
+ if (odd)
+ throw new Error("invalid point");
+ else
+ return this.point(this.zero, y);
+ }
+ var x = x2.redSqrt();
+ if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)
+ throw new Error("invalid point");
+ if (x.fromRed().isOdd() !== odd)
+ x = x.redNeg();
+ return this.point(x, y);
+ };
+ EdwardsCurve.prototype.validate = function validate(point) {
+ if (point.isInfinity())
+ return true;
+ point.normalize();
+ var x2 = point.x.redSqr();
+ var y2 = point.y.redSqr();
+ var lhs = x2.redMul(this.a).redAdd(y2);
+ var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
+ return lhs.cmp(rhs) === 0;
+ };
+ function Point(curve, x, y, z, t) {
+ Base.BasePoint.call(this, curve, "projective");
+ if (x === null && y === null && z === null) {
+ this.x = this.curve.zero;
+ this.y = this.curve.one;
+ this.z = this.curve.one;
+ this.t = this.curve.zero;
+ this.zOne = true;
+ } else {
+ this.x = new BN(x, 16);
+ this.y = new BN(y, 16);
+ this.z = z ? new BN(z, 16) : this.curve.one;
+ this.t = t && new BN(t, 16);
+ if (!this.x.red)
+ this.x = this.x.toRed(this.curve.red);
+ if (!this.y.red)
+ this.y = this.y.toRed(this.curve.red);
+ if (!this.z.red)
+ this.z = this.z.toRed(this.curve.red);
+ if (this.t && !this.t.red)
+ this.t = this.t.toRed(this.curve.red);
+ this.zOne = this.z === this.curve.one;
+ if (this.curve.extended && !this.t) {
+ this.t = this.x.redMul(this.y);
+ if (!this.zOne)
+ this.t = this.t.redMul(this.z.redInvm());
+ }
+ }
+ }
+ inherits(Point, Base.BasePoint);
+ EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
+ return Point.fromJSON(this, obj);
+ };
+ EdwardsCurve.prototype.point = function point(x, y, z, t) {
+ return new Point(this, x, y, z, t);
+ };
+ Point.fromJSON = function fromJSON(curve, obj) {
+ return new Point(curve, obj[0], obj[1], obj[2]);
+ };
+ Point.prototype.inspect = function inspect() {
+ if (this.isInfinity())
+ return "";
+ return "";
+ };
+ Point.prototype.isInfinity = function isInfinity() {
+ return this.x.cmpn(0) === 0 && (this.y.cmp(this.z) === 0 || this.zOne && this.y.cmp(this.curve.c) === 0);
+ };
+ Point.prototype._extDbl = function _extDbl() {
+ var a = this.x.redSqr();
+ var b = this.y.redSqr();
+ var c = this.z.redSqr();
+ c = c.redIAdd(c);
+ var d = this.curve._mulA(a);
+ var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
+ var g = d.redAdd(b);
+ var f = g.redSub(c);
+ var h = d.redSub(b);
+ var nx = e.redMul(f);
+ var ny = g.redMul(h);
+ var nt = e.redMul(h);
+ var nz = f.redMul(g);
+ return this.curve.point(nx, ny, nz, nt);
+ };
+ Point.prototype._projDbl = function _projDbl() {
+ var b = this.x.redAdd(this.y).redSqr();
+ var c = this.x.redSqr();
+ var d = this.y.redSqr();
+ var nx;
+ var ny;
+ var nz;
+ var e;
+ var h;
+ var j;
+ if (this.curve.twisted) {
+ e = this.curve._mulA(c);
+ var f = e.redAdd(d);
+ if (this.zOne) {
+ nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
+ ny = f.redMul(e.redSub(d));
+ nz = f.redSqr().redSub(f).redSub(f);
+ } else {
+ h = this.z.redSqr();
+ j = f.redSub(h).redISub(h);
+ nx = b.redSub(c).redISub(d).redMul(j);
+ ny = f.redMul(e.redSub(d));
+ nz = f.redMul(j);
+ }
+ } else {
+ e = c.redAdd(d);
+ h = this.curve._mulC(this.z).redSqr();
+ j = e.redSub(h).redSub(h);
+ nx = this.curve._mulC(b.redISub(e)).redMul(j);
+ ny = this.curve._mulC(e).redMul(c.redISub(d));
+ nz = e.redMul(j);
+ }
+ return this.curve.point(nx, ny, nz);
+ };
+ Point.prototype.dbl = function dbl() {
+ if (this.isInfinity())
+ return this;
+ if (this.curve.extended)
+ return this._extDbl();
+ else
+ return this._projDbl();
+ };
+ Point.prototype._extAdd = function _extAdd(p) {
+ var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
+ var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
+ var c = this.t.redMul(this.curve.dd).redMul(p.t);
+ var d = this.z.redMul(p.z.redAdd(p.z));
+ var e = b.redSub(a);
+ var f = d.redSub(c);
+ var g = d.redAdd(c);
+ var h = b.redAdd(a);
+ var nx = e.redMul(f);
+ var ny = g.redMul(h);
+ var nt = e.redMul(h);
+ var nz = f.redMul(g);
+ return this.curve.point(nx, ny, nz, nt);
+ };
+ Point.prototype._projAdd = function _projAdd(p) {
+ var a = this.z.redMul(p.z);
+ var b = a.redSqr();
+ var c = this.x.redMul(p.x);
+ var d = this.y.redMul(p.y);
+ var e = this.curve.d.redMul(c).redMul(d);
+ var f = b.redSub(e);
+ var g = b.redAdd(e);
+ var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
+ var nx = a.redMul(f).redMul(tmp);
+ var ny;
+ var nz;
+ if (this.curve.twisted) {
+ ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
+ nz = f.redMul(g);
+ } else {
+ ny = a.redMul(g).redMul(d.redSub(c));
+ nz = this.curve._mulC(f).redMul(g);
+ }
+ return this.curve.point(nx, ny, nz);
+ };
+ Point.prototype.add = function add(p) {
+ if (this.isInfinity())
+ return p;
+ if (p.isInfinity())
+ return this;
+ if (this.curve.extended)
+ return this._extAdd(p);
+ else
+ return this._projAdd(p);
+ };
+ Point.prototype.mul = function mul(k) {
+ if (this._hasDoubles(k))
+ return this.curve._fixedNafMul(this, k);
+ else
+ return this.curve._wnafMul(this, k);
+ };
+ Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
+ return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, false);
+ };
+ Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
+ return this.curve._wnafMulAdd(1, [this, p], [k1, k2], 2, true);
+ };
+ Point.prototype.normalize = function normalize() {
+ if (this.zOne)
+ return this;
+ var zi = this.z.redInvm();
+ this.x = this.x.redMul(zi);
+ this.y = this.y.redMul(zi);
+ if (this.t)
+ this.t = this.t.redMul(zi);
+ this.z = this.curve.one;
+ this.zOne = true;
+ return this;
+ };
+ Point.prototype.neg = function neg() {
+ return this.curve.point(
+ this.x.redNeg(),
+ this.y,
+ this.z,
+ this.t && this.t.redNeg()
+ );
+ };
+ Point.prototype.getX = function getX() {
+ this.normalize();
+ return this.x.fromRed();
+ };
+ Point.prototype.getY = function getY() {
+ this.normalize();
+ return this.y.fromRed();
+ };
+ Point.prototype.eq = function eq(other) {
+ return this === other || this.getX().cmp(other.getX()) === 0 && this.getY().cmp(other.getY()) === 0;
+ };
+ Point.prototype.eqXToP = function eqXToP(x) {
+ var rx = x.toRed(this.curve.red).redMul(this.z);
+ if (this.x.cmp(rx) === 0)
+ return true;
+ var xc = x.clone();
+ var t = this.curve.redN.redMul(this.z);
+ for (; ; ) {
+ xc.iadd(this.curve.n);
+ if (xc.cmp(this.curve.p) >= 0)
+ return false;
+ rx.redIAdd(t);
+ if (this.x.cmp(rx) === 0)
+ return true;
+ }
+ };
+ Point.prototype.toP = Point.prototype.normalize;
+ Point.prototype.mixedAdd = Point.prototype.add;
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curve/index.js
+var require_curve = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curve/index.js"(exports2) {
+ "use strict";
+ var curve = exports2;
+ curve.base = require_base();
+ curve.short = require_short();
+ curve.mont = require_mont();
+ curve.edwards = require_edwards();
+ }
+});
+
+// node_modules/hash.js/lib/hash/utils.js
+var require_utils6 = __commonJS({
+ "node_modules/hash.js/lib/hash/utils.js"(exports2) {
+ "use strict";
+ var assert = require_minimalistic_assert();
+ var inherits = require_inherits();
+ exports2.inherits = inherits;
+ function isSurrogatePair(msg, i) {
+ if ((msg.charCodeAt(i) & 64512) !== 55296) {
+ return false;
+ }
+ if (i < 0 || i + 1 >= msg.length) {
+ return false;
+ }
+ return (msg.charCodeAt(i + 1) & 64512) === 56320;
+ }
+ function toArray(msg, enc) {
+ if (Array.isArray(msg))
+ return msg.slice();
+ if (!msg)
+ return [];
+ var res = [];
+ if (typeof msg === "string") {
+ if (!enc) {
+ var p = 0;
+ for (var i = 0; i < msg.length; i++) {
+ var c = msg.charCodeAt(i);
+ if (c < 128) {
+ res[p++] = c;
+ } else if (c < 2048) {
+ res[p++] = c >> 6 | 192;
+ res[p++] = c & 63 | 128;
+ } else if (isSurrogatePair(msg, i)) {
+ c = 65536 + ((c & 1023) << 10) + (msg.charCodeAt(++i) & 1023);
+ res[p++] = c >> 18 | 240;
+ res[p++] = c >> 12 & 63 | 128;
+ res[p++] = c >> 6 & 63 | 128;
+ res[p++] = c & 63 | 128;
+ } else {
+ res[p++] = c >> 12 | 224;
+ res[p++] = c >> 6 & 63 | 128;
+ res[p++] = c & 63 | 128;
+ }
+ }
+ } else if (enc === "hex") {
+ msg = msg.replace(/[^a-z0-9]+/ig, "");
+ if (msg.length % 2 !== 0)
+ msg = "0" + msg;
+ for (i = 0; i < msg.length; i += 2)
+ res.push(parseInt(msg[i] + msg[i + 1], 16));
+ }
+ } else {
+ for (i = 0; i < msg.length; i++)
+ res[i] = msg[i] | 0;
+ }
+ return res;
+ }
+ exports2.toArray = toArray;
+ function toHex(msg) {
+ var res = "";
+ for (var i = 0; i < msg.length; i++)
+ res += zero2(msg[i].toString(16));
+ return res;
+ }
+ exports2.toHex = toHex;
+ function htonl(w) {
+ var res = w >>> 24 | w >>> 8 & 65280 | w << 8 & 16711680 | (w & 255) << 24;
+ return res >>> 0;
+ }
+ exports2.htonl = htonl;
+ function toHex32(msg, endian) {
+ var res = "";
+ for (var i = 0; i < msg.length; i++) {
+ var w = msg[i];
+ if (endian === "little")
+ w = htonl(w);
+ res += zero8(w.toString(16));
+ }
+ return res;
+ }
+ exports2.toHex32 = toHex32;
+ function zero2(word) {
+ if (word.length === 1)
+ return "0" + word;
+ else
+ return word;
+ }
+ exports2.zero2 = zero2;
+ function zero8(word) {
+ if (word.length === 7)
+ return "0" + word;
+ else if (word.length === 6)
+ return "00" + word;
+ else if (word.length === 5)
+ return "000" + word;
+ else if (word.length === 4)
+ return "0000" + word;
+ else if (word.length === 3)
+ return "00000" + word;
+ else if (word.length === 2)
+ return "000000" + word;
+ else if (word.length === 1)
+ return "0000000" + word;
+ else
+ return word;
+ }
+ exports2.zero8 = zero8;
+ function join32(msg, start, end, endian) {
+ var len = end - start;
+ assert(len % 4 === 0);
+ var res = new Array(len / 4);
+ for (var i = 0, k = start; i < res.length; i++, k += 4) {
+ var w;
+ if (endian === "big")
+ w = msg[k] << 24 | msg[k + 1] << 16 | msg[k + 2] << 8 | msg[k + 3];
+ else
+ w = msg[k + 3] << 24 | msg[k + 2] << 16 | msg[k + 1] << 8 | msg[k];
+ res[i] = w >>> 0;
+ }
+ return res;
+ }
+ exports2.join32 = join32;
+ function split32(msg, endian) {
+ var res = new Array(msg.length * 4);
+ for (var i = 0, k = 0; i < msg.length; i++, k += 4) {
+ var m = msg[i];
+ if (endian === "big") {
+ res[k] = m >>> 24;
+ res[k + 1] = m >>> 16 & 255;
+ res[k + 2] = m >>> 8 & 255;
+ res[k + 3] = m & 255;
+ } else {
+ res[k + 3] = m >>> 24;
+ res[k + 2] = m >>> 16 & 255;
+ res[k + 1] = m >>> 8 & 255;
+ res[k] = m & 255;
+ }
+ }
+ return res;
+ }
+ exports2.split32 = split32;
+ function rotr32(w, b) {
+ return w >>> b | w << 32 - b;
+ }
+ exports2.rotr32 = rotr32;
+ function rotl32(w, b) {
+ return w << b | w >>> 32 - b;
+ }
+ exports2.rotl32 = rotl32;
+ function sum32(a, b) {
+ return a + b >>> 0;
+ }
+ exports2.sum32 = sum32;
+ function sum32_3(a, b, c) {
+ return a + b + c >>> 0;
+ }
+ exports2.sum32_3 = sum32_3;
+ function sum32_4(a, b, c, d) {
+ return a + b + c + d >>> 0;
+ }
+ exports2.sum32_4 = sum32_4;
+ function sum32_5(a, b, c, d, e) {
+ return a + b + c + d + e >>> 0;
+ }
+ exports2.sum32_5 = sum32_5;
+ function sum64(buf, pos, ah, al) {
+ var bh = buf[pos];
+ var bl = buf[pos + 1];
+ var lo = al + bl >>> 0;
+ var hi = (lo < al ? 1 : 0) + ah + bh;
+ buf[pos] = hi >>> 0;
+ buf[pos + 1] = lo;
+ }
+ exports2.sum64 = sum64;
+ function sum64_hi(ah, al, bh, bl) {
+ var lo = al + bl >>> 0;
+ var hi = (lo < al ? 1 : 0) + ah + bh;
+ return hi >>> 0;
+ }
+ exports2.sum64_hi = sum64_hi;
+ function sum64_lo(ah, al, bh, bl) {
+ var lo = al + bl;
+ return lo >>> 0;
+ }
+ exports2.sum64_lo = sum64_lo;
+ function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
+ var carry = 0;
+ var lo = al;
+ lo = lo + bl >>> 0;
+ carry += lo < al ? 1 : 0;
+ lo = lo + cl >>> 0;
+ carry += lo < cl ? 1 : 0;
+ lo = lo + dl >>> 0;
+ carry += lo < dl ? 1 : 0;
+ var hi = ah + bh + ch + dh + carry;
+ return hi >>> 0;
+ }
+ exports2.sum64_4_hi = sum64_4_hi;
+ function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
+ var lo = al + bl + cl + dl;
+ return lo >>> 0;
+ }
+ exports2.sum64_4_lo = sum64_4_lo;
+ function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
+ var carry = 0;
+ var lo = al;
+ lo = lo + bl >>> 0;
+ carry += lo < al ? 1 : 0;
+ lo = lo + cl >>> 0;
+ carry += lo < cl ? 1 : 0;
+ lo = lo + dl >>> 0;
+ carry += lo < dl ? 1 : 0;
+ lo = lo + el >>> 0;
+ carry += lo < el ? 1 : 0;
+ var hi = ah + bh + ch + dh + eh + carry;
+ return hi >>> 0;
+ }
+ exports2.sum64_5_hi = sum64_5_hi;
+ function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
+ var lo = al + bl + cl + dl + el;
+ return lo >>> 0;
+ }
+ exports2.sum64_5_lo = sum64_5_lo;
+ function rotr64_hi(ah, al, num) {
+ var r = al << 32 - num | ah >>> num;
+ return r >>> 0;
+ }
+ exports2.rotr64_hi = rotr64_hi;
+ function rotr64_lo(ah, al, num) {
+ var r = ah << 32 - num | al >>> num;
+ return r >>> 0;
+ }
+ exports2.rotr64_lo = rotr64_lo;
+ function shr64_hi(ah, al, num) {
+ return ah >>> num;
+ }
+ exports2.shr64_hi = shr64_hi;
+ function shr64_lo(ah, al, num) {
+ var r = ah << 32 - num | al >>> num;
+ return r >>> 0;
+ }
+ exports2.shr64_lo = shr64_lo;
+ }
+});
+
+// node_modules/hash.js/lib/hash/common.js
+var require_common = __commonJS({
+ "node_modules/hash.js/lib/hash/common.js"(exports2) {
+ "use strict";
+ var utils = require_utils6();
+ var assert = require_minimalistic_assert();
+ function BlockHash() {
+ this.pending = null;
+ this.pendingTotal = 0;
+ this.blockSize = this.constructor.blockSize;
+ this.outSize = this.constructor.outSize;
+ this.hmacStrength = this.constructor.hmacStrength;
+ this.padLength = this.constructor.padLength / 8;
+ this.endian = "big";
+ this._delta8 = this.blockSize / 8;
+ this._delta32 = this.blockSize / 32;
+ }
+ exports2.BlockHash = BlockHash;
+ BlockHash.prototype.update = function update(msg, enc) {
+ msg = utils.toArray(msg, enc);
+ if (!this.pending)
+ this.pending = msg;
+ else
+ this.pending = this.pending.concat(msg);
+ this.pendingTotal += msg.length;
+ if (this.pending.length >= this._delta8) {
+ msg = this.pending;
+ var r = msg.length % this._delta8;
+ this.pending = msg.slice(msg.length - r, msg.length);
+ if (this.pending.length === 0)
+ this.pending = null;
+ msg = utils.join32(msg, 0, msg.length - r, this.endian);
+ for (var i = 0; i < msg.length; i += this._delta32)
+ this._update(msg, i, i + this._delta32);
+ }
+ return this;
+ };
+ BlockHash.prototype.digest = function digest(enc) {
+ this.update(this._pad());
+ assert(this.pending === null);
+ return this._digest(enc);
+ };
+ BlockHash.prototype._pad = function pad() {
+ var len = this.pendingTotal;
+ var bytes = this._delta8;
+ var k = bytes - (len + this.padLength) % bytes;
+ var res = new Array(k + this.padLength);
+ res[0] = 128;
+ for (var i = 1; i < k; i++)
+ res[i] = 0;
+ len <<= 3;
+ if (this.endian === "big") {
+ for (var t = 8; t < this.padLength; t++)
+ res[i++] = 0;
+ res[i++] = 0;
+ res[i++] = 0;
+ res[i++] = 0;
+ res[i++] = 0;
+ res[i++] = len >>> 24 & 255;
+ res[i++] = len >>> 16 & 255;
+ res[i++] = len >>> 8 & 255;
+ res[i++] = len & 255;
+ } else {
+ res[i++] = len & 255;
+ res[i++] = len >>> 8 & 255;
+ res[i++] = len >>> 16 & 255;
+ res[i++] = len >>> 24 & 255;
+ res[i++] = 0;
+ res[i++] = 0;
+ res[i++] = 0;
+ res[i++] = 0;
+ for (t = 8; t < this.padLength; t++)
+ res[i++] = 0;
+ }
+ return res;
+ };
+ }
+});
+
+// node_modules/hash.js/lib/hash/sha/common.js
+var require_common2 = __commonJS({
+ "node_modules/hash.js/lib/hash/sha/common.js"(exports2) {
+ "use strict";
+ var utils = require_utils6();
+ var rotr32 = utils.rotr32;
+ function ft_1(s, x, y, z) {
+ if (s === 0)
+ return ch32(x, y, z);
+ if (s === 1 || s === 3)
+ return p32(x, y, z);
+ if (s === 2)
+ return maj32(x, y, z);
+ }
+ exports2.ft_1 = ft_1;
+ function ch32(x, y, z) {
+ return x & y ^ ~x & z;
+ }
+ exports2.ch32 = ch32;
+ function maj32(x, y, z) {
+ return x & y ^ x & z ^ y & z;
+ }
+ exports2.maj32 = maj32;
+ function p32(x, y, z) {
+ return x ^ y ^ z;
+ }
+ exports2.p32 = p32;
+ function s0_256(x) {
+ return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);
+ }
+ exports2.s0_256 = s0_256;
+ function s1_256(x) {
+ return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);
+ }
+ exports2.s1_256 = s1_256;
+ function g0_256(x) {
+ return rotr32(x, 7) ^ rotr32(x, 18) ^ x >>> 3;
+ }
+ exports2.g0_256 = g0_256;
+ function g1_256(x) {
+ return rotr32(x, 17) ^ rotr32(x, 19) ^ x >>> 10;
+ }
+ exports2.g1_256 = g1_256;
+ }
+});
+
+// node_modules/hash.js/lib/hash/sha/1.js
+var require__ = __commonJS({
+ "node_modules/hash.js/lib/hash/sha/1.js"(exports2, module2) {
+ "use strict";
+ var utils = require_utils6();
+ var common = require_common();
+ var shaCommon = require_common2();
+ var rotl32 = utils.rotl32;
+ var sum32 = utils.sum32;
+ var sum32_5 = utils.sum32_5;
+ var ft_1 = shaCommon.ft_1;
+ var BlockHash = common.BlockHash;
+ var sha1_K = [
+ 1518500249,
+ 1859775393,
+ 2400959708,
+ 3395469782
+ ];
+ function SHA1() {
+ if (!(this instanceof SHA1))
+ return new SHA1();
+ BlockHash.call(this);
+ this.h = [
+ 1732584193,
+ 4023233417,
+ 2562383102,
+ 271733878,
+ 3285377520
+ ];
+ this.W = new Array(80);
+ }
+ utils.inherits(SHA1, BlockHash);
+ module2.exports = SHA1;
+ SHA1.blockSize = 512;
+ SHA1.outSize = 160;
+ SHA1.hmacStrength = 80;
+ SHA1.padLength = 64;
+ SHA1.prototype._update = function _update(msg, start) {
+ var W = this.W;
+ for (var i = 0; i < 16; i++)
+ W[i] = msg[start + i];
+ for (; i < W.length; i++)
+ W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);
+ var a = this.h[0];
+ var b = this.h[1];
+ var c = this.h[2];
+ var d = this.h[3];
+ var e = this.h[4];
+ for (i = 0; i < W.length; i++) {
+ var s = ~~(i / 20);
+ var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
+ e = d;
+ d = c;
+ c = rotl32(b, 30);
+ b = a;
+ a = t;
+ }
+ this.h[0] = sum32(this.h[0], a);
+ this.h[1] = sum32(this.h[1], b);
+ this.h[2] = sum32(this.h[2], c);
+ this.h[3] = sum32(this.h[3], d);
+ this.h[4] = sum32(this.h[4], e);
+ };
+ SHA1.prototype._digest = function digest(enc) {
+ if (enc === "hex")
+ return utils.toHex32(this.h, "big");
+ else
+ return utils.split32(this.h, "big");
+ };
+ }
+});
+
+// node_modules/hash.js/lib/hash/sha/256.js
+var require__2 = __commonJS({
+ "node_modules/hash.js/lib/hash/sha/256.js"(exports2, module2) {
+ "use strict";
+ var utils = require_utils6();
+ var common = require_common();
+ var shaCommon = require_common2();
+ var assert = require_minimalistic_assert();
+ var sum32 = utils.sum32;
+ var sum32_4 = utils.sum32_4;
+ var sum32_5 = utils.sum32_5;
+ var ch32 = shaCommon.ch32;
+ var maj32 = shaCommon.maj32;
+ var s0_256 = shaCommon.s0_256;
+ var s1_256 = shaCommon.s1_256;
+ var g0_256 = shaCommon.g0_256;
+ var g1_256 = shaCommon.g1_256;
+ var BlockHash = common.BlockHash;
+ var sha256_K = [
+ 1116352408,
+ 1899447441,
+ 3049323471,
+ 3921009573,
+ 961987163,
+ 1508970993,
+ 2453635748,
+ 2870763221,
+ 3624381080,
+ 310598401,
+ 607225278,
+ 1426881987,
+ 1925078388,
+ 2162078206,
+ 2614888103,
+ 3248222580,
+ 3835390401,
+ 4022224774,
+ 264347078,
+ 604807628,
+ 770255983,
+ 1249150122,
+ 1555081692,
+ 1996064986,
+ 2554220882,
+ 2821834349,
+ 2952996808,
+ 3210313671,
+ 3336571891,
+ 3584528711,
+ 113926993,
+ 338241895,
+ 666307205,
+ 773529912,
+ 1294757372,
+ 1396182291,
+ 1695183700,
+ 1986661051,
+ 2177026350,
+ 2456956037,
+ 2730485921,
+ 2820302411,
+ 3259730800,
+ 3345764771,
+ 3516065817,
+ 3600352804,
+ 4094571909,
+ 275423344,
+ 430227734,
+ 506948616,
+ 659060556,
+ 883997877,
+ 958139571,
+ 1322822218,
+ 1537002063,
+ 1747873779,
+ 1955562222,
+ 2024104815,
+ 2227730452,
+ 2361852424,
+ 2428436474,
+ 2756734187,
+ 3204031479,
+ 3329325298
+ ];
+ function SHA256() {
+ if (!(this instanceof SHA256))
+ return new SHA256();
+ BlockHash.call(this);
+ this.h = [
+ 1779033703,
+ 3144134277,
+ 1013904242,
+ 2773480762,
+ 1359893119,
+ 2600822924,
+ 528734635,
+ 1541459225
+ ];
+ this.k = sha256_K;
+ this.W = new Array(64);
+ }
+ utils.inherits(SHA256, BlockHash);
+ module2.exports = SHA256;
+ SHA256.blockSize = 512;
+ SHA256.outSize = 256;
+ SHA256.hmacStrength = 192;
+ SHA256.padLength = 64;
+ SHA256.prototype._update = function _update(msg, start) {
+ var W = this.W;
+ for (var i = 0; i < 16; i++)
+ W[i] = msg[start + i];
+ for (; i < W.length; i++)
+ W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);
+ var a = this.h[0];
+ var b = this.h[1];
+ var c = this.h[2];
+ var d = this.h[3];
+ var e = this.h[4];
+ var f = this.h[5];
+ var g = this.h[6];
+ var h = this.h[7];
+ assert(this.k.length === W.length);
+ for (i = 0; i < W.length; i++) {
+ var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
+ var T2 = sum32(s0_256(a), maj32(a, b, c));
+ h = g;
+ g = f;
+ f = e;
+ e = sum32(d, T1);
+ d = c;
+ c = b;
+ b = a;
+ a = sum32(T1, T2);
+ }
+ this.h[0] = sum32(this.h[0], a);
+ this.h[1] = sum32(this.h[1], b);
+ this.h[2] = sum32(this.h[2], c);
+ this.h[3] = sum32(this.h[3], d);
+ this.h[4] = sum32(this.h[4], e);
+ this.h[5] = sum32(this.h[5], f);
+ this.h[6] = sum32(this.h[6], g);
+ this.h[7] = sum32(this.h[7], h);
+ };
+ SHA256.prototype._digest = function digest(enc) {
+ if (enc === "hex")
+ return utils.toHex32(this.h, "big");
+ else
+ return utils.split32(this.h, "big");
+ };
+ }
+});
+
+// node_modules/hash.js/lib/hash/sha/224.js
+var require__3 = __commonJS({
+ "node_modules/hash.js/lib/hash/sha/224.js"(exports2, module2) {
+ "use strict";
+ var utils = require_utils6();
+ var SHA256 = require__2();
+ function SHA224() {
+ if (!(this instanceof SHA224))
+ return new SHA224();
+ SHA256.call(this);
+ this.h = [
+ 3238371032,
+ 914150663,
+ 812702999,
+ 4144912697,
+ 4290775857,
+ 1750603025,
+ 1694076839,
+ 3204075428
+ ];
+ }
+ utils.inherits(SHA224, SHA256);
+ module2.exports = SHA224;
+ SHA224.blockSize = 512;
+ SHA224.outSize = 224;
+ SHA224.hmacStrength = 192;
+ SHA224.padLength = 64;
+ SHA224.prototype._digest = function digest(enc) {
+ if (enc === "hex")
+ return utils.toHex32(this.h.slice(0, 7), "big");
+ else
+ return utils.split32(this.h.slice(0, 7), "big");
+ };
+ }
+});
+
+// node_modules/hash.js/lib/hash/sha/512.js
+var require__4 = __commonJS({
+ "node_modules/hash.js/lib/hash/sha/512.js"(exports2, module2) {
+ "use strict";
+ var utils = require_utils6();
+ var common = require_common();
+ var assert = require_minimalistic_assert();
+ var rotr64_hi = utils.rotr64_hi;
+ var rotr64_lo = utils.rotr64_lo;
+ var shr64_hi = utils.shr64_hi;
+ var shr64_lo = utils.shr64_lo;
+ var sum64 = utils.sum64;
+ var sum64_hi = utils.sum64_hi;
+ var sum64_lo = utils.sum64_lo;
+ var sum64_4_hi = utils.sum64_4_hi;
+ var sum64_4_lo = utils.sum64_4_lo;
+ var sum64_5_hi = utils.sum64_5_hi;
+ var sum64_5_lo = utils.sum64_5_lo;
+ var BlockHash = common.BlockHash;
+ var sha512_K = [
+ 1116352408,
+ 3609767458,
+ 1899447441,
+ 602891725,
+ 3049323471,
+ 3964484399,
+ 3921009573,
+ 2173295548,
+ 961987163,
+ 4081628472,
+ 1508970993,
+ 3053834265,
+ 2453635748,
+ 2937671579,
+ 2870763221,
+ 3664609560,
+ 3624381080,
+ 2734883394,
+ 310598401,
+ 1164996542,
+ 607225278,
+ 1323610764,
+ 1426881987,
+ 3590304994,
+ 1925078388,
+ 4068182383,
+ 2162078206,
+ 991336113,
+ 2614888103,
+ 633803317,
+ 3248222580,
+ 3479774868,
+ 3835390401,
+ 2666613458,
+ 4022224774,
+ 944711139,
+ 264347078,
+ 2341262773,
+ 604807628,
+ 2007800933,
+ 770255983,
+ 1495990901,
+ 1249150122,
+ 1856431235,
+ 1555081692,
+ 3175218132,
+ 1996064986,
+ 2198950837,
+ 2554220882,
+ 3999719339,
+ 2821834349,
+ 766784016,
+ 2952996808,
+ 2566594879,
+ 3210313671,
+ 3203337956,
+ 3336571891,
+ 1034457026,
+ 3584528711,
+ 2466948901,
+ 113926993,
+ 3758326383,
+ 338241895,
+ 168717936,
+ 666307205,
+ 1188179964,
+ 773529912,
+ 1546045734,
+ 1294757372,
+ 1522805485,
+ 1396182291,
+ 2643833823,
+ 1695183700,
+ 2343527390,
+ 1986661051,
+ 1014477480,
+ 2177026350,
+ 1206759142,
+ 2456956037,
+ 344077627,
+ 2730485921,
+ 1290863460,
+ 2820302411,
+ 3158454273,
+ 3259730800,
+ 3505952657,
+ 3345764771,
+ 106217008,
+ 3516065817,
+ 3606008344,
+ 3600352804,
+ 1432725776,
+ 4094571909,
+ 1467031594,
+ 275423344,
+ 851169720,
+ 430227734,
+ 3100823752,
+ 506948616,
+ 1363258195,
+ 659060556,
+ 3750685593,
+ 883997877,
+ 3785050280,
+ 958139571,
+ 3318307427,
+ 1322822218,
+ 3812723403,
+ 1537002063,
+ 2003034995,
+ 1747873779,
+ 3602036899,
+ 1955562222,
+ 1575990012,
+ 2024104815,
+ 1125592928,
+ 2227730452,
+ 2716904306,
+ 2361852424,
+ 442776044,
+ 2428436474,
+ 593698344,
+ 2756734187,
+ 3733110249,
+ 3204031479,
+ 2999351573,
+ 3329325298,
+ 3815920427,
+ 3391569614,
+ 3928383900,
+ 3515267271,
+ 566280711,
+ 3940187606,
+ 3454069534,
+ 4118630271,
+ 4000239992,
+ 116418474,
+ 1914138554,
+ 174292421,
+ 2731055270,
+ 289380356,
+ 3203993006,
+ 460393269,
+ 320620315,
+ 685471733,
+ 587496836,
+ 852142971,
+ 1086792851,
+ 1017036298,
+ 365543100,
+ 1126000580,
+ 2618297676,
+ 1288033470,
+ 3409855158,
+ 1501505948,
+ 4234509866,
+ 1607167915,
+ 987167468,
+ 1816402316,
+ 1246189591
+ ];
+ function SHA512() {
+ if (!(this instanceof SHA512))
+ return new SHA512();
+ BlockHash.call(this);
+ this.h = [
+ 1779033703,
+ 4089235720,
+ 3144134277,
+ 2227873595,
+ 1013904242,
+ 4271175723,
+ 2773480762,
+ 1595750129,
+ 1359893119,
+ 2917565137,
+ 2600822924,
+ 725511199,
+ 528734635,
+ 4215389547,
+ 1541459225,
+ 327033209
+ ];
+ this.k = sha512_K;
+ this.W = new Array(160);
+ }
+ utils.inherits(SHA512, BlockHash);
+ module2.exports = SHA512;
+ SHA512.blockSize = 1024;
+ SHA512.outSize = 512;
+ SHA512.hmacStrength = 192;
+ SHA512.padLength = 128;
+ SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
+ var W = this.W;
+ for (var i = 0; i < 32; i++)
+ W[i] = msg[start + i];
+ for (; i < W.length; i += 2) {
+ var c0_hi = g1_512_hi(W[i - 4], W[i - 3]);
+ var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);
+ var c1_hi = W[i - 14];
+ var c1_lo = W[i - 13];
+ var c2_hi = g0_512_hi(W[i - 30], W[i - 29]);
+ var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);
+ var c3_hi = W[i - 32];
+ var c3_lo = W[i - 31];
+ W[i] = sum64_4_hi(
+ c0_hi,
+ c0_lo,
+ c1_hi,
+ c1_lo,
+ c2_hi,
+ c2_lo,
+ c3_hi,
+ c3_lo
+ );
+ W[i + 1] = sum64_4_lo(
+ c0_hi,
+ c0_lo,
+ c1_hi,
+ c1_lo,
+ c2_hi,
+ c2_lo,
+ c3_hi,
+ c3_lo
+ );
+ }
+ };
+ SHA512.prototype._update = function _update(msg, start) {
+ this._prepareBlock(msg, start);
+ var W = this.W;
+ var ah = this.h[0];
+ var al = this.h[1];
+ var bh = this.h[2];
+ var bl = this.h[3];
+ var ch = this.h[4];
+ var cl = this.h[5];
+ var dh = this.h[6];
+ var dl = this.h[7];
+ var eh = this.h[8];
+ var el = this.h[9];
+ var fh = this.h[10];
+ var fl = this.h[11];
+ var gh = this.h[12];
+ var gl = this.h[13];
+ var hh = this.h[14];
+ var hl = this.h[15];
+ assert(this.k.length === W.length);
+ for (var i = 0; i < W.length; i += 2) {
+ var c0_hi = hh;
+ var c0_lo = hl;
+ var c1_hi = s1_512_hi(eh, el);
+ var c1_lo = s1_512_lo(eh, el);
+ var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
+ var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
+ var c3_hi = this.k[i];
+ var c3_lo = this.k[i + 1];
+ var c4_hi = W[i];
+ var c4_lo = W[i + 1];
+ var T1_hi = sum64_5_hi(
+ c0_hi,
+ c0_lo,
+ c1_hi,
+ c1_lo,
+ c2_hi,
+ c2_lo,
+ c3_hi,
+ c3_lo,
+ c4_hi,
+ c4_lo
+ );
+ var T1_lo = sum64_5_lo(
+ c0_hi,
+ c0_lo,
+ c1_hi,
+ c1_lo,
+ c2_hi,
+ c2_lo,
+ c3_hi,
+ c3_lo,
+ c4_hi,
+ c4_lo
+ );
+ c0_hi = s0_512_hi(ah, al);
+ c0_lo = s0_512_lo(ah, al);
+ c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
+ c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
+ var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
+ var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
+ hh = gh;
+ hl = gl;
+ gh = fh;
+ gl = fl;
+ fh = eh;
+ fl = el;
+ eh = sum64_hi(dh, dl, T1_hi, T1_lo);
+ el = sum64_lo(dl, dl, T1_hi, T1_lo);
+ dh = ch;
+ dl = cl;
+ ch = bh;
+ cl = bl;
+ bh = ah;
+ bl = al;
+ ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
+ al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
+ }
+ sum64(this.h, 0, ah, al);
+ sum64(this.h, 2, bh, bl);
+ sum64(this.h, 4, ch, cl);
+ sum64(this.h, 6, dh, dl);
+ sum64(this.h, 8, eh, el);
+ sum64(this.h, 10, fh, fl);
+ sum64(this.h, 12, gh, gl);
+ sum64(this.h, 14, hh, hl);
+ };
+ SHA512.prototype._digest = function digest(enc) {
+ if (enc === "hex")
+ return utils.toHex32(this.h, "big");
+ else
+ return utils.split32(this.h, "big");
+ };
+ function ch64_hi(xh, xl, yh, yl, zh) {
+ var r = xh & yh ^ ~xh & zh;
+ if (r < 0)
+ r += 4294967296;
+ return r;
+ }
+ function ch64_lo(xh, xl, yh, yl, zh, zl) {
+ var r = xl & yl ^ ~xl & zl;
+ if (r < 0)
+ r += 4294967296;
+ return r;
+ }
+ function maj64_hi(xh, xl, yh, yl, zh) {
+ var r = xh & yh ^ xh & zh ^ yh & zh;
+ if (r < 0)
+ r += 4294967296;
+ return r;
+ }
+ function maj64_lo(xh, xl, yh, yl, zh, zl) {
+ var r = xl & yl ^ xl & zl ^ yl & zl;
+ if (r < 0)
+ r += 4294967296;
+ return r;
+ }
+ function s0_512_hi(xh, xl) {
+ var c0_hi = rotr64_hi(xh, xl, 28);
+ var c1_hi = rotr64_hi(xl, xh, 2);
+ var c2_hi = rotr64_hi(xl, xh, 7);
+ var r = c0_hi ^ c1_hi ^ c2_hi;
+ if (r < 0)
+ r += 4294967296;
+ return r;
+ }
+ function s0_512_lo(xh, xl) {
+ var c0_lo = rotr64_lo(xh, xl, 28);
+ var c1_lo = rotr64_lo(xl, xh, 2);
+ var c2_lo = rotr64_lo(xl, xh, 7);
+ var r = c0_lo ^ c1_lo ^ c2_lo;
+ if (r < 0)
+ r += 4294967296;
+ return r;
+ }
+ function s1_512_hi(xh, xl) {
+ var c0_hi = rotr64_hi(xh, xl, 14);
+ var c1_hi = rotr64_hi(xh, xl, 18);
+ var c2_hi = rotr64_hi(xl, xh, 9);
+ var r = c0_hi ^ c1_hi ^ c2_hi;
+ if (r < 0)
+ r += 4294967296;
+ return r;
+ }
+ function s1_512_lo(xh, xl) {
+ var c0_lo = rotr64_lo(xh, xl, 14);
+ var c1_lo = rotr64_lo(xh, xl, 18);
+ var c2_lo = rotr64_lo(xl, xh, 9);
+ var r = c0_lo ^ c1_lo ^ c2_lo;
+ if (r < 0)
+ r += 4294967296;
+ return r;
+ }
+ function g0_512_hi(xh, xl) {
+ var c0_hi = rotr64_hi(xh, xl, 1);
+ var c1_hi = rotr64_hi(xh, xl, 8);
+ var c2_hi = shr64_hi(xh, xl, 7);
+ var r = c0_hi ^ c1_hi ^ c2_hi;
+ if (r < 0)
+ r += 4294967296;
+ return r;
+ }
+ function g0_512_lo(xh, xl) {
+ var c0_lo = rotr64_lo(xh, xl, 1);
+ var c1_lo = rotr64_lo(xh, xl, 8);
+ var c2_lo = shr64_lo(xh, xl, 7);
+ var r = c0_lo ^ c1_lo ^ c2_lo;
+ if (r < 0)
+ r += 4294967296;
+ return r;
+ }
+ function g1_512_hi(xh, xl) {
+ var c0_hi = rotr64_hi(xh, xl, 19);
+ var c1_hi = rotr64_hi(xl, xh, 29);
+ var c2_hi = shr64_hi(xh, xl, 6);
+ var r = c0_hi ^ c1_hi ^ c2_hi;
+ if (r < 0)
+ r += 4294967296;
+ return r;
+ }
+ function g1_512_lo(xh, xl) {
+ var c0_lo = rotr64_lo(xh, xl, 19);
+ var c1_lo = rotr64_lo(xl, xh, 29);
+ var c2_lo = shr64_lo(xh, xl, 6);
+ var r = c0_lo ^ c1_lo ^ c2_lo;
+ if (r < 0)
+ r += 4294967296;
+ return r;
+ }
+ }
+});
+
+// node_modules/hash.js/lib/hash/sha/384.js
+var require__5 = __commonJS({
+ "node_modules/hash.js/lib/hash/sha/384.js"(exports2, module2) {
+ "use strict";
+ var utils = require_utils6();
+ var SHA512 = require__4();
+ function SHA384() {
+ if (!(this instanceof SHA384))
+ return new SHA384();
+ SHA512.call(this);
+ this.h = [
+ 3418070365,
+ 3238371032,
+ 1654270250,
+ 914150663,
+ 2438529370,
+ 812702999,
+ 355462360,
+ 4144912697,
+ 1731405415,
+ 4290775857,
+ 2394180231,
+ 1750603025,
+ 3675008525,
+ 1694076839,
+ 1203062813,
+ 3204075428
+ ];
+ }
+ utils.inherits(SHA384, SHA512);
+ module2.exports = SHA384;
+ SHA384.blockSize = 1024;
+ SHA384.outSize = 384;
+ SHA384.hmacStrength = 192;
+ SHA384.padLength = 128;
+ SHA384.prototype._digest = function digest(enc) {
+ if (enc === "hex")
+ return utils.toHex32(this.h.slice(0, 12), "big");
+ else
+ return utils.split32(this.h.slice(0, 12), "big");
+ };
+ }
+});
+
+// node_modules/hash.js/lib/hash/sha.js
+var require_sha = __commonJS({
+ "node_modules/hash.js/lib/hash/sha.js"(exports2) {
+ "use strict";
+ exports2.sha1 = require__();
+ exports2.sha224 = require__3();
+ exports2.sha256 = require__2();
+ exports2.sha384 = require__5();
+ exports2.sha512 = require__4();
+ }
+});
+
+// node_modules/hash.js/lib/hash/ripemd.js
+var require_ripemd = __commonJS({
+ "node_modules/hash.js/lib/hash/ripemd.js"(exports2) {
+ "use strict";
+ var utils = require_utils6();
+ var common = require_common();
+ var rotl32 = utils.rotl32;
+ var sum32 = utils.sum32;
+ var sum32_3 = utils.sum32_3;
+ var sum32_4 = utils.sum32_4;
+ var BlockHash = common.BlockHash;
+ function RIPEMD160() {
+ if (!(this instanceof RIPEMD160))
+ return new RIPEMD160();
+ BlockHash.call(this);
+ this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520];
+ this.endian = "little";
+ }
+ utils.inherits(RIPEMD160, BlockHash);
+ exports2.ripemd160 = RIPEMD160;
+ RIPEMD160.blockSize = 512;
+ RIPEMD160.outSize = 160;
+ RIPEMD160.hmacStrength = 192;
+ RIPEMD160.padLength = 64;
+ RIPEMD160.prototype._update = function update(msg, start) {
+ var A = this.h[0];
+ var B = this.h[1];
+ var C = this.h[2];
+ var D = this.h[3];
+ var E = this.h[4];
+ var Ah = A;
+ var Bh = B;
+ var Ch = C;
+ var Dh = D;
+ var Eh = E;
+ for (var j = 0; j < 80; j++) {
+ var T = sum32(
+ rotl32(
+ sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
+ s[j]
+ ),
+ E
+ );
+ A = E;
+ E = D;
+ D = rotl32(C, 10);
+ C = B;
+ B = T;
+ T = sum32(
+ rotl32(
+ sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
+ sh[j]
+ ),
+ Eh
+ );
+ Ah = Eh;
+ Eh = Dh;
+ Dh = rotl32(Ch, 10);
+ Ch = Bh;
+ Bh = T;
+ }
+ T = sum32_3(this.h[1], C, Dh);
+ this.h[1] = sum32_3(this.h[2], D, Eh);
+ this.h[2] = sum32_3(this.h[3], E, Ah);
+ this.h[3] = sum32_3(this.h[4], A, Bh);
+ this.h[4] = sum32_3(this.h[0], B, Ch);
+ this.h[0] = T;
+ };
+ RIPEMD160.prototype._digest = function digest(enc) {
+ if (enc === "hex")
+ return utils.toHex32(this.h, "little");
+ else
+ return utils.split32(this.h, "little");
+ };
+ function f(j, x, y, z) {
+ if (j <= 15)
+ return x ^ y ^ z;
+ else if (j <= 31)
+ return x & y | ~x & z;
+ else if (j <= 47)
+ return (x | ~y) ^ z;
+ else if (j <= 63)
+ return x & z | y & ~z;
+ else
+ return x ^ (y | ~z);
+ }
+ function K(j) {
+ if (j <= 15)
+ return 0;
+ else if (j <= 31)
+ return 1518500249;
+ else if (j <= 47)
+ return 1859775393;
+ else if (j <= 63)
+ return 2400959708;
+ else
+ return 2840853838;
+ }
+ function Kh(j) {
+ if (j <= 15)
+ return 1352829926;
+ else if (j <= 31)
+ return 1548603684;
+ else if (j <= 47)
+ return 1836072691;
+ else if (j <= 63)
+ return 2053994217;
+ else
+ return 0;
+ }
+ var r = [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 7,
+ 4,
+ 13,
+ 1,
+ 10,
+ 6,
+ 15,
+ 3,
+ 12,
+ 0,
+ 9,
+ 5,
+ 2,
+ 14,
+ 11,
+ 8,
+ 3,
+ 10,
+ 14,
+ 4,
+ 9,
+ 15,
+ 8,
+ 1,
+ 2,
+ 7,
+ 0,
+ 6,
+ 13,
+ 11,
+ 5,
+ 12,
+ 1,
+ 9,
+ 11,
+ 10,
+ 0,
+ 8,
+ 12,
+ 4,
+ 13,
+ 3,
+ 7,
+ 15,
+ 14,
+ 5,
+ 6,
+ 2,
+ 4,
+ 0,
+ 5,
+ 9,
+ 7,
+ 12,
+ 2,
+ 10,
+ 14,
+ 1,
+ 3,
+ 8,
+ 11,
+ 6,
+ 15,
+ 13
+ ];
+ var rh = [
+ 5,
+ 14,
+ 7,
+ 0,
+ 9,
+ 2,
+ 11,
+ 4,
+ 13,
+ 6,
+ 15,
+ 8,
+ 1,
+ 10,
+ 3,
+ 12,
+ 6,
+ 11,
+ 3,
+ 7,
+ 0,
+ 13,
+ 5,
+ 10,
+ 14,
+ 15,
+ 8,
+ 12,
+ 4,
+ 9,
+ 1,
+ 2,
+ 15,
+ 5,
+ 1,
+ 3,
+ 7,
+ 14,
+ 6,
+ 9,
+ 11,
+ 8,
+ 12,
+ 2,
+ 10,
+ 0,
+ 4,
+ 13,
+ 8,
+ 6,
+ 4,
+ 1,
+ 3,
+ 11,
+ 15,
+ 0,
+ 5,
+ 12,
+ 2,
+ 13,
+ 9,
+ 7,
+ 10,
+ 14,
+ 12,
+ 15,
+ 10,
+ 4,
+ 1,
+ 5,
+ 8,
+ 7,
+ 6,
+ 2,
+ 13,
+ 14,
+ 0,
+ 3,
+ 9,
+ 11
+ ];
+ var s = [
+ 11,
+ 14,
+ 15,
+ 12,
+ 5,
+ 8,
+ 7,
+ 9,
+ 11,
+ 13,
+ 14,
+ 15,
+ 6,
+ 7,
+ 9,
+ 8,
+ 7,
+ 6,
+ 8,
+ 13,
+ 11,
+ 9,
+ 7,
+ 15,
+ 7,
+ 12,
+ 15,
+ 9,
+ 11,
+ 7,
+ 13,
+ 12,
+ 11,
+ 13,
+ 6,
+ 7,
+ 14,
+ 9,
+ 13,
+ 15,
+ 14,
+ 8,
+ 13,
+ 6,
+ 5,
+ 12,
+ 7,
+ 5,
+ 11,
+ 12,
+ 14,
+ 15,
+ 14,
+ 15,
+ 9,
+ 8,
+ 9,
+ 14,
+ 5,
+ 6,
+ 8,
+ 6,
+ 5,
+ 12,
+ 9,
+ 15,
+ 5,
+ 11,
+ 6,
+ 8,
+ 13,
+ 12,
+ 5,
+ 12,
+ 13,
+ 14,
+ 11,
+ 8,
+ 5,
+ 6
+ ];
+ var sh = [
+ 8,
+ 9,
+ 9,
+ 11,
+ 13,
+ 15,
+ 15,
+ 5,
+ 7,
+ 7,
+ 8,
+ 11,
+ 14,
+ 14,
+ 12,
+ 6,
+ 9,
+ 13,
+ 15,
+ 7,
+ 12,
+ 8,
+ 9,
+ 11,
+ 7,
+ 7,
+ 12,
+ 7,
+ 6,
+ 15,
+ 13,
+ 11,
+ 9,
+ 7,
+ 15,
+ 11,
+ 8,
+ 6,
+ 6,
+ 14,
+ 12,
+ 13,
+ 5,
+ 14,
+ 13,
+ 13,
+ 7,
+ 5,
+ 15,
+ 5,
+ 8,
+ 11,
+ 14,
+ 14,
+ 6,
+ 14,
+ 6,
+ 9,
+ 12,
+ 9,
+ 12,
+ 5,
+ 15,
+ 8,
+ 8,
+ 5,
+ 12,
+ 9,
+ 12,
+ 5,
+ 14,
+ 6,
+ 8,
+ 13,
+ 6,
+ 5,
+ 15,
+ 13,
+ 11,
+ 11
+ ];
+ }
+});
+
+// node_modules/hash.js/lib/hash/hmac.js
+var require_hmac = __commonJS({
+ "node_modules/hash.js/lib/hash/hmac.js"(exports2, module2) {
+ "use strict";
+ var utils = require_utils6();
+ var assert = require_minimalistic_assert();
+ function Hmac(hash, key, enc) {
+ if (!(this instanceof Hmac))
+ return new Hmac(hash, key, enc);
+ this.Hash = hash;
+ this.blockSize = hash.blockSize / 8;
+ this.outSize = hash.outSize / 8;
+ this.inner = null;
+ this.outer = null;
+ this._init(utils.toArray(key, enc));
+ }
+ module2.exports = Hmac;
+ Hmac.prototype._init = function init(key) {
+ if (key.length > this.blockSize)
+ key = new this.Hash().update(key).digest();
+ assert(key.length <= this.blockSize);
+ for (var i = key.length; i < this.blockSize; i++)
+ key.push(0);
+ for (i = 0; i < key.length; i++)
+ key[i] ^= 54;
+ this.inner = new this.Hash().update(key);
+ for (i = 0; i < key.length; i++)
+ key[i] ^= 106;
+ this.outer = new this.Hash().update(key);
+ };
+ Hmac.prototype.update = function update(msg, enc) {
+ this.inner.update(msg, enc);
+ return this;
+ };
+ Hmac.prototype.digest = function digest(enc) {
+ this.outer.update(this.inner.digest());
+ return this.outer.digest(enc);
+ };
+ }
+});
+
+// node_modules/hash.js/lib/hash.js
+var require_hash = __commonJS({
+ "node_modules/hash.js/lib/hash.js"(exports2) {
+ var hash = exports2;
+ hash.utils = require_utils6();
+ hash.common = require_common();
+ hash.sha = require_sha();
+ hash.ripemd = require_ripemd();
+ hash.hmac = require_hmac();
+ hash.sha1 = hash.sha.sha1;
+ hash.sha256 = hash.sha.sha256;
+ hash.sha224 = hash.sha.sha224;
+ hash.sha384 = hash.sha.sha384;
+ hash.sha512 = hash.sha.sha512;
+ hash.ripemd160 = hash.ripemd.ripemd160;
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js
+var require_secp256k1 = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js"(exports2, module2) {
+ module2.exports = {
+ doubles: {
+ step: 4,
+ points: [
+ [
+ "e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a",
+ "f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"
+ ],
+ [
+ "8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508",
+ "11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"
+ ],
+ [
+ "175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739",
+ "d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"
+ ],
+ [
+ "363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640",
+ "4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"
+ ],
+ [
+ "8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c",
+ "4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"
+ ],
+ [
+ "723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda",
+ "96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"
+ ],
+ [
+ "eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa",
+ "5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"
+ ],
+ [
+ "100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0",
+ "cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"
+ ],
+ [
+ "e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d",
+ "9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"
+ ],
+ [
+ "feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d",
+ "e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"
+ ],
+ [
+ "da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1",
+ "9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"
+ ],
+ [
+ "53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0",
+ "5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"
+ ],
+ [
+ "8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047",
+ "10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"
+ ],
+ [
+ "385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862",
+ "283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"
+ ],
+ [
+ "6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7",
+ "7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"
+ ],
+ [
+ "3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd",
+ "56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"
+ ],
+ [
+ "85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83",
+ "7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"
+ ],
+ [
+ "948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a",
+ "53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"
+ ],
+ [
+ "6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8",
+ "bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"
+ ],
+ [
+ "e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d",
+ "4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"
+ ],
+ [
+ "e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725",
+ "7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"
+ ],
+ [
+ "213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754",
+ "4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"
+ ],
+ [
+ "4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c",
+ "17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"
+ ],
+ [
+ "fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6",
+ "6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"
+ ],
+ [
+ "76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39",
+ "c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"
+ ],
+ [
+ "c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891",
+ "893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"
+ ],
+ [
+ "d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b",
+ "febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"
+ ],
+ [
+ "b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03",
+ "2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"
+ ],
+ [
+ "e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d",
+ "eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"
+ ],
+ [
+ "a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070",
+ "7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"
+ ],
+ [
+ "90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4",
+ "e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"
+ ],
+ [
+ "8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da",
+ "662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"
+ ],
+ [
+ "e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11",
+ "1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"
+ ],
+ [
+ "8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e",
+ "efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"
+ ],
+ [
+ "e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41",
+ "2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"
+ ],
+ [
+ "b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef",
+ "67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"
+ ],
+ [
+ "d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8",
+ "db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"
+ ],
+ [
+ "324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d",
+ "648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"
+ ],
+ [
+ "4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96",
+ "35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"
+ ],
+ [
+ "9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd",
+ "ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"
+ ],
+ [
+ "6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5",
+ "9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"
+ ],
+ [
+ "a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266",
+ "40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"
+ ],
+ [
+ "7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71",
+ "34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"
+ ],
+ [
+ "928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac",
+ "c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"
+ ],
+ [
+ "85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751",
+ "1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"
+ ],
+ [
+ "ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e",
+ "493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"
+ ],
+ [
+ "827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241",
+ "c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"
+ ],
+ [
+ "eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3",
+ "be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"
+ ],
+ [
+ "e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f",
+ "4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"
+ ],
+ [
+ "1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19",
+ "aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"
+ ],
+ [
+ "146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be",
+ "b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"
+ ],
+ [
+ "fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9",
+ "6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"
+ ],
+ [
+ "da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2",
+ "8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"
+ ],
+ [
+ "a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13",
+ "7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"
+ ],
+ [
+ "174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c",
+ "ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"
+ ],
+ [
+ "959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba",
+ "2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"
+ ],
+ [
+ "d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151",
+ "e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"
+ ],
+ [
+ "64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073",
+ "d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"
+ ],
+ [
+ "8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458",
+ "38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"
+ ],
+ [
+ "13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b",
+ "69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"
+ ],
+ [
+ "bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366",
+ "d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"
+ ],
+ [
+ "8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa",
+ "40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"
+ ],
+ [
+ "8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0",
+ "620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"
+ ],
+ [
+ "dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787",
+ "7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"
+ ],
+ [
+ "f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e",
+ "ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"
+ ]
+ ]
+ },
+ naf: {
+ wnd: 7,
+ points: [
+ [
+ "f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9",
+ "388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"
+ ],
+ [
+ "2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4",
+ "d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"
+ ],
+ [
+ "5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc",
+ "6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"
+ ],
+ [
+ "acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe",
+ "cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"
+ ],
+ [
+ "774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb",
+ "d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"
+ ],
+ [
+ "f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8",
+ "ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"
+ ],
+ [
+ "d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e",
+ "581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"
+ ],
+ [
+ "defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34",
+ "4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"
+ ],
+ [
+ "2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c",
+ "85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"
+ ],
+ [
+ "352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5",
+ "321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"
+ ],
+ [
+ "2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f",
+ "2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"
+ ],
+ [
+ "9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714",
+ "73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"
+ ],
+ [
+ "daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729",
+ "a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"
+ ],
+ [
+ "c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db",
+ "2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"
+ ],
+ [
+ "6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4",
+ "e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"
+ ],
+ [
+ "1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5",
+ "b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"
+ ],
+ [
+ "605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479",
+ "2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"
+ ],
+ [
+ "62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d",
+ "80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"
+ ],
+ [
+ "80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f",
+ "1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"
+ ],
+ [
+ "7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb",
+ "d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"
+ ],
+ [
+ "d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9",
+ "eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"
+ ],
+ [
+ "49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963",
+ "758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"
+ ],
+ [
+ "77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74",
+ "958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"
+ ],
+ [
+ "f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530",
+ "e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"
+ ],
+ [
+ "463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b",
+ "5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"
+ ],
+ [
+ "f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247",
+ "cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"
+ ],
+ [
+ "caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1",
+ "cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"
+ ],
+ [
+ "2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120",
+ "4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"
+ ],
+ [
+ "7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435",
+ "91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"
+ ],
+ [
+ "754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18",
+ "673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"
+ ],
+ [
+ "e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8",
+ "59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"
+ ],
+ [
+ "186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb",
+ "3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"
+ ],
+ [
+ "df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f",
+ "55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"
+ ],
+ [
+ "5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143",
+ "efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"
+ ],
+ [
+ "290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba",
+ "e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"
+ ],
+ [
+ "af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45",
+ "f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"
+ ],
+ [
+ "766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a",
+ "744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"
+ ],
+ [
+ "59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e",
+ "c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"
+ ],
+ [
+ "f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8",
+ "e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"
+ ],
+ [
+ "7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c",
+ "30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"
+ ],
+ [
+ "948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519",
+ "e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"
+ ],
+ [
+ "7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab",
+ "100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"
+ ],
+ [
+ "3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca",
+ "ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"
+ ],
+ [
+ "d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf",
+ "8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"
+ ],
+ [
+ "1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610",
+ "68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"
+ ],
+ [
+ "733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4",
+ "f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"
+ ],
+ [
+ "15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c",
+ "d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"
+ ],
+ [
+ "a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940",
+ "edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"
+ ],
+ [
+ "e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980",
+ "a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"
+ ],
+ [
+ "311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3",
+ "66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"
+ ],
+ [
+ "34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf",
+ "9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"
+ ],
+ [
+ "f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63",
+ "4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"
+ ],
+ [
+ "d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448",
+ "fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"
+ ],
+ [
+ "32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf",
+ "5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"
+ ],
+ [
+ "7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5",
+ "8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"
+ ],
+ [
+ "ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6",
+ "8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"
+ ],
+ [
+ "16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5",
+ "5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"
+ ],
+ [
+ "eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99",
+ "f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"
+ ],
+ [
+ "78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51",
+ "f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"
+ ],
+ [
+ "494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5",
+ "42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"
+ ],
+ [
+ "a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5",
+ "204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"
+ ],
+ [
+ "c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997",
+ "4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"
+ ],
+ [
+ "841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881",
+ "73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"
+ ],
+ [
+ "5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5",
+ "39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"
+ ],
+ [
+ "36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66",
+ "d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"
+ ],
+ [
+ "336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726",
+ "ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"
+ ],
+ [
+ "8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede",
+ "6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"
+ ],
+ [
+ "1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94",
+ "60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"
+ ],
+ [
+ "85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31",
+ "3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"
+ ],
+ [
+ "29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51",
+ "b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"
+ ],
+ [
+ "a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252",
+ "ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"
+ ],
+ [
+ "4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5",
+ "cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"
+ ],
+ [
+ "d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b",
+ "6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"
+ ],
+ [
+ "ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4",
+ "322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"
+ ],
+ [
+ "af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f",
+ "6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"
+ ],
+ [
+ "e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889",
+ "2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"
+ ],
+ [
+ "591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246",
+ "b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"
+ ],
+ [
+ "11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984",
+ "998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"
+ ],
+ [
+ "3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a",
+ "b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"
+ ],
+ [
+ "cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030",
+ "bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"
+ ],
+ [
+ "c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197",
+ "6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"
+ ],
+ [
+ "c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593",
+ "c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"
+ ],
+ [
+ "a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef",
+ "21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"
+ ],
+ [
+ "347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38",
+ "60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"
+ ],
+ [
+ "da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a",
+ "49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"
+ ],
+ [
+ "c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111",
+ "5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"
+ ],
+ [
+ "4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502",
+ "7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"
+ ],
+ [
+ "3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea",
+ "be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"
+ ],
+ [
+ "cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26",
+ "8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"
+ ],
+ [
+ "b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986",
+ "39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"
+ ],
+ [
+ "d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e",
+ "62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"
+ ],
+ [
+ "48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4",
+ "25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"
+ ],
+ [
+ "dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda",
+ "ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"
+ ],
+ [
+ "6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859",
+ "cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"
+ ],
+ [
+ "e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f",
+ "f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"
+ ],
+ [
+ "eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c",
+ "6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"
+ ],
+ [
+ "13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942",
+ "fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"
+ ],
+ [
+ "ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a",
+ "1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"
+ ],
+ [
+ "b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80",
+ "5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"
+ ],
+ [
+ "ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d",
+ "438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"
+ ],
+ [
+ "8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1",
+ "cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"
+ ],
+ [
+ "52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63",
+ "c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"
+ ],
+ [
+ "e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352",
+ "6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"
+ ],
+ [
+ "7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193",
+ "ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"
+ ],
+ [
+ "5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00",
+ "9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"
+ ],
+ [
+ "32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58",
+ "ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"
+ ],
+ [
+ "e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7",
+ "d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"
+ ],
+ [
+ "8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8",
+ "c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"
+ ],
+ [
+ "4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e",
+ "67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"
+ ],
+ [
+ "3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d",
+ "cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"
+ ],
+ [
+ "674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b",
+ "299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"
+ ],
+ [
+ "d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f",
+ "f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"
+ ],
+ [
+ "30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6",
+ "462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"
+ ],
+ [
+ "be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297",
+ "62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"
+ ],
+ [
+ "93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a",
+ "7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"
+ ],
+ [
+ "b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c",
+ "ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"
+ ],
+ [
+ "d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52",
+ "4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"
+ ],
+ [
+ "d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb",
+ "bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"
+ ],
+ [
+ "463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065",
+ "bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"
+ ],
+ [
+ "7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917",
+ "603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"
+ ],
+ [
+ "74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9",
+ "cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"
+ ],
+ [
+ "30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3",
+ "553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"
+ ],
+ [
+ "9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57",
+ "712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"
+ ],
+ [
+ "176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66",
+ "ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"
+ ],
+ [
+ "75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8",
+ "9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"
+ ],
+ [
+ "809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721",
+ "9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"
+ ],
+ [
+ "1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180",
+ "4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"
+ ]
+ ]
+ }
+ };
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curves.js
+var require_curves = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/curves.js"(exports2) {
+ "use strict";
+ var curves = exports2;
+ var hash = require_hash();
+ var curve = require_curve();
+ var utils = require_utils5();
+ var assert = utils.assert;
+ function PresetCurve(options) {
+ if (options.type === "short")
+ this.curve = new curve.short(options);
+ else if (options.type === "edwards")
+ this.curve = new curve.edwards(options);
+ else
+ this.curve = new curve.mont(options);
+ this.g = this.curve.g;
+ this.n = this.curve.n;
+ this.hash = options.hash;
+ assert(this.g.validate(), "Invalid curve");
+ assert(this.g.mul(this.n).isInfinity(), "Invalid curve, G*N != O");
+ }
+ curves.PresetCurve = PresetCurve;
+ function defineCurve(name, options) {
+ Object.defineProperty(curves, name, {
+ configurable: true,
+ enumerable: true,
+ get: function() {
+ var curve2 = new PresetCurve(options);
+ Object.defineProperty(curves, name, {
+ configurable: true,
+ enumerable: true,
+ value: curve2
+ });
+ return curve2;
+ }
+ });
+ }
+ defineCurve("p192", {
+ type: "short",
+ prime: "p192",
+ p: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",
+ a: "ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",
+ b: "64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",
+ n: "ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",
+ hash: hash.sha256,
+ gRed: false,
+ g: [
+ "188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012",
+ "07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"
+ ]
+ });
+ defineCurve("p224", {
+ type: "short",
+ prime: "p224",
+ p: "ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",
+ a: "ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",
+ b: "b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",
+ n: "ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",
+ hash: hash.sha256,
+ gRed: false,
+ g: [
+ "b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21",
+ "bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"
+ ]
+ });
+ defineCurve("p256", {
+ type: "short",
+ prime: null,
+ p: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",
+ a: "ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",
+ b: "5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",
+ n: "ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",
+ hash: hash.sha256,
+ gRed: false,
+ g: [
+ "6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296",
+ "4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"
+ ]
+ });
+ defineCurve("p384", {
+ type: "short",
+ prime: null,
+ p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",
+ a: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",
+ b: "b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",
+ n: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",
+ hash: hash.sha384,
+ gRed: false,
+ g: [
+ "aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7",
+ "3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"
+ ]
+ });
+ defineCurve("p521", {
+ type: "short",
+ prime: null,
+ p: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",
+ a: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",
+ b: "00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",
+ n: "000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",
+ hash: hash.sha512,
+ gRed: false,
+ g: [
+ "000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66",
+ "00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"
+ ]
+ });
+ defineCurve("curve25519", {
+ type: "mont",
+ prime: "p25519",
+ p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",
+ a: "76d06",
+ b: "1",
+ n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",
+ hash: hash.sha256,
+ gRed: false,
+ g: [
+ "9"
+ ]
+ });
+ defineCurve("ed25519", {
+ type: "edwards",
+ prime: "p25519",
+ p: "7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",
+ a: "-1",
+ c: "1",
+ // -121665 * (121666^(-1)) (mod P)
+ d: "52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",
+ n: "1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",
+ hash: hash.sha256,
+ gRed: false,
+ g: [
+ "216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a",
+ // 4/5
+ "6666666666666666666666666666666666666666666666666666666666666658"
+ ]
+ });
+ var pre;
+ try {
+ pre = require_secp256k1();
+ } catch (e) {
+ pre = void 0;
+ }
+ defineCurve("secp256k1", {
+ type: "short",
+ prime: "k256",
+ p: "ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",
+ a: "0",
+ b: "7",
+ n: "ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",
+ h: "1",
+ hash: hash.sha256,
+ // Precomputed endomorphism
+ beta: "7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",
+ lambda: "5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",
+ basis: [
+ {
+ a: "3086d221a7d46bcde86c90e49284eb15",
+ b: "-e4437ed6010e88286f547fa90abfe4c3"
+ },
+ {
+ a: "114ca50f7a8e2f3f657c1108d9d44cfd8",
+ b: "3086d221a7d46bcde86c90e49284eb15"
+ }
+ ],
+ gRed: false,
+ g: [
+ "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
+ "483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",
+ pre
+ ]
+ });
+ }
+});
+
+// node_modules/hmac-drbg/lib/hmac-drbg.js
+var require_hmac_drbg = __commonJS({
+ "node_modules/hmac-drbg/lib/hmac-drbg.js"(exports2, module2) {
+ "use strict";
+ var hash = require_hash();
+ var utils = require_utils4();
+ var assert = require_minimalistic_assert();
+ function HmacDRBG(options) {
+ if (!(this instanceof HmacDRBG))
+ return new HmacDRBG(options);
+ this.hash = options.hash;
+ this.predResist = !!options.predResist;
+ this.outLen = this.hash.outSize;
+ this.minEntropy = options.minEntropy || this.hash.hmacStrength;
+ this._reseed = null;
+ this.reseedInterval = null;
+ this.K = null;
+ this.V = null;
+ var entropy = utils.toArray(options.entropy, options.entropyEnc || "hex");
+ var nonce = utils.toArray(options.nonce, options.nonceEnc || "hex");
+ var pers = utils.toArray(options.pers, options.persEnc || "hex");
+ assert(
+ entropy.length >= this.minEntropy / 8,
+ "Not enough entropy. Minimum is: " + this.minEntropy + " bits"
+ );
+ this._init(entropy, nonce, pers);
+ }
+ module2.exports = HmacDRBG;
+ HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
+ var seed = entropy.concat(nonce).concat(pers);
+ this.K = new Array(this.outLen / 8);
+ this.V = new Array(this.outLen / 8);
+ for (var i = 0; i < this.V.length; i++) {
+ this.K[i] = 0;
+ this.V[i] = 1;
+ }
+ this._update(seed);
+ this._reseed = 1;
+ this.reseedInterval = 281474976710656;
+ };
+ HmacDRBG.prototype._hmac = function hmac() {
+ return new hash.hmac(this.hash, this.K);
+ };
+ HmacDRBG.prototype._update = function update(seed) {
+ var kmac = this._hmac().update(this.V).update([0]);
+ if (seed)
+ kmac = kmac.update(seed);
+ this.K = kmac.digest();
+ this.V = this._hmac().update(this.V).digest();
+ if (!seed)
+ return;
+ this.K = this._hmac().update(this.V).update([1]).update(seed).digest();
+ this.V = this._hmac().update(this.V).digest();
+ };
+ HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
+ if (typeof entropyEnc !== "string") {
+ addEnc = add;
+ add = entropyEnc;
+ entropyEnc = null;
+ }
+ entropy = utils.toArray(entropy, entropyEnc);
+ add = utils.toArray(add, addEnc);
+ assert(
+ entropy.length >= this.minEntropy / 8,
+ "Not enough entropy. Minimum is: " + this.minEntropy + " bits"
+ );
+ this._update(entropy.concat(add || []));
+ this._reseed = 1;
+ };
+ HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
+ if (this._reseed > this.reseedInterval)
+ throw new Error("Reseed is required");
+ if (typeof enc !== "string") {
+ addEnc = add;
+ add = enc;
+ enc = null;
+ }
+ if (add) {
+ add = utils.toArray(add, addEnc || "hex");
+ this._update(add);
+ }
+ var temp = [];
+ while (temp.length < len) {
+ this.V = this._hmac().update(this.V).digest();
+ temp = temp.concat(this.V);
+ }
+ var res = temp.slice(0, len);
+ this._update(add);
+ this._reseed++;
+ return utils.encode(res, enc);
+ };
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/ec/key.js
+var require_key = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/ec/key.js"(exports2, module2) {
+ "use strict";
+ var BN = require_bn2();
+ var utils = require_utils5();
+ var assert = utils.assert;
+ function KeyPair(ec, options) {
+ this.ec = ec;
+ this.priv = null;
+ this.pub = null;
+ if (options.priv)
+ this._importPrivate(options.priv, options.privEnc);
+ if (options.pub)
+ this._importPublic(options.pub, options.pubEnc);
+ }
+ module2.exports = KeyPair;
+ KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
+ if (pub instanceof KeyPair)
+ return pub;
+ return new KeyPair(ec, {
+ pub,
+ pubEnc: enc
+ });
+ };
+ KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
+ if (priv instanceof KeyPair)
+ return priv;
+ return new KeyPair(ec, {
+ priv,
+ privEnc: enc
+ });
+ };
+ KeyPair.prototype.validate = function validate() {
+ var pub = this.getPublic();
+ if (pub.isInfinity())
+ return { result: false, reason: "Invalid public key" };
+ if (!pub.validate())
+ return { result: false, reason: "Public key is not a point" };
+ if (!pub.mul(this.ec.curve.n).isInfinity())
+ return { result: false, reason: "Public key * N != O" };
+ return { result: true, reason: null };
+ };
+ KeyPair.prototype.getPublic = function getPublic(compact, enc) {
+ if (typeof compact === "string") {
+ enc = compact;
+ compact = null;
+ }
+ if (!this.pub)
+ this.pub = this.ec.g.mul(this.priv);
+ if (!enc)
+ return this.pub;
+ return this.pub.encode(enc, compact);
+ };
+ KeyPair.prototype.getPrivate = function getPrivate(enc) {
+ if (enc === "hex")
+ return this.priv.toString(16, 2);
+ else
+ return this.priv;
+ };
+ KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
+ this.priv = new BN(key, enc || 16);
+ this.priv = this.priv.umod(this.ec.curve.n);
+ };
+ KeyPair.prototype._importPublic = function _importPublic(key, enc) {
+ if (key.x || key.y) {
+ if (this.ec.curve.type === "mont") {
+ assert(key.x, "Need x coordinate");
+ } else if (this.ec.curve.type === "short" || this.ec.curve.type === "edwards") {
+ assert(key.x && key.y, "Need both x and y coordinate");
+ }
+ this.pub = this.ec.curve.point(key.x, key.y);
+ return;
+ }
+ this.pub = this.ec.curve.decodePoint(key, enc);
+ };
+ KeyPair.prototype.derive = function derive(pub) {
+ if (!pub.validate()) {
+ assert(pub.validate(), "public point not validated");
+ }
+ return pub.mul(this.priv).getX();
+ };
+ KeyPair.prototype.sign = function sign(msg, enc, options) {
+ return this.ec.sign(msg, this, enc, options);
+ };
+ KeyPair.prototype.verify = function verify(msg, signature) {
+ return this.ec.verify(msg, signature, this);
+ };
+ KeyPair.prototype.inspect = function inspect() {
+ return "";
+ };
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/ec/signature.js
+var require_signature = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/ec/signature.js"(exports2, module2) {
+ "use strict";
+ var BN = require_bn2();
+ var utils = require_utils5();
+ var assert = utils.assert;
+ function Signature(options, enc) {
+ if (options instanceof Signature)
+ return options;
+ if (this._importDER(options, enc))
+ return;
+ assert(options.r && options.s, "Signature without r or s");
+ this.r = new BN(options.r, 16);
+ this.s = new BN(options.s, 16);
+ if (options.recoveryParam === void 0)
+ this.recoveryParam = null;
+ else
+ this.recoveryParam = options.recoveryParam;
+ }
+ module2.exports = Signature;
+ function Position() {
+ this.place = 0;
+ }
+ function getLength(buf, p) {
+ var initial = buf[p.place++];
+ if (!(initial & 128)) {
+ return initial;
+ }
+ var octetLen = initial & 15;
+ if (octetLen === 0 || octetLen > 4) {
+ return false;
+ }
+ var val = 0;
+ for (var i = 0, off = p.place; i < octetLen; i++, off++) {
+ val <<= 8;
+ val |= buf[off];
+ val >>>= 0;
+ }
+ if (val <= 127) {
+ return false;
+ }
+ p.place = off;
+ return val;
+ }
+ function rmPadding(buf) {
+ var i = 0;
+ var len = buf.length - 1;
+ while (!buf[i] && !(buf[i + 1] & 128) && i < len) {
+ i++;
+ }
+ if (i === 0) {
+ return buf;
+ }
+ return buf.slice(i);
+ }
+ Signature.prototype._importDER = function _importDER(data, enc) {
+ data = utils.toArray(data, enc);
+ var p = new Position();
+ if (data[p.place++] !== 48) {
+ return false;
+ }
+ var len = getLength(data, p);
+ if (len === false) {
+ return false;
+ }
+ if (len + p.place !== data.length) {
+ return false;
+ }
+ if (data[p.place++] !== 2) {
+ return false;
+ }
+ var rlen = getLength(data, p);
+ if (rlen === false) {
+ return false;
+ }
+ var r = data.slice(p.place, rlen + p.place);
+ p.place += rlen;
+ if (data[p.place++] !== 2) {
+ return false;
+ }
+ var slen = getLength(data, p);
+ if (slen === false) {
+ return false;
+ }
+ if (data.length !== slen + p.place) {
+ return false;
+ }
+ var s = data.slice(p.place, slen + p.place);
+ if (r[0] === 0) {
+ if (r[1] & 128) {
+ r = r.slice(1);
+ } else {
+ return false;
+ }
+ }
+ if (s[0] === 0) {
+ if (s[1] & 128) {
+ s = s.slice(1);
+ } else {
+ return false;
+ }
+ }
+ this.r = new BN(r);
+ this.s = new BN(s);
+ this.recoveryParam = null;
+ return true;
+ };
+ function constructLength(arr, len) {
+ if (len < 128) {
+ arr.push(len);
+ return;
+ }
+ var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);
+ arr.push(octets | 128);
+ while (--octets) {
+ arr.push(len >>> (octets << 3) & 255);
+ }
+ arr.push(len);
+ }
+ Signature.prototype.toDER = function toDER(enc) {
+ var r = this.r.toArray();
+ var s = this.s.toArray();
+ if (r[0] & 128)
+ r = [0].concat(r);
+ if (s[0] & 128)
+ s = [0].concat(s);
+ r = rmPadding(r);
+ s = rmPadding(s);
+ while (!s[0] && !(s[1] & 128)) {
+ s = s.slice(1);
+ }
+ var arr = [2];
+ constructLength(arr, r.length);
+ arr = arr.concat(r);
+ arr.push(2);
+ constructLength(arr, s.length);
+ var backHalf = arr.concat(s);
+ var res = [48];
+ constructLength(res, backHalf.length);
+ res = res.concat(backHalf);
+ return utils.encode(res, enc);
+ };
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/ec/index.js
+var require_ec = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/ec/index.js"(exports2, module2) {
+ "use strict";
+ var BN = require_bn2();
+ var HmacDRBG = require_hmac_drbg();
+ var utils = require_utils5();
+ var curves = require_curves();
+ var rand = require_brorand();
+ var assert = utils.assert;
+ var KeyPair = require_key();
+ var Signature = require_signature();
+ function EC(options) {
+ if (!(this instanceof EC))
+ return new EC(options);
+ if (typeof options === "string") {
+ assert(
+ Object.prototype.hasOwnProperty.call(curves, options),
+ "Unknown curve " + options
+ );
+ options = curves[options];
+ }
+ if (options instanceof curves.PresetCurve)
+ options = { curve: options };
+ this.curve = options.curve.curve;
+ this.n = this.curve.n;
+ this.nh = this.n.ushrn(1);
+ this.g = this.curve.g;
+ this.g = options.curve.g;
+ this.g.precompute(options.curve.n.bitLength() + 1);
+ this.hash = options.hash || options.curve.hash;
+ }
+ module2.exports = EC;
+ EC.prototype.keyPair = function keyPair(options) {
+ return new KeyPair(this, options);
+ };
+ EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
+ return KeyPair.fromPrivate(this, priv, enc);
+ };
+ EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
+ return KeyPair.fromPublic(this, pub, enc);
+ };
+ EC.prototype.genKeyPair = function genKeyPair(options) {
+ if (!options)
+ options = {};
+ var drbg = new HmacDRBG({
+ hash: this.hash,
+ pers: options.pers,
+ persEnc: options.persEnc || "utf8",
+ entropy: options.entropy || rand(this.hash.hmacStrength),
+ entropyEnc: options.entropy && options.entropyEnc || "utf8",
+ nonce: this.n.toArray()
+ });
+ var bytes = this.n.byteLength();
+ var ns2 = this.n.sub(new BN(2));
+ for (; ; ) {
+ var priv = new BN(drbg.generate(bytes));
+ if (priv.cmp(ns2) > 0)
+ continue;
+ priv.iaddn(1);
+ return this.keyFromPrivate(priv);
+ }
+ };
+ EC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {
+ var delta = msg.byteLength() * 8 - this.n.bitLength();
+ if (delta > 0)
+ msg = msg.ushrn(delta);
+ if (!truncOnly && msg.cmp(this.n) >= 0)
+ return msg.sub(this.n);
+ else
+ return msg;
+ };
+ EC.prototype.sign = function sign(msg, key, enc, options) {
+ if (typeof enc === "object") {
+ options = enc;
+ enc = null;
+ }
+ if (!options)
+ options = {};
+ key = this.keyFromPrivate(key, enc);
+ msg = this._truncateToN(new BN(msg, 16));
+ var bytes = this.n.byteLength();
+ var bkey = key.getPrivate().toArray("be", bytes);
+ var nonce = msg.toArray("be", bytes);
+ var drbg = new HmacDRBG({
+ hash: this.hash,
+ entropy: bkey,
+ nonce,
+ pers: options.pers,
+ persEnc: options.persEnc || "utf8"
+ });
+ var ns1 = this.n.sub(new BN(1));
+ for (var iter = 0; ; iter++) {
+ var k = options.k ? options.k(iter) : new BN(drbg.generate(this.n.byteLength()));
+ k = this._truncateToN(k, true);
+ if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)
+ continue;
+ var kp = this.g.mul(k);
+ if (kp.isInfinity())
+ continue;
+ var kpX = kp.getX();
+ var r = kpX.umod(this.n);
+ if (r.cmpn(0) === 0)
+ continue;
+ var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
+ s = s.umod(this.n);
+ if (s.cmpn(0) === 0)
+ continue;
+ var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r) !== 0 ? 2 : 0);
+ if (options.canonical && s.cmp(this.nh) > 0) {
+ s = this.n.sub(s);
+ recoveryParam ^= 1;
+ }
+ return new Signature({ r, s, recoveryParam });
+ }
+ };
+ EC.prototype.verify = function verify(msg, signature, key, enc) {
+ msg = this._truncateToN(new BN(msg, 16));
+ key = this.keyFromPublic(key, enc);
+ signature = new Signature(signature, "hex");
+ var r = signature.r;
+ var s = signature.s;
+ if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)
+ return false;
+ if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)
+ return false;
+ var sinv = s.invm(this.n);
+ var u1 = sinv.mul(msg).umod(this.n);
+ var u2 = sinv.mul(r).umod(this.n);
+ var p;
+ if (!this.curve._maxwellTrick) {
+ p = this.g.mulAdd(u1, key.getPublic(), u2);
+ if (p.isInfinity())
+ return false;
+ return p.getX().umod(this.n).cmp(r) === 0;
+ }
+ p = this.g.jmulAdd(u1, key.getPublic(), u2);
+ if (p.isInfinity())
+ return false;
+ return p.eqXToP(r);
+ };
+ EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
+ assert((3 & j) === j, "The recovery param is more than two bits");
+ signature = new Signature(signature, enc);
+ var n = this.n;
+ var e = new BN(msg);
+ var r = signature.r;
+ var s = signature.s;
+ var isYOdd = j & 1;
+ var isSecondKey = j >> 1;
+ if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)
+ throw new Error("Unable to find sencond key candinate");
+ if (isSecondKey)
+ r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
+ else
+ r = this.curve.pointFromX(r, isYOdd);
+ var rInv = signature.r.invm(n);
+ var s1 = n.sub(e).mul(rInv).umod(n);
+ var s2 = s.mul(rInv).umod(n);
+ return this.g.mulAdd(s1, r, s2);
+ };
+ EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
+ signature = new Signature(signature, enc);
+ if (signature.recoveryParam !== null)
+ return signature.recoveryParam;
+ for (var i = 0; i < 4; i++) {
+ var Qprime;
+ try {
+ Qprime = this.recoverPubKey(e, signature, i);
+ } catch (e2) {
+ continue;
+ }
+ if (Qprime.eq(Q))
+ return i;
+ }
+ throw new Error("Unable to find valid recovery factor");
+ };
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/eddsa/key.js
+var require_key2 = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/eddsa/key.js"(exports2, module2) {
+ "use strict";
+ var utils = require_utils5();
+ var assert = utils.assert;
+ var parseBytes = utils.parseBytes;
+ var cachedProperty = utils.cachedProperty;
+ function KeyPair(eddsa, params) {
+ this.eddsa = eddsa;
+ this._secret = parseBytes(params.secret);
+ if (eddsa.isPoint(params.pub))
+ this._pub = params.pub;
+ else
+ this._pubBytes = parseBytes(params.pub);
+ }
+ KeyPair.fromPublic = function fromPublic(eddsa, pub) {
+ if (pub instanceof KeyPair)
+ return pub;
+ return new KeyPair(eddsa, { pub });
+ };
+ KeyPair.fromSecret = function fromSecret(eddsa, secret) {
+ if (secret instanceof KeyPair)
+ return secret;
+ return new KeyPair(eddsa, { secret });
+ };
+ KeyPair.prototype.secret = function secret() {
+ return this._secret;
+ };
+ cachedProperty(KeyPair, "pubBytes", function pubBytes() {
+ return this.eddsa.encodePoint(this.pub());
+ });
+ cachedProperty(KeyPair, "pub", function pub() {
+ if (this._pubBytes)
+ return this.eddsa.decodePoint(this._pubBytes);
+ return this.eddsa.g.mul(this.priv());
+ });
+ cachedProperty(KeyPair, "privBytes", function privBytes() {
+ var eddsa = this.eddsa;
+ var hash = this.hash();
+ var lastIx = eddsa.encodingLength - 1;
+ var a = hash.slice(0, eddsa.encodingLength);
+ a[0] &= 248;
+ a[lastIx] &= 127;
+ a[lastIx] |= 64;
+ return a;
+ });
+ cachedProperty(KeyPair, "priv", function priv() {
+ return this.eddsa.decodeInt(this.privBytes());
+ });
+ cachedProperty(KeyPair, "hash", function hash() {
+ return this.eddsa.hash().update(this.secret()).digest();
+ });
+ cachedProperty(KeyPair, "messagePrefix", function messagePrefix() {
+ return this.hash().slice(this.eddsa.encodingLength);
+ });
+ KeyPair.prototype.sign = function sign(message) {
+ assert(this._secret, "KeyPair can only verify");
+ return this.eddsa.sign(message, this);
+ };
+ KeyPair.prototype.verify = function verify(message, sig) {
+ return this.eddsa.verify(message, sig, this);
+ };
+ KeyPair.prototype.getSecret = function getSecret(enc) {
+ assert(this._secret, "KeyPair is public only");
+ return utils.encode(this.secret(), enc);
+ };
+ KeyPair.prototype.getPublic = function getPublic(enc) {
+ return utils.encode(this.pubBytes(), enc);
+ };
+ module2.exports = KeyPair;
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/eddsa/signature.js
+var require_signature2 = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/eddsa/signature.js"(exports2, module2) {
+ "use strict";
+ var BN = require_bn2();
+ var utils = require_utils5();
+ var assert = utils.assert;
+ var cachedProperty = utils.cachedProperty;
+ var parseBytes = utils.parseBytes;
+ function Signature(eddsa, sig) {
+ this.eddsa = eddsa;
+ if (typeof sig !== "object")
+ sig = parseBytes(sig);
+ if (Array.isArray(sig)) {
+ sig = {
+ R: sig.slice(0, eddsa.encodingLength),
+ S: sig.slice(eddsa.encodingLength)
+ };
+ }
+ assert(sig.R && sig.S, "Signature without R or S");
+ if (eddsa.isPoint(sig.R))
+ this._R = sig.R;
+ if (sig.S instanceof BN)
+ this._S = sig.S;
+ this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
+ this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
+ }
+ cachedProperty(Signature, "S", function S() {
+ return this.eddsa.decodeInt(this.Sencoded());
+ });
+ cachedProperty(Signature, "R", function R() {
+ return this.eddsa.decodePoint(this.Rencoded());
+ });
+ cachedProperty(Signature, "Rencoded", function Rencoded() {
+ return this.eddsa.encodePoint(this.R());
+ });
+ cachedProperty(Signature, "Sencoded", function Sencoded() {
+ return this.eddsa.encodeInt(this.S());
+ });
+ Signature.prototype.toBytes = function toBytes() {
+ return this.Rencoded().concat(this.Sencoded());
+ };
+ Signature.prototype.toHex = function toHex() {
+ return utils.encode(this.toBytes(), "hex").toUpperCase();
+ };
+ module2.exports = Signature;
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/eddsa/index.js
+var require_eddsa = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic/eddsa/index.js"(exports2, module2) {
+ "use strict";
+ var hash = require_hash();
+ var curves = require_curves();
+ var utils = require_utils5();
+ var assert = utils.assert;
+ var parseBytes = utils.parseBytes;
+ var KeyPair = require_key2();
+ var Signature = require_signature2();
+ function EDDSA(curve) {
+ assert(curve === "ed25519", "only tested with ed25519 so far");
+ if (!(this instanceof EDDSA))
+ return new EDDSA(curve);
+ curve = curves[curve].curve;
+ this.curve = curve;
+ this.g = curve.g;
+ this.g.precompute(curve.n.bitLength() + 1);
+ this.pointClass = curve.point().constructor;
+ this.encodingLength = Math.ceil(curve.n.bitLength() / 8);
+ this.hash = hash.sha512;
+ }
+ module2.exports = EDDSA;
+ EDDSA.prototype.sign = function sign(message, secret) {
+ message = parseBytes(message);
+ var key = this.keyFromSecret(secret);
+ var r = this.hashInt(key.messagePrefix(), message);
+ var R = this.g.mul(r);
+ var Rencoded = this.encodePoint(R);
+ var s_ = this.hashInt(Rencoded, key.pubBytes(), message).mul(key.priv());
+ var S = r.add(s_).umod(this.curve.n);
+ return this.makeSignature({ R, S, Rencoded });
+ };
+ EDDSA.prototype.verify = function verify(message, sig, pub) {
+ message = parseBytes(message);
+ sig = this.makeSignature(sig);
+ var key = this.keyFromPublic(pub);
+ var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
+ var SG = this.g.mul(sig.S());
+ var RplusAh = sig.R().add(key.pub().mul(h));
+ return RplusAh.eq(SG);
+ };
+ EDDSA.prototype.hashInt = function hashInt() {
+ var hash2 = this.hash();
+ for (var i = 0; i < arguments.length; i++)
+ hash2.update(arguments[i]);
+ return utils.intFromLE(hash2.digest()).umod(this.curve.n);
+ };
+ EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
+ return KeyPair.fromPublic(this, pub);
+ };
+ EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
+ return KeyPair.fromSecret(this, secret);
+ };
+ EDDSA.prototype.makeSignature = function makeSignature(sig) {
+ if (sig instanceof Signature)
+ return sig;
+ return new Signature(this, sig);
+ };
+ EDDSA.prototype.encodePoint = function encodePoint(point) {
+ var enc = point.getY().toArray("le", this.encodingLength);
+ enc[this.encodingLength - 1] |= point.getX().isOdd() ? 128 : 0;
+ return enc;
+ };
+ EDDSA.prototype.decodePoint = function decodePoint(bytes) {
+ bytes = utils.parseBytes(bytes);
+ var lastIx = bytes.length - 1;
+ var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~128);
+ var xIsOdd = (bytes[lastIx] & 128) !== 0;
+ var y = utils.intFromLE(normed);
+ return this.curve.pointFromY(y, xIsOdd);
+ };
+ EDDSA.prototype.encodeInt = function encodeInt(num) {
+ return num.toArray("le", this.encodingLength);
+ };
+ EDDSA.prototype.decodeInt = function decodeInt(bytes) {
+ return utils.intFromLE(bytes);
+ };
+ EDDSA.prototype.isPoint = function isPoint(val) {
+ return val instanceof this.pointClass;
+ };
+ }
+});
+
+// node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic.js
+var require_elliptic = __commonJS({
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/lib/elliptic.js"(exports2) {
+ "use strict";
+ var elliptic = exports2;
+ elliptic.version = require_package().version;
+ elliptic.utils = require_utils5();
+ elliptic.rand = require_brorand();
+ elliptic.curve = require_curve();
+ elliptic.curves = require_curves();
+ elliptic.ec = require_ec();
+ elliptic.eddsa = require_eddsa();
+ }
+});
+
+// node_modules/@ethersproject/signing-key/lib/elliptic.js
+var require_elliptic2 = __commonJS({
+ "node_modules/@ethersproject/signing-key/lib/elliptic.js"(exports2) {
+ "use strict";
+ var __importDefault13 = exports2 && exports2.__importDefault || function(mod) {
+ return mod && mod.__esModule ? mod : { "default": mod };
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.EC = void 0;
+ var elliptic_1 = __importDefault13(require_elliptic());
+ var EC = elliptic_1.default.ec;
+ exports2.EC = EC;
+ }
+});
+
+// node_modules/@ethersproject/signing-key/lib/_version.js
+var require_version7 = __commonJS({
+ "node_modules/@ethersproject/signing-key/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "signing-key/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/signing-key/lib/index.js
+var require_lib13 = __commonJS({
+ "node_modules/@ethersproject/signing-key/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.computePublicKey = exports2.recoverPublicKey = exports2.SigningKey = void 0;
+ var elliptic_1 = require_elliptic2();
+ var bytes_1 = require_lib6();
+ var properties_1 = require_lib12();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version7();
+ var logger = new logger_1.Logger(_version_1.version);
+ var _curve = null;
+ function getCurve() {
+ if (!_curve) {
+ _curve = new elliptic_1.EC("secp256k1");
+ }
+ return _curve;
+ }
+ var SigningKey = (
+ /** @class */
+ function() {
+ function SigningKey2(privateKey) {
+ (0, properties_1.defineReadOnly)(this, "curve", "secp256k1");
+ (0, properties_1.defineReadOnly)(this, "privateKey", (0, bytes_1.hexlify)(privateKey));
+ if ((0, bytes_1.hexDataLength)(this.privateKey) !== 32) {
+ logger.throwArgumentError("invalid private key", "privateKey", "[[ REDACTED ]]");
+ }
+ var keyPair = getCurve().keyFromPrivate((0, bytes_1.arrayify)(this.privateKey));
+ (0, properties_1.defineReadOnly)(this, "publicKey", "0x" + keyPair.getPublic(false, "hex"));
+ (0, properties_1.defineReadOnly)(this, "compressedPublicKey", "0x" + keyPair.getPublic(true, "hex"));
+ (0, properties_1.defineReadOnly)(this, "_isSigningKey", true);
+ }
+ SigningKey2.prototype._addPoint = function(other) {
+ var p0 = getCurve().keyFromPublic((0, bytes_1.arrayify)(this.publicKey));
+ var p1 = getCurve().keyFromPublic((0, bytes_1.arrayify)(other));
+ return "0x" + p0.pub.add(p1.pub).encodeCompressed("hex");
+ };
+ SigningKey2.prototype.signDigest = function(digest) {
+ var keyPair = getCurve().keyFromPrivate((0, bytes_1.arrayify)(this.privateKey));
+ var digestBytes = (0, bytes_1.arrayify)(digest);
+ if (digestBytes.length !== 32) {
+ logger.throwArgumentError("bad digest length", "digest", digest);
+ }
+ var signature = keyPair.sign(digestBytes, { canonical: true });
+ return (0, bytes_1.splitSignature)({
+ recoveryParam: signature.recoveryParam,
+ r: (0, bytes_1.hexZeroPad)("0x" + signature.r.toString(16), 32),
+ s: (0, bytes_1.hexZeroPad)("0x" + signature.s.toString(16), 32)
+ });
+ };
+ SigningKey2.prototype.computeSharedSecret = function(otherKey) {
+ var keyPair = getCurve().keyFromPrivate((0, bytes_1.arrayify)(this.privateKey));
+ var otherKeyPair = getCurve().keyFromPublic((0, bytes_1.arrayify)(computePublicKey(otherKey)));
+ return (0, bytes_1.hexZeroPad)("0x" + keyPair.derive(otherKeyPair.getPublic()).toString(16), 32);
+ };
+ SigningKey2.isSigningKey = function(value) {
+ return !!(value && value._isSigningKey);
+ };
+ return SigningKey2;
+ }()
+ );
+ exports2.SigningKey = SigningKey;
+ function recoverPublicKey(digest, signature) {
+ var sig = (0, bytes_1.splitSignature)(signature);
+ var rs = { r: (0, bytes_1.arrayify)(sig.r), s: (0, bytes_1.arrayify)(sig.s) };
+ return "0x" + getCurve().recoverPubKey((0, bytes_1.arrayify)(digest), rs, sig.recoveryParam).encode("hex", false);
+ }
+ exports2.recoverPublicKey = recoverPublicKey;
+ function computePublicKey(key, compressed) {
+ var bytes = (0, bytes_1.arrayify)(key);
+ if (bytes.length === 32) {
+ var signingKey = new SigningKey(bytes);
+ if (compressed) {
+ return "0x" + getCurve().keyFromPrivate(bytes).getPublic(true, "hex");
+ }
+ return signingKey.publicKey;
+ } else if (bytes.length === 33) {
+ if (compressed) {
+ return (0, bytes_1.hexlify)(bytes);
+ }
+ return "0x" + getCurve().keyFromPublic(bytes).getPublic(false, "hex");
+ } else if (bytes.length === 65) {
+ if (!compressed) {
+ return (0, bytes_1.hexlify)(bytes);
+ }
+ return "0x" + getCurve().keyFromPublic(bytes).getPublic(true, "hex");
+ }
+ return logger.throwArgumentError("invalid public or private key", "key", "[REDACTED]");
+ }
+ exports2.computePublicKey = computePublicKey;
+ }
+});
+
+// node_modules/@ethersproject/transactions/lib/_version.js
+var require_version8 = __commonJS({
+ "node_modules/@ethersproject/transactions/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "transactions/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/transactions/lib/index.js
+var require_lib14 = __commonJS({
+ "node_modules/@ethersproject/transactions/lib/index.js"(exports2) {
+ "use strict";
+ var __createBinding13 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() {
+ return m[k];
+ } });
+ } : function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+ });
+ var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+ } : function(o, v) {
+ o["default"] = v;
+ });
+ var __importStar13 = exports2 && exports2.__importStar || function(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
+ __createBinding13(result, mod, k);
+ }
+ __setModuleDefault(result, mod);
+ return result;
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.parse = exports2.serialize = exports2.accessListify = exports2.recoverAddress = exports2.computeAddress = exports2.TransactionTypes = void 0;
+ var address_1 = require_lib10();
+ var bignumber_1 = require_lib7();
+ var bytes_1 = require_lib6();
+ var constants_1 = require_lib11();
+ var keccak256_1 = require_lib8();
+ var properties_1 = require_lib12();
+ var RLP = __importStar13(require_lib9());
+ var signing_key_1 = require_lib13();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version8();
+ var logger = new logger_1.Logger(_version_1.version);
+ var TransactionTypes;
+ (function(TransactionTypes2) {
+ TransactionTypes2[TransactionTypes2["legacy"] = 0] = "legacy";
+ TransactionTypes2[TransactionTypes2["eip2930"] = 1] = "eip2930";
+ TransactionTypes2[TransactionTypes2["eip1559"] = 2] = "eip1559";
+ })(TransactionTypes = exports2.TransactionTypes || (exports2.TransactionTypes = {}));
+ function handleAddress(value) {
+ if (value === "0x") {
+ return null;
+ }
+ return (0, address_1.getAddress)(value);
+ }
+ function handleNumber(value) {
+ if (value === "0x") {
+ return constants_1.Zero;
+ }
+ return bignumber_1.BigNumber.from(value);
+ }
+ var transactionFields = [
+ { name: "nonce", maxLength: 32, numeric: true },
+ { name: "gasPrice", maxLength: 32, numeric: true },
+ { name: "gasLimit", maxLength: 32, numeric: true },
+ { name: "to", length: 20 },
+ { name: "value", maxLength: 32, numeric: true },
+ { name: "data" }
+ ];
+ var allowedTransactionKeys = {
+ chainId: true,
+ data: true,
+ gasLimit: true,
+ gasPrice: true,
+ nonce: true,
+ to: true,
+ type: true,
+ value: true
+ };
+ function computeAddress(key) {
+ var publicKey = (0, signing_key_1.computePublicKey)(key);
+ return (0, address_1.getAddress)((0, bytes_1.hexDataSlice)((0, keccak256_1.keccak256)((0, bytes_1.hexDataSlice)(publicKey, 1)), 12));
+ }
+ exports2.computeAddress = computeAddress;
+ function recoverAddress(digest, signature) {
+ return computeAddress((0, signing_key_1.recoverPublicKey)((0, bytes_1.arrayify)(digest), signature));
+ }
+ exports2.recoverAddress = recoverAddress;
+ function formatNumber(value, name) {
+ var result = (0, bytes_1.stripZeros)(bignumber_1.BigNumber.from(value).toHexString());
+ if (result.length > 32) {
+ logger.throwArgumentError("invalid length for " + name, "transaction:" + name, value);
+ }
+ return result;
+ }
+ function accessSetify(addr, storageKeys) {
+ return {
+ address: (0, address_1.getAddress)(addr),
+ storageKeys: (storageKeys || []).map(function(storageKey, index) {
+ if ((0, bytes_1.hexDataLength)(storageKey) !== 32) {
+ logger.throwArgumentError("invalid access list storageKey", "accessList[" + addr + ":" + index + "]", storageKey);
+ }
+ return storageKey.toLowerCase();
+ })
+ };
+ }
+ function accessListify(value) {
+ if (Array.isArray(value)) {
+ return value.map(function(set, index) {
+ if (Array.isArray(set)) {
+ if (set.length > 2) {
+ logger.throwArgumentError("access list expected to be [ address, storageKeys[] ]", "value[" + index + "]", set);
+ }
+ return accessSetify(set[0], set[1]);
+ }
+ return accessSetify(set.address, set.storageKeys);
+ });
+ }
+ var result = Object.keys(value).map(function(addr) {
+ var storageKeys = value[addr].reduce(function(accum, storageKey) {
+ accum[storageKey] = true;
+ return accum;
+ }, {});
+ return accessSetify(addr, Object.keys(storageKeys).sort());
+ });
+ result.sort(function(a, b) {
+ return a.address.localeCompare(b.address);
+ });
+ return result;
+ }
+ exports2.accessListify = accessListify;
+ function formatAccessList(value) {
+ return accessListify(value).map(function(set) {
+ return [set.address, set.storageKeys];
+ });
+ }
+ function _serializeEip1559(transaction, signature) {
+ if (transaction.gasPrice != null) {
+ var gasPrice = bignumber_1.BigNumber.from(transaction.gasPrice);
+ var maxFeePerGas = bignumber_1.BigNumber.from(transaction.maxFeePerGas || 0);
+ if (!gasPrice.eq(maxFeePerGas)) {
+ logger.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas", "tx", {
+ gasPrice,
+ maxFeePerGas
+ });
+ }
+ }
+ var fields = [
+ formatNumber(transaction.chainId || 0, "chainId"),
+ formatNumber(transaction.nonce || 0, "nonce"),
+ formatNumber(transaction.maxPriorityFeePerGas || 0, "maxPriorityFeePerGas"),
+ formatNumber(transaction.maxFeePerGas || 0, "maxFeePerGas"),
+ formatNumber(transaction.gasLimit || 0, "gasLimit"),
+ transaction.to != null ? (0, address_1.getAddress)(transaction.to) : "0x",
+ formatNumber(transaction.value || 0, "value"),
+ transaction.data || "0x",
+ formatAccessList(transaction.accessList || [])
+ ];
+ if (signature) {
+ var sig = (0, bytes_1.splitSignature)(signature);
+ fields.push(formatNumber(sig.recoveryParam, "recoveryParam"));
+ fields.push((0, bytes_1.stripZeros)(sig.r));
+ fields.push((0, bytes_1.stripZeros)(sig.s));
+ }
+ return (0, bytes_1.hexConcat)(["0x02", RLP.encode(fields)]);
+ }
+ function _serializeEip2930(transaction, signature) {
+ var fields = [
+ formatNumber(transaction.chainId || 0, "chainId"),
+ formatNumber(transaction.nonce || 0, "nonce"),
+ formatNumber(transaction.gasPrice || 0, "gasPrice"),
+ formatNumber(transaction.gasLimit || 0, "gasLimit"),
+ transaction.to != null ? (0, address_1.getAddress)(transaction.to) : "0x",
+ formatNumber(transaction.value || 0, "value"),
+ transaction.data || "0x",
+ formatAccessList(transaction.accessList || [])
+ ];
+ if (signature) {
+ var sig = (0, bytes_1.splitSignature)(signature);
+ fields.push(formatNumber(sig.recoveryParam, "recoveryParam"));
+ fields.push((0, bytes_1.stripZeros)(sig.r));
+ fields.push((0, bytes_1.stripZeros)(sig.s));
+ }
+ return (0, bytes_1.hexConcat)(["0x01", RLP.encode(fields)]);
+ }
+ function _serialize(transaction, signature) {
+ (0, properties_1.checkProperties)(transaction, allowedTransactionKeys);
+ var raw = [];
+ transactionFields.forEach(function(fieldInfo) {
+ var value = transaction[fieldInfo.name] || [];
+ var options = {};
+ if (fieldInfo.numeric) {
+ options.hexPad = "left";
+ }
+ value = (0, bytes_1.arrayify)((0, bytes_1.hexlify)(value, options));
+ if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) {
+ logger.throwArgumentError("invalid length for " + fieldInfo.name, "transaction:" + fieldInfo.name, value);
+ }
+ if (fieldInfo.maxLength) {
+ value = (0, bytes_1.stripZeros)(value);
+ if (value.length > fieldInfo.maxLength) {
+ logger.throwArgumentError("invalid length for " + fieldInfo.name, "transaction:" + fieldInfo.name, value);
+ }
+ }
+ raw.push((0, bytes_1.hexlify)(value));
+ });
+ var chainId = 0;
+ if (transaction.chainId != null) {
+ chainId = transaction.chainId;
+ if (typeof chainId !== "number") {
+ logger.throwArgumentError("invalid transaction.chainId", "transaction", transaction);
+ }
+ } else if (signature && !(0, bytes_1.isBytesLike)(signature) && signature.v > 28) {
+ chainId = Math.floor((signature.v - 35) / 2);
+ }
+ if (chainId !== 0) {
+ raw.push((0, bytes_1.hexlify)(chainId));
+ raw.push("0x");
+ raw.push("0x");
+ }
+ if (!signature) {
+ return RLP.encode(raw);
+ }
+ var sig = (0, bytes_1.splitSignature)(signature);
+ var v = 27 + sig.recoveryParam;
+ if (chainId !== 0) {
+ raw.pop();
+ raw.pop();
+ raw.pop();
+ v += chainId * 2 + 8;
+ if (sig.v > 28 && sig.v !== v) {
+ logger.throwArgumentError("transaction.chainId/signature.v mismatch", "signature", signature);
+ }
+ } else if (sig.v !== v) {
+ logger.throwArgumentError("transaction.chainId/signature.v mismatch", "signature", signature);
+ }
+ raw.push((0, bytes_1.hexlify)(v));
+ raw.push((0, bytes_1.stripZeros)((0, bytes_1.arrayify)(sig.r)));
+ raw.push((0, bytes_1.stripZeros)((0, bytes_1.arrayify)(sig.s)));
+ return RLP.encode(raw);
+ }
+ function serialize(transaction, signature) {
+ if (transaction.type == null || transaction.type === 0) {
+ if (transaction.accessList != null) {
+ logger.throwArgumentError("untyped transactions do not support accessList; include type: 1", "transaction", transaction);
+ }
+ return _serialize(transaction, signature);
+ }
+ switch (transaction.type) {
+ case 1:
+ return _serializeEip2930(transaction, signature);
+ case 2:
+ return _serializeEip1559(transaction, signature);
+ default:
+ break;
+ }
+ return logger.throwError("unsupported transaction type: " + transaction.type, logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "serializeTransaction",
+ transactionType: transaction.type
+ });
+ }
+ exports2.serialize = serialize;
+ function _parseEipSignature(tx, fields, serialize2) {
+ try {
+ var recid = handleNumber(fields[0]).toNumber();
+ if (recid !== 0 && recid !== 1) {
+ throw new Error("bad recid");
+ }
+ tx.v = recid;
+ } catch (error) {
+ logger.throwArgumentError("invalid v for transaction type: 1", "v", fields[0]);
+ }
+ tx.r = (0, bytes_1.hexZeroPad)(fields[1], 32);
+ tx.s = (0, bytes_1.hexZeroPad)(fields[2], 32);
+ try {
+ var digest = (0, keccak256_1.keccak256)(serialize2(tx));
+ tx.from = recoverAddress(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v });
+ } catch (error) {
+ }
+ }
+ function _parseEip1559(payload) {
+ var transaction = RLP.decode(payload.slice(1));
+ if (transaction.length !== 9 && transaction.length !== 12) {
+ logger.throwArgumentError("invalid component count for transaction type: 2", "payload", (0, bytes_1.hexlify)(payload));
+ }
+ var maxPriorityFeePerGas = handleNumber(transaction[2]);
+ var maxFeePerGas = handleNumber(transaction[3]);
+ var tx = {
+ type: 2,
+ chainId: handleNumber(transaction[0]).toNumber(),
+ nonce: handleNumber(transaction[1]).toNumber(),
+ maxPriorityFeePerGas,
+ maxFeePerGas,
+ gasPrice: null,
+ gasLimit: handleNumber(transaction[4]),
+ to: handleAddress(transaction[5]),
+ value: handleNumber(transaction[6]),
+ data: transaction[7],
+ accessList: accessListify(transaction[8])
+ };
+ if (transaction.length === 9) {
+ return tx;
+ }
+ tx.hash = (0, keccak256_1.keccak256)(payload);
+ _parseEipSignature(tx, transaction.slice(9), _serializeEip1559);
+ return tx;
+ }
+ function _parseEip2930(payload) {
+ var transaction = RLP.decode(payload.slice(1));
+ if (transaction.length !== 8 && transaction.length !== 11) {
+ logger.throwArgumentError("invalid component count for transaction type: 1", "payload", (0, bytes_1.hexlify)(payload));
+ }
+ var tx = {
+ type: 1,
+ chainId: handleNumber(transaction[0]).toNumber(),
+ nonce: handleNumber(transaction[1]).toNumber(),
+ gasPrice: handleNumber(transaction[2]),
+ gasLimit: handleNumber(transaction[3]),
+ to: handleAddress(transaction[4]),
+ value: handleNumber(transaction[5]),
+ data: transaction[6],
+ accessList: accessListify(transaction[7])
+ };
+ if (transaction.length === 8) {
+ return tx;
+ }
+ tx.hash = (0, keccak256_1.keccak256)(payload);
+ _parseEipSignature(tx, transaction.slice(8), _serializeEip2930);
+ return tx;
+ }
+ function _parse(rawTransaction) {
+ var transaction = RLP.decode(rawTransaction);
+ if (transaction.length !== 9 && transaction.length !== 6) {
+ logger.throwArgumentError("invalid raw transaction", "rawTransaction", rawTransaction);
+ }
+ var tx = {
+ nonce: handleNumber(transaction[0]).toNumber(),
+ gasPrice: handleNumber(transaction[1]),
+ gasLimit: handleNumber(transaction[2]),
+ to: handleAddress(transaction[3]),
+ value: handleNumber(transaction[4]),
+ data: transaction[5],
+ chainId: 0
+ };
+ if (transaction.length === 6) {
+ return tx;
+ }
+ try {
+ tx.v = bignumber_1.BigNumber.from(transaction[6]).toNumber();
+ } catch (error) {
+ return tx;
+ }
+ tx.r = (0, bytes_1.hexZeroPad)(transaction[7], 32);
+ tx.s = (0, bytes_1.hexZeroPad)(transaction[8], 32);
+ if (bignumber_1.BigNumber.from(tx.r).isZero() && bignumber_1.BigNumber.from(tx.s).isZero()) {
+ tx.chainId = tx.v;
+ tx.v = 0;
+ } else {
+ tx.chainId = Math.floor((tx.v - 35) / 2);
+ if (tx.chainId < 0) {
+ tx.chainId = 0;
+ }
+ var recoveryParam = tx.v - 27;
+ var raw = transaction.slice(0, 6);
+ if (tx.chainId !== 0) {
+ raw.push((0, bytes_1.hexlify)(tx.chainId));
+ raw.push("0x");
+ raw.push("0x");
+ recoveryParam -= tx.chainId * 2 + 8;
+ }
+ var digest = (0, keccak256_1.keccak256)(RLP.encode(raw));
+ try {
+ tx.from = recoverAddress(digest, { r: (0, bytes_1.hexlify)(tx.r), s: (0, bytes_1.hexlify)(tx.s), recoveryParam });
+ } catch (error) {
+ }
+ tx.hash = (0, keccak256_1.keccak256)(rawTransaction);
+ }
+ tx.type = null;
+ return tx;
+ }
+ function parse(rawTransaction) {
+ var payload = (0, bytes_1.arrayify)(rawTransaction);
+ if (payload[0] > 127) {
+ return _parse(payload);
+ }
+ switch (payload[0]) {
+ case 1:
+ return _parseEip2930(payload);
+ case 2:
+ return _parseEip1559(payload);
+ default:
+ break;
+ }
+ return logger.throwError("unsupported transaction type: " + payload[0], logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "parseTransaction",
+ transactionType: payload[0]
+ });
+ }
+ exports2.parse = parse;
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/_version.js
+var require_version9 = __commonJS({
+ "node_modules/@ethersproject/abi/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "abi/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/fragments.js
+var require_fragments = __commonJS({
+ "node_modules/@ethersproject/abi/lib/fragments.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.ErrorFragment = exports2.FunctionFragment = exports2.ConstructorFragment = exports2.EventFragment = exports2.Fragment = exports2.ParamType = exports2.FormatTypes = void 0;
+ var bignumber_1 = require_lib7();
+ var properties_1 = require_lib12();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version9();
+ var logger = new logger_1.Logger(_version_1.version);
+ var _constructorGuard = {};
+ var ModifiersBytes = { calldata: true, memory: true, storage: true };
+ var ModifiersNest = { calldata: true, memory: true };
+ function checkModifier(type, name) {
+ if (type === "bytes" || type === "string") {
+ if (ModifiersBytes[name]) {
+ return true;
+ }
+ } else if (type === "address") {
+ if (name === "payable") {
+ return true;
+ }
+ } else if (type.indexOf("[") >= 0 || type === "tuple") {
+ if (ModifiersNest[name]) {
+ return true;
+ }
+ }
+ if (ModifiersBytes[name] || name === "payable") {
+ logger.throwArgumentError("invalid modifier", "name", name);
+ }
+ return false;
+ }
+ function parseParamType(param, allowIndexed) {
+ var originalParam = param;
+ function throwError(i2) {
+ logger.throwArgumentError("unexpected character at position " + i2, "param", param);
+ }
+ param = param.replace(/\s/g, " ");
+ function newNode(parent2) {
+ var node2 = { type: "", name: "", parent: parent2, state: { allowType: true } };
+ if (allowIndexed) {
+ node2.indexed = false;
+ }
+ return node2;
+ }
+ var parent = { type: "", name: "", state: { allowType: true } };
+ var node = parent;
+ for (var i = 0; i < param.length; i++) {
+ var c = param[i];
+ switch (c) {
+ case "(":
+ if (node.state.allowType && node.type === "") {
+ node.type = "tuple";
+ } else if (!node.state.allowParams) {
+ throwError(i);
+ }
+ node.state.allowType = false;
+ node.type = verifyType(node.type);
+ node.components = [newNode(node)];
+ node = node.components[0];
+ break;
+ case ")":
+ delete node.state;
+ if (node.name === "indexed") {
+ if (!allowIndexed) {
+ throwError(i);
+ }
+ node.indexed = true;
+ node.name = "";
+ }
+ if (checkModifier(node.type, node.name)) {
+ node.name = "";
+ }
+ node.type = verifyType(node.type);
+ var child = node;
+ node = node.parent;
+ if (!node) {
+ throwError(i);
+ }
+ delete child.parent;
+ node.state.allowParams = false;
+ node.state.allowName = true;
+ node.state.allowArray = true;
+ break;
+ case ",":
+ delete node.state;
+ if (node.name === "indexed") {
+ if (!allowIndexed) {
+ throwError(i);
+ }
+ node.indexed = true;
+ node.name = "";
+ }
+ if (checkModifier(node.type, node.name)) {
+ node.name = "";
+ }
+ node.type = verifyType(node.type);
+ var sibling = newNode(node.parent);
+ node.parent.components.push(sibling);
+ delete node.parent;
+ node = sibling;
+ break;
+ case " ":
+ if (node.state.allowType) {
+ if (node.type !== "") {
+ node.type = verifyType(node.type);
+ delete node.state.allowType;
+ node.state.allowName = true;
+ node.state.allowParams = true;
+ }
+ }
+ if (node.state.allowName) {
+ if (node.name !== "") {
+ if (node.name === "indexed") {
+ if (!allowIndexed) {
+ throwError(i);
+ }
+ if (node.indexed) {
+ throwError(i);
+ }
+ node.indexed = true;
+ node.name = "";
+ } else if (checkModifier(node.type, node.name)) {
+ node.name = "";
+ } else {
+ node.state.allowName = false;
+ }
+ }
+ }
+ break;
+ case "[":
+ if (!node.state.allowArray) {
+ throwError(i);
+ }
+ node.type += c;
+ node.state.allowArray = false;
+ node.state.allowName = false;
+ node.state.readArray = true;
+ break;
+ case "]":
+ if (!node.state.readArray) {
+ throwError(i);
+ }
+ node.type += c;
+ node.state.readArray = false;
+ node.state.allowArray = true;
+ node.state.allowName = true;
+ break;
+ default:
+ if (node.state.allowType) {
+ node.type += c;
+ node.state.allowParams = true;
+ node.state.allowArray = true;
+ } else if (node.state.allowName) {
+ node.name += c;
+ delete node.state.allowArray;
+ } else if (node.state.readArray) {
+ node.type += c;
+ } else {
+ throwError(i);
+ }
+ }
+ }
+ if (node.parent) {
+ logger.throwArgumentError("unexpected eof", "param", param);
+ }
+ delete parent.state;
+ if (node.name === "indexed") {
+ if (!allowIndexed) {
+ throwError(originalParam.length - 7);
+ }
+ if (node.indexed) {
+ throwError(originalParam.length - 7);
+ }
+ node.indexed = true;
+ node.name = "";
+ } else if (checkModifier(node.type, node.name)) {
+ node.name = "";
+ }
+ parent.type = verifyType(parent.type);
+ return parent;
+ }
+ function populate(object, params) {
+ for (var key in params) {
+ (0, properties_1.defineReadOnly)(object, key, params[key]);
+ }
+ }
+ exports2.FormatTypes = Object.freeze({
+ // Bare formatting, as is needed for computing a sighash of an event or function
+ sighash: "sighash",
+ // Human-Readable with Minimal spacing and without names (compact human-readable)
+ minimal: "minimal",
+ // Human-Readable with nice spacing, including all names
+ full: "full",
+ // JSON-format a la Solidity
+ json: "json"
+ });
+ var paramTypeArray = new RegExp(/^(.*)\[([0-9]*)\]$/);
+ var ParamType = (
+ /** @class */
+ function() {
+ function ParamType2(constructorGuard, params) {
+ if (constructorGuard !== _constructorGuard) {
+ logger.throwError("use fromString", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "new ParamType()"
+ });
+ }
+ populate(this, params);
+ var match = this.type.match(paramTypeArray);
+ if (match) {
+ populate(this, {
+ arrayLength: parseInt(match[2] || "-1"),
+ arrayChildren: ParamType2.fromObject({
+ type: match[1],
+ components: this.components
+ }),
+ baseType: "array"
+ });
+ } else {
+ populate(this, {
+ arrayLength: null,
+ arrayChildren: null,
+ baseType: this.components != null ? "tuple" : this.type
+ });
+ }
+ this._isParamType = true;
+ Object.freeze(this);
+ }
+ ParamType2.prototype.format = function(format) {
+ if (!format) {
+ format = exports2.FormatTypes.sighash;
+ }
+ if (!exports2.FormatTypes[format]) {
+ logger.throwArgumentError("invalid format type", "format", format);
+ }
+ if (format === exports2.FormatTypes.json) {
+ var result_1 = {
+ type: this.baseType === "tuple" ? "tuple" : this.type,
+ name: this.name || void 0
+ };
+ if (typeof this.indexed === "boolean") {
+ result_1.indexed = this.indexed;
+ }
+ if (this.components) {
+ result_1.components = this.components.map(function(comp) {
+ return JSON.parse(comp.format(format));
+ });
+ }
+ return JSON.stringify(result_1);
+ }
+ var result = "";
+ if (this.baseType === "array") {
+ result += this.arrayChildren.format(format);
+ result += "[" + (this.arrayLength < 0 ? "" : String(this.arrayLength)) + "]";
+ } else {
+ if (this.baseType === "tuple") {
+ if (format !== exports2.FormatTypes.sighash) {
+ result += this.type;
+ }
+ result += "(" + this.components.map(function(comp) {
+ return comp.format(format);
+ }).join(format === exports2.FormatTypes.full ? ", " : ",") + ")";
+ } else {
+ result += this.type;
+ }
+ }
+ if (format !== exports2.FormatTypes.sighash) {
+ if (this.indexed === true) {
+ result += " indexed";
+ }
+ if (format === exports2.FormatTypes.full && this.name) {
+ result += " " + this.name;
+ }
+ }
+ return result;
+ };
+ ParamType2.from = function(value, allowIndexed) {
+ if (typeof value === "string") {
+ return ParamType2.fromString(value, allowIndexed);
+ }
+ return ParamType2.fromObject(value);
+ };
+ ParamType2.fromObject = function(value) {
+ if (ParamType2.isParamType(value)) {
+ return value;
+ }
+ return new ParamType2(_constructorGuard, {
+ name: value.name || null,
+ type: verifyType(value.type),
+ indexed: value.indexed == null ? null : !!value.indexed,
+ components: value.components ? value.components.map(ParamType2.fromObject) : null
+ });
+ };
+ ParamType2.fromString = function(value, allowIndexed) {
+ function ParamTypify(node) {
+ return ParamType2.fromObject({
+ name: node.name,
+ type: node.type,
+ indexed: node.indexed,
+ components: node.components
+ });
+ }
+ return ParamTypify(parseParamType(value, !!allowIndexed));
+ };
+ ParamType2.isParamType = function(value) {
+ return !!(value != null && value._isParamType);
+ };
+ return ParamType2;
+ }()
+ );
+ exports2.ParamType = ParamType;
+ function parseParams(value, allowIndex) {
+ return splitNesting(value).map(function(param) {
+ return ParamType.fromString(param, allowIndex);
+ });
+ }
+ var Fragment = (
+ /** @class */
+ function() {
+ function Fragment2(constructorGuard, params) {
+ if (constructorGuard !== _constructorGuard) {
+ logger.throwError("use a static from method", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "new Fragment()"
+ });
+ }
+ populate(this, params);
+ this._isFragment = true;
+ Object.freeze(this);
+ }
+ Fragment2.from = function(value) {
+ if (Fragment2.isFragment(value)) {
+ return value;
+ }
+ if (typeof value === "string") {
+ return Fragment2.fromString(value);
+ }
+ return Fragment2.fromObject(value);
+ };
+ Fragment2.fromObject = function(value) {
+ if (Fragment2.isFragment(value)) {
+ return value;
+ }
+ switch (value.type) {
+ case "function":
+ return FunctionFragment.fromObject(value);
+ case "event":
+ return EventFragment.fromObject(value);
+ case "constructor":
+ return ConstructorFragment.fromObject(value);
+ case "error":
+ return ErrorFragment.fromObject(value);
+ case "fallback":
+ case "receive":
+ return null;
+ }
+ return logger.throwArgumentError("invalid fragment object", "value", value);
+ };
+ Fragment2.fromString = function(value) {
+ value = value.replace(/\s/g, " ");
+ value = value.replace(/\(/g, " (").replace(/\)/g, ") ").replace(/\s+/g, " ");
+ value = value.trim();
+ if (value.split(" ")[0] === "event") {
+ return EventFragment.fromString(value.substring(5).trim());
+ } else if (value.split(" ")[0] === "function") {
+ return FunctionFragment.fromString(value.substring(8).trim());
+ } else if (value.split("(")[0].trim() === "constructor") {
+ return ConstructorFragment.fromString(value.trim());
+ } else if (value.split(" ")[0] === "error") {
+ return ErrorFragment.fromString(value.substring(5).trim());
+ }
+ return logger.throwArgumentError("unsupported fragment", "value", value);
+ };
+ Fragment2.isFragment = function(value) {
+ return !!(value && value._isFragment);
+ };
+ return Fragment2;
+ }()
+ );
+ exports2.Fragment = Fragment;
+ var EventFragment = (
+ /** @class */
+ function(_super) {
+ __extends13(EventFragment2, _super);
+ function EventFragment2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ EventFragment2.prototype.format = function(format) {
+ if (!format) {
+ format = exports2.FormatTypes.sighash;
+ }
+ if (!exports2.FormatTypes[format]) {
+ logger.throwArgumentError("invalid format type", "format", format);
+ }
+ if (format === exports2.FormatTypes.json) {
+ return JSON.stringify({
+ type: "event",
+ anonymous: this.anonymous,
+ name: this.name,
+ inputs: this.inputs.map(function(input) {
+ return JSON.parse(input.format(format));
+ })
+ });
+ }
+ var result = "";
+ if (format !== exports2.FormatTypes.sighash) {
+ result += "event ";
+ }
+ result += this.name + "(" + this.inputs.map(function(input) {
+ return input.format(format);
+ }).join(format === exports2.FormatTypes.full ? ", " : ",") + ") ";
+ if (format !== exports2.FormatTypes.sighash) {
+ if (this.anonymous) {
+ result += "anonymous ";
+ }
+ }
+ return result.trim();
+ };
+ EventFragment2.from = function(value) {
+ if (typeof value === "string") {
+ return EventFragment2.fromString(value);
+ }
+ return EventFragment2.fromObject(value);
+ };
+ EventFragment2.fromObject = function(value) {
+ if (EventFragment2.isEventFragment(value)) {
+ return value;
+ }
+ if (value.type !== "event") {
+ logger.throwArgumentError("invalid event object", "value", value);
+ }
+ var params = {
+ name: verifyIdentifier(value.name),
+ anonymous: value.anonymous,
+ inputs: value.inputs ? value.inputs.map(ParamType.fromObject) : [],
+ type: "event"
+ };
+ return new EventFragment2(_constructorGuard, params);
+ };
+ EventFragment2.fromString = function(value) {
+ var match = value.match(regexParen);
+ if (!match) {
+ logger.throwArgumentError("invalid event string", "value", value);
+ }
+ var anonymous = false;
+ match[3].split(" ").forEach(function(modifier) {
+ switch (modifier.trim()) {
+ case "anonymous":
+ anonymous = true;
+ break;
+ case "":
+ break;
+ default:
+ logger.warn("unknown modifier: " + modifier);
+ }
+ });
+ return EventFragment2.fromObject({
+ name: match[1].trim(),
+ anonymous,
+ inputs: parseParams(match[2], true),
+ type: "event"
+ });
+ };
+ EventFragment2.isEventFragment = function(value) {
+ return value && value._isFragment && value.type === "event";
+ };
+ return EventFragment2;
+ }(Fragment)
+ );
+ exports2.EventFragment = EventFragment;
+ function parseGas(value, params) {
+ params.gas = null;
+ var comps = value.split("@");
+ if (comps.length !== 1) {
+ if (comps.length > 2) {
+ logger.throwArgumentError("invalid human-readable ABI signature", "value", value);
+ }
+ if (!comps[1].match(/^[0-9]+$/)) {
+ logger.throwArgumentError("invalid human-readable ABI signature gas", "value", value);
+ }
+ params.gas = bignumber_1.BigNumber.from(comps[1]);
+ return comps[0];
+ }
+ return value;
+ }
+ function parseModifiers(value, params) {
+ params.constant = false;
+ params.payable = false;
+ params.stateMutability = "nonpayable";
+ value.split(" ").forEach(function(modifier) {
+ switch (modifier.trim()) {
+ case "constant":
+ params.constant = true;
+ break;
+ case "payable":
+ params.payable = true;
+ params.stateMutability = "payable";
+ break;
+ case "nonpayable":
+ params.payable = false;
+ params.stateMutability = "nonpayable";
+ break;
+ case "pure":
+ params.constant = true;
+ params.stateMutability = "pure";
+ break;
+ case "view":
+ params.constant = true;
+ params.stateMutability = "view";
+ break;
+ case "external":
+ case "public":
+ case "":
+ break;
+ default:
+ console.log("unknown modifier: " + modifier);
+ }
+ });
+ }
+ function verifyState(value) {
+ var result = {
+ constant: false,
+ payable: true,
+ stateMutability: "payable"
+ };
+ if (value.stateMutability != null) {
+ result.stateMutability = value.stateMutability;
+ result.constant = result.stateMutability === "view" || result.stateMutability === "pure";
+ if (value.constant != null) {
+ if (!!value.constant !== result.constant) {
+ logger.throwArgumentError("cannot have constant function with mutability " + result.stateMutability, "value", value);
+ }
+ }
+ result.payable = result.stateMutability === "payable";
+ if (value.payable != null) {
+ if (!!value.payable !== result.payable) {
+ logger.throwArgumentError("cannot have payable function with mutability " + result.stateMutability, "value", value);
+ }
+ }
+ } else if (value.payable != null) {
+ result.payable = !!value.payable;
+ if (value.constant == null && !result.payable && value.type !== "constructor") {
+ logger.throwArgumentError("unable to determine stateMutability", "value", value);
+ }
+ result.constant = !!value.constant;
+ if (result.constant) {
+ result.stateMutability = "view";
+ } else {
+ result.stateMutability = result.payable ? "payable" : "nonpayable";
+ }
+ if (result.payable && result.constant) {
+ logger.throwArgumentError("cannot have constant payable function", "value", value);
+ }
+ } else if (value.constant != null) {
+ result.constant = !!value.constant;
+ result.payable = !result.constant;
+ result.stateMutability = result.constant ? "view" : "payable";
+ } else if (value.type !== "constructor") {
+ logger.throwArgumentError("unable to determine stateMutability", "value", value);
+ }
+ return result;
+ }
+ var ConstructorFragment = (
+ /** @class */
+ function(_super) {
+ __extends13(ConstructorFragment2, _super);
+ function ConstructorFragment2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ ConstructorFragment2.prototype.format = function(format) {
+ if (!format) {
+ format = exports2.FormatTypes.sighash;
+ }
+ if (!exports2.FormatTypes[format]) {
+ logger.throwArgumentError("invalid format type", "format", format);
+ }
+ if (format === exports2.FormatTypes.json) {
+ return JSON.stringify({
+ type: "constructor",
+ stateMutability: this.stateMutability !== "nonpayable" ? this.stateMutability : void 0,
+ payable: this.payable,
+ gas: this.gas ? this.gas.toNumber() : void 0,
+ inputs: this.inputs.map(function(input) {
+ return JSON.parse(input.format(format));
+ })
+ });
+ }
+ if (format === exports2.FormatTypes.sighash) {
+ logger.throwError("cannot format a constructor for sighash", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "format(sighash)"
+ });
+ }
+ var result = "constructor(" + this.inputs.map(function(input) {
+ return input.format(format);
+ }).join(format === exports2.FormatTypes.full ? ", " : ",") + ") ";
+ if (this.stateMutability && this.stateMutability !== "nonpayable") {
+ result += this.stateMutability + " ";
+ }
+ return result.trim();
+ };
+ ConstructorFragment2.from = function(value) {
+ if (typeof value === "string") {
+ return ConstructorFragment2.fromString(value);
+ }
+ return ConstructorFragment2.fromObject(value);
+ };
+ ConstructorFragment2.fromObject = function(value) {
+ if (ConstructorFragment2.isConstructorFragment(value)) {
+ return value;
+ }
+ if (value.type !== "constructor") {
+ logger.throwArgumentError("invalid constructor object", "value", value);
+ }
+ var state = verifyState(value);
+ if (state.constant) {
+ logger.throwArgumentError("constructor cannot be constant", "value", value);
+ }
+ var params = {
+ name: null,
+ type: value.type,
+ inputs: value.inputs ? value.inputs.map(ParamType.fromObject) : [],
+ payable: state.payable,
+ stateMutability: state.stateMutability,
+ gas: value.gas ? bignumber_1.BigNumber.from(value.gas) : null
+ };
+ return new ConstructorFragment2(_constructorGuard, params);
+ };
+ ConstructorFragment2.fromString = function(value) {
+ var params = { type: "constructor" };
+ value = parseGas(value, params);
+ var parens = value.match(regexParen);
+ if (!parens || parens[1].trim() !== "constructor") {
+ logger.throwArgumentError("invalid constructor string", "value", value);
+ }
+ params.inputs = parseParams(parens[2].trim(), false);
+ parseModifiers(parens[3].trim(), params);
+ return ConstructorFragment2.fromObject(params);
+ };
+ ConstructorFragment2.isConstructorFragment = function(value) {
+ return value && value._isFragment && value.type === "constructor";
+ };
+ return ConstructorFragment2;
+ }(Fragment)
+ );
+ exports2.ConstructorFragment = ConstructorFragment;
+ var FunctionFragment = (
+ /** @class */
+ function(_super) {
+ __extends13(FunctionFragment2, _super);
+ function FunctionFragment2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ FunctionFragment2.prototype.format = function(format) {
+ if (!format) {
+ format = exports2.FormatTypes.sighash;
+ }
+ if (!exports2.FormatTypes[format]) {
+ logger.throwArgumentError("invalid format type", "format", format);
+ }
+ if (format === exports2.FormatTypes.json) {
+ return JSON.stringify({
+ type: "function",
+ name: this.name,
+ constant: this.constant,
+ stateMutability: this.stateMutability !== "nonpayable" ? this.stateMutability : void 0,
+ payable: this.payable,
+ gas: this.gas ? this.gas.toNumber() : void 0,
+ inputs: this.inputs.map(function(input) {
+ return JSON.parse(input.format(format));
+ }),
+ outputs: this.outputs.map(function(output) {
+ return JSON.parse(output.format(format));
+ })
+ });
+ }
+ var result = "";
+ if (format !== exports2.FormatTypes.sighash) {
+ result += "function ";
+ }
+ result += this.name + "(" + this.inputs.map(function(input) {
+ return input.format(format);
+ }).join(format === exports2.FormatTypes.full ? ", " : ",") + ") ";
+ if (format !== exports2.FormatTypes.sighash) {
+ if (this.stateMutability) {
+ if (this.stateMutability !== "nonpayable") {
+ result += this.stateMutability + " ";
+ }
+ } else if (this.constant) {
+ result += "view ";
+ }
+ if (this.outputs && this.outputs.length) {
+ result += "returns (" + this.outputs.map(function(output) {
+ return output.format(format);
+ }).join(", ") + ") ";
+ }
+ if (this.gas != null) {
+ result += "@" + this.gas.toString() + " ";
+ }
+ }
+ return result.trim();
+ };
+ FunctionFragment2.from = function(value) {
+ if (typeof value === "string") {
+ return FunctionFragment2.fromString(value);
+ }
+ return FunctionFragment2.fromObject(value);
+ };
+ FunctionFragment2.fromObject = function(value) {
+ if (FunctionFragment2.isFunctionFragment(value)) {
+ return value;
+ }
+ if (value.type !== "function") {
+ logger.throwArgumentError("invalid function object", "value", value);
+ }
+ var state = verifyState(value);
+ var params = {
+ type: value.type,
+ name: verifyIdentifier(value.name),
+ constant: state.constant,
+ inputs: value.inputs ? value.inputs.map(ParamType.fromObject) : [],
+ outputs: value.outputs ? value.outputs.map(ParamType.fromObject) : [],
+ payable: state.payable,
+ stateMutability: state.stateMutability,
+ gas: value.gas ? bignumber_1.BigNumber.from(value.gas) : null
+ };
+ return new FunctionFragment2(_constructorGuard, params);
+ };
+ FunctionFragment2.fromString = function(value) {
+ var params = { type: "function" };
+ value = parseGas(value, params);
+ var comps = value.split(" returns ");
+ if (comps.length > 2) {
+ logger.throwArgumentError("invalid function string", "value", value);
+ }
+ var parens = comps[0].match(regexParen);
+ if (!parens) {
+ logger.throwArgumentError("invalid function signature", "value", value);
+ }
+ params.name = parens[1].trim();
+ if (params.name) {
+ verifyIdentifier(params.name);
+ }
+ params.inputs = parseParams(parens[2], false);
+ parseModifiers(parens[3].trim(), params);
+ if (comps.length > 1) {
+ var returns = comps[1].match(regexParen);
+ if (returns[1].trim() != "" || returns[3].trim() != "") {
+ logger.throwArgumentError("unexpected tokens", "value", value);
+ }
+ params.outputs = parseParams(returns[2], false);
+ } else {
+ params.outputs = [];
+ }
+ return FunctionFragment2.fromObject(params);
+ };
+ FunctionFragment2.isFunctionFragment = function(value) {
+ return value && value._isFragment && value.type === "function";
+ };
+ return FunctionFragment2;
+ }(ConstructorFragment)
+ );
+ exports2.FunctionFragment = FunctionFragment;
+ function checkForbidden(fragment) {
+ var sig = fragment.format();
+ if (sig === "Error(string)" || sig === "Panic(uint256)") {
+ logger.throwArgumentError("cannot specify user defined " + sig + " error", "fragment", fragment);
+ }
+ return fragment;
+ }
+ var ErrorFragment = (
+ /** @class */
+ function(_super) {
+ __extends13(ErrorFragment2, _super);
+ function ErrorFragment2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ ErrorFragment2.prototype.format = function(format) {
+ if (!format) {
+ format = exports2.FormatTypes.sighash;
+ }
+ if (!exports2.FormatTypes[format]) {
+ logger.throwArgumentError("invalid format type", "format", format);
+ }
+ if (format === exports2.FormatTypes.json) {
+ return JSON.stringify({
+ type: "error",
+ name: this.name,
+ inputs: this.inputs.map(function(input) {
+ return JSON.parse(input.format(format));
+ })
+ });
+ }
+ var result = "";
+ if (format !== exports2.FormatTypes.sighash) {
+ result += "error ";
+ }
+ result += this.name + "(" + this.inputs.map(function(input) {
+ return input.format(format);
+ }).join(format === exports2.FormatTypes.full ? ", " : ",") + ") ";
+ return result.trim();
+ };
+ ErrorFragment2.from = function(value) {
+ if (typeof value === "string") {
+ return ErrorFragment2.fromString(value);
+ }
+ return ErrorFragment2.fromObject(value);
+ };
+ ErrorFragment2.fromObject = function(value) {
+ if (ErrorFragment2.isErrorFragment(value)) {
+ return value;
+ }
+ if (value.type !== "error") {
+ logger.throwArgumentError("invalid error object", "value", value);
+ }
+ var params = {
+ type: value.type,
+ name: verifyIdentifier(value.name),
+ inputs: value.inputs ? value.inputs.map(ParamType.fromObject) : []
+ };
+ return checkForbidden(new ErrorFragment2(_constructorGuard, params));
+ };
+ ErrorFragment2.fromString = function(value) {
+ var params = { type: "error" };
+ var parens = value.match(regexParen);
+ if (!parens) {
+ logger.throwArgumentError("invalid error signature", "value", value);
+ }
+ params.name = parens[1].trim();
+ if (params.name) {
+ verifyIdentifier(params.name);
+ }
+ params.inputs = parseParams(parens[2], false);
+ return checkForbidden(ErrorFragment2.fromObject(params));
+ };
+ ErrorFragment2.isErrorFragment = function(value) {
+ return value && value._isFragment && value.type === "error";
+ };
+ return ErrorFragment2;
+ }(Fragment)
+ );
+ exports2.ErrorFragment = ErrorFragment;
+ function verifyType(type) {
+ if (type.match(/^uint($|[^1-9])/)) {
+ type = "uint256" + type.substring(4);
+ } else if (type.match(/^int($|[^1-9])/)) {
+ type = "int256" + type.substring(3);
+ }
+ return type;
+ }
+ var regexIdentifier = new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");
+ function verifyIdentifier(value) {
+ if (!value || !value.match(regexIdentifier)) {
+ logger.throwArgumentError('invalid identifier "' + value + '"', "value", value);
+ }
+ return value;
+ }
+ var regexParen = new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");
+ function splitNesting(value) {
+ value = value.trim();
+ var result = [];
+ var accum = "";
+ var depth = 0;
+ for (var offset = 0; offset < value.length; offset++) {
+ var c = value[offset];
+ if (c === "," && depth === 0) {
+ result.push(accum);
+ accum = "";
+ } else {
+ accum += c;
+ if (c === "(") {
+ depth++;
+ } else if (c === ")") {
+ depth--;
+ if (depth === -1) {
+ logger.throwArgumentError("unbalanced parenthesis", "value", value);
+ }
+ }
+ }
+ }
+ if (accum) {
+ result.push(accum);
+ }
+ return result;
+ }
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/coders/abstract-coder.js
+var require_abstract_coder = __commonJS({
+ "node_modules/@ethersproject/abi/lib/coders/abstract-coder.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.Reader = exports2.Writer = exports2.Coder = exports2.checkResultErrors = void 0;
+ var bytes_1 = require_lib6();
+ var bignumber_1 = require_lib7();
+ var properties_1 = require_lib12();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version9();
+ var logger = new logger_1.Logger(_version_1.version);
+ function checkResultErrors(result) {
+ var errors = [];
+ var checkErrors = function(path, object) {
+ if (!Array.isArray(object)) {
+ return;
+ }
+ for (var key in object) {
+ var childPath = path.slice();
+ childPath.push(key);
+ try {
+ checkErrors(childPath, object[key]);
+ } catch (error) {
+ errors.push({ path: childPath, error });
+ }
+ }
+ };
+ checkErrors([], result);
+ return errors;
+ }
+ exports2.checkResultErrors = checkResultErrors;
+ var Coder = (
+ /** @class */
+ function() {
+ function Coder2(name, type, localName, dynamic) {
+ this.name = name;
+ this.type = type;
+ this.localName = localName;
+ this.dynamic = dynamic;
+ }
+ Coder2.prototype._throwError = function(message, value) {
+ logger.throwArgumentError(message, this.localName, value);
+ };
+ return Coder2;
+ }()
+ );
+ exports2.Coder = Coder;
+ var Writer = (
+ /** @class */
+ function() {
+ function Writer2(wordSize) {
+ (0, properties_1.defineReadOnly)(this, "wordSize", wordSize || 32);
+ this._data = [];
+ this._dataLength = 0;
+ this._padding = new Uint8Array(wordSize);
+ }
+ Object.defineProperty(Writer2.prototype, "data", {
+ get: function() {
+ return (0, bytes_1.hexConcat)(this._data);
+ },
+ enumerable: false,
+ configurable: true
+ });
+ Object.defineProperty(Writer2.prototype, "length", {
+ get: function() {
+ return this._dataLength;
+ },
+ enumerable: false,
+ configurable: true
+ });
+ Writer2.prototype._writeData = function(data) {
+ this._data.push(data);
+ this._dataLength += data.length;
+ return data.length;
+ };
+ Writer2.prototype.appendWriter = function(writer) {
+ return this._writeData((0, bytes_1.concat)(writer._data));
+ };
+ Writer2.prototype.writeBytes = function(value) {
+ var bytes = (0, bytes_1.arrayify)(value);
+ var paddingOffset = bytes.length % this.wordSize;
+ if (paddingOffset) {
+ bytes = (0, bytes_1.concat)([bytes, this._padding.slice(paddingOffset)]);
+ }
+ return this._writeData(bytes);
+ };
+ Writer2.prototype._getValue = function(value) {
+ var bytes = (0, bytes_1.arrayify)(bignumber_1.BigNumber.from(value));
+ if (bytes.length > this.wordSize) {
+ logger.throwError("value out-of-bounds", logger_1.Logger.errors.BUFFER_OVERRUN, {
+ length: this.wordSize,
+ offset: bytes.length
+ });
+ }
+ if (bytes.length % this.wordSize) {
+ bytes = (0, bytes_1.concat)([this._padding.slice(bytes.length % this.wordSize), bytes]);
+ }
+ return bytes;
+ };
+ Writer2.prototype.writeValue = function(value) {
+ return this._writeData(this._getValue(value));
+ };
+ Writer2.prototype.writeUpdatableValue = function() {
+ var _this = this;
+ var offset = this._data.length;
+ this._data.push(this._padding);
+ this._dataLength += this.wordSize;
+ return function(value) {
+ _this._data[offset] = _this._getValue(value);
+ };
+ };
+ return Writer2;
+ }()
+ );
+ exports2.Writer = Writer;
+ var Reader = (
+ /** @class */
+ function() {
+ function Reader2(data, wordSize, coerceFunc, allowLoose) {
+ (0, properties_1.defineReadOnly)(this, "_data", (0, bytes_1.arrayify)(data));
+ (0, properties_1.defineReadOnly)(this, "wordSize", wordSize || 32);
+ (0, properties_1.defineReadOnly)(this, "_coerceFunc", coerceFunc);
+ (0, properties_1.defineReadOnly)(this, "allowLoose", allowLoose);
+ this._offset = 0;
+ }
+ Object.defineProperty(Reader2.prototype, "data", {
+ get: function() {
+ return (0, bytes_1.hexlify)(this._data);
+ },
+ enumerable: false,
+ configurable: true
+ });
+ Object.defineProperty(Reader2.prototype, "consumed", {
+ get: function() {
+ return this._offset;
+ },
+ enumerable: false,
+ configurable: true
+ });
+ Reader2.coerce = function(name, value) {
+ var match = name.match("^u?int([0-9]+)$");
+ if (match && parseInt(match[1]) <= 48) {
+ value = value.toNumber();
+ }
+ return value;
+ };
+ Reader2.prototype.coerce = function(name, value) {
+ if (this._coerceFunc) {
+ return this._coerceFunc(name, value);
+ }
+ return Reader2.coerce(name, value);
+ };
+ Reader2.prototype._peekBytes = function(offset, length, loose) {
+ var alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;
+ if (this._offset + alignedLength > this._data.length) {
+ if (this.allowLoose && loose && this._offset + length <= this._data.length) {
+ alignedLength = length;
+ } else {
+ logger.throwError("data out-of-bounds", logger_1.Logger.errors.BUFFER_OVERRUN, {
+ length: this._data.length,
+ offset: this._offset + alignedLength
+ });
+ }
+ }
+ return this._data.slice(this._offset, this._offset + alignedLength);
+ };
+ Reader2.prototype.subReader = function(offset) {
+ return new Reader2(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);
+ };
+ Reader2.prototype.readBytes = function(length, loose) {
+ var bytes = this._peekBytes(0, length, !!loose);
+ this._offset += bytes.length;
+ return bytes.slice(0, length);
+ };
+ Reader2.prototype.readValue = function() {
+ return bignumber_1.BigNumber.from(this.readBytes(this.wordSize));
+ };
+ return Reader2;
+ }()
+ );
+ exports2.Reader = Reader;
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/coders/address.js
+var require_address = __commonJS({
+ "node_modules/@ethersproject/abi/lib/coders/address.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.AddressCoder = void 0;
+ var address_1 = require_lib10();
+ var bytes_1 = require_lib6();
+ var abstract_coder_1 = require_abstract_coder();
+ var AddressCoder = (
+ /** @class */
+ function(_super) {
+ __extends13(AddressCoder2, _super);
+ function AddressCoder2(localName) {
+ return _super.call(this, "address", "address", localName, false) || this;
+ }
+ AddressCoder2.prototype.defaultValue = function() {
+ return "0x0000000000000000000000000000000000000000";
+ };
+ AddressCoder2.prototype.encode = function(writer, value) {
+ try {
+ value = (0, address_1.getAddress)(value);
+ } catch (error) {
+ this._throwError(error.message, value);
+ }
+ return writer.writeValue(value);
+ };
+ AddressCoder2.prototype.decode = function(reader) {
+ return (0, address_1.getAddress)((0, bytes_1.hexZeroPad)(reader.readValue().toHexString(), 20));
+ };
+ return AddressCoder2;
+ }(abstract_coder_1.Coder)
+ );
+ exports2.AddressCoder = AddressCoder;
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/coders/anonymous.js
+var require_anonymous = __commonJS({
+ "node_modules/@ethersproject/abi/lib/coders/anonymous.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.AnonymousCoder = void 0;
+ var abstract_coder_1 = require_abstract_coder();
+ var AnonymousCoder = (
+ /** @class */
+ function(_super) {
+ __extends13(AnonymousCoder2, _super);
+ function AnonymousCoder2(coder) {
+ var _this = _super.call(this, coder.name, coder.type, void 0, coder.dynamic) || this;
+ _this.coder = coder;
+ return _this;
+ }
+ AnonymousCoder2.prototype.defaultValue = function() {
+ return this.coder.defaultValue();
+ };
+ AnonymousCoder2.prototype.encode = function(writer, value) {
+ return this.coder.encode(writer, value);
+ };
+ AnonymousCoder2.prototype.decode = function(reader) {
+ return this.coder.decode(reader);
+ };
+ return AnonymousCoder2;
+ }(abstract_coder_1.Coder)
+ );
+ exports2.AnonymousCoder = AnonymousCoder;
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/coders/array.js
+var require_array = __commonJS({
+ "node_modules/@ethersproject/abi/lib/coders/array.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.ArrayCoder = exports2.unpack = exports2.pack = void 0;
+ var logger_1 = require_lib5();
+ var _version_1 = require_version9();
+ var logger = new logger_1.Logger(_version_1.version);
+ var abstract_coder_1 = require_abstract_coder();
+ var anonymous_1 = require_anonymous();
+ function pack(writer, coders, values) {
+ var arrayValues = null;
+ if (Array.isArray(values)) {
+ arrayValues = values;
+ } else if (values && typeof values === "object") {
+ var unique_1 = {};
+ arrayValues = coders.map(function(coder) {
+ var name = coder.localName;
+ if (!name) {
+ logger.throwError("cannot encode object for signature with missing names", logger_1.Logger.errors.INVALID_ARGUMENT, {
+ argument: "values",
+ coder,
+ value: values
+ });
+ }
+ if (unique_1[name]) {
+ logger.throwError("cannot encode object for signature with duplicate names", logger_1.Logger.errors.INVALID_ARGUMENT, {
+ argument: "values",
+ coder,
+ value: values
+ });
+ }
+ unique_1[name] = true;
+ return values[name];
+ });
+ } else {
+ logger.throwArgumentError("invalid tuple value", "tuple", values);
+ }
+ if (coders.length !== arrayValues.length) {
+ logger.throwArgumentError("types/value length mismatch", "tuple", values);
+ }
+ var staticWriter = new abstract_coder_1.Writer(writer.wordSize);
+ var dynamicWriter = new abstract_coder_1.Writer(writer.wordSize);
+ var updateFuncs = [];
+ coders.forEach(function(coder, index) {
+ var value = arrayValues[index];
+ if (coder.dynamic) {
+ var dynamicOffset_1 = dynamicWriter.length;
+ coder.encode(dynamicWriter, value);
+ var updateFunc_1 = staticWriter.writeUpdatableValue();
+ updateFuncs.push(function(baseOffset) {
+ updateFunc_1(baseOffset + dynamicOffset_1);
+ });
+ } else {
+ coder.encode(staticWriter, value);
+ }
+ });
+ updateFuncs.forEach(function(func) {
+ func(staticWriter.length);
+ });
+ var length = writer.appendWriter(staticWriter);
+ length += writer.appendWriter(dynamicWriter);
+ return length;
+ }
+ exports2.pack = pack;
+ function unpack(reader, coders) {
+ var values = [];
+ var baseReader = reader.subReader(0);
+ coders.forEach(function(coder) {
+ var value = null;
+ if (coder.dynamic) {
+ var offset = reader.readValue();
+ var offsetReader = baseReader.subReader(offset.toNumber());
+ try {
+ value = coder.decode(offsetReader);
+ } catch (error) {
+ if (error.code === logger_1.Logger.errors.BUFFER_OVERRUN) {
+ throw error;
+ }
+ value = error;
+ value.baseType = coder.name;
+ value.name = coder.localName;
+ value.type = coder.type;
+ }
+ } else {
+ try {
+ value = coder.decode(reader);
+ } catch (error) {
+ if (error.code === logger_1.Logger.errors.BUFFER_OVERRUN) {
+ throw error;
+ }
+ value = error;
+ value.baseType = coder.name;
+ value.name = coder.localName;
+ value.type = coder.type;
+ }
+ }
+ if (value != void 0) {
+ values.push(value);
+ }
+ });
+ var uniqueNames = coders.reduce(function(accum, coder) {
+ var name = coder.localName;
+ if (name) {
+ if (!accum[name]) {
+ accum[name] = 0;
+ }
+ accum[name]++;
+ }
+ return accum;
+ }, {});
+ coders.forEach(function(coder, index) {
+ var name = coder.localName;
+ if (!name || uniqueNames[name] !== 1) {
+ return;
+ }
+ if (name === "length") {
+ name = "_length";
+ }
+ if (values[name] != null) {
+ return;
+ }
+ var value = values[index];
+ if (value instanceof Error) {
+ Object.defineProperty(values, name, {
+ enumerable: true,
+ get: function() {
+ throw value;
+ }
+ });
+ } else {
+ values[name] = value;
+ }
+ });
+ var _loop_1 = function(i2) {
+ var value = values[i2];
+ if (value instanceof Error) {
+ Object.defineProperty(values, i2, {
+ enumerable: true,
+ get: function() {
+ throw value;
+ }
+ });
+ }
+ };
+ for (var i = 0; i < values.length; i++) {
+ _loop_1(i);
+ }
+ return Object.freeze(values);
+ }
+ exports2.unpack = unpack;
+ var ArrayCoder = (
+ /** @class */
+ function(_super) {
+ __extends13(ArrayCoder2, _super);
+ function ArrayCoder2(coder, length, localName) {
+ var _this = this;
+ var type = coder.type + "[" + (length >= 0 ? length : "") + "]";
+ var dynamic = length === -1 || coder.dynamic;
+ _this = _super.call(this, "array", type, localName, dynamic) || this;
+ _this.coder = coder;
+ _this.length = length;
+ return _this;
+ }
+ ArrayCoder2.prototype.defaultValue = function() {
+ var defaultChild = this.coder.defaultValue();
+ var result = [];
+ for (var i = 0; i < this.length; i++) {
+ result.push(defaultChild);
+ }
+ return result;
+ };
+ ArrayCoder2.prototype.encode = function(writer, value) {
+ if (!Array.isArray(value)) {
+ this._throwError("expected array value", value);
+ }
+ var count = this.length;
+ if (count === -1) {
+ count = value.length;
+ writer.writeValue(value.length);
+ }
+ logger.checkArgumentCount(value.length, count, "coder array" + (this.localName ? " " + this.localName : ""));
+ var coders = [];
+ for (var i = 0; i < value.length; i++) {
+ coders.push(this.coder);
+ }
+ return pack(writer, coders, value);
+ };
+ ArrayCoder2.prototype.decode = function(reader) {
+ var count = this.length;
+ if (count === -1) {
+ count = reader.readValue().toNumber();
+ if (count * 32 > reader._data.length) {
+ logger.throwError("insufficient data length", logger_1.Logger.errors.BUFFER_OVERRUN, {
+ length: reader._data.length,
+ count
+ });
+ }
+ }
+ var coders = [];
+ for (var i = 0; i < count; i++) {
+ coders.push(new anonymous_1.AnonymousCoder(this.coder));
+ }
+ return reader.coerce(this.name, unpack(reader, coders));
+ };
+ return ArrayCoder2;
+ }(abstract_coder_1.Coder)
+ );
+ exports2.ArrayCoder = ArrayCoder;
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/coders/boolean.js
+var require_boolean = __commonJS({
+ "node_modules/@ethersproject/abi/lib/coders/boolean.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.BooleanCoder = void 0;
+ var abstract_coder_1 = require_abstract_coder();
+ var BooleanCoder = (
+ /** @class */
+ function(_super) {
+ __extends13(BooleanCoder2, _super);
+ function BooleanCoder2(localName) {
+ return _super.call(this, "bool", "bool", localName, false) || this;
+ }
+ BooleanCoder2.prototype.defaultValue = function() {
+ return false;
+ };
+ BooleanCoder2.prototype.encode = function(writer, value) {
+ return writer.writeValue(value ? 1 : 0);
+ };
+ BooleanCoder2.prototype.decode = function(reader) {
+ return reader.coerce(this.type, !reader.readValue().isZero());
+ };
+ return BooleanCoder2;
+ }(abstract_coder_1.Coder)
+ );
+ exports2.BooleanCoder = BooleanCoder;
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/coders/bytes.js
+var require_bytes2 = __commonJS({
+ "node_modules/@ethersproject/abi/lib/coders/bytes.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.BytesCoder = exports2.DynamicBytesCoder = void 0;
+ var bytes_1 = require_lib6();
+ var abstract_coder_1 = require_abstract_coder();
+ var DynamicBytesCoder = (
+ /** @class */
+ function(_super) {
+ __extends13(DynamicBytesCoder2, _super);
+ function DynamicBytesCoder2(type, localName) {
+ return _super.call(this, type, type, localName, true) || this;
+ }
+ DynamicBytesCoder2.prototype.defaultValue = function() {
+ return "0x";
+ };
+ DynamicBytesCoder2.prototype.encode = function(writer, value) {
+ value = (0, bytes_1.arrayify)(value);
+ var length = writer.writeValue(value.length);
+ length += writer.writeBytes(value);
+ return length;
+ };
+ DynamicBytesCoder2.prototype.decode = function(reader) {
+ return reader.readBytes(reader.readValue().toNumber(), true);
+ };
+ return DynamicBytesCoder2;
+ }(abstract_coder_1.Coder)
+ );
+ exports2.DynamicBytesCoder = DynamicBytesCoder;
+ var BytesCoder = (
+ /** @class */
+ function(_super) {
+ __extends13(BytesCoder2, _super);
+ function BytesCoder2(localName) {
+ return _super.call(this, "bytes", localName) || this;
+ }
+ BytesCoder2.prototype.decode = function(reader) {
+ return reader.coerce(this.name, (0, bytes_1.hexlify)(_super.prototype.decode.call(this, reader)));
+ };
+ return BytesCoder2;
+ }(DynamicBytesCoder)
+ );
+ exports2.BytesCoder = BytesCoder;
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/coders/fixed-bytes.js
+var require_fixed_bytes = __commonJS({
+ "node_modules/@ethersproject/abi/lib/coders/fixed-bytes.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.FixedBytesCoder = void 0;
+ var bytes_1 = require_lib6();
+ var abstract_coder_1 = require_abstract_coder();
+ var FixedBytesCoder = (
+ /** @class */
+ function(_super) {
+ __extends13(FixedBytesCoder2, _super);
+ function FixedBytesCoder2(size, localName) {
+ var _this = this;
+ var name = "bytes" + String(size);
+ _this = _super.call(this, name, name, localName, false) || this;
+ _this.size = size;
+ return _this;
+ }
+ FixedBytesCoder2.prototype.defaultValue = function() {
+ return "0x0000000000000000000000000000000000000000000000000000000000000000".substring(0, 2 + this.size * 2);
+ };
+ FixedBytesCoder2.prototype.encode = function(writer, value) {
+ var data = (0, bytes_1.arrayify)(value);
+ if (data.length !== this.size) {
+ this._throwError("incorrect data length", value);
+ }
+ return writer.writeBytes(data);
+ };
+ FixedBytesCoder2.prototype.decode = function(reader) {
+ return reader.coerce(this.name, (0, bytes_1.hexlify)(reader.readBytes(this.size)));
+ };
+ return FixedBytesCoder2;
+ }(abstract_coder_1.Coder)
+ );
+ exports2.FixedBytesCoder = FixedBytesCoder;
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/coders/null.js
+var require_null = __commonJS({
+ "node_modules/@ethersproject/abi/lib/coders/null.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.NullCoder = void 0;
+ var abstract_coder_1 = require_abstract_coder();
+ var NullCoder = (
+ /** @class */
+ function(_super) {
+ __extends13(NullCoder2, _super);
+ function NullCoder2(localName) {
+ return _super.call(this, "null", "", localName, false) || this;
+ }
+ NullCoder2.prototype.defaultValue = function() {
+ return null;
+ };
+ NullCoder2.prototype.encode = function(writer, value) {
+ if (value != null) {
+ this._throwError("not null", value);
+ }
+ return writer.writeBytes([]);
+ };
+ NullCoder2.prototype.decode = function(reader) {
+ reader.readBytes(0);
+ return reader.coerce(this.name, null);
+ };
+ return NullCoder2;
+ }(abstract_coder_1.Coder)
+ );
+ exports2.NullCoder = NullCoder;
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/coders/number.js
+var require_number = __commonJS({
+ "node_modules/@ethersproject/abi/lib/coders/number.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.NumberCoder = void 0;
+ var bignumber_1 = require_lib7();
+ var constants_1 = require_lib11();
+ var abstract_coder_1 = require_abstract_coder();
+ var NumberCoder = (
+ /** @class */
+ function(_super) {
+ __extends13(NumberCoder2, _super);
+ function NumberCoder2(size, signed, localName) {
+ var _this = this;
+ var name = (signed ? "int" : "uint") + size * 8;
+ _this = _super.call(this, name, name, localName, false) || this;
+ _this.size = size;
+ _this.signed = signed;
+ return _this;
+ }
+ NumberCoder2.prototype.defaultValue = function() {
+ return 0;
+ };
+ NumberCoder2.prototype.encode = function(writer, value) {
+ var v = bignumber_1.BigNumber.from(value);
+ var maxUintValue = constants_1.MaxUint256.mask(writer.wordSize * 8);
+ if (this.signed) {
+ var bounds = maxUintValue.mask(this.size * 8 - 1);
+ if (v.gt(bounds) || v.lt(bounds.add(constants_1.One).mul(constants_1.NegativeOne))) {
+ this._throwError("value out-of-bounds", value);
+ }
+ } else if (v.lt(constants_1.Zero) || v.gt(maxUintValue.mask(this.size * 8))) {
+ this._throwError("value out-of-bounds", value);
+ }
+ v = v.toTwos(this.size * 8).mask(this.size * 8);
+ if (this.signed) {
+ v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);
+ }
+ return writer.writeValue(v);
+ };
+ NumberCoder2.prototype.decode = function(reader) {
+ var value = reader.readValue().mask(this.size * 8);
+ if (this.signed) {
+ value = value.fromTwos(this.size * 8);
+ }
+ return reader.coerce(this.name, value);
+ };
+ return NumberCoder2;
+ }(abstract_coder_1.Coder)
+ );
+ exports2.NumberCoder = NumberCoder;
+ }
+});
+
+// node_modules/@ethersproject/strings/lib/_version.js
+var require_version10 = __commonJS({
+ "node_modules/@ethersproject/strings/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "strings/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/strings/lib/utf8.js
+var require_utf8 = __commonJS({
+ "node_modules/@ethersproject/strings/lib/utf8.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.toUtf8CodePoints = exports2.toUtf8String = exports2._toUtf8String = exports2._toEscapedUtf8String = exports2.toUtf8Bytes = exports2.Utf8ErrorFuncs = exports2.Utf8ErrorReason = exports2.UnicodeNormalizationForm = void 0;
+ var bytes_1 = require_lib6();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version10();
+ var logger = new logger_1.Logger(_version_1.version);
+ var UnicodeNormalizationForm;
+ (function(UnicodeNormalizationForm2) {
+ UnicodeNormalizationForm2["current"] = "";
+ UnicodeNormalizationForm2["NFC"] = "NFC";
+ UnicodeNormalizationForm2["NFD"] = "NFD";
+ UnicodeNormalizationForm2["NFKC"] = "NFKC";
+ UnicodeNormalizationForm2["NFKD"] = "NFKD";
+ })(UnicodeNormalizationForm = exports2.UnicodeNormalizationForm || (exports2.UnicodeNormalizationForm = {}));
+ var Utf8ErrorReason;
+ (function(Utf8ErrorReason2) {
+ Utf8ErrorReason2["UNEXPECTED_CONTINUE"] = "unexpected continuation byte";
+ Utf8ErrorReason2["BAD_PREFIX"] = "bad codepoint prefix";
+ Utf8ErrorReason2["OVERRUN"] = "string overrun";
+ Utf8ErrorReason2["MISSING_CONTINUE"] = "missing continuation byte";
+ Utf8ErrorReason2["OUT_OF_RANGE"] = "out of UTF-8 range";
+ Utf8ErrorReason2["UTF16_SURROGATE"] = "UTF-16 surrogate";
+ Utf8ErrorReason2["OVERLONG"] = "overlong representation";
+ })(Utf8ErrorReason = exports2.Utf8ErrorReason || (exports2.Utf8ErrorReason = {}));
+ function errorFunc(reason, offset, bytes, output, badCodepoint) {
+ return logger.throwArgumentError("invalid codepoint at offset " + offset + "; " + reason, "bytes", bytes);
+ }
+ function ignoreFunc(reason, offset, bytes, output, badCodepoint) {
+ if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {
+ var i = 0;
+ for (var o = offset + 1; o < bytes.length; o++) {
+ if (bytes[o] >> 6 !== 2) {
+ break;
+ }
+ i++;
+ }
+ return i;
+ }
+ if (reason === Utf8ErrorReason.OVERRUN) {
+ return bytes.length - offset - 1;
+ }
+ return 0;
+ }
+ function replaceFunc(reason, offset, bytes, output, badCodepoint) {
+ if (reason === Utf8ErrorReason.OVERLONG) {
+ output.push(badCodepoint);
+ return 0;
+ }
+ output.push(65533);
+ return ignoreFunc(reason, offset, bytes, output, badCodepoint);
+ }
+ exports2.Utf8ErrorFuncs = Object.freeze({
+ error: errorFunc,
+ ignore: ignoreFunc,
+ replace: replaceFunc
+ });
+ function getUtf8CodePoints(bytes, onError) {
+ if (onError == null) {
+ onError = exports2.Utf8ErrorFuncs.error;
+ }
+ bytes = (0, bytes_1.arrayify)(bytes);
+ var result = [];
+ var i = 0;
+ while (i < bytes.length) {
+ var c = bytes[i++];
+ if (c >> 7 === 0) {
+ result.push(c);
+ continue;
+ }
+ var extraLength = null;
+ var overlongMask = null;
+ if ((c & 224) === 192) {
+ extraLength = 1;
+ overlongMask = 127;
+ } else if ((c & 240) === 224) {
+ extraLength = 2;
+ overlongMask = 2047;
+ } else if ((c & 248) === 240) {
+ extraLength = 3;
+ overlongMask = 65535;
+ } else {
+ if ((c & 192) === 128) {
+ i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);
+ } else {
+ i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);
+ }
+ continue;
+ }
+ if (i - 1 + extraLength >= bytes.length) {
+ i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);
+ continue;
+ }
+ var res = c & (1 << 8 - extraLength - 1) - 1;
+ for (var j = 0; j < extraLength; j++) {
+ var nextChar = bytes[i];
+ if ((nextChar & 192) != 128) {
+ i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);
+ res = null;
+ break;
+ }
+ ;
+ res = res << 6 | nextChar & 63;
+ i++;
+ }
+ if (res === null) {
+ continue;
+ }
+ if (res > 1114111) {
+ i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);
+ continue;
+ }
+ if (res >= 55296 && res <= 57343) {
+ i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);
+ continue;
+ }
+ if (res <= overlongMask) {
+ i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);
+ continue;
+ }
+ result.push(res);
+ }
+ return result;
+ }
+ function toUtf8Bytes(str, form) {
+ if (form === void 0) {
+ form = UnicodeNormalizationForm.current;
+ }
+ if (form != UnicodeNormalizationForm.current) {
+ logger.checkNormalize();
+ str = str.normalize(form);
+ }
+ var result = [];
+ for (var i = 0; i < str.length; i++) {
+ var c = str.charCodeAt(i);
+ if (c < 128) {
+ result.push(c);
+ } else if (c < 2048) {
+ result.push(c >> 6 | 192);
+ result.push(c & 63 | 128);
+ } else if ((c & 64512) == 55296) {
+ i++;
+ var c2 = str.charCodeAt(i);
+ if (i >= str.length || (c2 & 64512) !== 56320) {
+ throw new Error("invalid utf-8 string");
+ }
+ var pair = 65536 + ((c & 1023) << 10) + (c2 & 1023);
+ result.push(pair >> 18 | 240);
+ result.push(pair >> 12 & 63 | 128);
+ result.push(pair >> 6 & 63 | 128);
+ result.push(pair & 63 | 128);
+ } else {
+ result.push(c >> 12 | 224);
+ result.push(c >> 6 & 63 | 128);
+ result.push(c & 63 | 128);
+ }
+ }
+ return (0, bytes_1.arrayify)(result);
+ }
+ exports2.toUtf8Bytes = toUtf8Bytes;
+ function escapeChar(value) {
+ var hex = "0000" + value.toString(16);
+ return "\\u" + hex.substring(hex.length - 4);
+ }
+ function _toEscapedUtf8String(bytes, onError) {
+ return '"' + getUtf8CodePoints(bytes, onError).map(function(codePoint) {
+ if (codePoint < 256) {
+ switch (codePoint) {
+ case 8:
+ return "\\b";
+ case 9:
+ return "\\t";
+ case 10:
+ return "\\n";
+ case 13:
+ return "\\r";
+ case 34:
+ return '\\"';
+ case 92:
+ return "\\\\";
+ }
+ if (codePoint >= 32 && codePoint < 127) {
+ return String.fromCharCode(codePoint);
+ }
+ }
+ if (codePoint <= 65535) {
+ return escapeChar(codePoint);
+ }
+ codePoint -= 65536;
+ return escapeChar((codePoint >> 10 & 1023) + 55296) + escapeChar((codePoint & 1023) + 56320);
+ }).join("") + '"';
+ }
+ exports2._toEscapedUtf8String = _toEscapedUtf8String;
+ function _toUtf8String(codePoints) {
+ return codePoints.map(function(codePoint) {
+ if (codePoint <= 65535) {
+ return String.fromCharCode(codePoint);
+ }
+ codePoint -= 65536;
+ return String.fromCharCode((codePoint >> 10 & 1023) + 55296, (codePoint & 1023) + 56320);
+ }).join("");
+ }
+ exports2._toUtf8String = _toUtf8String;
+ function toUtf8String(bytes, onError) {
+ return _toUtf8String(getUtf8CodePoints(bytes, onError));
+ }
+ exports2.toUtf8String = toUtf8String;
+ function toUtf8CodePoints(str, form) {
+ if (form === void 0) {
+ form = UnicodeNormalizationForm.current;
+ }
+ return getUtf8CodePoints(toUtf8Bytes(str, form));
+ }
+ exports2.toUtf8CodePoints = toUtf8CodePoints;
+ }
+});
+
+// node_modules/@ethersproject/strings/lib/bytes32.js
+var require_bytes32 = __commonJS({
+ "node_modules/@ethersproject/strings/lib/bytes32.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.parseBytes32String = exports2.formatBytes32String = void 0;
+ var constants_1 = require_lib11();
+ var bytes_1 = require_lib6();
+ var utf8_1 = require_utf8();
+ function formatBytes32String(text) {
+ var bytes = (0, utf8_1.toUtf8Bytes)(text);
+ if (bytes.length > 31) {
+ throw new Error("bytes32 string must be less than 32 bytes");
+ }
+ return (0, bytes_1.hexlify)((0, bytes_1.concat)([bytes, constants_1.HashZero]).slice(0, 32));
+ }
+ exports2.formatBytes32String = formatBytes32String;
+ function parseBytes32String(bytes) {
+ var data = (0, bytes_1.arrayify)(bytes);
+ if (data.length !== 32) {
+ throw new Error("invalid bytes32 - not 32 bytes long");
+ }
+ if (data[31] !== 0) {
+ throw new Error("invalid bytes32 string - no null terminator");
+ }
+ var length = 31;
+ while (data[length - 1] === 0) {
+ length--;
+ }
+ return (0, utf8_1.toUtf8String)(data.slice(0, length));
+ }
+ exports2.parseBytes32String = parseBytes32String;
+ }
+});
+
+// node_modules/@ethersproject/strings/lib/idna.js
+var require_idna = __commonJS({
+ "node_modules/@ethersproject/strings/lib/idna.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.nameprep = exports2._nameprepTableC = exports2._nameprepTableB2 = exports2._nameprepTableA1 = void 0;
+ var utf8_1 = require_utf8();
+ function bytes2(data) {
+ if (data.length % 4 !== 0) {
+ throw new Error("bad data");
+ }
+ var result = [];
+ for (var i = 0; i < data.length; i += 4) {
+ result.push(parseInt(data.substring(i, i + 4), 16));
+ }
+ return result;
+ }
+ function createTable(data, func) {
+ if (!func) {
+ func = function(value) {
+ return [parseInt(value, 16)];
+ };
+ }
+ var lo = 0;
+ var result = {};
+ data.split(",").forEach(function(pair) {
+ var comps = pair.split(":");
+ lo += parseInt(comps[0], 16);
+ result[lo] = func(comps[1]);
+ });
+ return result;
+ }
+ function createRangeTable(data) {
+ var hi = 0;
+ return data.split(",").map(function(v) {
+ var comps = v.split("-");
+ if (comps.length === 1) {
+ comps[1] = "0";
+ } else if (comps[1] === "") {
+ comps[1] = "1";
+ }
+ var lo = hi + parseInt(comps[0], 16);
+ hi = parseInt(comps[1], 16);
+ return { l: lo, h: hi };
+ });
+ }
+ function matchMap(value, ranges) {
+ var lo = 0;
+ for (var i = 0; i < ranges.length; i++) {
+ var range = ranges[i];
+ lo += range.l;
+ if (value >= lo && value <= lo + range.h && (value - lo) % (range.d || 1) === 0) {
+ if (range.e && range.e.indexOf(value - lo) !== -1) {
+ continue;
+ }
+ return range;
+ }
+ }
+ return null;
+ }
+ var Table_A_1_ranges = createRangeTable("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d");
+ var Table_B_1_flags = "ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map(function(v) {
+ return parseInt(v, 16);
+ });
+ var Table_B_2_ranges = [
+ { h: 25, s: 32, l: 65 },
+ { h: 30, s: 32, e: [23], l: 127 },
+ { h: 54, s: 1, e: [48], l: 64, d: 2 },
+ { h: 14, s: 1, l: 57, d: 2 },
+ { h: 44, s: 1, l: 17, d: 2 },
+ { h: 10, s: 1, e: [2, 6, 8], l: 61, d: 2 },
+ { h: 16, s: 1, l: 68, d: 2 },
+ { h: 84, s: 1, e: [18, 24, 66], l: 19, d: 2 },
+ { h: 26, s: 32, e: [17], l: 435 },
+ { h: 22, s: 1, l: 71, d: 2 },
+ { h: 15, s: 80, l: 40 },
+ { h: 31, s: 32, l: 16 },
+ { h: 32, s: 1, l: 80, d: 2 },
+ { h: 52, s: 1, l: 42, d: 2 },
+ { h: 12, s: 1, l: 55, d: 2 },
+ { h: 40, s: 1, e: [38], l: 15, d: 2 },
+ { h: 14, s: 1, l: 48, d: 2 },
+ { h: 37, s: 48, l: 49 },
+ { h: 148, s: 1, l: 6351, d: 2 },
+ { h: 88, s: 1, l: 160, d: 2 },
+ { h: 15, s: 16, l: 704 },
+ { h: 25, s: 26, l: 854 },
+ { h: 25, s: 32, l: 55915 },
+ { h: 37, s: 40, l: 1247 },
+ { h: 25, s: -119711, l: 53248 },
+ { h: 25, s: -119763, l: 52 },
+ { h: 25, s: -119815, l: 52 },
+ { h: 25, s: -119867, e: [1, 4, 5, 7, 8, 11, 12, 17], l: 52 },
+ { h: 25, s: -119919, l: 52 },
+ { h: 24, s: -119971, e: [2, 7, 8, 17], l: 52 },
+ { h: 24, s: -120023, e: [2, 7, 13, 15, 16, 17], l: 52 },
+ { h: 25, s: -120075, l: 52 },
+ { h: 25, s: -120127, l: 52 },
+ { h: 25, s: -120179, l: 52 },
+ { h: 25, s: -120231, l: 52 },
+ { h: 25, s: -120283, l: 52 },
+ { h: 25, s: -120335, l: 52 },
+ { h: 24, s: -119543, e: [17], l: 56 },
+ { h: 24, s: -119601, e: [17], l: 58 },
+ { h: 24, s: -119659, e: [17], l: 58 },
+ { h: 24, s: -119717, e: [17], l: 58 },
+ { h: 24, s: -119775, e: [17], l: 58 }
+ ];
+ var Table_B_2_lut_abs = createTable("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3");
+ var Table_B_2_lut_rel = createTable("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7");
+ var Table_B_2_complex = createTable("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D", bytes2);
+ var Table_C_ranges = createRangeTable("80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001");
+ function flatten(values) {
+ return values.reduce(function(accum, value) {
+ value.forEach(function(value2) {
+ accum.push(value2);
+ });
+ return accum;
+ }, []);
+ }
+ function _nameprepTableA1(codepoint) {
+ return !!matchMap(codepoint, Table_A_1_ranges);
+ }
+ exports2._nameprepTableA1 = _nameprepTableA1;
+ function _nameprepTableB2(codepoint) {
+ var range = matchMap(codepoint, Table_B_2_ranges);
+ if (range) {
+ return [codepoint + range.s];
+ }
+ var codes = Table_B_2_lut_abs[codepoint];
+ if (codes) {
+ return codes;
+ }
+ var shift = Table_B_2_lut_rel[codepoint];
+ if (shift) {
+ return [codepoint + shift[0]];
+ }
+ var complex = Table_B_2_complex[codepoint];
+ if (complex) {
+ return complex;
+ }
+ return null;
+ }
+ exports2._nameprepTableB2 = _nameprepTableB2;
+ function _nameprepTableC(codepoint) {
+ return !!matchMap(codepoint, Table_C_ranges);
+ }
+ exports2._nameprepTableC = _nameprepTableC;
+ function nameprep(value) {
+ if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) {
+ return value.toLowerCase();
+ }
+ var codes = (0, utf8_1.toUtf8CodePoints)(value);
+ codes = flatten(codes.map(function(code) {
+ if (Table_B_1_flags.indexOf(code) >= 0) {
+ return [];
+ }
+ if (code >= 65024 && code <= 65039) {
+ return [];
+ }
+ var codesTableB2 = _nameprepTableB2(code);
+ if (codesTableB2) {
+ return codesTableB2;
+ }
+ return [code];
+ }));
+ codes = (0, utf8_1.toUtf8CodePoints)((0, utf8_1._toUtf8String)(codes), utf8_1.UnicodeNormalizationForm.NFKC);
+ codes.forEach(function(code) {
+ if (_nameprepTableC(code)) {
+ throw new Error("STRINGPREP_CONTAINS_PROHIBITED");
+ }
+ });
+ codes.forEach(function(code) {
+ if (_nameprepTableA1(code)) {
+ throw new Error("STRINGPREP_CONTAINS_UNASSIGNED");
+ }
+ });
+ var name = (0, utf8_1._toUtf8String)(codes);
+ if (name.substring(0, 1) === "-" || name.substring(2, 4) === "--" || name.substring(name.length - 1) === "-") {
+ throw new Error("invalid hyphen");
+ }
+ return name;
+ }
+ exports2.nameprep = nameprep;
+ }
+});
+
+// node_modules/@ethersproject/strings/lib/index.js
+var require_lib15 = __commonJS({
+ "node_modules/@ethersproject/strings/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.nameprep = exports2.parseBytes32String = exports2.formatBytes32String = exports2.UnicodeNormalizationForm = exports2.Utf8ErrorReason = exports2.Utf8ErrorFuncs = exports2.toUtf8String = exports2.toUtf8CodePoints = exports2.toUtf8Bytes = exports2._toEscapedUtf8String = void 0;
+ var bytes32_1 = require_bytes32();
+ Object.defineProperty(exports2, "formatBytes32String", { enumerable: true, get: function() {
+ return bytes32_1.formatBytes32String;
+ } });
+ Object.defineProperty(exports2, "parseBytes32String", { enumerable: true, get: function() {
+ return bytes32_1.parseBytes32String;
+ } });
+ var idna_1 = require_idna();
+ Object.defineProperty(exports2, "nameprep", { enumerable: true, get: function() {
+ return idna_1.nameprep;
+ } });
+ var utf8_1 = require_utf8();
+ Object.defineProperty(exports2, "_toEscapedUtf8String", { enumerable: true, get: function() {
+ return utf8_1._toEscapedUtf8String;
+ } });
+ Object.defineProperty(exports2, "toUtf8Bytes", { enumerable: true, get: function() {
+ return utf8_1.toUtf8Bytes;
+ } });
+ Object.defineProperty(exports2, "toUtf8CodePoints", { enumerable: true, get: function() {
+ return utf8_1.toUtf8CodePoints;
+ } });
+ Object.defineProperty(exports2, "toUtf8String", { enumerable: true, get: function() {
+ return utf8_1.toUtf8String;
+ } });
+ Object.defineProperty(exports2, "UnicodeNormalizationForm", { enumerable: true, get: function() {
+ return utf8_1.UnicodeNormalizationForm;
+ } });
+ Object.defineProperty(exports2, "Utf8ErrorFuncs", { enumerable: true, get: function() {
+ return utf8_1.Utf8ErrorFuncs;
+ } });
+ Object.defineProperty(exports2, "Utf8ErrorReason", { enumerable: true, get: function() {
+ return utf8_1.Utf8ErrorReason;
+ } });
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/coders/string.js
+var require_string = __commonJS({
+ "node_modules/@ethersproject/abi/lib/coders/string.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.StringCoder = void 0;
+ var strings_1 = require_lib15();
+ var bytes_1 = require_bytes2();
+ var StringCoder = (
+ /** @class */
+ function(_super) {
+ __extends13(StringCoder2, _super);
+ function StringCoder2(localName) {
+ return _super.call(this, "string", localName) || this;
+ }
+ StringCoder2.prototype.defaultValue = function() {
+ return "";
+ };
+ StringCoder2.prototype.encode = function(writer, value) {
+ return _super.prototype.encode.call(this, writer, (0, strings_1.toUtf8Bytes)(value));
+ };
+ StringCoder2.prototype.decode = function(reader) {
+ return (0, strings_1.toUtf8String)(_super.prototype.decode.call(this, reader));
+ };
+ return StringCoder2;
+ }(bytes_1.DynamicBytesCoder)
+ );
+ exports2.StringCoder = StringCoder;
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/coders/tuple.js
+var require_tuple = __commonJS({
+ "node_modules/@ethersproject/abi/lib/coders/tuple.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.TupleCoder = void 0;
+ var abstract_coder_1 = require_abstract_coder();
+ var array_1 = require_array();
+ var TupleCoder = (
+ /** @class */
+ function(_super) {
+ __extends13(TupleCoder2, _super);
+ function TupleCoder2(coders, localName) {
+ var _this = this;
+ var dynamic = false;
+ var types = [];
+ coders.forEach(function(coder) {
+ if (coder.dynamic) {
+ dynamic = true;
+ }
+ types.push(coder.type);
+ });
+ var type = "tuple(" + types.join(",") + ")";
+ _this = _super.call(this, "tuple", type, localName, dynamic) || this;
+ _this.coders = coders;
+ return _this;
+ }
+ TupleCoder2.prototype.defaultValue = function() {
+ var values = [];
+ this.coders.forEach(function(coder) {
+ values.push(coder.defaultValue());
+ });
+ var uniqueNames = this.coders.reduce(function(accum, coder) {
+ var name = coder.localName;
+ if (name) {
+ if (!accum[name]) {
+ accum[name] = 0;
+ }
+ accum[name]++;
+ }
+ return accum;
+ }, {});
+ this.coders.forEach(function(coder, index) {
+ var name = coder.localName;
+ if (!name || uniqueNames[name] !== 1) {
+ return;
+ }
+ if (name === "length") {
+ name = "_length";
+ }
+ if (values[name] != null) {
+ return;
+ }
+ values[name] = values[index];
+ });
+ return Object.freeze(values);
+ };
+ TupleCoder2.prototype.encode = function(writer, value) {
+ return (0, array_1.pack)(writer, this.coders, value);
+ };
+ TupleCoder2.prototype.decode = function(reader) {
+ return reader.coerce(this.name, (0, array_1.unpack)(reader, this.coders));
+ };
+ return TupleCoder2;
+ }(abstract_coder_1.Coder)
+ );
+ exports2.TupleCoder = TupleCoder;
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/abi-coder.js
+var require_abi_coder = __commonJS({
+ "node_modules/@ethersproject/abi/lib/abi-coder.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.defaultAbiCoder = exports2.AbiCoder = void 0;
+ var bytes_1 = require_lib6();
+ var properties_1 = require_lib12();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version9();
+ var logger = new logger_1.Logger(_version_1.version);
+ var abstract_coder_1 = require_abstract_coder();
+ var address_1 = require_address();
+ var array_1 = require_array();
+ var boolean_1 = require_boolean();
+ var bytes_2 = require_bytes2();
+ var fixed_bytes_1 = require_fixed_bytes();
+ var null_1 = require_null();
+ var number_1 = require_number();
+ var string_1 = require_string();
+ var tuple_1 = require_tuple();
+ var fragments_1 = require_fragments();
+ var paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);
+ var paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);
+ var AbiCoder = (
+ /** @class */
+ function() {
+ function AbiCoder2(coerceFunc) {
+ (0, properties_1.defineReadOnly)(this, "coerceFunc", coerceFunc || null);
+ }
+ AbiCoder2.prototype._getCoder = function(param) {
+ var _this = this;
+ switch (param.baseType) {
+ case "address":
+ return new address_1.AddressCoder(param.name);
+ case "bool":
+ return new boolean_1.BooleanCoder(param.name);
+ case "string":
+ return new string_1.StringCoder(param.name);
+ case "bytes":
+ return new bytes_2.BytesCoder(param.name);
+ case "array":
+ return new array_1.ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);
+ case "tuple":
+ return new tuple_1.TupleCoder((param.components || []).map(function(component) {
+ return _this._getCoder(component);
+ }), param.name);
+ case "":
+ return new null_1.NullCoder(param.name);
+ }
+ var match = param.type.match(paramTypeNumber);
+ if (match) {
+ var size = parseInt(match[2] || "256");
+ if (size === 0 || size > 256 || size % 8 !== 0) {
+ logger.throwArgumentError("invalid " + match[1] + " bit length", "param", param);
+ }
+ return new number_1.NumberCoder(size / 8, match[1] === "int", param.name);
+ }
+ match = param.type.match(paramTypeBytes);
+ if (match) {
+ var size = parseInt(match[1]);
+ if (size === 0 || size > 32) {
+ logger.throwArgumentError("invalid bytes length", "param", param);
+ }
+ return new fixed_bytes_1.FixedBytesCoder(size, param.name);
+ }
+ return logger.throwArgumentError("invalid type", "type", param.type);
+ };
+ AbiCoder2.prototype._getWordSize = function() {
+ return 32;
+ };
+ AbiCoder2.prototype._getReader = function(data, allowLoose) {
+ return new abstract_coder_1.Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);
+ };
+ AbiCoder2.prototype._getWriter = function() {
+ return new abstract_coder_1.Writer(this._getWordSize());
+ };
+ AbiCoder2.prototype.getDefaultValue = function(types) {
+ var _this = this;
+ var coders = types.map(function(type) {
+ return _this._getCoder(fragments_1.ParamType.from(type));
+ });
+ var coder = new tuple_1.TupleCoder(coders, "_");
+ return coder.defaultValue();
+ };
+ AbiCoder2.prototype.encode = function(types, values) {
+ var _this = this;
+ if (types.length !== values.length) {
+ logger.throwError("types/values length mismatch", logger_1.Logger.errors.INVALID_ARGUMENT, {
+ count: { types: types.length, values: values.length },
+ value: { types, values }
+ });
+ }
+ var coders = types.map(function(type) {
+ return _this._getCoder(fragments_1.ParamType.from(type));
+ });
+ var coder = new tuple_1.TupleCoder(coders, "_");
+ var writer = this._getWriter();
+ coder.encode(writer, values);
+ return writer.data;
+ };
+ AbiCoder2.prototype.decode = function(types, data, loose) {
+ var _this = this;
+ var coders = types.map(function(type) {
+ return _this._getCoder(fragments_1.ParamType.from(type));
+ });
+ var coder = new tuple_1.TupleCoder(coders, "_");
+ return coder.decode(this._getReader((0, bytes_1.arrayify)(data), loose));
+ };
+ return AbiCoder2;
+ }()
+ );
+ exports2.AbiCoder = AbiCoder;
+ exports2.defaultAbiCoder = new AbiCoder();
+ }
+});
+
+// node_modules/@ethersproject/hash/lib/id.js
+var require_id = __commonJS({
+ "node_modules/@ethersproject/hash/lib/id.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.id = void 0;
+ var keccak256_1 = require_lib8();
+ var strings_1 = require_lib15();
+ function id(text) {
+ return (0, keccak256_1.keccak256)((0, strings_1.toUtf8Bytes)(text));
+ }
+ exports2.id = id;
+ }
+});
+
+// node_modules/@ethersproject/hash/lib/_version.js
+var require_version11 = __commonJS({
+ "node_modules/@ethersproject/hash/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "hash/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/base64/lib/base64.js
+var require_base64 = __commonJS({
+ "node_modules/@ethersproject/base64/lib/base64.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.encode = exports2.decode = void 0;
+ var bytes_1 = require_lib6();
+ function decode(textData) {
+ return (0, bytes_1.arrayify)(new Uint8Array(Buffer.from(textData, "base64")));
+ }
+ exports2.decode = decode;
+ function encode(data) {
+ return Buffer.from((0, bytes_1.arrayify)(data)).toString("base64");
+ }
+ exports2.encode = encode;
+ }
+});
+
+// node_modules/@ethersproject/base64/lib/index.js
+var require_lib16 = __commonJS({
+ "node_modules/@ethersproject/base64/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.encode = exports2.decode = void 0;
+ var base64_1 = require_base64();
+ Object.defineProperty(exports2, "decode", { enumerable: true, get: function() {
+ return base64_1.decode;
+ } });
+ Object.defineProperty(exports2, "encode", { enumerable: true, get: function() {
+ return base64_1.encode;
+ } });
+ }
+});
+
+// node_modules/@ethersproject/hash/lib/ens-normalize/decoder.js
+var require_decoder = __commonJS({
+ "node_modules/@ethersproject/hash/lib/ens-normalize/decoder.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.read_emoji_trie = exports2.read_zero_terminated_array = exports2.read_mapped_map = exports2.read_member_array = exports2.signed = exports2.read_compressed_payload = exports2.read_payload = exports2.decode_arithmetic = void 0;
+ function flat(array, depth) {
+ if (depth == null) {
+ depth = 1;
+ }
+ var result = [];
+ var forEach = result.forEach;
+ var flatDeep = function(arr, depth2) {
+ forEach.call(arr, function(val) {
+ if (depth2 > 0 && Array.isArray(val)) {
+ flatDeep(val, depth2 - 1);
+ } else {
+ result.push(val);
+ }
+ });
+ };
+ flatDeep(array, depth);
+ return result;
+ }
+ function fromEntries(array) {
+ var result = {};
+ for (var i = 0; i < array.length; i++) {
+ var value = array[i];
+ result[value[0]] = value[1];
+ }
+ return result;
+ }
+ function decode_arithmetic(bytes) {
+ var pos = 0;
+ function u16() {
+ return bytes[pos++] << 8 | bytes[pos++];
+ }
+ var symbol_count = u16();
+ var total = 1;
+ var acc = [0, 1];
+ for (var i = 1; i < symbol_count; i++) {
+ acc.push(total += u16());
+ }
+ var skip = u16();
+ var pos_payload = pos;
+ pos += skip;
+ var read_width = 0;
+ var read_buffer = 0;
+ function read_bit() {
+ if (read_width == 0) {
+ read_buffer = read_buffer << 8 | bytes[pos++];
+ read_width = 8;
+ }
+ return read_buffer >> --read_width & 1;
+ }
+ var N = 31;
+ var FULL = Math.pow(2, N);
+ var HALF = FULL >>> 1;
+ var QRTR = HALF >> 1;
+ var MASK = FULL - 1;
+ var register = 0;
+ for (var i = 0; i < N; i++)
+ register = register << 1 | read_bit();
+ var symbols = [];
+ var low = 0;
+ var range = FULL;
+ while (true) {
+ var value = Math.floor(((register - low + 1) * total - 1) / range);
+ var start = 0;
+ var end = symbol_count;
+ while (end - start > 1) {
+ var mid = start + end >>> 1;
+ if (value < acc[mid]) {
+ end = mid;
+ } else {
+ start = mid;
+ }
+ }
+ if (start == 0)
+ break;
+ symbols.push(start);
+ var a = low + Math.floor(range * acc[start] / total);
+ var b = low + Math.floor(range * acc[start + 1] / total) - 1;
+ while (((a ^ b) & HALF) == 0) {
+ register = register << 1 & MASK | read_bit();
+ a = a << 1 & MASK;
+ b = b << 1 & MASK | 1;
+ }
+ while (a & ~b & QRTR) {
+ register = register & HALF | register << 1 & MASK >>> 1 | read_bit();
+ a = a << 1 ^ HALF;
+ b = (b ^ HALF) << 1 | HALF | 1;
+ }
+ low = a;
+ range = 1 + b - a;
+ }
+ var offset = symbol_count - 4;
+ return symbols.map(function(x) {
+ switch (x - offset) {
+ case 3:
+ return offset + 65792 + (bytes[pos_payload++] << 16 | bytes[pos_payload++] << 8 | bytes[pos_payload++]);
+ case 2:
+ return offset + 256 + (bytes[pos_payload++] << 8 | bytes[pos_payload++]);
+ case 1:
+ return offset + bytes[pos_payload++];
+ default:
+ return x - 1;
+ }
+ });
+ }
+ exports2.decode_arithmetic = decode_arithmetic;
+ function read_payload(v) {
+ var pos = 0;
+ return function() {
+ return v[pos++];
+ };
+ }
+ exports2.read_payload = read_payload;
+ function read_compressed_payload(bytes) {
+ return read_payload(decode_arithmetic(bytes));
+ }
+ exports2.read_compressed_payload = read_compressed_payload;
+ function signed(i) {
+ return i & 1 ? ~i >> 1 : i >> 1;
+ }
+ exports2.signed = signed;
+ function read_counts(n, next) {
+ var v = Array(n);
+ for (var i = 0; i < n; i++)
+ v[i] = 1 + next();
+ return v;
+ }
+ function read_ascending(n, next) {
+ var v = Array(n);
+ for (var i = 0, x = -1; i < n; i++)
+ v[i] = x += 1 + next();
+ return v;
+ }
+ function read_deltas(n, next) {
+ var v = Array(n);
+ for (var i = 0, x = 0; i < n; i++)
+ v[i] = x += signed(next());
+ return v;
+ }
+ function read_member_array(next, lookup) {
+ var v = read_ascending(next(), next);
+ var n = next();
+ var vX = read_ascending(n, next);
+ var vN = read_counts(n, next);
+ for (var i = 0; i < n; i++) {
+ for (var j = 0; j < vN[i]; j++) {
+ v.push(vX[i] + j);
+ }
+ }
+ return lookup ? v.map(function(x) {
+ return lookup[x];
+ }) : v;
+ }
+ exports2.read_member_array = read_member_array;
+ function read_mapped_map(next) {
+ var ret = [];
+ while (true) {
+ var w = next();
+ if (w == 0)
+ break;
+ ret.push(read_linear_table(w, next));
+ }
+ while (true) {
+ var w = next() - 1;
+ if (w < 0)
+ break;
+ ret.push(read_replacement_table(w, next));
+ }
+ return fromEntries(flat(ret));
+ }
+ exports2.read_mapped_map = read_mapped_map;
+ function read_zero_terminated_array(next) {
+ var v = [];
+ while (true) {
+ var i = next();
+ if (i == 0)
+ break;
+ v.push(i);
+ }
+ return v;
+ }
+ exports2.read_zero_terminated_array = read_zero_terminated_array;
+ function read_transposed(n, w, next) {
+ var m = Array(n).fill(void 0).map(function() {
+ return [];
+ });
+ for (var i = 0; i < w; i++) {
+ read_deltas(n, next).forEach(function(x, j) {
+ return m[j].push(x);
+ });
+ }
+ return m;
+ }
+ function read_linear_table(w, next) {
+ var dx = 1 + next();
+ var dy = next();
+ var vN = read_zero_terminated_array(next);
+ var m = read_transposed(vN.length, 1 + w, next);
+ return flat(m.map(function(v, i) {
+ var x = v[0], ys = v.slice(1);
+ return Array(vN[i]).fill(void 0).map(function(_, j) {
+ var j_dy = j * dy;
+ return [x + j * dx, ys.map(function(y) {
+ return y + j_dy;
+ })];
+ });
+ }));
+ }
+ function read_replacement_table(w, next) {
+ var n = 1 + next();
+ var m = read_transposed(n, 1 + w, next);
+ return m.map(function(v) {
+ return [v[0], v.slice(1)];
+ });
+ }
+ function read_emoji_trie(next) {
+ var sorted = read_member_array(next).sort(function(a, b) {
+ return a - b;
+ });
+ return read();
+ function read() {
+ var branches = [];
+ while (true) {
+ var keys = read_member_array(next, sorted);
+ if (keys.length == 0)
+ break;
+ branches.push({ set: new Set(keys), node: read() });
+ }
+ branches.sort(function(a, b) {
+ return b.set.size - a.set.size;
+ });
+ var temp = next();
+ var valid = temp % 3;
+ temp = temp / 3 | 0;
+ var fe0f = !!(temp & 1);
+ temp >>= 1;
+ var save = temp == 1;
+ var check = temp == 2;
+ return { branches, valid, fe0f, save, check };
+ }
+ }
+ exports2.read_emoji_trie = read_emoji_trie;
+ }
+});
+
+// node_modules/@ethersproject/hash/lib/ens-normalize/include.js
+var require_include = __commonJS({
+ "node_modules/@ethersproject/hash/lib/ens-normalize/include.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getData = void 0;
+ var base64_1 = require_lib16();
+ var decoder_js_1 = require_decoder();
+ function getData() {
+ return (0, decoder_js_1.read_compressed_payload)((0, base64_1.decode)("AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA=="));
+ }
+ exports2.getData = getData;
+ }
+});
+
+// node_modules/@ethersproject/hash/lib/ens-normalize/lib.js
+var require_lib17 = __commonJS({
+ "node_modules/@ethersproject/hash/lib/ens-normalize/lib.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.ens_normalize = exports2.ens_normalize_post_check = void 0;
+ var strings_1 = require_lib15();
+ var include_js_1 = require_include();
+ var r = (0, include_js_1.getData)();
+ var decoder_js_1 = require_decoder();
+ var VALID = new Set((0, decoder_js_1.read_member_array)(r));
+ var IGNORED = new Set((0, decoder_js_1.read_member_array)(r));
+ var MAPPED = (0, decoder_js_1.read_mapped_map)(r);
+ var EMOJI_ROOT = (0, decoder_js_1.read_emoji_trie)(r);
+ var HYPHEN = 45;
+ var UNDERSCORE = 95;
+ function explode_cp(name) {
+ return (0, strings_1.toUtf8CodePoints)(name);
+ }
+ function filter_fe0f(cps) {
+ return cps.filter(function(cp) {
+ return cp != 65039;
+ });
+ }
+ function ens_normalize_post_check(name) {
+ for (var _i = 0, _a = name.split("."); _i < _a.length; _i++) {
+ var label = _a[_i];
+ var cps = explode_cp(label);
+ try {
+ for (var i = cps.lastIndexOf(UNDERSCORE) - 1; i >= 0; i--) {
+ if (cps[i] !== UNDERSCORE) {
+ throw new Error("underscore only allowed at start");
+ }
+ }
+ if (cps.length >= 4 && cps.every(function(cp) {
+ return cp < 128;
+ }) && cps[2] === HYPHEN && cps[3] === HYPHEN) {
+ throw new Error("invalid label extension");
+ }
+ } catch (err) {
+ throw new Error('Invalid label "' + label + '": ' + err.message);
+ }
+ }
+ return name;
+ }
+ exports2.ens_normalize_post_check = ens_normalize_post_check;
+ function ens_normalize(name) {
+ return ens_normalize_post_check(normalize(name, filter_fe0f));
+ }
+ exports2.ens_normalize = ens_normalize;
+ function normalize(name, emoji_filter) {
+ var input = explode_cp(name).reverse();
+ var output = [];
+ while (input.length) {
+ var emoji = consume_emoji_reversed(input);
+ if (emoji) {
+ output.push.apply(output, emoji_filter(emoji));
+ continue;
+ }
+ var cp = input.pop();
+ if (VALID.has(cp)) {
+ output.push(cp);
+ continue;
+ }
+ if (IGNORED.has(cp)) {
+ continue;
+ }
+ var cps = MAPPED[cp];
+ if (cps) {
+ output.push.apply(output, cps);
+ continue;
+ }
+ throw new Error("Disallowed codepoint: 0x" + cp.toString(16).toUpperCase());
+ }
+ return ens_normalize_post_check(nfc(String.fromCodePoint.apply(String, output)));
+ }
+ function nfc(s) {
+ return s.normalize("NFC");
+ }
+ function consume_emoji_reversed(cps, eaten) {
+ var _a;
+ var node = EMOJI_ROOT;
+ var emoji;
+ var saved;
+ var stack = [];
+ var pos = cps.length;
+ if (eaten)
+ eaten.length = 0;
+ var _loop_1 = function() {
+ var cp = cps[--pos];
+ node = (_a = node.branches.find(function(x) {
+ return x.set.has(cp);
+ })) === null || _a === void 0 ? void 0 : _a.node;
+ if (!node)
+ return "break";
+ if (node.save) {
+ saved = cp;
+ } else if (node.check) {
+ if (cp === saved)
+ return "break";
+ }
+ stack.push(cp);
+ if (node.fe0f) {
+ stack.push(65039);
+ if (pos > 0 && cps[pos - 1] == 65039)
+ pos--;
+ }
+ if (node.valid) {
+ emoji = stack.slice();
+ if (node.valid == 2)
+ emoji.splice(1, 1);
+ if (eaten)
+ eaten.push.apply(eaten, cps.slice(pos).reverse());
+ cps.length = pos;
+ }
+ };
+ while (pos) {
+ var state_1 = _loop_1();
+ if (state_1 === "break")
+ break;
+ }
+ return emoji;
+ }
+ }
+});
+
+// node_modules/@ethersproject/hash/lib/namehash.js
+var require_namehash = __commonJS({
+ "node_modules/@ethersproject/hash/lib/namehash.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.dnsEncode = exports2.namehash = exports2.isValidName = exports2.ensNormalize = void 0;
+ var bytes_1 = require_lib6();
+ var strings_1 = require_lib15();
+ var keccak256_1 = require_lib8();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version11();
+ var logger = new logger_1.Logger(_version_1.version);
+ var lib_1 = require_lib17();
+ var Zeros = new Uint8Array(32);
+ Zeros.fill(0);
+ function checkComponent(comp) {
+ if (comp.length === 0) {
+ throw new Error("invalid ENS name; empty component");
+ }
+ return comp;
+ }
+ function ensNameSplit(name) {
+ var bytes = (0, strings_1.toUtf8Bytes)((0, lib_1.ens_normalize)(name));
+ var comps = [];
+ if (name.length === 0) {
+ return comps;
+ }
+ var last = 0;
+ for (var i = 0; i < bytes.length; i++) {
+ var d = bytes[i];
+ if (d === 46) {
+ comps.push(checkComponent(bytes.slice(last, i)));
+ last = i + 1;
+ }
+ }
+ if (last >= bytes.length) {
+ throw new Error("invalid ENS name; empty component");
+ }
+ comps.push(checkComponent(bytes.slice(last)));
+ return comps;
+ }
+ function ensNormalize(name) {
+ return ensNameSplit(name).map(function(comp) {
+ return (0, strings_1.toUtf8String)(comp);
+ }).join(".");
+ }
+ exports2.ensNormalize = ensNormalize;
+ function isValidName(name) {
+ try {
+ return ensNameSplit(name).length !== 0;
+ } catch (error) {
+ }
+ return false;
+ }
+ exports2.isValidName = isValidName;
+ function namehash(name) {
+ if (typeof name !== "string") {
+ logger.throwArgumentError("invalid ENS name; not a string", "name", name);
+ }
+ var result = Zeros;
+ var comps = ensNameSplit(name);
+ while (comps.length) {
+ result = (0, keccak256_1.keccak256)((0, bytes_1.concat)([result, (0, keccak256_1.keccak256)(comps.pop())]));
+ }
+ return (0, bytes_1.hexlify)(result);
+ }
+ exports2.namehash = namehash;
+ function dnsEncode(name) {
+ return (0, bytes_1.hexlify)((0, bytes_1.concat)(ensNameSplit(name).map(function(comp) {
+ if (comp.length > 63) {
+ throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");
+ }
+ var bytes = new Uint8Array(comp.length + 1);
+ bytes.set(comp, 1);
+ bytes[0] = bytes.length - 1;
+ return bytes;
+ }))) + "00";
+ }
+ exports2.dnsEncode = dnsEncode;
+ }
+});
+
+// node_modules/@ethersproject/hash/lib/message.js
+var require_message = __commonJS({
+ "node_modules/@ethersproject/hash/lib/message.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.hashMessage = exports2.messagePrefix = void 0;
+ var bytes_1 = require_lib6();
+ var keccak256_1 = require_lib8();
+ var strings_1 = require_lib15();
+ exports2.messagePrefix = "Ethereum Signed Message:\n";
+ function hashMessage(message) {
+ if (typeof message === "string") {
+ message = (0, strings_1.toUtf8Bytes)(message);
+ }
+ return (0, keccak256_1.keccak256)((0, bytes_1.concat)([
+ (0, strings_1.toUtf8Bytes)(exports2.messagePrefix),
+ (0, strings_1.toUtf8Bytes)(String(message.length)),
+ message
+ ]));
+ }
+ exports2.hashMessage = hashMessage;
+ }
+});
+
+// node_modules/@ethersproject/hash/lib/typed-data.js
+var require_typed_data = __commonJS({
+ "node_modules/@ethersproject/hash/lib/typed-data.js"(exports2) {
+ "use strict";
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.TypedDataEncoder = void 0;
+ var address_1 = require_lib10();
+ var bignumber_1 = require_lib7();
+ var bytes_1 = require_lib6();
+ var keccak256_1 = require_lib8();
+ var properties_1 = require_lib12();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version11();
+ var logger = new logger_1.Logger(_version_1.version);
+ var id_1 = require_id();
+ var padding = new Uint8Array(32);
+ padding.fill(0);
+ var NegativeOne = bignumber_1.BigNumber.from(-1);
+ var Zero = bignumber_1.BigNumber.from(0);
+ var One = bignumber_1.BigNumber.from(1);
+ var MaxUint256 = bignumber_1.BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
+ function hexPadRight(value) {
+ var bytes = (0, bytes_1.arrayify)(value);
+ var padOffset = bytes.length % 32;
+ if (padOffset) {
+ return (0, bytes_1.hexConcat)([bytes, padding.slice(padOffset)]);
+ }
+ return (0, bytes_1.hexlify)(bytes);
+ }
+ var hexTrue = (0, bytes_1.hexZeroPad)(One.toHexString(), 32);
+ var hexFalse = (0, bytes_1.hexZeroPad)(Zero.toHexString(), 32);
+ var domainFieldTypes = {
+ name: "string",
+ version: "string",
+ chainId: "uint256",
+ verifyingContract: "address",
+ salt: "bytes32"
+ };
+ var domainFieldNames = [
+ "name",
+ "version",
+ "chainId",
+ "verifyingContract",
+ "salt"
+ ];
+ function checkString(key) {
+ return function(value) {
+ if (typeof value !== "string") {
+ logger.throwArgumentError("invalid domain value for " + JSON.stringify(key), "domain." + key, value);
+ }
+ return value;
+ };
+ }
+ var domainChecks = {
+ name: checkString("name"),
+ version: checkString("version"),
+ chainId: function(value) {
+ try {
+ return bignumber_1.BigNumber.from(value).toString();
+ } catch (error) {
+ }
+ return logger.throwArgumentError('invalid domain value for "chainId"', "domain.chainId", value);
+ },
+ verifyingContract: function(value) {
+ try {
+ return (0, address_1.getAddress)(value).toLowerCase();
+ } catch (error) {
+ }
+ return logger.throwArgumentError('invalid domain value "verifyingContract"', "domain.verifyingContract", value);
+ },
+ salt: function(value) {
+ try {
+ var bytes = (0, bytes_1.arrayify)(value);
+ if (bytes.length !== 32) {
+ throw new Error("bad length");
+ }
+ return (0, bytes_1.hexlify)(bytes);
+ } catch (error) {
+ }
+ return logger.throwArgumentError('invalid domain value "salt"', "domain.salt", value);
+ }
+ };
+ function getBaseEncoder(type) {
+ {
+ var match = type.match(/^(u?)int(\d*)$/);
+ if (match) {
+ var signed = match[1] === "";
+ var width = parseInt(match[2] || "256");
+ if (width % 8 !== 0 || width > 256 || match[2] && match[2] !== String(width)) {
+ logger.throwArgumentError("invalid numeric width", "type", type);
+ }
+ var boundsUpper_1 = MaxUint256.mask(signed ? width - 1 : width);
+ var boundsLower_1 = signed ? boundsUpper_1.add(One).mul(NegativeOne) : Zero;
+ return function(value) {
+ var v = bignumber_1.BigNumber.from(value);
+ if (v.lt(boundsLower_1) || v.gt(boundsUpper_1)) {
+ logger.throwArgumentError("value out-of-bounds for " + type, "value", value);
+ }
+ return (0, bytes_1.hexZeroPad)(v.toTwos(256).toHexString(), 32);
+ };
+ }
+ }
+ {
+ var match = type.match(/^bytes(\d+)$/);
+ if (match) {
+ var width_1 = parseInt(match[1]);
+ if (width_1 === 0 || width_1 > 32 || match[1] !== String(width_1)) {
+ logger.throwArgumentError("invalid bytes width", "type", type);
+ }
+ return function(value) {
+ var bytes = (0, bytes_1.arrayify)(value);
+ if (bytes.length !== width_1) {
+ logger.throwArgumentError("invalid length for " + type, "value", value);
+ }
+ return hexPadRight(value);
+ };
+ }
+ }
+ switch (type) {
+ case "address":
+ return function(value) {
+ return (0, bytes_1.hexZeroPad)((0, address_1.getAddress)(value), 32);
+ };
+ case "bool":
+ return function(value) {
+ return !value ? hexFalse : hexTrue;
+ };
+ case "bytes":
+ return function(value) {
+ return (0, keccak256_1.keccak256)(value);
+ };
+ case "string":
+ return function(value) {
+ return (0, id_1.id)(value);
+ };
+ }
+ return null;
+ }
+ function encodeType(name, fields) {
+ return name + "(" + fields.map(function(_a) {
+ var name2 = _a.name, type = _a.type;
+ return type + " " + name2;
+ }).join(",") + ")";
+ }
+ var TypedDataEncoder = (
+ /** @class */
+ function() {
+ function TypedDataEncoder2(types) {
+ (0, properties_1.defineReadOnly)(this, "types", Object.freeze((0, properties_1.deepCopy)(types)));
+ (0, properties_1.defineReadOnly)(this, "_encoderCache", {});
+ (0, properties_1.defineReadOnly)(this, "_types", {});
+ var links = {};
+ var parents = {};
+ var subtypes = {};
+ Object.keys(types).forEach(function(type) {
+ links[type] = {};
+ parents[type] = [];
+ subtypes[type] = {};
+ });
+ var _loop_1 = function(name_12) {
+ var uniqueNames = {};
+ types[name_12].forEach(function(field) {
+ if (uniqueNames[field.name]) {
+ logger.throwArgumentError("duplicate variable name " + JSON.stringify(field.name) + " in " + JSON.stringify(name_12), "types", types);
+ }
+ uniqueNames[field.name] = true;
+ var baseType = field.type.match(/^([^\x5b]*)(\x5b|$)/)[1];
+ if (baseType === name_12) {
+ logger.throwArgumentError("circular type reference to " + JSON.stringify(baseType), "types", types);
+ }
+ var encoder = getBaseEncoder(baseType);
+ if (encoder) {
+ return;
+ }
+ if (!parents[baseType]) {
+ logger.throwArgumentError("unknown type " + JSON.stringify(baseType), "types", types);
+ }
+ parents[baseType].push(name_12);
+ links[name_12][baseType] = true;
+ });
+ };
+ for (var name_1 in types) {
+ _loop_1(name_1);
+ }
+ var primaryTypes = Object.keys(parents).filter(function(n) {
+ return parents[n].length === 0;
+ });
+ if (primaryTypes.length === 0) {
+ logger.throwArgumentError("missing primary type", "types", types);
+ } else if (primaryTypes.length > 1) {
+ logger.throwArgumentError("ambiguous primary types or unused types: " + primaryTypes.map(function(t) {
+ return JSON.stringify(t);
+ }).join(", "), "types", types);
+ }
+ (0, properties_1.defineReadOnly)(this, "primaryType", primaryTypes[0]);
+ function checkCircular(type, found) {
+ if (found[type]) {
+ logger.throwArgumentError("circular type reference to " + JSON.stringify(type), "types", types);
+ }
+ found[type] = true;
+ Object.keys(links[type]).forEach(function(child) {
+ if (!parents[child]) {
+ return;
+ }
+ checkCircular(child, found);
+ Object.keys(found).forEach(function(subtype) {
+ subtypes[subtype][child] = true;
+ });
+ });
+ delete found[type];
+ }
+ checkCircular(this.primaryType, {});
+ for (var name_2 in subtypes) {
+ var st = Object.keys(subtypes[name_2]);
+ st.sort();
+ this._types[name_2] = encodeType(name_2, types[name_2]) + st.map(function(t) {
+ return encodeType(t, types[t]);
+ }).join("");
+ }
+ }
+ TypedDataEncoder2.prototype.getEncoder = function(type) {
+ var encoder = this._encoderCache[type];
+ if (!encoder) {
+ encoder = this._encoderCache[type] = this._getEncoder(type);
+ }
+ return encoder;
+ };
+ TypedDataEncoder2.prototype._getEncoder = function(type) {
+ var _this = this;
+ {
+ var encoder = getBaseEncoder(type);
+ if (encoder) {
+ return encoder;
+ }
+ }
+ var match = type.match(/^(.*)(\x5b(\d*)\x5d)$/);
+ if (match) {
+ var subtype_1 = match[1];
+ var subEncoder_1 = this.getEncoder(subtype_1);
+ var length_1 = parseInt(match[3]);
+ return function(value) {
+ if (length_1 >= 0 && value.length !== length_1) {
+ logger.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", value);
+ }
+ var result = value.map(subEncoder_1);
+ if (_this._types[subtype_1]) {
+ result = result.map(keccak256_1.keccak256);
+ }
+ return (0, keccak256_1.keccak256)((0, bytes_1.hexConcat)(result));
+ };
+ }
+ var fields = this.types[type];
+ if (fields) {
+ var encodedType_1 = (0, id_1.id)(this._types[type]);
+ return function(value) {
+ var values = fields.map(function(_a) {
+ var name = _a.name, type2 = _a.type;
+ var result = _this.getEncoder(type2)(value[name]);
+ if (_this._types[type2]) {
+ return (0, keccak256_1.keccak256)(result);
+ }
+ return result;
+ });
+ values.unshift(encodedType_1);
+ return (0, bytes_1.hexConcat)(values);
+ };
+ }
+ return logger.throwArgumentError("unknown type: " + type, "type", type);
+ };
+ TypedDataEncoder2.prototype.encodeType = function(name) {
+ var result = this._types[name];
+ if (!result) {
+ logger.throwArgumentError("unknown type: " + JSON.stringify(name), "name", name);
+ }
+ return result;
+ };
+ TypedDataEncoder2.prototype.encodeData = function(type, value) {
+ return this.getEncoder(type)(value);
+ };
+ TypedDataEncoder2.prototype.hashStruct = function(name, value) {
+ return (0, keccak256_1.keccak256)(this.encodeData(name, value));
+ };
+ TypedDataEncoder2.prototype.encode = function(value) {
+ return this.encodeData(this.primaryType, value);
+ };
+ TypedDataEncoder2.prototype.hash = function(value) {
+ return this.hashStruct(this.primaryType, value);
+ };
+ TypedDataEncoder2.prototype._visit = function(type, value, callback) {
+ var _this = this;
+ {
+ var encoder = getBaseEncoder(type);
+ if (encoder) {
+ return callback(type, value);
+ }
+ }
+ var match = type.match(/^(.*)(\x5b(\d*)\x5d)$/);
+ if (match) {
+ var subtype_2 = match[1];
+ var length_2 = parseInt(match[3]);
+ if (length_2 >= 0 && value.length !== length_2) {
+ logger.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", value);
+ }
+ return value.map(function(v) {
+ return _this._visit(subtype_2, v, callback);
+ });
+ }
+ var fields = this.types[type];
+ if (fields) {
+ return fields.reduce(function(accum, _a) {
+ var name = _a.name, type2 = _a.type;
+ accum[name] = _this._visit(type2, value[name], callback);
+ return accum;
+ }, {});
+ }
+ return logger.throwArgumentError("unknown type: " + type, "type", type);
+ };
+ TypedDataEncoder2.prototype.visit = function(value, callback) {
+ return this._visit(this.primaryType, value, callback);
+ };
+ TypedDataEncoder2.from = function(types) {
+ return new TypedDataEncoder2(types);
+ };
+ TypedDataEncoder2.getPrimaryType = function(types) {
+ return TypedDataEncoder2.from(types).primaryType;
+ };
+ TypedDataEncoder2.hashStruct = function(name, types, value) {
+ return TypedDataEncoder2.from(types).hashStruct(name, value);
+ };
+ TypedDataEncoder2.hashDomain = function(domain) {
+ var domainFields = [];
+ for (var name_3 in domain) {
+ var type = domainFieldTypes[name_3];
+ if (!type) {
+ logger.throwArgumentError("invalid typed-data domain key: " + JSON.stringify(name_3), "domain", domain);
+ }
+ domainFields.push({ name: name_3, type });
+ }
+ domainFields.sort(function(a, b) {
+ return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);
+ });
+ return TypedDataEncoder2.hashStruct("EIP712Domain", { EIP712Domain: domainFields }, domain);
+ };
+ TypedDataEncoder2.encode = function(domain, types, value) {
+ return (0, bytes_1.hexConcat)([
+ "0x1901",
+ TypedDataEncoder2.hashDomain(domain),
+ TypedDataEncoder2.from(types).hash(value)
+ ]);
+ };
+ TypedDataEncoder2.hash = function(domain, types, value) {
+ return (0, keccak256_1.keccak256)(TypedDataEncoder2.encode(domain, types, value));
+ };
+ TypedDataEncoder2.resolveNames = function(domain, types, value, resolveName) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var ensCache, encoder, _a, _b, _i, name_4, _c, _d;
+ return __generator13(this, function(_e) {
+ switch (_e.label) {
+ case 0:
+ domain = (0, properties_1.shallowCopy)(domain);
+ ensCache = {};
+ if (domain.verifyingContract && !(0, bytes_1.isHexString)(domain.verifyingContract, 20)) {
+ ensCache[domain.verifyingContract] = "0x";
+ }
+ encoder = TypedDataEncoder2.from(types);
+ encoder.visit(value, function(type, value2) {
+ if (type === "address" && !(0, bytes_1.isHexString)(value2, 20)) {
+ ensCache[value2] = "0x";
+ }
+ return value2;
+ });
+ _a = [];
+ for (_b in ensCache)
+ _a.push(_b);
+ _i = 0;
+ _e.label = 1;
+ case 1:
+ if (!(_i < _a.length))
+ return [3, 4];
+ name_4 = _a[_i];
+ _c = ensCache;
+ _d = name_4;
+ return [4, resolveName(name_4)];
+ case 2:
+ _c[_d] = _e.sent();
+ _e.label = 3;
+ case 3:
+ _i++;
+ return [3, 1];
+ case 4:
+ if (domain.verifyingContract && ensCache[domain.verifyingContract]) {
+ domain.verifyingContract = ensCache[domain.verifyingContract];
+ }
+ value = encoder.visit(value, function(type, value2) {
+ if (type === "address" && ensCache[value2]) {
+ return ensCache[value2];
+ }
+ return value2;
+ });
+ return [2, { domain, value }];
+ }
+ });
+ });
+ };
+ TypedDataEncoder2.getPayload = function(domain, types, value) {
+ TypedDataEncoder2.hashDomain(domain);
+ var domainValues = {};
+ var domainTypes = [];
+ domainFieldNames.forEach(function(name) {
+ var value2 = domain[name];
+ if (value2 == null) {
+ return;
+ }
+ domainValues[name] = domainChecks[name](value2);
+ domainTypes.push({ name, type: domainFieldTypes[name] });
+ });
+ var encoder = TypedDataEncoder2.from(types);
+ var typesWithDomain = (0, properties_1.shallowCopy)(types);
+ if (typesWithDomain.EIP712Domain) {
+ logger.throwArgumentError("types must not contain EIP712Domain type", "types.EIP712Domain", types);
+ } else {
+ typesWithDomain.EIP712Domain = domainTypes;
+ }
+ encoder.encode(value);
+ return {
+ types: typesWithDomain,
+ domain: domainValues,
+ primaryType: encoder.primaryType,
+ message: encoder.visit(value, function(type, value2) {
+ if (type.match(/^bytes(\d*)/)) {
+ return (0, bytes_1.hexlify)((0, bytes_1.arrayify)(value2));
+ }
+ if (type.match(/^u?int/)) {
+ return bignumber_1.BigNumber.from(value2).toString();
+ }
+ switch (type) {
+ case "address":
+ return value2.toLowerCase();
+ case "bool":
+ return !!value2;
+ case "string":
+ if (typeof value2 !== "string") {
+ logger.throwArgumentError("invalid string", "value", value2);
+ }
+ return value2;
+ }
+ return logger.throwArgumentError("unsupported type", "type", type);
+ })
+ };
+ };
+ return TypedDataEncoder2;
+ }()
+ );
+ exports2.TypedDataEncoder = TypedDataEncoder;
+ }
+});
+
+// node_modules/@ethersproject/hash/lib/index.js
+var require_lib18 = __commonJS({
+ "node_modules/@ethersproject/hash/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2._TypedDataEncoder = exports2.hashMessage = exports2.messagePrefix = exports2.ensNormalize = exports2.isValidName = exports2.namehash = exports2.dnsEncode = exports2.id = void 0;
+ var id_1 = require_id();
+ Object.defineProperty(exports2, "id", { enumerable: true, get: function() {
+ return id_1.id;
+ } });
+ var namehash_1 = require_namehash();
+ Object.defineProperty(exports2, "dnsEncode", { enumerable: true, get: function() {
+ return namehash_1.dnsEncode;
+ } });
+ Object.defineProperty(exports2, "isValidName", { enumerable: true, get: function() {
+ return namehash_1.isValidName;
+ } });
+ Object.defineProperty(exports2, "namehash", { enumerable: true, get: function() {
+ return namehash_1.namehash;
+ } });
+ var message_1 = require_message();
+ Object.defineProperty(exports2, "hashMessage", { enumerable: true, get: function() {
+ return message_1.hashMessage;
+ } });
+ Object.defineProperty(exports2, "messagePrefix", { enumerable: true, get: function() {
+ return message_1.messagePrefix;
+ } });
+ var namehash_2 = require_namehash();
+ Object.defineProperty(exports2, "ensNormalize", { enumerable: true, get: function() {
+ return namehash_2.ensNormalize;
+ } });
+ var typed_data_1 = require_typed_data();
+ Object.defineProperty(exports2, "_TypedDataEncoder", { enumerable: true, get: function() {
+ return typed_data_1.TypedDataEncoder;
+ } });
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/interface.js
+var require_interface = __commonJS({
+ "node_modules/@ethersproject/abi/lib/interface.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.Interface = exports2.Indexed = exports2.ErrorDescription = exports2.TransactionDescription = exports2.LogDescription = exports2.checkResultErrors = void 0;
+ var address_1 = require_lib10();
+ var bignumber_1 = require_lib7();
+ var bytes_1 = require_lib6();
+ var hash_1 = require_lib18();
+ var keccak256_1 = require_lib8();
+ var properties_1 = require_lib12();
+ var abi_coder_1 = require_abi_coder();
+ var abstract_coder_1 = require_abstract_coder();
+ Object.defineProperty(exports2, "checkResultErrors", { enumerable: true, get: function() {
+ return abstract_coder_1.checkResultErrors;
+ } });
+ var fragments_1 = require_fragments();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version9();
+ var logger = new logger_1.Logger(_version_1.version);
+ var LogDescription = (
+ /** @class */
+ function(_super) {
+ __extends13(LogDescription2, _super);
+ function LogDescription2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ return LogDescription2;
+ }(properties_1.Description)
+ );
+ exports2.LogDescription = LogDescription;
+ var TransactionDescription = (
+ /** @class */
+ function(_super) {
+ __extends13(TransactionDescription2, _super);
+ function TransactionDescription2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ return TransactionDescription2;
+ }(properties_1.Description)
+ );
+ exports2.TransactionDescription = TransactionDescription;
+ var ErrorDescription = (
+ /** @class */
+ function(_super) {
+ __extends13(ErrorDescription2, _super);
+ function ErrorDescription2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ return ErrorDescription2;
+ }(properties_1.Description)
+ );
+ exports2.ErrorDescription = ErrorDescription;
+ var Indexed = (
+ /** @class */
+ function(_super) {
+ __extends13(Indexed2, _super);
+ function Indexed2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ Indexed2.isIndexed = function(value) {
+ return !!(value && value._isIndexed);
+ };
+ return Indexed2;
+ }(properties_1.Description)
+ );
+ exports2.Indexed = Indexed;
+ var BuiltinErrors = {
+ "0x08c379a0": { signature: "Error(string)", name: "Error", inputs: ["string"], reason: true },
+ "0x4e487b71": { signature: "Panic(uint256)", name: "Panic", inputs: ["uint256"] }
+ };
+ function wrapAccessError(property, error) {
+ var wrap = new Error("deferred error during ABI decoding triggered accessing " + property);
+ wrap.error = error;
+ return wrap;
+ }
+ var Interface = (
+ /** @class */
+ function() {
+ function Interface2(fragments) {
+ var _newTarget = this.constructor;
+ var _this = this;
+ var abi = [];
+ if (typeof fragments === "string") {
+ abi = JSON.parse(fragments);
+ } else {
+ abi = fragments;
+ }
+ (0, properties_1.defineReadOnly)(this, "fragments", abi.map(function(fragment) {
+ return fragments_1.Fragment.from(fragment);
+ }).filter(function(fragment) {
+ return fragment != null;
+ }));
+ (0, properties_1.defineReadOnly)(this, "_abiCoder", (0, properties_1.getStatic)(_newTarget, "getAbiCoder")());
+ (0, properties_1.defineReadOnly)(this, "functions", {});
+ (0, properties_1.defineReadOnly)(this, "errors", {});
+ (0, properties_1.defineReadOnly)(this, "events", {});
+ (0, properties_1.defineReadOnly)(this, "structs", {});
+ this.fragments.forEach(function(fragment) {
+ var bucket = null;
+ switch (fragment.type) {
+ case "constructor":
+ if (_this.deploy) {
+ logger.warn("duplicate definition - constructor");
+ return;
+ }
+ (0, properties_1.defineReadOnly)(_this, "deploy", fragment);
+ return;
+ case "function":
+ bucket = _this.functions;
+ break;
+ case "event":
+ bucket = _this.events;
+ break;
+ case "error":
+ bucket = _this.errors;
+ break;
+ default:
+ return;
+ }
+ var signature = fragment.format();
+ if (bucket[signature]) {
+ logger.warn("duplicate definition - " + signature);
+ return;
+ }
+ bucket[signature] = fragment;
+ });
+ if (!this.deploy) {
+ (0, properties_1.defineReadOnly)(this, "deploy", fragments_1.ConstructorFragment.from({
+ payable: false,
+ type: "constructor"
+ }));
+ }
+ (0, properties_1.defineReadOnly)(this, "_isInterface", true);
+ }
+ Interface2.prototype.format = function(format) {
+ if (!format) {
+ format = fragments_1.FormatTypes.full;
+ }
+ if (format === fragments_1.FormatTypes.sighash) {
+ logger.throwArgumentError("interface does not support formatting sighash", "format", format);
+ }
+ var abi = this.fragments.map(function(fragment) {
+ return fragment.format(format);
+ });
+ if (format === fragments_1.FormatTypes.json) {
+ return JSON.stringify(abi.map(function(j) {
+ return JSON.parse(j);
+ }));
+ }
+ return abi;
+ };
+ Interface2.getAbiCoder = function() {
+ return abi_coder_1.defaultAbiCoder;
+ };
+ Interface2.getAddress = function(address) {
+ return (0, address_1.getAddress)(address);
+ };
+ Interface2.getSighash = function(fragment) {
+ return (0, bytes_1.hexDataSlice)((0, hash_1.id)(fragment.format()), 0, 4);
+ };
+ Interface2.getEventTopic = function(eventFragment) {
+ return (0, hash_1.id)(eventFragment.format());
+ };
+ Interface2.prototype.getFunction = function(nameOrSignatureOrSighash) {
+ if ((0, bytes_1.isHexString)(nameOrSignatureOrSighash)) {
+ for (var name_1 in this.functions) {
+ if (nameOrSignatureOrSighash === this.getSighash(name_1)) {
+ return this.functions[name_1];
+ }
+ }
+ logger.throwArgumentError("no matching function", "sighash", nameOrSignatureOrSighash);
+ }
+ if (nameOrSignatureOrSighash.indexOf("(") === -1) {
+ var name_2 = nameOrSignatureOrSighash.trim();
+ var matching = Object.keys(this.functions).filter(function(f) {
+ return f.split(
+ "("
+ /* fix:) */
+ )[0] === name_2;
+ });
+ if (matching.length === 0) {
+ logger.throwArgumentError("no matching function", "name", name_2);
+ } else if (matching.length > 1) {
+ logger.throwArgumentError("multiple matching functions", "name", name_2);
+ }
+ return this.functions[matching[0]];
+ }
+ var result = this.functions[fragments_1.FunctionFragment.fromString(nameOrSignatureOrSighash).format()];
+ if (!result) {
+ logger.throwArgumentError("no matching function", "signature", nameOrSignatureOrSighash);
+ }
+ return result;
+ };
+ Interface2.prototype.getEvent = function(nameOrSignatureOrTopic) {
+ if ((0, bytes_1.isHexString)(nameOrSignatureOrTopic)) {
+ var topichash = nameOrSignatureOrTopic.toLowerCase();
+ for (var name_3 in this.events) {
+ if (topichash === this.getEventTopic(name_3)) {
+ return this.events[name_3];
+ }
+ }
+ logger.throwArgumentError("no matching event", "topichash", topichash);
+ }
+ if (nameOrSignatureOrTopic.indexOf("(") === -1) {
+ var name_4 = nameOrSignatureOrTopic.trim();
+ var matching = Object.keys(this.events).filter(function(f) {
+ return f.split(
+ "("
+ /* fix:) */
+ )[0] === name_4;
+ });
+ if (matching.length === 0) {
+ logger.throwArgumentError("no matching event", "name", name_4);
+ } else if (matching.length > 1) {
+ logger.throwArgumentError("multiple matching events", "name", name_4);
+ }
+ return this.events[matching[0]];
+ }
+ var result = this.events[fragments_1.EventFragment.fromString(nameOrSignatureOrTopic).format()];
+ if (!result) {
+ logger.throwArgumentError("no matching event", "signature", nameOrSignatureOrTopic);
+ }
+ return result;
+ };
+ Interface2.prototype.getError = function(nameOrSignatureOrSighash) {
+ if ((0, bytes_1.isHexString)(nameOrSignatureOrSighash)) {
+ var getSighash = (0, properties_1.getStatic)(this.constructor, "getSighash");
+ for (var name_5 in this.errors) {
+ var error = this.errors[name_5];
+ if (nameOrSignatureOrSighash === getSighash(error)) {
+ return this.errors[name_5];
+ }
+ }
+ logger.throwArgumentError("no matching error", "sighash", nameOrSignatureOrSighash);
+ }
+ if (nameOrSignatureOrSighash.indexOf("(") === -1) {
+ var name_6 = nameOrSignatureOrSighash.trim();
+ var matching = Object.keys(this.errors).filter(function(f) {
+ return f.split(
+ "("
+ /* fix:) */
+ )[0] === name_6;
+ });
+ if (matching.length === 0) {
+ logger.throwArgumentError("no matching error", "name", name_6);
+ } else if (matching.length > 1) {
+ logger.throwArgumentError("multiple matching errors", "name", name_6);
+ }
+ return this.errors[matching[0]];
+ }
+ var result = this.errors[fragments_1.FunctionFragment.fromString(nameOrSignatureOrSighash).format()];
+ if (!result) {
+ logger.throwArgumentError("no matching error", "signature", nameOrSignatureOrSighash);
+ }
+ return result;
+ };
+ Interface2.prototype.getSighash = function(fragment) {
+ if (typeof fragment === "string") {
+ try {
+ fragment = this.getFunction(fragment);
+ } catch (error) {
+ try {
+ fragment = this.getError(fragment);
+ } catch (_) {
+ throw error;
+ }
+ }
+ }
+ return (0, properties_1.getStatic)(this.constructor, "getSighash")(fragment);
+ };
+ Interface2.prototype.getEventTopic = function(eventFragment) {
+ if (typeof eventFragment === "string") {
+ eventFragment = this.getEvent(eventFragment);
+ }
+ return (0, properties_1.getStatic)(this.constructor, "getEventTopic")(eventFragment);
+ };
+ Interface2.prototype._decodeParams = function(params, data) {
+ return this._abiCoder.decode(params, data);
+ };
+ Interface2.prototype._encodeParams = function(params, values) {
+ return this._abiCoder.encode(params, values);
+ };
+ Interface2.prototype.encodeDeploy = function(values) {
+ return this._encodeParams(this.deploy.inputs, values || []);
+ };
+ Interface2.prototype.decodeErrorResult = function(fragment, data) {
+ if (typeof fragment === "string") {
+ fragment = this.getError(fragment);
+ }
+ var bytes = (0, bytes_1.arrayify)(data);
+ if ((0, bytes_1.hexlify)(bytes.slice(0, 4)) !== this.getSighash(fragment)) {
+ logger.throwArgumentError("data signature does not match error " + fragment.name + ".", "data", (0, bytes_1.hexlify)(bytes));
+ }
+ return this._decodeParams(fragment.inputs, bytes.slice(4));
+ };
+ Interface2.prototype.encodeErrorResult = function(fragment, values) {
+ if (typeof fragment === "string") {
+ fragment = this.getError(fragment);
+ }
+ return (0, bytes_1.hexlify)((0, bytes_1.concat)([
+ this.getSighash(fragment),
+ this._encodeParams(fragment.inputs, values || [])
+ ]));
+ };
+ Interface2.prototype.decodeFunctionData = function(functionFragment, data) {
+ if (typeof functionFragment === "string") {
+ functionFragment = this.getFunction(functionFragment);
+ }
+ var bytes = (0, bytes_1.arrayify)(data);
+ if ((0, bytes_1.hexlify)(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {
+ logger.throwArgumentError("data signature does not match function " + functionFragment.name + ".", "data", (0, bytes_1.hexlify)(bytes));
+ }
+ return this._decodeParams(functionFragment.inputs, bytes.slice(4));
+ };
+ Interface2.prototype.encodeFunctionData = function(functionFragment, values) {
+ if (typeof functionFragment === "string") {
+ functionFragment = this.getFunction(functionFragment);
+ }
+ return (0, bytes_1.hexlify)((0, bytes_1.concat)([
+ this.getSighash(functionFragment),
+ this._encodeParams(functionFragment.inputs, values || [])
+ ]));
+ };
+ Interface2.prototype.decodeFunctionResult = function(functionFragment, data) {
+ if (typeof functionFragment === "string") {
+ functionFragment = this.getFunction(functionFragment);
+ }
+ var bytes = (0, bytes_1.arrayify)(data);
+ var reason = null;
+ var message = "";
+ var errorArgs = null;
+ var errorName = null;
+ var errorSignature = null;
+ switch (bytes.length % this._abiCoder._getWordSize()) {
+ case 0:
+ try {
+ return this._abiCoder.decode(functionFragment.outputs, bytes);
+ } catch (error2) {
+ }
+ break;
+ case 4: {
+ var selector = (0, bytes_1.hexlify)(bytes.slice(0, 4));
+ var builtin = BuiltinErrors[selector];
+ if (builtin) {
+ errorArgs = this._abiCoder.decode(builtin.inputs, bytes.slice(4));
+ errorName = builtin.name;
+ errorSignature = builtin.signature;
+ if (builtin.reason) {
+ reason = errorArgs[0];
+ }
+ if (errorName === "Error") {
+ message = "; VM Exception while processing transaction: reverted with reason string " + JSON.stringify(errorArgs[0]);
+ } else if (errorName === "Panic") {
+ message = "; VM Exception while processing transaction: reverted with panic code " + errorArgs[0];
+ }
+ } else {
+ try {
+ var error = this.getError(selector);
+ errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4));
+ errorName = error.name;
+ errorSignature = error.format();
+ } catch (error2) {
+ }
+ }
+ break;
+ }
+ }
+ return logger.throwError("call revert exception" + message, logger_1.Logger.errors.CALL_EXCEPTION, {
+ method: functionFragment.format(),
+ data: (0, bytes_1.hexlify)(data),
+ errorArgs,
+ errorName,
+ errorSignature,
+ reason
+ });
+ };
+ Interface2.prototype.encodeFunctionResult = function(functionFragment, values) {
+ if (typeof functionFragment === "string") {
+ functionFragment = this.getFunction(functionFragment);
+ }
+ return (0, bytes_1.hexlify)(this._abiCoder.encode(functionFragment.outputs, values || []));
+ };
+ Interface2.prototype.encodeFilterTopics = function(eventFragment, values) {
+ var _this = this;
+ if (typeof eventFragment === "string") {
+ eventFragment = this.getEvent(eventFragment);
+ }
+ if (values.length > eventFragment.inputs.length) {
+ logger.throwError("too many arguments for " + eventFragment.format(), logger_1.Logger.errors.UNEXPECTED_ARGUMENT, {
+ argument: "values",
+ value: values
+ });
+ }
+ var topics = [];
+ if (!eventFragment.anonymous) {
+ topics.push(this.getEventTopic(eventFragment));
+ }
+ var encodeTopic = function(param, value) {
+ if (param.type === "string") {
+ return (0, hash_1.id)(value);
+ } else if (param.type === "bytes") {
+ return (0, keccak256_1.keccak256)((0, bytes_1.hexlify)(value));
+ }
+ if (param.type === "bool" && typeof value === "boolean") {
+ value = value ? "0x01" : "0x00";
+ }
+ if (param.type.match(/^u?int/)) {
+ value = bignumber_1.BigNumber.from(value).toHexString();
+ }
+ if (param.type === "address") {
+ _this._abiCoder.encode(["address"], [value]);
+ }
+ return (0, bytes_1.hexZeroPad)((0, bytes_1.hexlify)(value), 32);
+ };
+ values.forEach(function(value, index) {
+ var param = eventFragment.inputs[index];
+ if (!param.indexed) {
+ if (value != null) {
+ logger.throwArgumentError("cannot filter non-indexed parameters; must be null", "contract." + param.name, value);
+ }
+ return;
+ }
+ if (value == null) {
+ topics.push(null);
+ } else if (param.baseType === "array" || param.baseType === "tuple") {
+ logger.throwArgumentError("filtering with tuples or arrays not supported", "contract." + param.name, value);
+ } else if (Array.isArray(value)) {
+ topics.push(value.map(function(value2) {
+ return encodeTopic(param, value2);
+ }));
+ } else {
+ topics.push(encodeTopic(param, value));
+ }
+ });
+ while (topics.length && topics[topics.length - 1] === null) {
+ topics.pop();
+ }
+ return topics;
+ };
+ Interface2.prototype.encodeEventLog = function(eventFragment, values) {
+ var _this = this;
+ if (typeof eventFragment === "string") {
+ eventFragment = this.getEvent(eventFragment);
+ }
+ var topics = [];
+ var dataTypes = [];
+ var dataValues = [];
+ if (!eventFragment.anonymous) {
+ topics.push(this.getEventTopic(eventFragment));
+ }
+ if (values.length !== eventFragment.inputs.length) {
+ logger.throwArgumentError("event arguments/values mismatch", "values", values);
+ }
+ eventFragment.inputs.forEach(function(param, index) {
+ var value = values[index];
+ if (param.indexed) {
+ if (param.type === "string") {
+ topics.push((0, hash_1.id)(value));
+ } else if (param.type === "bytes") {
+ topics.push((0, keccak256_1.keccak256)(value));
+ } else if (param.baseType === "tuple" || param.baseType === "array") {
+ throw new Error("not implemented");
+ } else {
+ topics.push(_this._abiCoder.encode([param.type], [value]));
+ }
+ } else {
+ dataTypes.push(param);
+ dataValues.push(value);
+ }
+ });
+ return {
+ data: this._abiCoder.encode(dataTypes, dataValues),
+ topics
+ };
+ };
+ Interface2.prototype.decodeEventLog = function(eventFragment, data, topics) {
+ if (typeof eventFragment === "string") {
+ eventFragment = this.getEvent(eventFragment);
+ }
+ if (topics != null && !eventFragment.anonymous) {
+ var topicHash = this.getEventTopic(eventFragment);
+ if (!(0, bytes_1.isHexString)(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {
+ logger.throwError("fragment/topic mismatch", logger_1.Logger.errors.INVALID_ARGUMENT, { argument: "topics[0]", expected: topicHash, value: topics[0] });
+ }
+ topics = topics.slice(1);
+ }
+ var indexed = [];
+ var nonIndexed = [];
+ var dynamic = [];
+ eventFragment.inputs.forEach(function(param, index) {
+ if (param.indexed) {
+ if (param.type === "string" || param.type === "bytes" || param.baseType === "tuple" || param.baseType === "array") {
+ indexed.push(fragments_1.ParamType.fromObject({ type: "bytes32", name: param.name }));
+ dynamic.push(true);
+ } else {
+ indexed.push(param);
+ dynamic.push(false);
+ }
+ } else {
+ nonIndexed.push(param);
+ dynamic.push(false);
+ }
+ });
+ var resultIndexed = topics != null ? this._abiCoder.decode(indexed, (0, bytes_1.concat)(topics)) : null;
+ var resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);
+ var result = [];
+ var nonIndexedIndex = 0, indexedIndex = 0;
+ eventFragment.inputs.forEach(function(param, index) {
+ if (param.indexed) {
+ if (resultIndexed == null) {
+ result[index] = new Indexed({ _isIndexed: true, hash: null });
+ } else if (dynamic[index]) {
+ result[index] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] });
+ } else {
+ try {
+ result[index] = resultIndexed[indexedIndex++];
+ } catch (error) {
+ result[index] = error;
+ }
+ }
+ } else {
+ try {
+ result[index] = resultNonIndexed[nonIndexedIndex++];
+ } catch (error) {
+ result[index] = error;
+ }
+ }
+ if (param.name && result[param.name] == null) {
+ var value_1 = result[index];
+ if (value_1 instanceof Error) {
+ Object.defineProperty(result, param.name, {
+ enumerable: true,
+ get: function() {
+ throw wrapAccessError("property " + JSON.stringify(param.name), value_1);
+ }
+ });
+ } else {
+ result[param.name] = value_1;
+ }
+ }
+ });
+ var _loop_1 = function(i2) {
+ var value = result[i2];
+ if (value instanceof Error) {
+ Object.defineProperty(result, i2, {
+ enumerable: true,
+ get: function() {
+ throw wrapAccessError("index " + i2, value);
+ }
+ });
+ }
+ };
+ for (var i = 0; i < result.length; i++) {
+ _loop_1(i);
+ }
+ return Object.freeze(result);
+ };
+ Interface2.prototype.parseTransaction = function(tx) {
+ var fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase());
+ if (!fragment) {
+ return null;
+ }
+ return new TransactionDescription({
+ args: this._abiCoder.decode(fragment.inputs, "0x" + tx.data.substring(10)),
+ functionFragment: fragment,
+ name: fragment.name,
+ signature: fragment.format(),
+ sighash: this.getSighash(fragment),
+ value: bignumber_1.BigNumber.from(tx.value || "0")
+ });
+ };
+ Interface2.prototype.parseLog = function(log) {
+ var fragment = this.getEvent(log.topics[0]);
+ if (!fragment || fragment.anonymous) {
+ return null;
+ }
+ return new LogDescription({
+ eventFragment: fragment,
+ name: fragment.name,
+ signature: fragment.format(),
+ topic: this.getEventTopic(fragment),
+ args: this.decodeEventLog(fragment, log.data, log.topics)
+ });
+ };
+ Interface2.prototype.parseError = function(data) {
+ var hexData = (0, bytes_1.hexlify)(data);
+ var fragment = this.getError(hexData.substring(0, 10).toLowerCase());
+ if (!fragment) {
+ return null;
+ }
+ return new ErrorDescription({
+ args: this._abiCoder.decode(fragment.inputs, "0x" + hexData.substring(10)),
+ errorFragment: fragment,
+ name: fragment.name,
+ signature: fragment.format(),
+ sighash: this.getSighash(fragment)
+ });
+ };
+ Interface2.isInterface = function(value) {
+ return !!(value && value._isInterface);
+ };
+ return Interface2;
+ }()
+ );
+ exports2.Interface = Interface;
+ }
+});
+
+// node_modules/@ethersproject/abi/lib/index.js
+var require_lib19 = __commonJS({
+ "node_modules/@ethersproject/abi/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.TransactionDescription = exports2.LogDescription = exports2.checkResultErrors = exports2.Indexed = exports2.Interface = exports2.defaultAbiCoder = exports2.AbiCoder = exports2.FormatTypes = exports2.ParamType = exports2.FunctionFragment = exports2.Fragment = exports2.EventFragment = exports2.ErrorFragment = exports2.ConstructorFragment = void 0;
+ var fragments_1 = require_fragments();
+ Object.defineProperty(exports2, "ConstructorFragment", { enumerable: true, get: function() {
+ return fragments_1.ConstructorFragment;
+ } });
+ Object.defineProperty(exports2, "ErrorFragment", { enumerable: true, get: function() {
+ return fragments_1.ErrorFragment;
+ } });
+ Object.defineProperty(exports2, "EventFragment", { enumerable: true, get: function() {
+ return fragments_1.EventFragment;
+ } });
+ Object.defineProperty(exports2, "FormatTypes", { enumerable: true, get: function() {
+ return fragments_1.FormatTypes;
+ } });
+ Object.defineProperty(exports2, "Fragment", { enumerable: true, get: function() {
+ return fragments_1.Fragment;
+ } });
+ Object.defineProperty(exports2, "FunctionFragment", { enumerable: true, get: function() {
+ return fragments_1.FunctionFragment;
+ } });
+ Object.defineProperty(exports2, "ParamType", { enumerable: true, get: function() {
+ return fragments_1.ParamType;
+ } });
+ var abi_coder_1 = require_abi_coder();
+ Object.defineProperty(exports2, "AbiCoder", { enumerable: true, get: function() {
+ return abi_coder_1.AbiCoder;
+ } });
+ Object.defineProperty(exports2, "defaultAbiCoder", { enumerable: true, get: function() {
+ return abi_coder_1.defaultAbiCoder;
+ } });
+ var interface_1 = require_interface();
+ Object.defineProperty(exports2, "checkResultErrors", { enumerable: true, get: function() {
+ return interface_1.checkResultErrors;
+ } });
+ Object.defineProperty(exports2, "Indexed", { enumerable: true, get: function() {
+ return interface_1.Indexed;
+ } });
+ Object.defineProperty(exports2, "Interface", { enumerable: true, get: function() {
+ return interface_1.Interface;
+ } });
+ Object.defineProperty(exports2, "LogDescription", { enumerable: true, get: function() {
+ return interface_1.LogDescription;
+ } });
+ Object.defineProperty(exports2, "TransactionDescription", { enumerable: true, get: function() {
+ return interface_1.TransactionDescription;
+ } });
+ }
+});
+
+// node_modules/@ethersproject/abstract-provider/lib/_version.js
+var require_version12 = __commonJS({
+ "node_modules/@ethersproject/abstract-provider/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "abstract-provider/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/abstract-provider/lib/index.js
+var require_lib20 = __commonJS({
+ "node_modules/@ethersproject/abstract-provider/lib/index.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.Provider = exports2.TransactionOrderForkEvent = exports2.TransactionForkEvent = exports2.BlockForkEvent = exports2.ForkEvent = void 0;
+ var bignumber_1 = require_lib7();
+ var bytes_1 = require_lib6();
+ var properties_1 = require_lib12();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version12();
+ var logger = new logger_1.Logger(_version_1.version);
+ var ForkEvent = (
+ /** @class */
+ function(_super) {
+ __extends13(ForkEvent2, _super);
+ function ForkEvent2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ ForkEvent2.isForkEvent = function(value) {
+ return !!(value && value._isForkEvent);
+ };
+ return ForkEvent2;
+ }(properties_1.Description)
+ );
+ exports2.ForkEvent = ForkEvent;
+ var BlockForkEvent = (
+ /** @class */
+ function(_super) {
+ __extends13(BlockForkEvent2, _super);
+ function BlockForkEvent2(blockHash, expiry) {
+ var _this = this;
+ if (!(0, bytes_1.isHexString)(blockHash, 32)) {
+ logger.throwArgumentError("invalid blockHash", "blockHash", blockHash);
+ }
+ _this = _super.call(this, {
+ _isForkEvent: true,
+ _isBlockForkEvent: true,
+ expiry: expiry || 0,
+ blockHash
+ }) || this;
+ return _this;
+ }
+ return BlockForkEvent2;
+ }(ForkEvent)
+ );
+ exports2.BlockForkEvent = BlockForkEvent;
+ var TransactionForkEvent = (
+ /** @class */
+ function(_super) {
+ __extends13(TransactionForkEvent2, _super);
+ function TransactionForkEvent2(hash, expiry) {
+ var _this = this;
+ if (!(0, bytes_1.isHexString)(hash, 32)) {
+ logger.throwArgumentError("invalid transaction hash", "hash", hash);
+ }
+ _this = _super.call(this, {
+ _isForkEvent: true,
+ _isTransactionForkEvent: true,
+ expiry: expiry || 0,
+ hash
+ }) || this;
+ return _this;
+ }
+ return TransactionForkEvent2;
+ }(ForkEvent)
+ );
+ exports2.TransactionForkEvent = TransactionForkEvent;
+ var TransactionOrderForkEvent = (
+ /** @class */
+ function(_super) {
+ __extends13(TransactionOrderForkEvent2, _super);
+ function TransactionOrderForkEvent2(beforeHash, afterHash, expiry) {
+ var _this = this;
+ if (!(0, bytes_1.isHexString)(beforeHash, 32)) {
+ logger.throwArgumentError("invalid transaction hash", "beforeHash", beforeHash);
+ }
+ if (!(0, bytes_1.isHexString)(afterHash, 32)) {
+ logger.throwArgumentError("invalid transaction hash", "afterHash", afterHash);
+ }
+ _this = _super.call(this, {
+ _isForkEvent: true,
+ _isTransactionOrderForkEvent: true,
+ expiry: expiry || 0,
+ beforeHash,
+ afterHash
+ }) || this;
+ return _this;
+ }
+ return TransactionOrderForkEvent2;
+ }(ForkEvent)
+ );
+ exports2.TransactionOrderForkEvent = TransactionOrderForkEvent;
+ var Provider = (
+ /** @class */
+ function() {
+ function Provider2() {
+ var _newTarget = this.constructor;
+ logger.checkAbstract(_newTarget, Provider2);
+ (0, properties_1.defineReadOnly)(this, "_isProvider", true);
+ }
+ Provider2.prototype.getFeeData = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ var _a, block, gasPrice, lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas;
+ return __generator13(this, function(_b) {
+ switch (_b.label) {
+ case 0:
+ return [4, (0, properties_1.resolveProperties)({
+ block: this.getBlock("latest"),
+ gasPrice: this.getGasPrice().catch(function(error) {
+ return null;
+ })
+ })];
+ case 1:
+ _a = _b.sent(), block = _a.block, gasPrice = _a.gasPrice;
+ lastBaseFeePerGas = null, maxFeePerGas = null, maxPriorityFeePerGas = null;
+ if (block && block.baseFeePerGas) {
+ lastBaseFeePerGas = block.baseFeePerGas;
+ maxPriorityFeePerGas = bignumber_1.BigNumber.from("1500000000");
+ maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas);
+ }
+ return [2, { lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas, gasPrice }];
+ }
+ });
+ });
+ };
+ Provider2.prototype.addListener = function(eventName, listener) {
+ return this.on(eventName, listener);
+ };
+ Provider2.prototype.removeListener = function(eventName, listener) {
+ return this.off(eventName, listener);
+ };
+ Provider2.isProvider = function(value) {
+ return !!(value && value._isProvider);
+ };
+ return Provider2;
+ }()
+ );
+ exports2.Provider = Provider;
+ }
+});
+
+// node_modules/@ethersproject/abstract-signer/lib/_version.js
+var require_version13 = __commonJS({
+ "node_modules/@ethersproject/abstract-signer/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "abstract-signer/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/abstract-signer/lib/index.js
+var require_lib21 = __commonJS({
+ "node_modules/@ethersproject/abstract-signer/lib/index.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.VoidSigner = exports2.Signer = void 0;
+ var properties_1 = require_lib12();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version13();
+ var logger = new logger_1.Logger(_version_1.version);
+ var allowedTransactionKeys = [
+ "accessList",
+ "ccipReadEnabled",
+ "chainId",
+ "customData",
+ "data",
+ "from",
+ "gasLimit",
+ "gasPrice",
+ "maxFeePerGas",
+ "maxPriorityFeePerGas",
+ "nonce",
+ "to",
+ "type",
+ "value"
+ ];
+ var forwardErrors = [
+ logger_1.Logger.errors.INSUFFICIENT_FUNDS,
+ logger_1.Logger.errors.NONCE_EXPIRED,
+ logger_1.Logger.errors.REPLACEMENT_UNDERPRICED
+ ];
+ var Signer = (
+ /** @class */
+ function() {
+ function Signer2() {
+ var _newTarget = this.constructor;
+ logger.checkAbstract(_newTarget, Signer2);
+ (0, properties_1.defineReadOnly)(this, "_isSigner", true);
+ }
+ Signer2.prototype.getBalance = function(blockTag) {
+ return __awaiter13(this, void 0, void 0, function() {
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ this._checkProvider("getBalance");
+ return [4, this.provider.getBalance(this.getAddress(), blockTag)];
+ case 1:
+ return [2, _a.sent()];
+ }
+ });
+ });
+ };
+ Signer2.prototype.getTransactionCount = function(blockTag) {
+ return __awaiter13(this, void 0, void 0, function() {
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ this._checkProvider("getTransactionCount");
+ return [4, this.provider.getTransactionCount(this.getAddress(), blockTag)];
+ case 1:
+ return [2, _a.sent()];
+ }
+ });
+ });
+ };
+ Signer2.prototype.estimateGas = function(transaction) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var tx;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ this._checkProvider("estimateGas");
+ return [4, (0, properties_1.resolveProperties)(this.checkTransaction(transaction))];
+ case 1:
+ tx = _a.sent();
+ return [4, this.provider.estimateGas(tx)];
+ case 2:
+ return [2, _a.sent()];
+ }
+ });
+ });
+ };
+ Signer2.prototype.call = function(transaction, blockTag) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var tx;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ this._checkProvider("call");
+ return [4, (0, properties_1.resolveProperties)(this.checkTransaction(transaction))];
+ case 1:
+ tx = _a.sent();
+ return [4, this.provider.call(tx, blockTag)];
+ case 2:
+ return [2, _a.sent()];
+ }
+ });
+ });
+ };
+ Signer2.prototype.sendTransaction = function(transaction) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var tx, signedTx;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ this._checkProvider("sendTransaction");
+ return [4, this.populateTransaction(transaction)];
+ case 1:
+ tx = _a.sent();
+ return [4, this.signTransaction(tx)];
+ case 2:
+ signedTx = _a.sent();
+ return [4, this.provider.sendTransaction(signedTx)];
+ case 3:
+ return [2, _a.sent()];
+ }
+ });
+ });
+ };
+ Signer2.prototype.getChainId = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ var network;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ this._checkProvider("getChainId");
+ return [4, this.provider.getNetwork()];
+ case 1:
+ network = _a.sent();
+ return [2, network.chainId];
+ }
+ });
+ });
+ };
+ Signer2.prototype.getGasPrice = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ this._checkProvider("getGasPrice");
+ return [4, this.provider.getGasPrice()];
+ case 1:
+ return [2, _a.sent()];
+ }
+ });
+ });
+ };
+ Signer2.prototype.getFeeData = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ this._checkProvider("getFeeData");
+ return [4, this.provider.getFeeData()];
+ case 1:
+ return [2, _a.sent()];
+ }
+ });
+ });
+ };
+ Signer2.prototype.resolveName = function(name) {
+ return __awaiter13(this, void 0, void 0, function() {
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ this._checkProvider("resolveName");
+ return [4, this.provider.resolveName(name)];
+ case 1:
+ return [2, _a.sent()];
+ }
+ });
+ });
+ };
+ Signer2.prototype.checkTransaction = function(transaction) {
+ for (var key in transaction) {
+ if (allowedTransactionKeys.indexOf(key) === -1) {
+ logger.throwArgumentError("invalid transaction key: " + key, "transaction", transaction);
+ }
+ }
+ var tx = (0, properties_1.shallowCopy)(transaction);
+ if (tx.from == null) {
+ tx.from = this.getAddress();
+ } else {
+ tx.from = Promise.all([
+ Promise.resolve(tx.from),
+ this.getAddress()
+ ]).then(function(result) {
+ if (result[0].toLowerCase() !== result[1].toLowerCase()) {
+ logger.throwArgumentError("from address mismatch", "transaction", transaction);
+ }
+ return result[0];
+ });
+ }
+ return tx;
+ };
+ Signer2.prototype.populateTransaction = function(transaction) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var tx, hasEip1559, feeData, gasPrice;
+ var _this = this;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, (0, properties_1.resolveProperties)(this.checkTransaction(transaction))];
+ case 1:
+ tx = _a.sent();
+ if (tx.to != null) {
+ tx.to = Promise.resolve(tx.to).then(function(to) {
+ return __awaiter13(_this, void 0, void 0, function() {
+ var address;
+ return __generator13(this, function(_a2) {
+ switch (_a2.label) {
+ case 0:
+ if (to == null) {
+ return [2, null];
+ }
+ return [4, this.resolveName(to)];
+ case 1:
+ address = _a2.sent();
+ if (address == null) {
+ logger.throwArgumentError("provided ENS name resolves to null", "tx.to", to);
+ }
+ return [2, address];
+ }
+ });
+ });
+ });
+ tx.to.catch(function(error) {
+ });
+ }
+ hasEip1559 = tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null;
+ if (tx.gasPrice != null && (tx.type === 2 || hasEip1559)) {
+ logger.throwArgumentError("eip-1559 transaction do not support gasPrice", "transaction", transaction);
+ } else if ((tx.type === 0 || tx.type === 1) && hasEip1559) {
+ logger.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas", "transaction", transaction);
+ }
+ if (!((tx.type === 2 || tx.type == null) && (tx.maxFeePerGas != null && tx.maxPriorityFeePerGas != null)))
+ return [3, 2];
+ tx.type = 2;
+ return [3, 5];
+ case 2:
+ if (!(tx.type === 0 || tx.type === 1))
+ return [3, 3];
+ if (tx.gasPrice == null) {
+ tx.gasPrice = this.getGasPrice();
+ }
+ return [3, 5];
+ case 3:
+ return [4, this.getFeeData()];
+ case 4:
+ feeData = _a.sent();
+ if (tx.type == null) {
+ if (feeData.maxFeePerGas != null && feeData.maxPriorityFeePerGas != null) {
+ tx.type = 2;
+ if (tx.gasPrice != null) {
+ gasPrice = tx.gasPrice;
+ delete tx.gasPrice;
+ tx.maxFeePerGas = gasPrice;
+ tx.maxPriorityFeePerGas = gasPrice;
+ } else {
+ if (tx.maxFeePerGas == null) {
+ tx.maxFeePerGas = feeData.maxFeePerGas;
+ }
+ if (tx.maxPriorityFeePerGas == null) {
+ tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas;
+ }
+ }
+ } else if (feeData.gasPrice != null) {
+ if (hasEip1559) {
+ logger.throwError("network does not support EIP-1559", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "populateTransaction"
+ });
+ }
+ if (tx.gasPrice == null) {
+ tx.gasPrice = feeData.gasPrice;
+ }
+ tx.type = 0;
+ } else {
+ logger.throwError("failed to get consistent fee data", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "signer.getFeeData"
+ });
+ }
+ } else if (tx.type === 2) {
+ if (tx.maxFeePerGas == null) {
+ tx.maxFeePerGas = feeData.maxFeePerGas;
+ }
+ if (tx.maxPriorityFeePerGas == null) {
+ tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas;
+ }
+ }
+ _a.label = 5;
+ case 5:
+ if (tx.nonce == null) {
+ tx.nonce = this.getTransactionCount("pending");
+ }
+ if (tx.gasLimit == null) {
+ tx.gasLimit = this.estimateGas(tx).catch(function(error) {
+ if (forwardErrors.indexOf(error.code) >= 0) {
+ throw error;
+ }
+ return logger.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", logger_1.Logger.errors.UNPREDICTABLE_GAS_LIMIT, {
+ error,
+ tx
+ });
+ });
+ }
+ if (tx.chainId == null) {
+ tx.chainId = this.getChainId();
+ } else {
+ tx.chainId = Promise.all([
+ Promise.resolve(tx.chainId),
+ this.getChainId()
+ ]).then(function(results) {
+ if (results[1] !== 0 && results[0] !== results[1]) {
+ logger.throwArgumentError("chainId address mismatch", "transaction", transaction);
+ }
+ return results[0];
+ });
+ }
+ return [4, (0, properties_1.resolveProperties)(tx)];
+ case 6:
+ return [2, _a.sent()];
+ }
+ });
+ });
+ };
+ Signer2.prototype._checkProvider = function(operation) {
+ if (!this.provider) {
+ logger.throwError("missing provider", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: operation || "_checkProvider"
+ });
+ }
+ };
+ Signer2.isSigner = function(value) {
+ return !!(value && value._isSigner);
+ };
+ return Signer2;
+ }()
+ );
+ exports2.Signer = Signer;
+ var VoidSigner = (
+ /** @class */
+ function(_super) {
+ __extends13(VoidSigner2, _super);
+ function VoidSigner2(address, provider) {
+ var _this = _super.call(this) || this;
+ (0, properties_1.defineReadOnly)(_this, "address", address);
+ (0, properties_1.defineReadOnly)(_this, "provider", provider || null);
+ return _this;
+ }
+ VoidSigner2.prototype.getAddress = function() {
+ return Promise.resolve(this.address);
+ };
+ VoidSigner2.prototype._fail = function(message, operation) {
+ return Promise.resolve().then(function() {
+ logger.throwError(message, logger_1.Logger.errors.UNSUPPORTED_OPERATION, { operation });
+ });
+ };
+ VoidSigner2.prototype.signMessage = function(message) {
+ return this._fail("VoidSigner cannot sign messages", "signMessage");
+ };
+ VoidSigner2.prototype.signTransaction = function(transaction) {
+ return this._fail("VoidSigner cannot sign transactions", "signTransaction");
+ };
+ VoidSigner2.prototype._signTypedData = function(domain, types, value) {
+ return this._fail("VoidSigner cannot sign typed data", "signTypedData");
+ };
+ VoidSigner2.prototype.connect = function(provider) {
+ return new VoidSigner2(this.address, provider);
+ };
+ return VoidSigner2;
+ }(Signer)
+ );
+ exports2.VoidSigner = VoidSigner;
+ }
+});
+
+// node_modules/@ethersproject/contracts/lib/_version.js
+var require_version14 = __commonJS({
+ "node_modules/@ethersproject/contracts/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "contracts/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/contracts/lib/index.js
+var require_lib22 = __commonJS({
+ "node_modules/@ethersproject/contracts/lib/index.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ var __spreadArray = exports2 && exports2.__spreadArray || function(to, from, pack) {
+ if (pack || arguments.length === 2)
+ for (var i = 0, l = from.length, ar; i < l; i++) {
+ if (ar || !(i in from)) {
+ if (!ar)
+ ar = Array.prototype.slice.call(from, 0, i);
+ ar[i] = from[i];
+ }
+ }
+ return to.concat(ar || Array.prototype.slice.call(from));
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.ContractFactory = exports2.Contract = exports2.BaseContract = void 0;
+ var abi_1 = require_lib19();
+ var abstract_provider_1 = require_lib20();
+ var abstract_signer_1 = require_lib21();
+ var address_1 = require_lib10();
+ var bignumber_1 = require_lib7();
+ var bytes_1 = require_lib6();
+ var properties_1 = require_lib12();
+ var transactions_1 = require_lib14();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version14();
+ var logger = new logger_1.Logger(_version_1.version);
+ var allowedTransactionKeys = {
+ chainId: true,
+ data: true,
+ from: true,
+ gasLimit: true,
+ gasPrice: true,
+ nonce: true,
+ to: true,
+ value: true,
+ type: true,
+ accessList: true,
+ maxFeePerGas: true,
+ maxPriorityFeePerGas: true,
+ customData: true,
+ ccipReadEnabled: true
+ };
+ function resolveName(resolver, nameOrPromise) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var name, address;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, nameOrPromise];
+ case 1:
+ name = _a.sent();
+ if (typeof name !== "string") {
+ logger.throwArgumentError("invalid address or ENS name", "name", name);
+ }
+ try {
+ return [2, (0, address_1.getAddress)(name)];
+ } catch (error) {
+ }
+ if (!resolver) {
+ logger.throwError("a provider or signer is needed to resolve ENS names", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "resolveName"
+ });
+ }
+ return [4, resolver.resolveName(name)];
+ case 2:
+ address = _a.sent();
+ if (address == null) {
+ logger.throwArgumentError("resolver or addr is not configured for ENS name", "name", name);
+ }
+ return [2, address];
+ }
+ });
+ });
+ }
+ function resolveAddresses(resolver, value, paramType) {
+ return __awaiter13(this, void 0, void 0, function() {
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ if (!Array.isArray(paramType))
+ return [3, 2];
+ return [4, Promise.all(paramType.map(function(paramType2, index) {
+ return resolveAddresses(resolver, Array.isArray(value) ? value[index] : value[paramType2.name], paramType2);
+ }))];
+ case 1:
+ return [2, _a.sent()];
+ case 2:
+ if (!(paramType.type === "address"))
+ return [3, 4];
+ return [4, resolveName(resolver, value)];
+ case 3:
+ return [2, _a.sent()];
+ case 4:
+ if (!(paramType.type === "tuple"))
+ return [3, 6];
+ return [4, resolveAddresses(resolver, value, paramType.components)];
+ case 5:
+ return [2, _a.sent()];
+ case 6:
+ if (!(paramType.baseType === "array"))
+ return [3, 8];
+ if (!Array.isArray(value)) {
+ return [2, Promise.reject(logger.makeError("invalid value for array", logger_1.Logger.errors.INVALID_ARGUMENT, {
+ argument: "value",
+ value
+ }))];
+ }
+ return [4, Promise.all(value.map(function(v) {
+ return resolveAddresses(resolver, v, paramType.arrayChildren);
+ }))];
+ case 7:
+ return [2, _a.sent()];
+ case 8:
+ return [2, value];
+ }
+ });
+ });
+ }
+ function populateTransaction(contract, fragment, args) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var overrides, resolved, data, tx, ro, intrinsic, bytes, i, roValue, leftovers;
+ var _this = this;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ overrides = {};
+ if (args.length === fragment.inputs.length + 1 && typeof args[args.length - 1] === "object") {
+ overrides = (0, properties_1.shallowCopy)(args.pop());
+ }
+ logger.checkArgumentCount(args.length, fragment.inputs.length, "passed to contract");
+ if (contract.signer) {
+ if (overrides.from) {
+ overrides.from = (0, properties_1.resolveProperties)({
+ override: resolveName(contract.signer, overrides.from),
+ signer: contract.signer.getAddress()
+ }).then(function(check) {
+ return __awaiter13(_this, void 0, void 0, function() {
+ return __generator13(this, function(_a2) {
+ if ((0, address_1.getAddress)(check.signer) !== check.override) {
+ logger.throwError("Contract with a Signer cannot override from", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "overrides.from"
+ });
+ }
+ return [2, check.override];
+ });
+ });
+ });
+ } else {
+ overrides.from = contract.signer.getAddress();
+ }
+ } else if (overrides.from) {
+ overrides.from = resolveName(contract.provider, overrides.from);
+ }
+ return [4, (0, properties_1.resolveProperties)({
+ args: resolveAddresses(contract.signer || contract.provider, args, fragment.inputs),
+ address: contract.resolvedAddress,
+ overrides: (0, properties_1.resolveProperties)(overrides) || {}
+ })];
+ case 1:
+ resolved = _a.sent();
+ data = contract.interface.encodeFunctionData(fragment, resolved.args);
+ tx = {
+ data,
+ to: resolved.address
+ };
+ ro = resolved.overrides;
+ if (ro.nonce != null) {
+ tx.nonce = bignumber_1.BigNumber.from(ro.nonce).toNumber();
+ }
+ if (ro.gasLimit != null) {
+ tx.gasLimit = bignumber_1.BigNumber.from(ro.gasLimit);
+ }
+ if (ro.gasPrice != null) {
+ tx.gasPrice = bignumber_1.BigNumber.from(ro.gasPrice);
+ }
+ if (ro.maxFeePerGas != null) {
+ tx.maxFeePerGas = bignumber_1.BigNumber.from(ro.maxFeePerGas);
+ }
+ if (ro.maxPriorityFeePerGas != null) {
+ tx.maxPriorityFeePerGas = bignumber_1.BigNumber.from(ro.maxPriorityFeePerGas);
+ }
+ if (ro.from != null) {
+ tx.from = ro.from;
+ }
+ if (ro.type != null) {
+ tx.type = ro.type;
+ }
+ if (ro.accessList != null) {
+ tx.accessList = (0, transactions_1.accessListify)(ro.accessList);
+ }
+ if (tx.gasLimit == null && fragment.gas != null) {
+ intrinsic = 21e3;
+ bytes = (0, bytes_1.arrayify)(data);
+ for (i = 0; i < bytes.length; i++) {
+ intrinsic += 4;
+ if (bytes[i]) {
+ intrinsic += 64;
+ }
+ }
+ tx.gasLimit = bignumber_1.BigNumber.from(fragment.gas).add(intrinsic);
+ }
+ if (ro.value) {
+ roValue = bignumber_1.BigNumber.from(ro.value);
+ if (!roValue.isZero() && !fragment.payable) {
+ logger.throwError("non-payable method cannot override value", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "overrides.value",
+ value: overrides.value
+ });
+ }
+ tx.value = roValue;
+ }
+ if (ro.customData) {
+ tx.customData = (0, properties_1.shallowCopy)(ro.customData);
+ }
+ if (ro.ccipReadEnabled) {
+ tx.ccipReadEnabled = !!ro.ccipReadEnabled;
+ }
+ delete overrides.nonce;
+ delete overrides.gasLimit;
+ delete overrides.gasPrice;
+ delete overrides.from;
+ delete overrides.value;
+ delete overrides.type;
+ delete overrides.accessList;
+ delete overrides.maxFeePerGas;
+ delete overrides.maxPriorityFeePerGas;
+ delete overrides.customData;
+ delete overrides.ccipReadEnabled;
+ leftovers = Object.keys(overrides).filter(function(key) {
+ return overrides[key] != null;
+ });
+ if (leftovers.length) {
+ logger.throwError("cannot override " + leftovers.map(function(l) {
+ return JSON.stringify(l);
+ }).join(","), logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "overrides",
+ overrides: leftovers
+ });
+ }
+ return [2, tx];
+ }
+ });
+ });
+ }
+ function buildPopulate(contract, fragment) {
+ return function() {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ return populateTransaction(contract, fragment, args);
+ };
+ }
+ function buildEstimate(contract, fragment) {
+ var signerOrProvider = contract.signer || contract.provider;
+ return function() {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ return __awaiter13(this, void 0, void 0, function() {
+ var tx;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ if (!signerOrProvider) {
+ logger.throwError("estimate require a provider or signer", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "estimateGas"
+ });
+ }
+ return [4, populateTransaction(contract, fragment, args)];
+ case 1:
+ tx = _a.sent();
+ return [4, signerOrProvider.estimateGas(tx)];
+ case 2:
+ return [2, _a.sent()];
+ }
+ });
+ });
+ };
+ }
+ function addContractWait(contract, tx) {
+ var wait = tx.wait.bind(tx);
+ tx.wait = function(confirmations) {
+ return wait(confirmations).then(function(receipt) {
+ receipt.events = receipt.logs.map(function(log) {
+ var event = (0, properties_1.deepCopy)(log);
+ var parsed = null;
+ try {
+ parsed = contract.interface.parseLog(log);
+ } catch (e) {
+ }
+ if (parsed) {
+ event.args = parsed.args;
+ event.decode = function(data, topics) {
+ return contract.interface.decodeEventLog(parsed.eventFragment, data, topics);
+ };
+ event.event = parsed.name;
+ event.eventSignature = parsed.signature;
+ }
+ event.removeListener = function() {
+ return contract.provider;
+ };
+ event.getBlock = function() {
+ return contract.provider.getBlock(receipt.blockHash);
+ };
+ event.getTransaction = function() {
+ return contract.provider.getTransaction(receipt.transactionHash);
+ };
+ event.getTransactionReceipt = function() {
+ return Promise.resolve(receipt);
+ };
+ return event;
+ });
+ return receipt;
+ });
+ };
+ }
+ function buildCall(contract, fragment, collapseSimple) {
+ var signerOrProvider = contract.signer || contract.provider;
+ return function() {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ return __awaiter13(this, void 0, void 0, function() {
+ var blockTag, overrides, tx, result, value;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ blockTag = void 0;
+ if (!(args.length === fragment.inputs.length + 1 && typeof args[args.length - 1] === "object"))
+ return [3, 3];
+ overrides = (0, properties_1.shallowCopy)(args.pop());
+ if (!(overrides.blockTag != null))
+ return [3, 2];
+ return [4, overrides.blockTag];
+ case 1:
+ blockTag = _a.sent();
+ _a.label = 2;
+ case 2:
+ delete overrides.blockTag;
+ args.push(overrides);
+ _a.label = 3;
+ case 3:
+ if (!(contract.deployTransaction != null))
+ return [3, 5];
+ return [4, contract._deployed(blockTag)];
+ case 4:
+ _a.sent();
+ _a.label = 5;
+ case 5:
+ return [4, populateTransaction(contract, fragment, args)];
+ case 6:
+ tx = _a.sent();
+ return [4, signerOrProvider.call(tx, blockTag)];
+ case 7:
+ result = _a.sent();
+ try {
+ value = contract.interface.decodeFunctionResult(fragment, result);
+ if (collapseSimple && fragment.outputs.length === 1) {
+ value = value[0];
+ }
+ return [2, value];
+ } catch (error) {
+ if (error.code === logger_1.Logger.errors.CALL_EXCEPTION) {
+ error.address = contract.address;
+ error.args = args;
+ error.transaction = tx;
+ }
+ throw error;
+ }
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ }
+ function buildSend(contract, fragment) {
+ return function() {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ return __awaiter13(this, void 0, void 0, function() {
+ var txRequest, tx;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ if (!contract.signer) {
+ logger.throwError("sending a transaction requires a signer", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "sendTransaction"
+ });
+ }
+ if (!(contract.deployTransaction != null))
+ return [3, 2];
+ return [4, contract._deployed()];
+ case 1:
+ _a.sent();
+ _a.label = 2;
+ case 2:
+ return [4, populateTransaction(contract, fragment, args)];
+ case 3:
+ txRequest = _a.sent();
+ return [4, contract.signer.sendTransaction(txRequest)];
+ case 4:
+ tx = _a.sent();
+ addContractWait(contract, tx);
+ return [2, tx];
+ }
+ });
+ });
+ };
+ }
+ function buildDefault(contract, fragment, collapseSimple) {
+ if (fragment.constant) {
+ return buildCall(contract, fragment, collapseSimple);
+ }
+ return buildSend(contract, fragment);
+ }
+ function getEventTag(filter) {
+ if (filter.address && (filter.topics == null || filter.topics.length === 0)) {
+ return "*";
+ }
+ return (filter.address || "*") + "@" + (filter.topics ? filter.topics.map(function(topic) {
+ if (Array.isArray(topic)) {
+ return topic.join("|");
+ }
+ return topic;
+ }).join(":") : "");
+ }
+ var RunningEvent = (
+ /** @class */
+ function() {
+ function RunningEvent2(tag, filter) {
+ (0, properties_1.defineReadOnly)(this, "tag", tag);
+ (0, properties_1.defineReadOnly)(this, "filter", filter);
+ this._listeners = [];
+ }
+ RunningEvent2.prototype.addListener = function(listener, once) {
+ this._listeners.push({ listener, once });
+ };
+ RunningEvent2.prototype.removeListener = function(listener) {
+ var done = false;
+ this._listeners = this._listeners.filter(function(item) {
+ if (done || item.listener !== listener) {
+ return true;
+ }
+ done = true;
+ return false;
+ });
+ };
+ RunningEvent2.prototype.removeAllListeners = function() {
+ this._listeners = [];
+ };
+ RunningEvent2.prototype.listeners = function() {
+ return this._listeners.map(function(i) {
+ return i.listener;
+ });
+ };
+ RunningEvent2.prototype.listenerCount = function() {
+ return this._listeners.length;
+ };
+ RunningEvent2.prototype.run = function(args) {
+ var _this = this;
+ var listenerCount = this.listenerCount();
+ this._listeners = this._listeners.filter(function(item) {
+ var argsCopy = args.slice();
+ setTimeout(function() {
+ item.listener.apply(_this, argsCopy);
+ }, 0);
+ return !item.once;
+ });
+ return listenerCount;
+ };
+ RunningEvent2.prototype.prepareEvent = function(event) {
+ };
+ RunningEvent2.prototype.getEmit = function(event) {
+ return [event];
+ };
+ return RunningEvent2;
+ }()
+ );
+ var ErrorRunningEvent = (
+ /** @class */
+ function(_super) {
+ __extends13(ErrorRunningEvent2, _super);
+ function ErrorRunningEvent2() {
+ return _super.call(this, "error", null) || this;
+ }
+ return ErrorRunningEvent2;
+ }(RunningEvent)
+ );
+ var FragmentRunningEvent = (
+ /** @class */
+ function(_super) {
+ __extends13(FragmentRunningEvent2, _super);
+ function FragmentRunningEvent2(address, contractInterface, fragment, topics) {
+ var _this = this;
+ var filter = {
+ address
+ };
+ var topic = contractInterface.getEventTopic(fragment);
+ if (topics) {
+ if (topic !== topics[0]) {
+ logger.throwArgumentError("topic mismatch", "topics", topics);
+ }
+ filter.topics = topics.slice();
+ } else {
+ filter.topics = [topic];
+ }
+ _this = _super.call(this, getEventTag(filter), filter) || this;
+ (0, properties_1.defineReadOnly)(_this, "address", address);
+ (0, properties_1.defineReadOnly)(_this, "interface", contractInterface);
+ (0, properties_1.defineReadOnly)(_this, "fragment", fragment);
+ return _this;
+ }
+ FragmentRunningEvent2.prototype.prepareEvent = function(event) {
+ var _this = this;
+ _super.prototype.prepareEvent.call(this, event);
+ event.event = this.fragment.name;
+ event.eventSignature = this.fragment.format();
+ event.decode = function(data, topics) {
+ return _this.interface.decodeEventLog(_this.fragment, data, topics);
+ };
+ try {
+ event.args = this.interface.decodeEventLog(this.fragment, event.data, event.topics);
+ } catch (error) {
+ event.args = null;
+ event.decodeError = error;
+ }
+ };
+ FragmentRunningEvent2.prototype.getEmit = function(event) {
+ var errors = (0, abi_1.checkResultErrors)(event.args);
+ if (errors.length) {
+ throw errors[0].error;
+ }
+ var args = (event.args || []).slice();
+ args.push(event);
+ return args;
+ };
+ return FragmentRunningEvent2;
+ }(RunningEvent)
+ );
+ var WildcardRunningEvent = (
+ /** @class */
+ function(_super) {
+ __extends13(WildcardRunningEvent2, _super);
+ function WildcardRunningEvent2(address, contractInterface) {
+ var _this = _super.call(this, "*", { address }) || this;
+ (0, properties_1.defineReadOnly)(_this, "address", address);
+ (0, properties_1.defineReadOnly)(_this, "interface", contractInterface);
+ return _this;
+ }
+ WildcardRunningEvent2.prototype.prepareEvent = function(event) {
+ var _this = this;
+ _super.prototype.prepareEvent.call(this, event);
+ try {
+ var parsed_1 = this.interface.parseLog(event);
+ event.event = parsed_1.name;
+ event.eventSignature = parsed_1.signature;
+ event.decode = function(data, topics) {
+ return _this.interface.decodeEventLog(parsed_1.eventFragment, data, topics);
+ };
+ event.args = parsed_1.args;
+ } catch (error) {
+ }
+ };
+ return WildcardRunningEvent2;
+ }(RunningEvent)
+ );
+ var BaseContract = (
+ /** @class */
+ function() {
+ function BaseContract2(addressOrName, contractInterface, signerOrProvider) {
+ var _newTarget = this.constructor;
+ var _this = this;
+ (0, properties_1.defineReadOnly)(this, "interface", (0, properties_1.getStatic)(_newTarget, "getInterface")(contractInterface));
+ if (signerOrProvider == null) {
+ (0, properties_1.defineReadOnly)(this, "provider", null);
+ (0, properties_1.defineReadOnly)(this, "signer", null);
+ } else if (abstract_signer_1.Signer.isSigner(signerOrProvider)) {
+ (0, properties_1.defineReadOnly)(this, "provider", signerOrProvider.provider || null);
+ (0, properties_1.defineReadOnly)(this, "signer", signerOrProvider);
+ } else if (abstract_provider_1.Provider.isProvider(signerOrProvider)) {
+ (0, properties_1.defineReadOnly)(this, "provider", signerOrProvider);
+ (0, properties_1.defineReadOnly)(this, "signer", null);
+ } else {
+ logger.throwArgumentError("invalid signer or provider", "signerOrProvider", signerOrProvider);
+ }
+ (0, properties_1.defineReadOnly)(this, "callStatic", {});
+ (0, properties_1.defineReadOnly)(this, "estimateGas", {});
+ (0, properties_1.defineReadOnly)(this, "functions", {});
+ (0, properties_1.defineReadOnly)(this, "populateTransaction", {});
+ (0, properties_1.defineReadOnly)(this, "filters", {});
+ {
+ var uniqueFilters_1 = {};
+ Object.keys(this.interface.events).forEach(function(eventSignature) {
+ var event = _this.interface.events[eventSignature];
+ (0, properties_1.defineReadOnly)(_this.filters, eventSignature, function() {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ return {
+ address: _this.address,
+ topics: _this.interface.encodeFilterTopics(event, args)
+ };
+ });
+ if (!uniqueFilters_1[event.name]) {
+ uniqueFilters_1[event.name] = [];
+ }
+ uniqueFilters_1[event.name].push(eventSignature);
+ });
+ Object.keys(uniqueFilters_1).forEach(function(name) {
+ var filters = uniqueFilters_1[name];
+ if (filters.length === 1) {
+ (0, properties_1.defineReadOnly)(_this.filters, name, _this.filters[filters[0]]);
+ } else {
+ logger.warn("Duplicate definition of " + name + " (" + filters.join(", ") + ")");
+ }
+ });
+ }
+ (0, properties_1.defineReadOnly)(this, "_runningEvents", {});
+ (0, properties_1.defineReadOnly)(this, "_wrappedEmits", {});
+ if (addressOrName == null) {
+ logger.throwArgumentError("invalid contract address or ENS name", "addressOrName", addressOrName);
+ }
+ (0, properties_1.defineReadOnly)(this, "address", addressOrName);
+ if (this.provider) {
+ (0, properties_1.defineReadOnly)(this, "resolvedAddress", resolveName(this.provider, addressOrName));
+ } else {
+ try {
+ (0, properties_1.defineReadOnly)(this, "resolvedAddress", Promise.resolve((0, address_1.getAddress)(addressOrName)));
+ } catch (error) {
+ logger.throwError("provider is required to use ENS name as contract address", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "new Contract"
+ });
+ }
+ }
+ this.resolvedAddress.catch(function(e) {
+ });
+ var uniqueNames = {};
+ var uniqueSignatures = {};
+ Object.keys(this.interface.functions).forEach(function(signature) {
+ var fragment = _this.interface.functions[signature];
+ if (uniqueSignatures[signature]) {
+ logger.warn("Duplicate ABI entry for " + JSON.stringify(signature));
+ return;
+ }
+ uniqueSignatures[signature] = true;
+ {
+ var name_1 = fragment.name;
+ if (!uniqueNames["%" + name_1]) {
+ uniqueNames["%" + name_1] = [];
+ }
+ uniqueNames["%" + name_1].push(signature);
+ }
+ if (_this[signature] == null) {
+ (0, properties_1.defineReadOnly)(_this, signature, buildDefault(_this, fragment, true));
+ }
+ if (_this.functions[signature] == null) {
+ (0, properties_1.defineReadOnly)(_this.functions, signature, buildDefault(_this, fragment, false));
+ }
+ if (_this.callStatic[signature] == null) {
+ (0, properties_1.defineReadOnly)(_this.callStatic, signature, buildCall(_this, fragment, true));
+ }
+ if (_this.populateTransaction[signature] == null) {
+ (0, properties_1.defineReadOnly)(_this.populateTransaction, signature, buildPopulate(_this, fragment));
+ }
+ if (_this.estimateGas[signature] == null) {
+ (0, properties_1.defineReadOnly)(_this.estimateGas, signature, buildEstimate(_this, fragment));
+ }
+ });
+ Object.keys(uniqueNames).forEach(function(name) {
+ var signatures = uniqueNames[name];
+ if (signatures.length > 1) {
+ return;
+ }
+ name = name.substring(1);
+ var signature = signatures[0];
+ try {
+ if (_this[name] == null) {
+ (0, properties_1.defineReadOnly)(_this, name, _this[signature]);
+ }
+ } catch (e) {
+ }
+ if (_this.functions[name] == null) {
+ (0, properties_1.defineReadOnly)(_this.functions, name, _this.functions[signature]);
+ }
+ if (_this.callStatic[name] == null) {
+ (0, properties_1.defineReadOnly)(_this.callStatic, name, _this.callStatic[signature]);
+ }
+ if (_this.populateTransaction[name] == null) {
+ (0, properties_1.defineReadOnly)(_this.populateTransaction, name, _this.populateTransaction[signature]);
+ }
+ if (_this.estimateGas[name] == null) {
+ (0, properties_1.defineReadOnly)(_this.estimateGas, name, _this.estimateGas[signature]);
+ }
+ });
+ }
+ BaseContract2.getContractAddress = function(transaction) {
+ return (0, address_1.getContractAddress)(transaction);
+ };
+ BaseContract2.getInterface = function(contractInterface) {
+ if (abi_1.Interface.isInterface(contractInterface)) {
+ return contractInterface;
+ }
+ return new abi_1.Interface(contractInterface);
+ };
+ BaseContract2.prototype.deployed = function() {
+ return this._deployed();
+ };
+ BaseContract2.prototype._deployed = function(blockTag) {
+ var _this = this;
+ if (!this._deployedPromise) {
+ if (this.deployTransaction) {
+ this._deployedPromise = this.deployTransaction.wait().then(function() {
+ return _this;
+ });
+ } else {
+ this._deployedPromise = this.provider.getCode(this.address, blockTag).then(function(code) {
+ if (code === "0x") {
+ logger.throwError("contract not deployed", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ contractAddress: _this.address,
+ operation: "getDeployed"
+ });
+ }
+ return _this;
+ });
+ }
+ }
+ return this._deployedPromise;
+ };
+ BaseContract2.prototype.fallback = function(overrides) {
+ var _this = this;
+ if (!this.signer) {
+ logger.throwError("sending a transactions require a signer", logger_1.Logger.errors.UNSUPPORTED_OPERATION, { operation: "sendTransaction(fallback)" });
+ }
+ var tx = (0, properties_1.shallowCopy)(overrides || {});
+ ["from", "to"].forEach(function(key) {
+ if (tx[key] == null) {
+ return;
+ }
+ logger.throwError("cannot override " + key, logger_1.Logger.errors.UNSUPPORTED_OPERATION, { operation: key });
+ });
+ tx.to = this.resolvedAddress;
+ return this.deployed().then(function() {
+ return _this.signer.sendTransaction(tx);
+ });
+ };
+ BaseContract2.prototype.connect = function(signerOrProvider) {
+ if (typeof signerOrProvider === "string") {
+ signerOrProvider = new abstract_signer_1.VoidSigner(signerOrProvider, this.provider);
+ }
+ var contract = new this.constructor(this.address, this.interface, signerOrProvider);
+ if (this.deployTransaction) {
+ (0, properties_1.defineReadOnly)(contract, "deployTransaction", this.deployTransaction);
+ }
+ return contract;
+ };
+ BaseContract2.prototype.attach = function(addressOrName) {
+ return new this.constructor(addressOrName, this.interface, this.signer || this.provider);
+ };
+ BaseContract2.isIndexed = function(value) {
+ return abi_1.Indexed.isIndexed(value);
+ };
+ BaseContract2.prototype._normalizeRunningEvent = function(runningEvent) {
+ if (this._runningEvents[runningEvent.tag]) {
+ return this._runningEvents[runningEvent.tag];
+ }
+ return runningEvent;
+ };
+ BaseContract2.prototype._getRunningEvent = function(eventName) {
+ if (typeof eventName === "string") {
+ if (eventName === "error") {
+ return this._normalizeRunningEvent(new ErrorRunningEvent());
+ }
+ if (eventName === "event") {
+ return this._normalizeRunningEvent(new RunningEvent("event", null));
+ }
+ if (eventName === "*") {
+ return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));
+ }
+ var fragment = this.interface.getEvent(eventName);
+ return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment));
+ }
+ if (eventName.topics && eventName.topics.length > 0) {
+ try {
+ var topic = eventName.topics[0];
+ if (typeof topic !== "string") {
+ throw new Error("invalid topic");
+ }
+ var fragment = this.interface.getEvent(topic);
+ return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment, eventName.topics));
+ } catch (error) {
+ }
+ var filter = {
+ address: this.address,
+ topics: eventName.topics
+ };
+ return this._normalizeRunningEvent(new RunningEvent(getEventTag(filter), filter));
+ }
+ return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));
+ };
+ BaseContract2.prototype._checkRunningEvents = function(runningEvent) {
+ if (runningEvent.listenerCount() === 0) {
+ delete this._runningEvents[runningEvent.tag];
+ var emit = this._wrappedEmits[runningEvent.tag];
+ if (emit && runningEvent.filter) {
+ this.provider.off(runningEvent.filter, emit);
+ delete this._wrappedEmits[runningEvent.tag];
+ }
+ }
+ };
+ BaseContract2.prototype._wrapEvent = function(runningEvent, log, listener) {
+ var _this = this;
+ var event = (0, properties_1.deepCopy)(log);
+ event.removeListener = function() {
+ if (!listener) {
+ return;
+ }
+ runningEvent.removeListener(listener);
+ _this._checkRunningEvents(runningEvent);
+ };
+ event.getBlock = function() {
+ return _this.provider.getBlock(log.blockHash);
+ };
+ event.getTransaction = function() {
+ return _this.provider.getTransaction(log.transactionHash);
+ };
+ event.getTransactionReceipt = function() {
+ return _this.provider.getTransactionReceipt(log.transactionHash);
+ };
+ runningEvent.prepareEvent(event);
+ return event;
+ };
+ BaseContract2.prototype._addEventListener = function(runningEvent, listener, once) {
+ var _this = this;
+ if (!this.provider) {
+ logger.throwError("events require a provider or a signer with a provider", logger_1.Logger.errors.UNSUPPORTED_OPERATION, { operation: "once" });
+ }
+ runningEvent.addListener(listener, once);
+ this._runningEvents[runningEvent.tag] = runningEvent;
+ if (!this._wrappedEmits[runningEvent.tag]) {
+ var wrappedEmit = function(log) {
+ var event = _this._wrapEvent(runningEvent, log, listener);
+ if (event.decodeError == null) {
+ try {
+ var args = runningEvent.getEmit(event);
+ _this.emit.apply(_this, __spreadArray([runningEvent.filter], args, false));
+ } catch (error) {
+ event.decodeError = error.error;
+ }
+ }
+ if (runningEvent.filter != null) {
+ _this.emit("event", event);
+ }
+ if (event.decodeError != null) {
+ _this.emit("error", event.decodeError, event);
+ }
+ };
+ this._wrappedEmits[runningEvent.tag] = wrappedEmit;
+ if (runningEvent.filter != null) {
+ this.provider.on(runningEvent.filter, wrappedEmit);
+ }
+ }
+ };
+ BaseContract2.prototype.queryFilter = function(event, fromBlockOrBlockhash, toBlock) {
+ var _this = this;
+ var runningEvent = this._getRunningEvent(event);
+ var filter = (0, properties_1.shallowCopy)(runningEvent.filter);
+ if (typeof fromBlockOrBlockhash === "string" && (0, bytes_1.isHexString)(fromBlockOrBlockhash, 32)) {
+ if (toBlock != null) {
+ logger.throwArgumentError("cannot specify toBlock with blockhash", "toBlock", toBlock);
+ }
+ filter.blockHash = fromBlockOrBlockhash;
+ } else {
+ filter.fromBlock = fromBlockOrBlockhash != null ? fromBlockOrBlockhash : 0;
+ filter.toBlock = toBlock != null ? toBlock : "latest";
+ }
+ return this.provider.getLogs(filter).then(function(logs) {
+ return logs.map(function(log) {
+ return _this._wrapEvent(runningEvent, log, null);
+ });
+ });
+ };
+ BaseContract2.prototype.on = function(event, listener) {
+ this._addEventListener(this._getRunningEvent(event), listener, false);
+ return this;
+ };
+ BaseContract2.prototype.once = function(event, listener) {
+ this._addEventListener(this._getRunningEvent(event), listener, true);
+ return this;
+ };
+ BaseContract2.prototype.emit = function(eventName) {
+ var args = [];
+ for (var _i = 1; _i < arguments.length; _i++) {
+ args[_i - 1] = arguments[_i];
+ }
+ if (!this.provider) {
+ return false;
+ }
+ var runningEvent = this._getRunningEvent(eventName);
+ var result = runningEvent.run(args) > 0;
+ this._checkRunningEvents(runningEvent);
+ return result;
+ };
+ BaseContract2.prototype.listenerCount = function(eventName) {
+ var _this = this;
+ if (!this.provider) {
+ return 0;
+ }
+ if (eventName == null) {
+ return Object.keys(this._runningEvents).reduce(function(accum, key) {
+ return accum + _this._runningEvents[key].listenerCount();
+ }, 0);
+ }
+ return this._getRunningEvent(eventName).listenerCount();
+ };
+ BaseContract2.prototype.listeners = function(eventName) {
+ if (!this.provider) {
+ return [];
+ }
+ if (eventName == null) {
+ var result_1 = [];
+ for (var tag in this._runningEvents) {
+ this._runningEvents[tag].listeners().forEach(function(listener) {
+ result_1.push(listener);
+ });
+ }
+ return result_1;
+ }
+ return this._getRunningEvent(eventName).listeners();
+ };
+ BaseContract2.prototype.removeAllListeners = function(eventName) {
+ if (!this.provider) {
+ return this;
+ }
+ if (eventName == null) {
+ for (var tag in this._runningEvents) {
+ var runningEvent_1 = this._runningEvents[tag];
+ runningEvent_1.removeAllListeners();
+ this._checkRunningEvents(runningEvent_1);
+ }
+ return this;
+ }
+ var runningEvent = this._getRunningEvent(eventName);
+ runningEvent.removeAllListeners();
+ this._checkRunningEvents(runningEvent);
+ return this;
+ };
+ BaseContract2.prototype.off = function(eventName, listener) {
+ if (!this.provider) {
+ return this;
+ }
+ var runningEvent = this._getRunningEvent(eventName);
+ runningEvent.removeListener(listener);
+ this._checkRunningEvents(runningEvent);
+ return this;
+ };
+ BaseContract2.prototype.removeListener = function(eventName, listener) {
+ return this.off(eventName, listener);
+ };
+ return BaseContract2;
+ }()
+ );
+ exports2.BaseContract = BaseContract;
+ var Contract = (
+ /** @class */
+ function(_super) {
+ __extends13(Contract2, _super);
+ function Contract2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ return Contract2;
+ }(BaseContract)
+ );
+ exports2.Contract = Contract;
+ var ContractFactory = (
+ /** @class */
+ function() {
+ function ContractFactory2(contractInterface, bytecode, signer) {
+ var _newTarget = this.constructor;
+ var bytecodeHex = null;
+ if (typeof bytecode === "string") {
+ bytecodeHex = bytecode;
+ } else if ((0, bytes_1.isBytes)(bytecode)) {
+ bytecodeHex = (0, bytes_1.hexlify)(bytecode);
+ } else if (bytecode && typeof bytecode.object === "string") {
+ bytecodeHex = bytecode.object;
+ } else {
+ bytecodeHex = "!";
+ }
+ if (bytecodeHex.substring(0, 2) !== "0x") {
+ bytecodeHex = "0x" + bytecodeHex;
+ }
+ if (!(0, bytes_1.isHexString)(bytecodeHex) || bytecodeHex.length % 2) {
+ logger.throwArgumentError("invalid bytecode", "bytecode", bytecode);
+ }
+ if (signer && !abstract_signer_1.Signer.isSigner(signer)) {
+ logger.throwArgumentError("invalid signer", "signer", signer);
+ }
+ (0, properties_1.defineReadOnly)(this, "bytecode", bytecodeHex);
+ (0, properties_1.defineReadOnly)(this, "interface", (0, properties_1.getStatic)(_newTarget, "getInterface")(contractInterface));
+ (0, properties_1.defineReadOnly)(this, "signer", signer || null);
+ }
+ ContractFactory2.prototype.getDeployTransaction = function() {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ var tx = {};
+ if (args.length === this.interface.deploy.inputs.length + 1 && typeof args[args.length - 1] === "object") {
+ tx = (0, properties_1.shallowCopy)(args.pop());
+ for (var key in tx) {
+ if (!allowedTransactionKeys[key]) {
+ throw new Error("unknown transaction override " + key);
+ }
+ }
+ }
+ ["data", "from", "to"].forEach(function(key2) {
+ if (tx[key2] == null) {
+ return;
+ }
+ logger.throwError("cannot override " + key2, logger_1.Logger.errors.UNSUPPORTED_OPERATION, { operation: key2 });
+ });
+ if (tx.value) {
+ var value = bignumber_1.BigNumber.from(tx.value);
+ if (!value.isZero() && !this.interface.deploy.payable) {
+ logger.throwError("non-payable constructor cannot override value", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "overrides.value",
+ value: tx.value
+ });
+ }
+ }
+ logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, " in Contract constructor");
+ tx.data = (0, bytes_1.hexlify)((0, bytes_1.concat)([
+ this.bytecode,
+ this.interface.encodeDeploy(args)
+ ]));
+ return tx;
+ };
+ ContractFactory2.prototype.deploy = function() {
+ var args = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ args[_i] = arguments[_i];
+ }
+ return __awaiter13(this, void 0, void 0, function() {
+ var overrides, params, unsignedTx, tx, address, contract;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ overrides = {};
+ if (args.length === this.interface.deploy.inputs.length + 1) {
+ overrides = args.pop();
+ }
+ logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, " in Contract constructor");
+ return [4, resolveAddresses(this.signer, args, this.interface.deploy.inputs)];
+ case 1:
+ params = _a.sent();
+ params.push(overrides);
+ unsignedTx = this.getDeployTransaction.apply(this, params);
+ return [4, this.signer.sendTransaction(unsignedTx)];
+ case 2:
+ tx = _a.sent();
+ address = (0, properties_1.getStatic)(this.constructor, "getContractAddress")(tx);
+ contract = (0, properties_1.getStatic)(this.constructor, "getContract")(address, this.interface, this.signer);
+ addContractWait(contract, tx);
+ (0, properties_1.defineReadOnly)(contract, "deployTransaction", tx);
+ return [2, contract];
+ }
+ });
+ });
+ };
+ ContractFactory2.prototype.attach = function(address) {
+ return this.constructor.getContract(address, this.interface, this.signer);
+ };
+ ContractFactory2.prototype.connect = function(signer) {
+ return new this.constructor(this.interface, this.bytecode, signer);
+ };
+ ContractFactory2.fromSolidity = function(compilerOutput, signer) {
+ if (compilerOutput == null) {
+ logger.throwError("missing compiler output", logger_1.Logger.errors.MISSING_ARGUMENT, { argument: "compilerOutput" });
+ }
+ if (typeof compilerOutput === "string") {
+ compilerOutput = JSON.parse(compilerOutput);
+ }
+ var abi = compilerOutput.abi;
+ var bytecode = null;
+ if (compilerOutput.bytecode) {
+ bytecode = compilerOutput.bytecode;
+ } else if (compilerOutput.evm && compilerOutput.evm.bytecode) {
+ bytecode = compilerOutput.evm.bytecode;
+ }
+ return new this(abi, bytecode, signer);
+ };
+ ContractFactory2.getInterface = function(contractInterface) {
+ return Contract.getInterface(contractInterface);
+ };
+ ContractFactory2.getContractAddress = function(tx) {
+ return (0, address_1.getContractAddress)(tx);
+ };
+ ContractFactory2.getContract = function(address, contractInterface, signer) {
+ return new Contract(address, contractInterface, signer);
+ };
+ return ContractFactory2;
+ }()
+ );
+ exports2.ContractFactory = ContractFactory;
+ }
+});
+
+// node_modules/@ethersproject/basex/lib/index.js
+var require_lib23 = __commonJS({
+ "node_modules/@ethersproject/basex/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.Base58 = exports2.Base32 = exports2.BaseX = void 0;
+ var bytes_1 = require_lib6();
+ var properties_1 = require_lib12();
+ var BaseX = (
+ /** @class */
+ function() {
+ function BaseX2(alphabet) {
+ (0, properties_1.defineReadOnly)(this, "alphabet", alphabet);
+ (0, properties_1.defineReadOnly)(this, "base", alphabet.length);
+ (0, properties_1.defineReadOnly)(this, "_alphabetMap", {});
+ (0, properties_1.defineReadOnly)(this, "_leader", alphabet.charAt(0));
+ for (var i = 0; i < alphabet.length; i++) {
+ this._alphabetMap[alphabet.charAt(i)] = i;
+ }
+ }
+ BaseX2.prototype.encode = function(value) {
+ var source = (0, bytes_1.arrayify)(value);
+ if (source.length === 0) {
+ return "";
+ }
+ var digits = [0];
+ for (var i = 0; i < source.length; ++i) {
+ var carry = source[i];
+ for (var j = 0; j < digits.length; ++j) {
+ carry += digits[j] << 8;
+ digits[j] = carry % this.base;
+ carry = carry / this.base | 0;
+ }
+ while (carry > 0) {
+ digits.push(carry % this.base);
+ carry = carry / this.base | 0;
+ }
+ }
+ var string = "";
+ for (var k = 0; source[k] === 0 && k < source.length - 1; ++k) {
+ string += this._leader;
+ }
+ for (var q = digits.length - 1; q >= 0; --q) {
+ string += this.alphabet[digits[q]];
+ }
+ return string;
+ };
+ BaseX2.prototype.decode = function(value) {
+ if (typeof value !== "string") {
+ throw new TypeError("Expected String");
+ }
+ var bytes = [];
+ if (value.length === 0) {
+ return new Uint8Array(bytes);
+ }
+ bytes.push(0);
+ for (var i = 0; i < value.length; i++) {
+ var byte = this._alphabetMap[value[i]];
+ if (byte === void 0) {
+ throw new Error("Non-base" + this.base + " character");
+ }
+ var carry = byte;
+ for (var j = 0; j < bytes.length; ++j) {
+ carry += bytes[j] * this.base;
+ bytes[j] = carry & 255;
+ carry >>= 8;
+ }
+ while (carry > 0) {
+ bytes.push(carry & 255);
+ carry >>= 8;
+ }
+ }
+ for (var k = 0; value[k] === this._leader && k < value.length - 1; ++k) {
+ bytes.push(0);
+ }
+ return (0, bytes_1.arrayify)(new Uint8Array(bytes.reverse()));
+ };
+ return BaseX2;
+ }()
+ );
+ exports2.BaseX = BaseX;
+ var Base32 = new BaseX("abcdefghijklmnopqrstuvwxyz234567");
+ exports2.Base32 = Base32;
+ var Base58 = new BaseX("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");
+ exports2.Base58 = Base58;
+ }
+});
+
+// node_modules/@ethersproject/pbkdf2/lib/pbkdf2.js
+var require_pbkdf2 = __commonJS({
+ "node_modules/@ethersproject/pbkdf2/lib/pbkdf2.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.pbkdf2 = void 0;
+ var crypto_1 = require("crypto");
+ var bytes_1 = require_lib6();
+ function bufferify(value) {
+ return Buffer.from((0, bytes_1.arrayify)(value));
+ }
+ function pbkdf2(password, salt, iterations, keylen, hashAlgorithm) {
+ return (0, bytes_1.hexlify)((0, crypto_1.pbkdf2Sync)(bufferify(password), bufferify(salt), iterations, keylen, hashAlgorithm));
+ }
+ exports2.pbkdf2 = pbkdf2;
+ }
+});
+
+// node_modules/@ethersproject/pbkdf2/lib/index.js
+var require_lib24 = __commonJS({
+ "node_modules/@ethersproject/pbkdf2/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.pbkdf2 = void 0;
+ var pbkdf2_1 = require_pbkdf2();
+ Object.defineProperty(exports2, "pbkdf2", { enumerable: true, get: function() {
+ return pbkdf2_1.pbkdf2;
+ } });
+ }
+});
+
+// node_modules/@ethersproject/sha2/lib/types.js
+var require_types2 = __commonJS({
+ "node_modules/@ethersproject/sha2/lib/types.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.SupportedAlgorithm = void 0;
+ var SupportedAlgorithm;
+ (function(SupportedAlgorithm2) {
+ SupportedAlgorithm2["sha256"] = "sha256";
+ SupportedAlgorithm2["sha512"] = "sha512";
+ })(SupportedAlgorithm = exports2.SupportedAlgorithm || (exports2.SupportedAlgorithm = {}));
+ }
+});
+
+// node_modules/@ethersproject/sha2/lib/_version.js
+var require_version15 = __commonJS({
+ "node_modules/@ethersproject/sha2/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "sha2/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/sha2/lib/sha2.js
+var require_sha2 = __commonJS({
+ "node_modules/@ethersproject/sha2/lib/sha2.js"(exports2) {
+ "use strict";
+ var __importDefault13 = exports2 && exports2.__importDefault || function(mod) {
+ return mod && mod.__esModule ? mod : { "default": mod };
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.computeHmac = exports2.sha512 = exports2.sha256 = exports2.ripemd160 = void 0;
+ var crypto_1 = require("crypto");
+ var hash_js_1 = __importDefault13(require_hash());
+ var bytes_1 = require_lib6();
+ var types_1 = require_types2();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version15();
+ var logger = new logger_1.Logger(_version_1.version);
+ function ripemd160(data) {
+ return "0x" + hash_js_1.default.ripemd160().update((0, bytes_1.arrayify)(data)).digest("hex");
+ }
+ exports2.ripemd160 = ripemd160;
+ function sha256(data) {
+ return "0x" + (0, crypto_1.createHash)("sha256").update(Buffer.from((0, bytes_1.arrayify)(data))).digest("hex");
+ }
+ exports2.sha256 = sha256;
+ function sha512(data) {
+ return "0x" + (0, crypto_1.createHash)("sha512").update(Buffer.from((0, bytes_1.arrayify)(data))).digest("hex");
+ }
+ exports2.sha512 = sha512;
+ function computeHmac(algorithm, key, data) {
+ if (!types_1.SupportedAlgorithm[algorithm]) {
+ logger.throwError("unsupported algorithm - " + algorithm, logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "computeHmac",
+ algorithm
+ });
+ }
+ return "0x" + (0, crypto_1.createHmac)(algorithm, Buffer.from((0, bytes_1.arrayify)(key))).update(Buffer.from((0, bytes_1.arrayify)(data))).digest("hex");
+ }
+ exports2.computeHmac = computeHmac;
+ }
+});
+
+// node_modules/@ethersproject/sha2/lib/index.js
+var require_lib25 = __commonJS({
+ "node_modules/@ethersproject/sha2/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.SupportedAlgorithm = exports2.sha512 = exports2.sha256 = exports2.ripemd160 = exports2.computeHmac = void 0;
+ var sha2_1 = require_sha2();
+ Object.defineProperty(exports2, "computeHmac", { enumerable: true, get: function() {
+ return sha2_1.computeHmac;
+ } });
+ Object.defineProperty(exports2, "ripemd160", { enumerable: true, get: function() {
+ return sha2_1.ripemd160;
+ } });
+ Object.defineProperty(exports2, "sha256", { enumerable: true, get: function() {
+ return sha2_1.sha256;
+ } });
+ Object.defineProperty(exports2, "sha512", { enumerable: true, get: function() {
+ return sha2_1.sha512;
+ } });
+ var types_1 = require_types2();
+ Object.defineProperty(exports2, "SupportedAlgorithm", { enumerable: true, get: function() {
+ return types_1.SupportedAlgorithm;
+ } });
+ }
+});
+
+// node_modules/@ethersproject/wordlists/lib/_version.js
+var require_version16 = __commonJS({
+ "node_modules/@ethersproject/wordlists/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "wordlists/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/wordlists/lib/wordlist.js
+var require_wordlist = __commonJS({
+ "node_modules/@ethersproject/wordlists/lib/wordlist.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.Wordlist = exports2.logger = void 0;
+ var exportWordlist = false;
+ var hash_1 = require_lib18();
+ var properties_1 = require_lib12();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version16();
+ exports2.logger = new logger_1.Logger(_version_1.version);
+ var Wordlist = (
+ /** @class */
+ function() {
+ function Wordlist2(locale) {
+ var _newTarget = this.constructor;
+ exports2.logger.checkAbstract(_newTarget, Wordlist2);
+ (0, properties_1.defineReadOnly)(this, "locale", locale);
+ }
+ Wordlist2.prototype.split = function(mnemonic) {
+ return mnemonic.toLowerCase().split(/ +/g);
+ };
+ Wordlist2.prototype.join = function(words) {
+ return words.join(" ");
+ };
+ Wordlist2.check = function(wordlist) {
+ var words = [];
+ for (var i = 0; i < 2048; i++) {
+ var word = wordlist.getWord(i);
+ if (i !== wordlist.getWordIndex(word)) {
+ return "0x";
+ }
+ words.push(word);
+ }
+ return (0, hash_1.id)(words.join("\n") + "\n");
+ };
+ Wordlist2.register = function(lang, name) {
+ if (!name) {
+ name = lang.locale;
+ }
+ if (exportWordlist) {
+ try {
+ var anyGlobal = window;
+ if (anyGlobal._ethers && anyGlobal._ethers.wordlists) {
+ if (!anyGlobal._ethers.wordlists[name]) {
+ (0, properties_1.defineReadOnly)(anyGlobal._ethers.wordlists, name, lang);
+ }
+ }
+ } catch (error) {
+ }
+ }
+ };
+ return Wordlist2;
+ }()
+ );
+ exports2.Wordlist = Wordlist;
+ }
+});
+
+// node_modules/@ethersproject/wordlists/lib/lang-cz.js
+var require_lang_cz = __commonJS({
+ "node_modules/@ethersproject/wordlists/lib/lang-cz.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.langCz = void 0;
+ var wordlist_1 = require_wordlist();
+ var words = "AbdikaceAbecedaAdresaAgreseAkceAktovkaAlejAlkoholAmputaceAnanasAndulkaAnekdotaAnketaAntikaAnulovatArchaAroganceAsfaltAsistentAspiraceAstmaAstronomAtlasAtletikaAtolAutobusAzylBabkaBachorBacilBaculkaBadatelBagetaBagrBahnoBakterieBaladaBaletkaBalkonBalonekBalvanBalzaBambusBankomatBarbarBaretBarmanBarokoBarvaBaterkaBatohBavlnaBazalkaBazilikaBazukaBednaBeranBesedaBestieBetonBezinkaBezmocBeztakBicyklBidloBiftekBikinyBilanceBiografBiologBitvaBizonBlahobytBlatouchBlechaBleduleBleskBlikatBliznaBlokovatBlouditBludBobekBobrBodlinaBodnoutBohatostBojkotBojovatBokorysBolestBorecBoroviceBotaBoubelBouchatBoudaBouleBouratBoxerBradavkaBramboraBrankaBratrBreptaBriketaBrkoBrlohBronzBroskevBrunetkaBrusinkaBrzdaBrzyBublinaBubnovatBuchtaBuditelBudkaBudovaBufetBujarostBukviceBuldokBulvaBundaBunkrBurzaButikBuvolBuzolaBydletBylinaBytovkaBzukotCapartCarevnaCedrCeduleCejchCejnCelaCelerCelkemCelniceCeninaCennostCenovkaCentrumCenzorCestopisCetkaChalupaChapadloCharitaChataChechtatChemieChichotChirurgChladChlebaChlubitChmelChmuraChobotChocholChodbaCholeraChomoutChopitChorobaChovChrapotChrlitChrtChrupChtivostChudinaChutnatChvatChvilkaChvostChybaChystatChytitCibuleCigaretaCihelnaCihlaCinkotCirkusCisternaCitaceCitrusCizinecCizostClonaCokolivCouvatCtitelCtnostCudnostCuketaCukrCupotCvaknoutCvalCvikCvrkotCyklistaDalekoDarebaDatelDatumDceraDebataDechovkaDecibelDeficitDeflaceDeklDekretDemokratDepreseDerbyDeskaDetektivDikobrazDiktovatDiodaDiplomDiskDisplejDivadloDivochDlahaDlouhoDluhopisDnesDobroDobytekDocentDochutitDodnesDohledDohodaDohraDojemDojniceDokladDokolaDoktorDokumentDolarDolevaDolinaDomaDominantDomluvitDomovDonutitDopadDopisDoplnitDoposudDoprovodDopustitDorazitDorostDortDosahDoslovDostatekDosudDosytaDotazDotekDotknoutDoufatDoutnatDovozceDozaduDoznatDozorceDrahotaDrakDramatikDravecDrazeDrdolDrobnostDrogerieDrozdDrsnostDrtitDrzostDubenDuchovnoDudekDuhaDuhovkaDusitDusnoDutostDvojiceDvorecDynamitEkologEkonomieElektronElipsaEmailEmiseEmoceEmpatieEpizodaEpochaEpopejEposEsejEsenceEskortaEskymoEtiketaEuforieEvoluceExekuceExkurzeExpediceExplozeExportExtraktFackaFajfkaFakultaFanatikFantazieFarmacieFavoritFazoleFederaceFejetonFenkaFialkaFigurantFilozofFiltrFinanceFintaFixaceFjordFlanelFlirtFlotilaFondFosforFotbalFotkaFotonFrakceFreskaFrontaFukarFunkceFyzikaGalejeGarantGenetikaGeologGilotinaGlazuraGlejtGolemGolfistaGotikaGrafGramofonGranuleGrepGrilGrogGroteskaGumaHadiceHadrHalaHalenkaHanbaHanopisHarfaHarpunaHavranHebkostHejkalHejnoHejtmanHektarHelmaHematomHerecHernaHesloHezkyHistorikHladovkaHlasivkyHlavaHledatHlenHlodavecHlohHloupostHltatHlubinaHluchotaHmatHmotaHmyzHnisHnojivoHnoutHoblinaHobojHochHodinyHodlatHodnotaHodovatHojnostHokejHolinkaHolkaHolubHomoleHonitbaHonoraceHoralHordaHorizontHorkoHorlivecHormonHorninaHoroskopHorstvoHospodaHostinaHotovostHoubaHoufHoupatHouskaHovorHradbaHraniceHravostHrazdaHrbolekHrdinaHrdloHrdostHrnekHrobkaHromadaHrotHroudaHrozenHrstkaHrubostHryzatHubenostHubnoutHudbaHukotHumrHusitaHustotaHvozdHybnostHydrantHygienaHymnaHysterikIdylkaIhnedIkonaIluzeImunitaInfekceInflaceInkasoInovaceInspekceInternetInvalidaInvestorInzerceIronieJablkoJachtaJahodaJakmileJakostJalovecJantarJarmarkJaroJasanJasnoJatkaJavorJazykJedinecJedleJednatelJehlanJekotJelenJelitoJemnostJenomJepiceJeseterJevitJezdecJezeroJinakJindyJinochJiskraJistotaJitrniceJizvaJmenovatJogurtJurtaKabaretKabelKabinetKachnaKadetKadidloKahanKajakKajutaKakaoKaktusKalamitaKalhotyKalibrKalnostKameraKamkolivKamnaKanibalKanoeKantorKapalinaKapelaKapitolaKapkaKapleKapotaKaprKapustaKapybaraKaramelKarotkaKartonKasaKatalogKatedraKauceKauzaKavalecKazajkaKazetaKazivostKdekolivKdesiKedlubenKempKeramikaKinoKlacekKladivoKlamKlapotKlasikaKlaunKlecKlenbaKlepatKlesnoutKlidKlimaKlisnaKloboukKlokanKlopaKloubKlubovnaKlusatKluzkostKmenKmitatKmotrKnihaKnotKoaliceKoberecKobkaKoblihaKobylaKocourKohoutKojenecKokosKoktejlKolapsKoledaKolizeKoloKomandoKometaKomikKomnataKomoraKompasKomunitaKonatKonceptKondiceKonecKonfeseKongresKoninaKonkursKontaktKonzervaKopanecKopieKopnoutKoprovkaKorbelKorektorKormidloKoroptevKorpusKorunaKorytoKorzetKosatecKostkaKotelKotletaKotoulKoukatKoupelnaKousekKouzloKovbojKozaKozorohKrabiceKrachKrajinaKralovatKrasopisKravataKreditKrejcarKresbaKrevetaKriketKritikKrizeKrkavecKrmelecKrmivoKrocanKrokKronikaKropitKroupaKrovkaKrtekKruhadloKrupiceKrutostKrvinkaKrychleKryptaKrystalKrytKudlankaKufrKujnostKuklaKulajdaKulichKulkaKulometKulturaKunaKupodivuKurtKurzorKutilKvalitaKvasinkaKvestorKynologKyselinaKytaraKyticeKytkaKytovecKyvadloLabradorLachtanLadnostLaikLakomecLamelaLampaLanovkaLasiceLasoLasturaLatinkaLavinaLebkaLeckdyLedenLedniceLedovkaLedvinaLegendaLegieLegraceLehceLehkostLehnoutLektvarLenochodLentilkaLepenkaLepidloLetadloLetecLetmoLetokruhLevhartLevitaceLevobokLibraLichotkaLidojedLidskostLihovinaLijavecLilekLimetkaLinieLinkaLinoleumListopadLitinaLitovatLobistaLodivodLogikaLogopedLokalitaLoketLomcovatLopataLopuchLordLososLotrLoudalLouhLoukaLouskatLovecLstivostLucernaLuciferLumpLuskLustraceLviceLyraLyrikaLysinaMadamMadloMagistrMahagonMajetekMajitelMajoritaMakakMakoviceMakrelaMalbaMalinaMalovatMalviceMaminkaMandleMankoMarnostMasakrMaskotMasopustMaticeMatrikaMaturitaMazanecMazivoMazlitMazurkaMdlobaMechanikMeditaceMedovinaMelasaMelounMentolkaMetlaMetodaMetrMezeraMigraceMihnoutMihuleMikinaMikrofonMilenecMilimetrMilostMimikaMincovnaMinibarMinometMinulostMiskaMistrMixovatMladostMlhaMlhovinaMlokMlsatMluvitMnichMnohemMobilMocnostModelkaModlitbaMohylaMokroMolekulaMomentkaMonarchaMonoklMonstrumMontovatMonzunMosazMoskytMostMotivaceMotorkaMotykaMouchaMoudrostMozaikaMozekMozolMramorMravenecMrkevMrtvolaMrzetMrzutostMstitelMudrcMuflonMulatMumieMuniceMusetMutaceMuzeumMuzikantMyslivecMzdaNabouratNachytatNadaceNadbytekNadhozNadobroNadpisNahlasNahnatNahodileNahraditNaivitaNajednouNajistoNajmoutNaklonitNakonecNakrmitNalevoNamazatNamluvitNanometrNaokoNaopakNaostroNapadatNapevnoNaplnitNapnoutNaposledNaprostoNaroditNarubyNarychloNasaditNasekatNaslepoNastatNatolikNavenekNavrchNavzdoryNazvatNebeNechatNeckyNedalekoNedbatNeduhNegaceNehetNehodaNejenNejprveNeklidNelibostNemilostNemocNeochotaNeonkaNepokojNerostNervNesmyslNesouladNetvorNeuronNevinaNezvykleNicotaNijakNikamNikdyNiklNikterakNitroNoclehNohaviceNominaceNoraNorekNositelNosnostNouzeNovinyNovotaNozdraNudaNudleNugetNutitNutnostNutrieNymfaObalObarvitObavaObdivObecObehnatObejmoutObezitaObhajobaObilniceObjasnitObjektObklopitOblastOblekOblibaOblohaObludaObnosObohatitObojekOboutObrazecObrnaObrubaObrysObsahObsluhaObstaratObuvObvazObvinitObvodObvykleObyvatelObzorOcasOcelOcenitOchladitOchotaOchranaOcitnoutOdbojOdbytOdchodOdcizitOdebratOdeslatOdevzdatOdezvaOdhadceOdhoditOdjetOdjinudOdkazOdkoupitOdlivOdlukaOdmlkaOdolnostOdpadOdpisOdploutOdporOdpustitOdpykatOdrazkaOdsouditOdstupOdsunOdtokOdtudOdvahaOdvetaOdvolatOdvracetOdznakOfinaOfsajdOhlasOhniskoOhradaOhrozitOhryzekOkapOkeniceOklikaOknoOkouzlitOkovyOkrasaOkresOkrsekOkruhOkupantOkurkaOkusitOlejninaOlizovatOmakOmeletaOmezitOmladinaOmlouvatOmluvaOmylOnehdyOpakovatOpasekOperaceOpiceOpilostOpisovatOporaOpoziceOpravduOprotiOrbitalOrchestrOrgieOrliceOrlojOrtelOsadaOschnoutOsikaOsivoOslavaOslepitOslnitOslovitOsnovaOsobaOsolitOspalecOstenOstrahaOstudaOstychOsvojitOteplitOtiskOtopOtrhatOtrlostOtrokOtrubyOtvorOvanoutOvarOvesOvlivnitOvoceOxidOzdobaPachatelPacientPadouchPahorekPaktPalandaPalecPalivoPalubaPamfletPamlsekPanenkaPanikaPannaPanovatPanstvoPantoflePaprikaParketaParodiePartaParukaParybaPasekaPasivitaPastelkaPatentPatronaPavoukPaznehtPazourekPeckaPedagogPejsekPekloPelotonPenaltaPendrekPenzePeriskopPeroPestrostPetardaPeticePetrolejPevninaPexesoPianistaPihaPijavicePiklePiknikPilinaPilnostPilulkaPinzetaPipetaPisatelPistolePitevnaPivnicePivovarPlacentaPlakatPlamenPlanetaPlastikaPlatitPlavidloPlazPlechPlemenoPlentaPlesPletivoPlevelPlivatPlnitPlnoPlochaPlodinaPlombaPloutPlukPlynPobavitPobytPochodPocitPoctivecPodatPodcenitPodepsatPodhledPodivitPodkladPodmanitPodnikPodobaPodporaPodrazPodstataPodvodPodzimPoeziePohankaPohnutkaPohovorPohromaPohybPointaPojistkaPojmoutPokazitPoklesPokojPokrokPokutaPokynPolednePolibekPolknoutPolohaPolynomPomaluPominoutPomlkaPomocPomstaPomysletPonechatPonorkaPonurostPopadatPopelPopisekPoplachPoprositPopsatPopudPoradcePorcePorodPoruchaPoryvPosaditPosedPosilaPoskokPoslanecPosouditPospoluPostavaPosudekPosypPotahPotkanPotleskPotomekPotravaPotupaPotvoraPoukazPoutoPouzdroPovahaPovidlaPovlakPovozPovrchPovstatPovykPovzdechPozdravPozemekPoznatekPozorPozvatPracovatPrahoryPraktikaPralesPraotecPraporekPrasePravdaPrincipPrknoProbuditProcentoProdejProfeseProhraProjektProlomitPromilePronikatPropadProrokProsbaProtonProutekProvazPrskavkaPrstenPrudkostPrutPrvekPrvohoryPsanecPsovodPstruhPtactvoPubertaPuchPudlPukavecPuklinaPukrlePultPumpaPuncPupenPusaPusinkaPustinaPutovatPutykaPyramidaPyskPytelRacekRachotRadiaceRadniceRadonRaftRagbyRaketaRakovinaRamenoRampouchRandeRarachRaritaRasovnaRastrRatolestRazanceRazidloReagovatReakceReceptRedaktorReferentReflexRejnokReklamaRekordRekrutRektorReputaceRevizeRevmaRevolverRezervaRiskovatRizikoRobotikaRodokmenRohovkaRokleRokokoRomanetoRopovodRopuchaRorejsRosolRostlinaRotmistrRotopedRotundaRoubenkaRouchoRoupRouraRovinaRovniceRozborRozchodRozdatRozeznatRozhodceRozinkaRozjezdRozkazRozlohaRozmarRozpadRozruchRozsahRoztokRozumRozvodRubrikaRuchadloRukaviceRukopisRybaRybolovRychlostRydloRypadloRytinaRyzostSadistaSahatSakoSamecSamizdatSamotaSanitkaSardinkaSasankaSatelitSazbaSazeniceSborSchovatSebrankaSeceseSedadloSedimentSedloSehnatSejmoutSekeraSektaSekundaSekvojeSemenoSenoServisSesaditSeshoraSeskokSeslatSestraSesuvSesypatSetbaSetinaSetkatSetnoutSetrvatSeverSeznamShodaShrnoutSifonSilniceSirkaSirotekSirupSituaceSkafandrSkaliskoSkanzenSkautSkeptikSkicaSkladbaSkleniceSkloSkluzSkobaSkokanSkoroSkriptaSkrzSkupinaSkvostSkvrnaSlabikaSladidloSlaninaSlastSlavnostSledovatSlepecSlevaSlezinaSlibSlinaSlizniceSlonSloupekSlovoSluchSluhaSlunceSlupkaSlzaSmaragdSmetanaSmilstvoSmlouvaSmogSmradSmrkSmrtkaSmutekSmyslSnadSnahaSnobSobotaSochaSodovkaSokolSopkaSotvaSoubojSoucitSoudceSouhlasSouladSoumrakSoupravaSousedSoutokSouvisetSpalovnaSpasitelSpisSplavSpodekSpojenecSpoluSponzorSpornostSpoustaSprchaSpustitSrandaSrazSrdceSrnaSrnecSrovnatSrpenSrstSrubStaniceStarostaStatikaStavbaStehnoStezkaStodolaStolekStopaStornoStoupatStrachStresStrhnoutStromStrunaStudnaStupniceStvolStykSubjektSubtropySucharSudostSuknoSundatSunoutSurikataSurovinaSvahSvalstvoSvetrSvatbaSvazekSvisleSvitekSvobodaSvodidloSvorkaSvrabSykavkaSykotSynekSynovecSypatSypkostSyrovostSyselSytostTabletkaTabuleTahounTajemnoTajfunTajgaTajitTajnostTaktikaTamhleTamponTancovatTanecTankerTapetaTaveninaTazatelTechnikaTehdyTekutinaTelefonTemnotaTendenceTenistaTenorTeplotaTepnaTeprveTerapieTermoskaTextilTichoTiskopisTitulekTkadlecTkaninaTlapkaTleskatTlukotTlupaTmelToaletaTopinkaTopolTorzoTouhaToulecTradiceTraktorTrampTrasaTraverzaTrefitTrestTrezorTrhavinaTrhlinaTrochuTrojiceTroskaTroubaTrpceTrpitelTrpkostTrubecTruchlitTruhliceTrusTrvatTudyTuhnoutTuhostTundraTuristaTurnajTuzemskoTvarohTvorbaTvrdostTvrzTygrTykevUbohostUbozeUbratUbrousekUbrusUbytovnaUchoUctivostUdivitUhraditUjednatUjistitUjmoutUkazatelUklidnitUklonitUkotvitUkrojitUliceUlitaUlovitUmyvadloUnavitUniformaUniknoutUpadnoutUplatnitUplynoutUpoutatUpravitUranUrazitUsednoutUsilovatUsmrtitUsnadnitUsnoutUsouditUstlatUstrnoutUtahovatUtkatUtlumitUtonoutUtopenecUtrousitUvalitUvolnitUvozovkaUzdravitUzelUzeninaUzlinaUznatVagonValchaValounVanaVandalVanilkaVaranVarhanyVarovatVcelkuVchodVdovaVedroVegetaceVejceVelbloudVeletrhVelitelVelmocVelrybaVenkovVerandaVerzeVeselkaVeskrzeVesniceVespoduVestaVeterinaVeverkaVibraceVichrVideohraVidinaVidleVilaViniceVisetVitalitaVizeVizitkaVjezdVkladVkusVlajkaVlakVlasecVlevoVlhkostVlivVlnovkaVloupatVnucovatVnukVodaVodivostVodoznakVodstvoVojenskyVojnaVojskoVolantVolbaVolitVolnoVoskovkaVozidloVozovnaVpravoVrabecVracetVrahVrataVrbaVrcholekVrhatVrstvaVrtuleVsaditVstoupitVstupVtipVybavitVybratVychovatVydatVydraVyfotitVyhledatVyhnoutVyhoditVyhraditVyhubitVyjasnitVyjetVyjmoutVyklopitVykonatVylekatVymazatVymezitVymizetVymysletVynechatVynikatVynutitVypadatVyplatitVypravitVypustitVyrazitVyrovnatVyrvatVyslovitVysokoVystavitVysunoutVysypatVytasitVytesatVytratitVyvinoutVyvolatVyvrhelVyzdobitVyznatVzaduVzbuditVzchopitVzdorVzduchVzdychatVzestupVzhledemVzkazVzlykatVznikVzorekVzpouraVztahVztekXylofonZabratZabydletZachovatZadarmoZadusitZafoukatZahltitZahoditZahradaZahynoutZajatecZajetZajistitZaklepatZakoupitZalepitZamezitZamotatZamysletZanechatZanikatZaplatitZapojitZapsatZarazitZastavitZasunoutZatajitZatemnitZatknoutZaujmoutZavalitZaveletZavinitZavolatZavrtatZazvonitZbavitZbrusuZbudovatZbytekZdalekaZdarmaZdatnostZdivoZdobitZdrojZdvihZdymadloZeleninaZemanZeminaZeptatZezaduZezdolaZhatitZhltnoutZhlubokaZhotovitZhrubaZimaZimniceZjemnitZklamatZkoumatZkratkaZkumavkaZlatoZlehkaZlobaZlomZlostZlozvykZmapovatZmarZmatekZmijeZmizetZmocnitZmodratZmrzlinaZmutovatZnakZnalostZnamenatZnovuZobrazitZotavitZoubekZoufaleZploditZpomalitZpravaZprostitZprudkaZprvuZradaZranitZrcadloZrnitostZrnoZrovnaZrychlitZrzavostZtichaZtratitZubovinaZubrZvednoutZvenkuZveselaZvonZvratZvukovodZvyk";
+ var wordlist = null;
+ function loadWords(lang) {
+ if (wordlist != null) {
+ return;
+ }
+ wordlist = words.replace(/([A-Z])/g, " $1").toLowerCase().substring(1).split(" ");
+ if (wordlist_1.Wordlist.check(lang) !== "0x25f44555f4af25b51a711136e1c7d6e50ce9f8917d39d6b1f076b2bb4d2fac1a") {
+ wordlist = null;
+ throw new Error("BIP39 Wordlist for en (English) FAILED");
+ }
+ }
+ var LangCz = (
+ /** @class */
+ function(_super) {
+ __extends13(LangCz2, _super);
+ function LangCz2() {
+ return _super.call(this, "cz") || this;
+ }
+ LangCz2.prototype.getWord = function(index) {
+ loadWords(this);
+ return wordlist[index];
+ };
+ LangCz2.prototype.getWordIndex = function(word) {
+ loadWords(this);
+ return wordlist.indexOf(word);
+ };
+ return LangCz2;
+ }(wordlist_1.Wordlist)
+ );
+ var langCz = new LangCz();
+ exports2.langCz = langCz;
+ wordlist_1.Wordlist.register(langCz);
+ }
+});
+
+// node_modules/@ethersproject/wordlists/lib/lang-en.js
+var require_lang_en = __commonJS({
+ "node_modules/@ethersproject/wordlists/lib/lang-en.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.langEn = void 0;
+ var wordlist_1 = require_wordlist();
+ var words = "AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo";
+ var wordlist = null;
+ function loadWords(lang) {
+ if (wordlist != null) {
+ return;
+ }
+ wordlist = words.replace(/([A-Z])/g, " $1").toLowerCase().substring(1).split(" ");
+ if (wordlist_1.Wordlist.check(lang) !== "0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60") {
+ wordlist = null;
+ throw new Error("BIP39 Wordlist for en (English) FAILED");
+ }
+ }
+ var LangEn = (
+ /** @class */
+ function(_super) {
+ __extends13(LangEn2, _super);
+ function LangEn2() {
+ return _super.call(this, "en") || this;
+ }
+ LangEn2.prototype.getWord = function(index) {
+ loadWords(this);
+ return wordlist[index];
+ };
+ LangEn2.prototype.getWordIndex = function(word) {
+ loadWords(this);
+ return wordlist.indexOf(word);
+ };
+ return LangEn2;
+ }(wordlist_1.Wordlist)
+ );
+ var langEn = new LangEn();
+ exports2.langEn = langEn;
+ wordlist_1.Wordlist.register(langEn);
+ }
+});
+
+// node_modules/@ethersproject/wordlists/lib/lang-es.js
+var require_lang_es = __commonJS({
+ "node_modules/@ethersproject/wordlists/lib/lang-es.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.langEs = void 0;
+ var strings_1 = require_lib15();
+ var wordlist_1 = require_wordlist();
+ var words = "A/bacoAbdomenAbejaAbiertoAbogadoAbonoAbortoAbrazoAbrirAbueloAbusoAcabarAcademiaAccesoAccio/nAceiteAcelgaAcentoAceptarA/cidoAclararAcne/AcogerAcosoActivoActoActrizActuarAcudirAcuerdoAcusarAdictoAdmitirAdoptarAdornoAduanaAdultoAe/reoAfectarAficio/nAfinarAfirmarA/gilAgitarAgoni/aAgostoAgotarAgregarAgrioAguaAgudoA/guilaAgujaAhogoAhorroAireAislarAjedrezAjenoAjusteAlacra/nAlambreAlarmaAlbaA/lbumAlcaldeAldeaAlegreAlejarAlertaAletaAlfilerAlgaAlgodo/nAliadoAlientoAlivioAlmaAlmejaAlmi/barAltarAltezaAltivoAltoAlturaAlumnoAlzarAmableAmanteAmapolaAmargoAmasarA/mbarA/mbitoAmenoAmigoAmistadAmorAmparoAmplioAnchoAncianoAnclaAndarAnde/nAnemiaA/nguloAnilloA/nimoAni/sAnotarAntenaAntiguoAntojoAnualAnularAnuncioA~adirA~ejoA~oApagarAparatoApetitoApioAplicarApodoAporteApoyoAprenderAprobarApuestaApuroAradoAra~aArarA/rbitroA/rbolArbustoArchivoArcoArderArdillaArduoA/reaA/ridoAriesArmoni/aArne/sAromaArpaArpo/nArregloArrozArrugaArteArtistaAsaAsadoAsaltoAscensoAsegurarAseoAsesorAsientoAsiloAsistirAsnoAsombroA/speroAstillaAstroAstutoAsumirAsuntoAtajoAtaqueAtarAtentoAteoA/ticoAtletaA/tomoAtraerAtrozAtu/nAudazAudioAugeAulaAumentoAusenteAutorAvalAvanceAvaroAveAvellanaAvenaAvestruzAvio/nAvisoAyerAyudaAyunoAzafra/nAzarAzoteAzu/carAzufreAzulBabaBaborBacheBahi/aBaileBajarBalanzaBalco/nBaldeBambu/BancoBandaBa~oBarbaBarcoBarnizBarroBa/sculaBasto/nBasuraBatallaBateri/aBatirBatutaBau/lBazarBebe/BebidaBelloBesarBesoBestiaBichoBienBingoBlancoBloqueBlusaBoaBobinaBoboBocaBocinaBodaBodegaBoinaBolaBoleroBolsaBombaBondadBonitoBonoBonsa/iBordeBorrarBosqueBoteBoti/nBo/vedaBozalBravoBrazoBrechaBreveBrilloBrincoBrisaBrocaBromaBronceBroteBrujaBruscoBrutoBuceoBucleBuenoBueyBufandaBufo/nBu/hoBuitreBultoBurbujaBurlaBurroBuscarButacaBuzo/nCaballoCabezaCabinaCabraCacaoCada/verCadenaCaerCafe/Cai/daCaima/nCajaCajo/nCalCalamarCalcioCaldoCalidadCalleCalmaCalorCalvoCamaCambioCamelloCaminoCampoCa/ncerCandilCanelaCanguroCanicaCantoCa~aCa~o/nCaobaCaosCapazCapita/nCapoteCaptarCapuchaCaraCarbo/nCa/rcelCaretaCargaCari~oCarneCarpetaCarroCartaCasaCascoCaseroCaspaCastorCatorceCatreCaudalCausaCazoCebollaCederCedroCeldaCe/lebreCelosoCe/lulaCementoCenizaCentroCercaCerdoCerezaCeroCerrarCertezaCe/spedCetroChacalChalecoChampu/ChanclaChapaCharlaChicoChisteChivoChoqueChozaChuletaChuparCiclo/nCiegoCieloCienCiertoCifraCigarroCimaCincoCineCintaCipre/sCircoCiruelaCisneCitaCiudadClamorClanClaroClaseClaveClienteClimaCli/nicaCobreCoccio/nCochinoCocinaCocoCo/digoCodoCofreCogerCoheteCoji/nCojoColaColchaColegioColgarColinaCollarColmoColumnaCombateComerComidaCo/modoCompraCondeConejoCongaConocerConsejoContarCopaCopiaCorazo/nCorbataCorchoCordo/nCoronaCorrerCoserCosmosCostaCra/neoCra/terCrearCrecerCrei/doCremaCri/aCrimenCriptaCrisisCromoCro/nicaCroquetaCrudoCruzCuadroCuartoCuatroCuboCubrirCucharaCuelloCuentoCuerdaCuestaCuevaCuidarCulebraCulpaCultoCumbreCumplirCunaCunetaCuotaCupo/nCu/pulaCurarCuriosoCursoCurvaCutisDamaDanzaDarDardoDa/tilDeberDe/bilDe/cadaDecirDedoDefensaDefinirDejarDelfi/nDelgadoDelitoDemoraDensoDentalDeporteDerechoDerrotaDesayunoDeseoDesfileDesnudoDestinoDesvi/oDetalleDetenerDeudaDi/aDiabloDiademaDiamanteDianaDiarioDibujoDictarDienteDietaDiezDifi/cilDignoDilemaDiluirDineroDirectoDirigirDiscoDise~oDisfrazDivaDivinoDobleDoceDolorDomingoDonDonarDoradoDormirDorsoDosDosisDrago/nDrogaDuchaDudaDueloDue~oDulceDu/oDuqueDurarDurezaDuroE/banoEbrioEcharEcoEcuadorEdadEdicio/nEdificioEditorEducarEfectoEficazEjeEjemploElefanteElegirElementoElevarElipseE/liteElixirElogioEludirEmbudoEmitirEmocio/nEmpateEmpe~oEmpleoEmpresaEnanoEncargoEnchufeEnci/aEnemigoEneroEnfadoEnfermoEnga~oEnigmaEnlaceEnormeEnredoEnsayoEnse~arEnteroEntrarEnvaseEnvi/oE/pocaEquipoErizoEscalaEscenaEscolarEscribirEscudoEsenciaEsferaEsfuerzoEspadaEspejoEspi/aEsposaEspumaEsqui/EstarEsteEstiloEstufaEtapaEternoE/ticaEtniaEvadirEvaluarEventoEvitarExactoExamenExcesoExcusaExentoExigirExilioExistirE/xitoExpertoExplicarExponerExtremoFa/bricaFa/bulaFachadaFa/cilFactorFaenaFajaFaldaFalloFalsoFaltarFamaFamiliaFamosoFarao/nFarmaciaFarolFarsaFaseFatigaFaunaFavorFaxFebreroFechaFelizFeoFeriaFerozFe/rtilFervorFesti/nFiableFianzaFiarFibraFiccio/nFichaFideoFiebreFielFieraFiestaFiguraFijarFijoFilaFileteFilialFiltroFinFincaFingirFinitoFirmaFlacoFlautaFlechaFlorFlotaFluirFlujoFlu/orFobiaFocaFogataFogo/nFolioFolletoFondoFormaForroFortunaForzarFosaFotoFracasoFra/gilFranjaFraseFraudeFrei/rFrenoFresaFri/oFritoFrutaFuegoFuenteFuerzaFugaFumarFuncio/nFundaFurgo/nFuriaFusilFu/tbolFuturoGacelaGafasGaitaGajoGalaGaleri/aGalloGambaGanarGanchoGangaGansoGarajeGarzaGasolinaGastarGatoGavila/nGemeloGemirGenGe/neroGenioGenteGeranioGerenteGermenGestoGiganteGimnasioGirarGiroGlaciarGloboGloriaGolGolfoGolosoGolpeGomaGordoGorilaGorraGotaGoteoGozarGradaGra/ficoGranoGrasaGratisGraveGrietaGrilloGripeGrisGritoGrosorGru/aGruesoGrumoGrupoGuanteGuapoGuardiaGuerraGui/aGui~oGuionGuisoGuitarraGusanoGustarHaberHa/bilHablarHacerHachaHadaHallarHamacaHarinaHazHaza~aHebillaHebraHechoHeladoHelioHembraHerirHermanoHe/roeHervirHieloHierroHi/gadoHigieneHijoHimnoHistoriaHocicoHogarHogueraHojaHombreHongoHonorHonraHoraHormigaHornoHostilHoyoHuecoHuelgaHuertaHuesoHuevoHuidaHuirHumanoHu/medoHumildeHumoHundirHuraca/nHurtoIconoIdealIdiomaI/doloIglesiaIglu/IgualIlegalIlusio/nImagenIma/nImitarImparImperioImponerImpulsoIncapazI/ndiceInerteInfielInformeIngenioInicioInmensoInmuneInnatoInsectoInstanteIntere/sI/ntimoIntuirInu/tilInviernoIraIrisIroni/aIslaIsloteJabali/Jabo/nJamo/nJarabeJardi/nJarraJaulaJazmi/nJefeJeringaJineteJornadaJorobaJovenJoyaJuergaJuevesJuezJugadorJugoJugueteJuicioJuncoJunglaJunioJuntarJu/piterJurarJustoJuvenilJuzgarKiloKoalaLabioLacioLacraLadoLadro/nLagartoLa/grimaLagunaLaicoLamerLa/minaLa/mparaLanaLanchaLangostaLanzaLa/pizLargoLarvaLa/stimaLataLa/texLatirLaurelLavarLazoLealLeccio/nLecheLectorLeerLegio/nLegumbreLejanoLenguaLentoLe~aLeo/nLeopardoLesio/nLetalLetraLeveLeyendaLibertadLibroLicorLi/derLidiarLienzoLigaLigeroLimaLi/miteLimo/nLimpioLinceLindoLi/neaLingoteLinoLinternaLi/quidoLisoListaLiteraLitioLitroLlagaLlamaLlantoLlaveLlegarLlenarLlevarLlorarLloverLluviaLoboLocio/nLocoLocuraLo/gicaLogroLombrizLomoLonjaLoteLuchaLucirLugarLujoLunaLunesLupaLustroLutoLuzMacetaMachoMaderaMadreMaduroMaestroMafiaMagiaMagoMai/zMaldadMaletaMallaMaloMama/MamboMamutMancoMandoManejarMangaManiqui/ManjarManoMansoMantaMa~anaMapaMa/quinaMarMarcoMareaMarfilMargenMaridoMa/rmolMarro/nMartesMarzoMasaMa/scaraMasivoMatarMateriaMatizMatrizMa/ximoMayorMazorcaMechaMedallaMedioMe/dulaMejillaMejorMelenaMelo/nMemoriaMenorMensajeMenteMenu/MercadoMerengueMe/ritoMesMeso/nMetaMeterMe/todoMetroMezclaMiedoMielMiembroMigaMilMilagroMilitarMillo/nMimoMinaMineroMi/nimoMinutoMiopeMirarMisaMiseriaMisilMismoMitadMitoMochilaMocio/nModaModeloMohoMojarMoldeMolerMolinoMomentoMomiaMonarcaMonedaMonjaMontoMo~oMoradaMorderMorenoMorirMorroMorsaMortalMoscaMostrarMotivoMoverMo/vilMozoMuchoMudarMuebleMuelaMuerteMuestraMugreMujerMulaMuletaMultaMundoMu~ecaMuralMuroMu/sculoMuseoMusgoMu/sicaMusloNa/carNacio/nNadarNaipeNaranjaNarizNarrarNasalNatalNativoNaturalNa/useaNavalNaveNavidadNecioNe/ctarNegarNegocioNegroNeo/nNervioNetoNeutroNevarNeveraNichoNidoNieblaNietoNi~ezNi~oNi/tidoNivelNoblezaNocheNo/minaNoriaNormaNorteNotaNoticiaNovatoNovelaNovioNubeNucaNu/cleoNudilloNudoNueraNueveNuezNuloNu/meroNutriaOasisObesoObispoObjetoObraObreroObservarObtenerObvioOcaOcasoOce/anoOchentaOchoOcioOcreOctavoOctubreOcultoOcuparOcurrirOdiarOdioOdiseaOesteOfensaOfertaOficioOfrecerOgroOi/doOi/rOjoOlaOleadaOlfatoOlivoOllaOlmoOlorOlvidoOmbligoOndaOnzaOpacoOpcio/nO/peraOpinarOponerOptarO/pticaOpuestoOracio/nOradorOralO/rbitaOrcaOrdenOrejaO/rganoOrgi/aOrgulloOrienteOrigenOrillaOroOrquestaOrugaOsadi/aOscuroOseznoOsoOstraOto~oOtroOvejaO/vuloO/xidoOxi/genoOyenteOzonoPactoPadrePaellaPa/ginaPagoPai/sPa/jaroPalabraPalcoPaletaPa/lidoPalmaPalomaPalparPanPanalPa/nicoPanteraPa~ueloPapa/PapelPapillaPaquetePararParcelaParedParirParoPa/rpadoParquePa/rrafoPartePasarPaseoPasio/nPasoPastaPataPatioPatriaPausaPautaPavoPayasoPeato/nPecadoPeceraPechoPedalPedirPegarPeinePelarPelda~oPeleaPeligroPellejoPeloPelucaPenaPensarPe~o/nPeo/nPeorPepinoPeque~oPeraPerchaPerderPerezaPerfilPericoPerlaPermisoPerroPersonaPesaPescaPe/simoPesta~aPe/taloPetro/leoPezPezu~aPicarPicho/nPiePiedraPiernaPiezaPijamaPilarPilotoPimientaPinoPintorPinzaPi~aPiojoPipaPirataPisarPiscinaPisoPistaPito/nPizcaPlacaPlanPlataPlayaPlazaPleitoPlenoPlomoPlumaPluralPobrePocoPoderPodioPoemaPoesi/aPoetaPolenPolici/aPolloPolvoPomadaPomeloPomoPompaPonerPorcio/nPortalPosadaPoseerPosiblePostePotenciaPotroPozoPradoPrecozPreguntaPremioPrensaPresoPrevioPrimoPri/ncipePrisio/nPrivarProaProbarProcesoProductoProezaProfesorProgramaProlePromesaProntoPropioPro/ximoPruebaPu/blicoPucheroPudorPuebloPuertaPuestoPulgaPulirPulmo/nPulpoPulsoPumaPuntoPu~alPu~oPupaPupilaPure/QuedarQuejaQuemarQuererQuesoQuietoQui/micaQuinceQuitarRa/banoRabiaRaboRacio/nRadicalRai/zRamaRampaRanchoRangoRapazRa/pidoRaptoRasgoRaspaRatoRayoRazaRazo/nReaccio/nRealidadReba~oReboteRecaerRecetaRechazoRecogerRecreoRectoRecursoRedRedondoReducirReflejoReformaRefra/nRefugioRegaloRegirReglaRegresoRehe/nReinoRei/rRejaRelatoRelevoRelieveRellenoRelojRemarRemedioRemoRencorRendirRentaRepartoRepetirReposoReptilResRescateResinaRespetoRestoResumenRetiroRetornoRetratoReunirReve/sRevistaReyRezarRicoRiegoRiendaRiesgoRifaRi/gidoRigorRinco/nRi~o/nRi/oRiquezaRisaRitmoRitoRizoRobleRoceRociarRodarRodeoRodillaRoerRojizoRojoRomeroRomperRonRoncoRondaRopaRoperoRosaRoscaRostroRotarRubi/RuborRudoRuedaRugirRuidoRuinaRuletaRuloRumboRumorRupturaRutaRutinaSa/badoSaberSabioSableSacarSagazSagradoSalaSaldoSaleroSalirSalmo/nSalo/nSalsaSaltoSaludSalvarSambaSancio/nSandi/aSanearSangreSanidadSanoSantoSapoSaqueSardinaSarte/nSastreSata/nSaunaSaxofo/nSeccio/nSecoSecretoSectaSedSeguirSeisSelloSelvaSemanaSemillaSendaSensorSe~alSe~orSepararSepiaSequi/aSerSerieSermo/nServirSesentaSesio/nSetaSetentaSeveroSexoSextoSidraSiestaSieteSigloSignoSi/labaSilbarSilencioSillaSi/mboloSimioSirenaSistemaSitioSituarSobreSocioSodioSolSolapaSoldadoSoledadSo/lidoSoltarSolucio/nSombraSondeoSonidoSonoroSonrisaSopaSoplarSoporteSordoSorpresaSorteoSoste/nSo/tanoSuaveSubirSucesoSudorSuegraSueloSue~oSuerteSufrirSujetoSulta/nSumarSuperarSuplirSuponerSupremoSurSurcoSure~oSurgirSustoSutilTabacoTabiqueTablaTabu/TacoTactoTajoTalarTalcoTalentoTallaTalo/nTama~oTamborTangoTanqueTapaTapeteTapiaTapo/nTaquillaTardeTareaTarifaTarjetaTarotTarroTartaTatuajeTauroTazaTazo/nTeatroTechoTeclaTe/cnicaTejadoTejerTejidoTelaTele/fonoTemaTemorTemploTenazTenderTenerTenisTensoTeori/aTerapiaTercoTe/rminoTernuraTerrorTesisTesoroTestigoTeteraTextoTezTibioTiburo/nTiempoTiendaTierraTiesoTigreTijeraTildeTimbreTi/midoTimoTintaTi/oTi/picoTipoTiraTiro/nTita/nTi/tereTi/tuloTizaToallaTobilloTocarTocinoTodoTogaToldoTomarTonoTontoToparTopeToqueTo/raxToreroTormentaTorneoToroTorpedoTorreTorsoTortugaTosToscoToserTo/xicoTrabajoTractorTraerTra/ficoTragoTrajeTramoTranceTratoTraumaTrazarTre/bolTreguaTreintaTrenTreparTresTribuTrigoTripaTristeTriunfoTrofeoTrompaTroncoTropaTroteTrozoTrucoTruenoTrufaTuberi/aTuboTuertoTumbaTumorTu/nelTu/nicaTurbinaTurismoTurnoTutorUbicarU/lceraUmbralUnidadUnirUniversoUnoUntarU~aUrbanoUrbeUrgenteUrnaUsarUsuarioU/tilUtopi/aUvaVacaVaci/oVacunaVagarVagoVainaVajillaValeVa/lidoValleValorVa/lvulaVampiroVaraVariarVaro/nVasoVecinoVectorVehi/culoVeinteVejezVelaVeleroVelozVenaVencerVendaVenenoVengarVenirVentaVenusVerVeranoVerboVerdeVeredaVerjaVersoVerterVi/aViajeVibrarVicioVi/ctimaVidaVi/deoVidrioViejoViernesVigorVilVillaVinagreVinoVi~edoVioli/nViralVirgoVirtudVisorVi/speraVistaVitaminaViudoVivazViveroVivirVivoVolca/nVolumenVolverVorazVotarVotoVozVueloVulgarYacerYateYeguaYemaYernoYesoYodoYogaYogurZafiroZanjaZapatoZarzaZonaZorroZumoZurdo";
+ var lookup = {};
+ var wordlist = null;
+ function dropDiacritic(word) {
+ wordlist_1.logger.checkNormalize();
+ return (0, strings_1.toUtf8String)(Array.prototype.filter.call((0, strings_1.toUtf8Bytes)(word.normalize("NFD").toLowerCase()), function(c) {
+ return c >= 65 && c <= 90 || c >= 97 && c <= 123;
+ }));
+ }
+ function expand(word) {
+ var output = [];
+ Array.prototype.forEach.call((0, strings_1.toUtf8Bytes)(word), function(c) {
+ if (c === 47) {
+ output.push(204);
+ output.push(129);
+ } else if (c === 126) {
+ output.push(110);
+ output.push(204);
+ output.push(131);
+ } else {
+ output.push(c);
+ }
+ });
+ return (0, strings_1.toUtf8String)(output);
+ }
+ function loadWords(lang) {
+ if (wordlist != null) {
+ return;
+ }
+ wordlist = words.replace(/([A-Z])/g, " $1").toLowerCase().substring(1).split(" ").map(function(w) {
+ return expand(w);
+ });
+ wordlist.forEach(function(word, index) {
+ lookup[dropDiacritic(word)] = index;
+ });
+ if (wordlist_1.Wordlist.check(lang) !== "0xf74fb7092aeacdfbf8959557de22098da512207fb9f109cb526994938cf40300") {
+ wordlist = null;
+ throw new Error("BIP39 Wordlist for es (Spanish) FAILED");
+ }
+ }
+ var LangEs = (
+ /** @class */
+ function(_super) {
+ __extends13(LangEs2, _super);
+ function LangEs2() {
+ return _super.call(this, "es") || this;
+ }
+ LangEs2.prototype.getWord = function(index) {
+ loadWords(this);
+ return wordlist[index];
+ };
+ LangEs2.prototype.getWordIndex = function(word) {
+ loadWords(this);
+ return lookup[dropDiacritic(word)];
+ };
+ return LangEs2;
+ }(wordlist_1.Wordlist)
+ );
+ var langEs = new LangEs();
+ exports2.langEs = langEs;
+ wordlist_1.Wordlist.register(langEs);
+ }
+});
+
+// node_modules/@ethersproject/wordlists/lib/lang-fr.js
+var require_lang_fr = __commonJS({
+ "node_modules/@ethersproject/wordlists/lib/lang-fr.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.langFr = void 0;
+ var strings_1 = require_lib15();
+ var wordlist_1 = require_wordlist();
+ var words = "AbaisserAbandonAbdiquerAbeilleAbolirAborderAboutirAboyerAbrasifAbreuverAbriterAbrogerAbruptAbsenceAbsoluAbsurdeAbusifAbyssalAcade/mieAcajouAcarienAccablerAccepterAcclamerAccoladeAccrocheAccuserAcerbeAchatAcheterAcidulerAcierAcompteAcque/rirAcronymeActeurActifActuelAdepteAde/quatAdhe/sifAdjectifAdjugerAdmettreAdmirerAdopterAdorerAdoucirAdresseAdroitAdulteAdverbeAe/rerAe/ronefAffaireAffecterAfficheAffreuxAffublerAgacerAgencerAgileAgiterAgraferAgre/ableAgrumeAiderAiguilleAilierAimableAisanceAjouterAjusterAlarmerAlchimieAlerteAlge-breAlgueAlie/nerAlimentAlle/gerAlliageAllouerAllumerAlourdirAlpagaAltesseAlve/oleAmateurAmbiguAmbreAme/nagerAmertumeAmidonAmiralAmorcerAmourAmovibleAmphibieAmpleurAmusantAnalyseAnaphoreAnarchieAnatomieAncienAne/antirAngleAngoisseAnguleuxAnimalAnnexerAnnonceAnnuelAnodinAnomalieAnonymeAnormalAntenneAntidoteAnxieuxApaiserApe/ritifAplanirApologieAppareilAppelerApporterAppuyerAquariumAqueducArbitreArbusteArdeurArdoiseArgentArlequinArmatureArmementArmoireArmureArpenterArracherArriverArroserArsenicArte/rielArticleAspectAsphalteAspirerAssautAsservirAssietteAssocierAssurerAsticotAstreAstuceAtelierAtomeAtriumAtroceAttaqueAttentifAttirerAttraperAubaineAubergeAudaceAudibleAugurerAuroreAutomneAutrucheAvalerAvancerAvariceAvenirAverseAveugleAviateurAvideAvionAviserAvoineAvouerAvrilAxialAxiomeBadgeBafouerBagageBaguetteBaignadeBalancerBalconBaleineBalisageBambinBancaireBandageBanlieueBannie-reBanquierBarbierBarilBaronBarqueBarrageBassinBastionBatailleBateauBatterieBaudrierBavarderBeletteBe/lierBeloteBe/ne/ficeBerceauBergerBerlineBermudaBesaceBesogneBe/tailBeurreBiberonBicycleBiduleBijouBilanBilingueBillardBinaireBiologieBiopsieBiotypeBiscuitBisonBistouriBitumeBizarreBlafardBlagueBlanchirBlessantBlinderBlondBloquerBlousonBobardBobineBoireBoiserBolideBonbonBondirBonheurBonifierBonusBordureBorneBotteBoucleBoueuxBougieBoulonBouquinBourseBoussoleBoutiqueBoxeurBrancheBrasierBraveBrebisBre-cheBreuvageBricolerBrigadeBrillantBriocheBriqueBrochureBroderBronzerBrousseBroyeurBrumeBrusqueBrutalBruyantBuffleBuissonBulletinBureauBurinBustierButinerButoirBuvableBuvetteCabanonCabineCachetteCadeauCadreCafe/ineCaillouCaissonCalculerCalepinCalibreCalmerCalomnieCalvaireCamaradeCame/raCamionCampagneCanalCanetonCanonCantineCanularCapableCaporalCapriceCapsuleCapterCapucheCarabineCarboneCaresserCaribouCarnageCarotteCarreauCartonCascadeCasierCasqueCassureCauserCautionCavalierCaverneCaviarCe/dilleCeintureCe/lesteCelluleCendrierCensurerCentralCercleCe/re/bralCeriseCernerCerveauCesserChagrinChaiseChaleurChambreChanceChapitreCharbonChasseurChatonChaussonChavirerChemiseChenilleChe/quierChercherChevalChienChiffreChignonChime-reChiotChlorureChocolatChoisirChoseChouetteChromeChuteCigareCigogneCimenterCine/maCintrerCirculerCirerCirqueCiterneCitoyenCitronCivilClaironClameurClaquerClasseClavierClientClignerClimatClivageClocheClonageCloporteCobaltCobraCocasseCocotierCoderCodifierCoffreCognerCohe/sionCoifferCoincerCole-reColibriCollineColmaterColonelCombatCome/dieCommandeCompactConcertConduireConfierCongelerConnoterConsonneContactConvexeCopainCopieCorailCorbeauCordageCornicheCorpusCorrectCorte-geCosmiqueCostumeCotonCoudeCoupureCourageCouteauCouvrirCoyoteCrabeCrainteCravateCrayonCre/atureCre/diterCre/meuxCreuserCrevetteCriblerCrierCristalCrite-reCroireCroquerCrotaleCrucialCruelCrypterCubiqueCueillirCuille-reCuisineCuivreCulminerCultiverCumulerCupideCuratifCurseurCyanureCycleCylindreCyniqueDaignerDamierDangerDanseurDauphinDe/battreDe/biterDe/borderDe/briderDe/butantDe/calerDe/cembreDe/chirerDe/ciderDe/clarerDe/corerDe/crireDe/cuplerDe/daleDe/ductifDe/esseDe/fensifDe/filerDe/frayerDe/gagerDe/givrerDe/glutirDe/graferDe/jeunerDe/liceDe/logerDemanderDemeurerDe/molirDe/nicherDe/nouerDentelleDe/nuderDe/partDe/penserDe/phaserDe/placerDe/poserDe/rangerDe/roberDe/sastreDescenteDe/sertDe/signerDe/sobe/irDessinerDestrierDe/tacherDe/testerDe/tourerDe/tresseDevancerDevenirDevinerDevoirDiableDialogueDiamantDicterDiffe/rerDige/rerDigitalDigneDiluerDimancheDiminuerDioxydeDirectifDirigerDiscuterDisposerDissiperDistanceDivertirDiviserDocileDocteurDogmeDoigtDomaineDomicileDompterDonateurDonjonDonnerDopamineDortoirDorureDosageDoseurDossierDotationDouanierDoubleDouceurDouterDoyenDragonDraperDresserDribblerDroitureDuperieDuplexeDurableDurcirDynastieE/blouirE/carterE/charpeE/chelleE/clairerE/clipseE/cloreE/cluseE/coleE/conomieE/corceE/couterE/craserE/cre/merE/crivainE/crouE/cumeE/cureuilE/difierE/duquerEffacerEffectifEffigieEffortEffrayerEffusionE/galiserE/garerE/jecterE/laborerE/largirE/lectronE/le/gantE/le/phantE/le-veE/ligibleE/litismeE/logeE/luciderE/luderEmballerEmbellirEmbryonE/meraudeE/missionEmmenerE/motionE/mouvoirEmpereurEmployerEmporterEmpriseE/mulsionEncadrerEnche-reEnclaveEncocheEndiguerEndosserEndroitEnduireE/nergieEnfanceEnfermerEnfouirEngagerEnginEngloberE/nigmeEnjamberEnjeuEnleverEnnemiEnnuyeuxEnrichirEnrobageEnseigneEntasserEntendreEntierEntourerEntraverE/nume/rerEnvahirEnviableEnvoyerEnzymeE/olienE/paissirE/pargneE/patantE/pauleE/picerieE/pide/mieE/pierE/pilogueE/pineE/pisodeE/pitapheE/poqueE/preuveE/prouverE/puisantE/querreE/quipeE/rigerE/rosionErreurE/ruptionEscalierEspadonEspe-ceEspie-gleEspoirEspritEsquiverEssayerEssenceEssieuEssorerEstimeEstomacEstradeE/tage-reE/talerE/tancheE/tatiqueE/teindreE/tendoirE/ternelE/thanolE/thiqueEthnieE/tirerE/tofferE/toileE/tonnantE/tourdirE/trangeE/troitE/tudeEuphorieE/valuerE/vasionE/ventailE/videnceE/viterE/volutifE/voquerExactExage/rerExaucerExcellerExcitantExclusifExcuseExe/cuterExempleExercerExhalerExhorterExigenceExilerExisterExotiqueExpe/dierExplorerExposerExprimerExquisExtensifExtraireExulterFableFabuleuxFacetteFacileFactureFaiblirFalaiseFameuxFamilleFarceurFarfeluFarineFaroucheFascinerFatalFatigueFauconFautifFaveurFavoriFe/brileFe/conderFe/de/rerFe/linFemmeFe/murFendoirFe/odalFermerFe/roceFerveurFestivalFeuilleFeutreFe/vrierFiascoFicelerFictifFide-leFigureFilatureFiletageFilie-reFilleulFilmerFilouFiltrerFinancerFinirFioleFirmeFissureFixerFlairerFlammeFlasqueFlatteurFle/auFle-cheFleurFlexionFloconFloreFluctuerFluideFluvialFolieFonderieFongibleFontaineForcerForgeronFormulerFortuneFossileFoudreFouge-reFouillerFoulureFourmiFragileFraiseFranchirFrapperFrayeurFre/gateFreinerFrelonFre/mirFre/ne/sieFre-reFriableFrictionFrissonFrivoleFroidFromageFrontalFrotterFruitFugitifFuiteFureurFurieuxFurtifFusionFuturGagnerGalaxieGalerieGambaderGarantirGardienGarnirGarrigueGazelleGazonGe/antGe/latineGe/luleGendarmeGe/ne/ralGe/nieGenouGentilGe/ologieGe/ome-treGe/raniumGermeGestuelGeyserGibierGiclerGirafeGivreGlaceGlaiveGlisserGlobeGloireGlorieuxGolfeurGommeGonflerGorgeGorilleGoudronGouffreGoulotGoupilleGourmandGoutteGraduelGraffitiGraineGrandGrappinGratuitGravirGrenatGriffureGrillerGrimperGrognerGronderGrotteGroupeGrugerGrutierGruye-reGue/pardGuerrierGuideGuimauveGuitareGustatifGymnasteGyrostatHabitudeHachoirHalteHameauHangarHannetonHaricotHarmonieHarponHasardHe/liumHe/matomeHerbeHe/rissonHermineHe/ronHe/siterHeureuxHibernerHibouHilarantHistoireHiverHomardHommageHomoge-neHonneurHonorerHonteuxHordeHorizonHorlogeHormoneHorribleHouleuxHousseHublotHuileuxHumainHumbleHumideHumourHurlerHydromelHygie-neHymneHypnoseIdylleIgnorerIguaneIlliciteIllusionImageImbiberImiterImmenseImmobileImmuableImpactImpe/rialImplorerImposerImprimerImputerIncarnerIncendieIncidentInclinerIncoloreIndexerIndiceInductifIne/ditIneptieInexactInfiniInfligerInformerInfusionInge/rerInhalerInhiberInjecterInjureInnocentInoculerInonderInscrireInsecteInsigneInsoliteInspirerInstinctInsulterIntactIntenseIntimeIntrigueIntuitifInutileInvasionInventerInviterInvoquerIroniqueIrradierIrre/elIrriterIsolerIvoireIvresseJaguarJaillirJambeJanvierJardinJaugerJauneJavelotJetableJetonJeudiJeunesseJoindreJoncherJonglerJoueurJouissifJournalJovialJoyauJoyeuxJubilerJugementJuniorJuponJuristeJusticeJuteuxJuve/nileKayakKimonoKiosqueLabelLabialLabourerLace/rerLactoseLaguneLaineLaisserLaitierLambeauLamelleLampeLanceurLangageLanterneLapinLargeurLarmeLaurierLavaboLavoirLectureLe/galLe/gerLe/gumeLessiveLettreLevierLexiqueLe/zardLiasseLibe/rerLibreLicenceLicorneLie-geLie-vreLigatureLigoterLigueLimerLimiteLimonadeLimpideLine/aireLingotLionceauLiquideLisie-reListerLithiumLitigeLittoralLivreurLogiqueLointainLoisirLombricLoterieLouerLourdLoutreLouveLoyalLubieLucideLucratifLueurLugubreLuisantLumie-reLunaireLundiLuronLutterLuxueuxMachineMagasinMagentaMagiqueMaigreMaillonMaintienMairieMaisonMajorerMalaxerMale/ficeMalheurMaliceMalletteMammouthMandaterManiableManquantManteauManuelMarathonMarbreMarchandMardiMaritimeMarqueurMarronMartelerMascotteMassifMate/rielMatie-reMatraqueMaudireMaussadeMauveMaximalMe/chantMe/connuMe/dailleMe/decinMe/diterMe/duseMeilleurMe/langeMe/lodieMembreMe/moireMenacerMenerMenhirMensongeMentorMercrediMe/riteMerleMessagerMesureMe/talMe/te/oreMe/thodeMe/tierMeubleMiaulerMicrobeMietteMignonMigrerMilieuMillionMimiqueMinceMine/ralMinimalMinorerMinuteMiracleMiroiterMissileMixteMobileModerneMoelleuxMondialMoniteurMonnaieMonotoneMonstreMontagneMonumentMoqueurMorceauMorsureMortierMoteurMotifMoucheMoufleMoulinMoussonMoutonMouvantMultipleMunitionMurailleMure-neMurmureMuscleMuse/umMusicienMutationMuterMutuelMyriadeMyrtilleMyste-reMythiqueNageurNappeNarquoisNarrerNatationNationNatureNaufrageNautiqueNavireNe/buleuxNectarNe/fasteNe/gationNe/gligerNe/gocierNeigeNerveuxNettoyerNeuroneNeutronNeveuNicheNickelNitrateNiveauNobleNocifNocturneNoirceurNoisetteNomadeNombreuxNommerNormatifNotableNotifierNotoireNourrirNouveauNovateurNovembreNoviceNuageNuancerNuireNuisibleNume/roNuptialNuqueNutritifObe/irObjectifObligerObscurObserverObstacleObtenirObturerOccasionOccuperOce/anOctobreOctroyerOctuplerOculaireOdeurOdorantOffenserOfficierOffrirOgiveOiseauOisillonOlfactifOlivierOmbrageOmettreOnctueuxOndulerOne/reuxOniriqueOpaleOpaqueOpe/rerOpinionOpportunOpprimerOpterOptiqueOrageuxOrangeOrbiteOrdonnerOreilleOrganeOrgueilOrificeOrnementOrqueOrtieOscillerOsmoseOssatureOtarieOuraganOursonOutilOutragerOuvrageOvationOxydeOxyge-neOzonePaisiblePalacePalmare-sPalourdePalperPanachePandaPangolinPaniquerPanneauPanoramaPantalonPapayePapierPapoterPapyrusParadoxeParcelleParesseParfumerParlerParoleParrainParsemerPartagerParureParvenirPassionPaste-quePaternelPatiencePatronPavillonPavoiserPayerPaysagePeignePeintrePelagePe/licanPellePelousePeluchePendulePe/ne/trerPe/niblePensifPe/nuriePe/pitePe/plumPerdrixPerforerPe/riodePermuterPerplexePersilPertePeserPe/talePetitPe/trirPeuplePharaonPhobiePhoquePhotonPhrasePhysiquePianoPicturalPie-cePierrePieuvrePilotePinceauPipettePiquerPiroguePiscinePistonPivoterPixelPizzaPlacardPlafondPlaisirPlanerPlaquePlastronPlateauPleurerPlexusPliagePlombPlongerPluiePlumagePochettePoe/siePoe-tePointePoirierPoissonPoivrePolairePolicierPollenPolygonePommadePompierPonctuelPonde/rerPoneyPortiquePositionPosse/derPosturePotagerPoteauPotionPoucePoulainPoumonPourprePoussinPouvoirPrairiePratiquePre/cieuxPre/direPre/fixePre/ludePre/nomPre/sencePre/textePre/voirPrimitifPrincePrisonPriverProble-meProce/derProdigeProfondProgre-sProieProjeterProloguePromenerPropreProspe-reProte/gerProuesseProverbePrudencePruneauPsychosePublicPuceronPuiserPulpePulsarPunaisePunitifPupitrePurifierPuzzlePyramideQuasarQuerelleQuestionQuie/tudeQuitterQuotientRacineRaconterRadieuxRagondinRaideurRaisinRalentirRallongeRamasserRapideRasageRatisserRavagerRavinRayonnerRe/actifRe/agirRe/aliserRe/animerRecevoirRe/citerRe/clamerRe/colterRecruterReculerRecyclerRe/digerRedouterRefaireRe/flexeRe/formerRefrainRefugeRe/galienRe/gionRe/glageRe/gulierRe/ite/rerRejeterRejouerRelatifReleverReliefRemarqueReme-deRemiseRemonterRemplirRemuerRenardRenfortReniflerRenoncerRentrerRenvoiReplierReporterRepriseReptileRequinRe/serveRe/sineuxRe/soudreRespectResterRe/sultatRe/tablirRetenirRe/ticuleRetomberRetracerRe/unionRe/ussirRevancheRevivreRe/volteRe/vulsifRichesseRideauRieurRigideRigolerRincerRiposterRisibleRisqueRituelRivalRivie-reRocheuxRomanceRompreRonceRondinRoseauRosierRotatifRotorRotuleRougeRouilleRouleauRoutineRoyaumeRubanRubisRucheRuelleRugueuxRuinerRuisseauRuserRustiqueRythmeSablerSaboterSabreSacocheSafariSagesseSaisirSaladeSaliveSalonSaluerSamediSanctionSanglierSarcasmeSardineSaturerSaugrenuSaumonSauterSauvageSavantSavonnerScalpelScandaleSce/le/ratSce/narioSceptreSche/maScienceScinderScoreScrutinSculpterSe/anceSe/cableSe/cherSecouerSe/cre/terSe/datifSe/duireSeigneurSe/jourSe/lectifSemaineSemblerSemenceSe/minalSe/nateurSensibleSentenceSe/parerSe/quenceSereinSergentSe/rieuxSerrureSe/rumServiceSe/sameSe/virSevrageSextupleSide/ralSie-cleSie/gerSifflerSigleSignalSilenceSiliciumSimpleSince-reSinistreSiphonSiropSismiqueSituerSkierSocialSocleSodiumSoigneuxSoldatSoleilSolitudeSolubleSombreSommeilSomnolerSondeSongeurSonnetteSonoreSorcierSortirSosieSottiseSoucieuxSoudureSouffleSouleverSoupapeSourceSoutirerSouvenirSpacieuxSpatialSpe/cialSphe-reSpiralStableStationSternumStimulusStipulerStrictStudieuxStupeurStylisteSublimeSubstratSubtilSubvenirSucce-sSucreSuffixeSugge/rerSuiveurSulfateSuperbeSupplierSurfaceSuricateSurmenerSurpriseSursautSurvieSuspectSyllabeSymboleSyme/trieSynapseSyntaxeSyste-meTabacTablierTactileTaillerTalentTalismanTalonnerTambourTamiserTangibleTapisTaquinerTarderTarifTartineTasseTatamiTatouageTaupeTaureauTaxerTe/moinTemporelTenailleTendreTeneurTenirTensionTerminerTerneTerribleTe/tineTexteThe-meThe/orieThe/rapieThoraxTibiaTie-deTimideTirelireTiroirTissuTitaneTitreTituberTobogganTole/rantTomateToniqueTonneauToponymeTorcheTordreTornadeTorpilleTorrentTorseTortueTotemToucherTournageTousserToxineTractionTraficTragiqueTrahirTrainTrancherTravailTre-fleTremperTre/sorTreuilTriageTribunalTricoterTrilogieTriompheTriplerTriturerTrivialTromboneTroncTropicalTroupeauTuileTulipeTumulteTunnelTurbineTuteurTutoyerTuyauTympanTyphonTypiqueTyranUbuesqueUltimeUltrasonUnanimeUnifierUnionUniqueUnitaireUniversUraniumUrbainUrticantUsageUsineUsuelUsureUtileUtopieVacarmeVaccinVagabondVagueVaillantVaincreVaisseauValableValiseVallonValveVampireVanilleVapeurVarierVaseuxVassalVasteVecteurVedetteVe/ge/talVe/hiculeVeinardVe/loceVendrediVe/ne/rerVengerVenimeuxVentouseVerdureVe/rinVernirVerrouVerserVertuVestonVe/te/ranVe/tusteVexantVexerViaducViandeVictoireVidangeVide/oVignetteVigueurVilainVillageVinaigreViolonVipe-reVirementVirtuoseVirusVisageViseurVisionVisqueuxVisuelVitalVitesseViticoleVitrineVivaceVivipareVocationVoguerVoileVoisinVoitureVolailleVolcanVoltigerVolumeVoraceVortexVoterVouloirVoyageVoyelleWagonXe/nonYachtZe-breZe/nithZesteZoologie";
+ var wordlist = null;
+ var lookup = {};
+ function dropDiacritic(word) {
+ wordlist_1.logger.checkNormalize();
+ return (0, strings_1.toUtf8String)(Array.prototype.filter.call((0, strings_1.toUtf8Bytes)(word.normalize("NFD").toLowerCase()), function(c) {
+ return c >= 65 && c <= 90 || c >= 97 && c <= 123;
+ }));
+ }
+ function expand(word) {
+ var output = [];
+ Array.prototype.forEach.call((0, strings_1.toUtf8Bytes)(word), function(c) {
+ if (c === 47) {
+ output.push(204);
+ output.push(129);
+ } else if (c === 45) {
+ output.push(204);
+ output.push(128);
+ } else {
+ output.push(c);
+ }
+ });
+ return (0, strings_1.toUtf8String)(output);
+ }
+ function loadWords(lang) {
+ if (wordlist != null) {
+ return;
+ }
+ wordlist = words.replace(/([A-Z])/g, " $1").toLowerCase().substring(1).split(" ").map(function(w) {
+ return expand(w);
+ });
+ wordlist.forEach(function(word, index) {
+ lookup[dropDiacritic(word)] = index;
+ });
+ if (wordlist_1.Wordlist.check(lang) !== "0x51deb7ae009149dc61a6bd18a918eb7ac78d2775726c68e598b92d002519b045") {
+ wordlist = null;
+ throw new Error("BIP39 Wordlist for fr (French) FAILED");
+ }
+ }
+ var LangFr = (
+ /** @class */
+ function(_super) {
+ __extends13(LangFr2, _super);
+ function LangFr2() {
+ return _super.call(this, "fr") || this;
+ }
+ LangFr2.prototype.getWord = function(index) {
+ loadWords(this);
+ return wordlist[index];
+ };
+ LangFr2.prototype.getWordIndex = function(word) {
+ loadWords(this);
+ return lookup[dropDiacritic(word)];
+ };
+ return LangFr2;
+ }(wordlist_1.Wordlist)
+ );
+ var langFr = new LangFr();
+ exports2.langFr = langFr;
+ wordlist_1.Wordlist.register(langFr);
+ }
+});
+
+// node_modules/@ethersproject/wordlists/lib/lang-ja.js
+var require_lang_ja = __commonJS({
+ "node_modules/@ethersproject/wordlists/lib/lang-ja.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.langJa = void 0;
+ var bytes_1 = require_lib6();
+ var strings_1 = require_lib15();
+ var wordlist_1 = require_wordlist();
+ var data = [
+ // 4-kana words
+ "AQRASRAGBAGUAIRAHBAghAURAdBAdcAnoAMEAFBAFCBKFBQRBSFBCXBCDBCHBGFBEQBpBBpQBIkBHNBeOBgFBVCBhBBhNBmOBmRBiHBiFBUFBZDBvFBsXBkFBlcBjYBwDBMBBTBBTRBWBBWXXaQXaRXQWXSRXCFXYBXpHXOQXHRXhRXuRXmXXbRXlXXwDXTRXrCXWQXWGaBWaKcaYgasFadQalmaMBacAKaRKKBKKXKKjKQRKDRKCYKCRKIDKeVKHcKlXKjHKrYNAHNBWNaRNKcNIBNIONmXNsXNdXNnBNMBNRBNrXNWDNWMNFOQABQAHQBrQXBQXFQaRQKXQKDQKOQKFQNBQNDQQgQCXQCDQGBQGDQGdQYXQpBQpQQpHQLXQHuQgBQhBQhCQuFQmXQiDQUFQZDQsFQdRQkHQbRQlOQlmQPDQjDQwXQMBQMDQcFQTBQTHQrDDXQDNFDGBDGQDGRDpFDhFDmXDZXDbRDMYDRdDTRDrXSAhSBCSBrSGQSEQSHBSVRShYShkSyQSuFSiBSdcSoESocSlmSMBSFBSFKSFNSFdSFcCByCaRCKcCSBCSRCCrCGbCEHCYXCpBCpQCIBCIHCeNCgBCgFCVECVcCmkCmwCZXCZFCdRClOClmClFCjDCjdCnXCwBCwXCcRCFQCFjGXhGNhGDEGDMGCDGCHGIFGgBGVXGVEGVRGmXGsXGdYGoSGbRGnXGwXGwDGWRGFNGFLGFOGFdGFkEABEBDEBFEXOEaBEKSENBENDEYXEIgEIkEgBEgQEgHEhFEudEuFEiBEiHEiFEZDEvBEsXEsFEdXEdREkFEbBEbRElFEPCEfkEFNYAEYAhYBNYQdYDXYSRYCEYYoYgQYgRYuRYmCYZTYdBYbEYlXYjQYRbYWRpKXpQopQnpSFpCXpIBpISphNpdBpdRpbRpcZpFBpFNpFDpFopFrLADLBuLXQLXcLaFLCXLEhLpBLpFLHXLeVLhILdHLdRLoDLbRLrXIABIBQIBCIBsIBoIBMIBRIXaIaRIKYIKRINBINuICDIGBIIDIIkIgRIxFIyQIiHIdRIbYIbRIlHIwRIMYIcRIRVITRIFBIFNIFQOABOAFOBQOaFONBONMOQFOSFOCDOGBOEQOpBOLXOIBOIFOgQOgFOyQOycOmXOsXOdIOkHOMEOMkOWWHBNHXNHXWHNXHDuHDRHSuHSRHHoHhkHmRHdRHkQHlcHlRHwBHWcgAEgAggAkgBNgBQgBEgXOgYcgLXgHjgyQgiBgsFgdagMYgWSgFQgFEVBTVXEVKBVKNVKDVKYVKRVNBVNYVDBVDxVSBVSRVCjVGNVLXVIFVhBVhcVsXVdRVbRVlRhBYhKYhDYhGShxWhmNhdahdkhbRhjohMXhTRxAXxXSxKBxNBxEQxeNxeQxhXxsFxdbxlHxjcxFBxFNxFQxFOxFoyNYyYoybcyMYuBQuBRuBruDMuCouHBudQukkuoBulVuMXuFEmCYmCRmpRmeDmiMmjdmTFmFQiADiBOiaRiKRiNBiNRiSFiGkiGFiERipRiLFiIFihYibHijBijEiMXiWBiFBiFCUBQUXFUaRUNDUNcUNRUNFUDBUSHUCDUGBUGFUEqULNULoUIRUeEUeYUgBUhFUuRUiFUsXUdFUkHUbBUjSUjYUwXUMDUcHURdUTBUrBUrXUrQZAFZXZZaRZKFZNBZQFZCXZGBZYdZpBZLDZIFZHXZHNZeQZVRZVFZmXZiBZvFZdFZkFZbHZbFZwXZcCZcRZRBvBQvBGvBLvBWvCovMYsAFsBDsaRsKFsNFsDrsSHsSFsCXsCRsEBsEHsEfspBsLBsLDsIgsIRseGsbRsFBsFQsFSdNBdSRdCVdGHdYDdHcdVbdySduDdsXdlRdwXdWYdWcdWRkBMkXOkaRkNIkNFkSFkCFkYBkpRkeNkgBkhVkmXksFklVkMBkWDkFNoBNoaQoaFoNBoNXoNaoNEoSRoEroYXoYCoYbopRopFomXojkowXorFbBEbEIbdBbjYlaRlDElMXlFDjKjjSRjGBjYBjYkjpRjLXjIBjOFjeVjbRjwBnXQnSHnpFnLXnINnMBnTRwXBwXNwXYwNFwQFwSBwGFwLXwLDweNwgBwuHwjDwnXMBXMpFMIBMeNMTHcaQcNBcDHcSFcCXcpBcLXcLDcgFcuFcnXcwXccDcTQcrFTQErXNrCHrpFrgFrbFrTHrFcWNYWNbWEHWMXWTR",
+ // 5-kana words
+ "ABGHABIJAEAVAYJQALZJAIaRAHNXAHdcAHbRAZJMAZJRAZTRAdVJAklmAbcNAjdRAMnRAMWYAWpRAWgRAFgBAFhBAFdcBNJBBNJDBQKBBQhcBQlmBDEJBYJkBYJTBpNBBpJFBIJBBIJDBIcABOKXBOEJBOVJBOiJBOZJBepBBeLXBeIFBegBBgGJBVJXBuocBiJRBUJQBlXVBlITBwNFBMYVBcqXBTlmBWNFBWiJBWnRBFGHBFwXXKGJXNJBXNZJXDTTXSHSXSVRXSlHXCJDXGQJXEhXXYQJXYbRXOfXXeNcXVJFXhQJXhEJXdTRXjdXXMhBXcQTXRGBXTEBXTnQXFCXXFOFXFgFaBaFaBNJaBCJaBpBaBwXaNJKaNJDaQIBaDpRaEPDaHMFamDJalEJaMZJaFaFaFNBaFQJaFLDaFVHKBCYKBEBKBHDKXaFKXGdKXEJKXpHKXIBKXZDKXwXKKwLKNacKNYJKNJoKNWcKDGdKDTRKChXKGaRKGhBKGbRKEBTKEaRKEPTKLMDKLWRKOHDKVJcKdBcKlIBKlOPKFSBKFEPKFpFNBNJNJBQNBGHNBEPNBHXNBgFNBVXNBZDNBsXNBwXNNaRNNJDNNJENNJkNDCJNDVDNGJRNJiDNZJNNsCJNJFNNFSBNFCXNFEPNFLXNFIFQJBFQCaRQJEQQLJDQLJFQIaRQOqXQHaFQHHQQVJXQVJDQhNJQmEIQZJFQsJXQJrFQWbRDJABDBYJDXNFDXCXDXLXDXZDDXsJDQqXDSJFDJCXDEPkDEqXDYmQDpSJDOCkDOGQDHEIDVJDDuDuDWEBDJFgSBNDSBSFSBGHSBIBSBTQSKVYSJQNSJQiSJCXSEqXSJYVSIiJSOMYSHAHSHaQSeCFSepQSegBSHdHSHrFShSJSJuHSJUFSkNRSrSrSWEBSFaHSJFQSFCXSFGDSFYXSFODSFgBSFVXSFhBSFxFSFkFSFbBSFMFCADdCJXBCXaFCXKFCXNFCXCXCXGBCXEJCXYBCXLDCXIBCXOPCXHXCXgBCXhBCXiBCXlDCXcHCJNBCJNFCDCJCDGBCDVXCDhBCDiDCDJdCCmNCpJFCIaRCOqXCHCHCHZJCViJCuCuCmddCJiFCdNBCdHhClEJCnUJCreSCWlgCWTRCFBFCFNBCFYBCFVFCFhFCFdSCFTBCFWDGBNBGBQFGJBCGBEqGBpBGBgQGNBEGNJYGNkOGNJRGDUFGJpQGHaBGJeNGJeEGVBlGVKjGiJDGvJHGsVJGkEBGMIJGWjNGFBFGFCXGFGBGFYXGFpBGFMFEASJEAWpEJNFECJVEIXSEIQJEOqXEOcFEeNcEHEJEHlFEJgFEhlmEmDJEmZJEiMBEUqXEoSREPBFEPXFEPKFEPSFEPEFEPpFEPLXEPIBEJPdEPcFEPTBEJnXEqlHEMpREFCXEFODEFcFYASJYJAFYBaBYBVXYXpFYDhBYCJBYJGFYYbRYeNcYJeVYiIJYZJcYvJgYvJRYJsXYsJFYMYMYreVpBNHpBEJpBwXpQxFpYEJpeNDpJeDpeSFpeCHpHUJpHbBpHcHpmUJpiiJpUJrpsJuplITpFaBpFQqpFGBpFEfpFYBpFpBpFLJpFIDpFgBpFVXpFyQpFuFpFlFpFjDpFnXpFwXpJFMpFTBLXCJLXEFLXhFLXUJLXbFLalmLNJBLSJQLCLCLGJBLLDJLHaFLeNFLeSHLeCXLepFLhaRLZsJLsJDLsJrLocaLlLlLMdbLFNBLFSBLFEHLFkFIBBFIBXFIBaQIBKXIBSFIBpHIBLXIBgBIBhBIBuHIBmXIBiFIBZXIBvFIBbFIBjQIBwXIBWFIKTRIQUJIDGFICjQIYSRIINXIJeCIVaRImEkIZJFIvJRIsJXIdCJIJoRIbBQIjYBIcqXITFVIreVIFKFIFSFIFCJIFGFIFLDIFIBIJFOIFgBIFVXIJFhIFxFIFmXIFdHIFbBIJFrIJFWOBGBOQfXOOKjOUqXOfXBOqXEOcqXORVJOFIBOFlDHBIOHXiFHNTRHCJXHIaRHHJDHHEJHVbRHZJYHbIBHRsJHRkDHWlmgBKFgBSBgBCDgBGHgBpBgBIBgBVJgBuBgBvFgKDTgQVXgDUJgGSJgOqXgmUMgZIJgTUJgWIEgFBFgFNBgFDJgFSFgFGBgFYXgJFOgFgQgFVXgFhBgFbHgJFWVJABVQKcVDgFVOfXVeDFVhaRVmGdViJYVMaRVFNHhBNDhBCXhBEqhBpFhBLXhNJBhSJRheVXhhKEhxlmhZIJhdBQhkIJhbMNhMUJhMZJxNJgxQUJxDEkxDdFxSJRxplmxeSBxeCXxeGFxeYXxepQxegBxWVcxFEQxFLXxFIBxFgBxFxDxFZtxFdcxFbBxFwXyDJXyDlcuASJuDJpuDIBuCpJuGSJuIJFueEFuZIJusJXudWEuoIBuWGJuFBcuFKEuFNFuFQFuFDJuFGJuFVJuFUtuFdHuFTBmBYJmNJYmQhkmLJDmLJomIdXmiJYmvJRmsJRmklmmMBymMuCmclmmcnQiJABiJBNiJBDiBSFiBCJiBEFiBYBiBpFiBLXiBTHiJNciDEfiCZJiECJiJEqiOkHiHKFieNDiHJQieQcieDHieSFieCXieGFieEFieIHiegFihUJixNoioNXiFaBiFKFiFNDiFEPiFYXitFOitFHiFgBiFVEiFmXiFitiFbBiFMFiFrFUCXQUIoQUIJcUHQJUeCEUHwXUUJDUUqXUdWcUcqXUrnQUFNDUFSHUFCFUFEfUFLXUtFOZBXOZXSBZXpFZXVXZEQJZEJkZpDJZOqXZeNHZeCDZUqXZFBQZFEHZFLXvBAFvBKFvBCXvBEPvBpHvBIDvBgFvBuHvQNJvFNFvFGBvFIBvJFcsXCDsXLXsXsXsXlFsXcHsQqXsJQFsEqXseIFsFEHsFjDdBxOdNpRdNJRdEJbdpJRdhZJdnSJdrjNdFNJdFQHdFhNkNJDkYaRkHNRkHSRkVbRkuMRkjSJkcqDoSJFoEiJoYZJoOfXohEBoMGQocqXbBAFbBXFbBaFbBNDbBGBbBLXbBTBbBWDbGJYbIJHbFQqbFpQlDgQlOrFlVJRjGEBjZJRnXvJnXbBnEfHnOPDngJRnxfXnUJWwXEJwNpJwDpBwEfXwrEBMDCJMDGHMDIJMLJDcQGDcQpHcqXccqNFcqCXcFCJRBSBRBGBRBEJRBpQTBNFTBQJTBpBTBVXTFABTFSBTFCFTFGBTFMDrXCJrXLDrDNJrEfHrFQJrFitWNjdWNTR",
+ // 6-kana words
+ "AKLJMANOPFASNJIAEJWXAYJNRAIIbRAIcdaAeEfDAgidRAdjNYAMYEJAMIbRAFNJBAFpJFBBIJYBDZJFBSiJhBGdEBBEJfXBEJqXBEJWRBpaUJBLXrXBIYJMBOcfXBeEfFBestXBjNJRBcDJOBFEqXXNvJRXDMBhXCJNYXOAWpXONJWXHDEBXeIaRXhYJDXZJSJXMDJOXcASJXFVJXaBQqXaBZJFasXdQaFSJQaFEfXaFpJHaFOqXKBNSRKXvJBKQJhXKEJQJKEJGFKINJBKIJjNKgJNSKVElmKVhEBKiJGFKlBgJKjnUJKwsJYKMFIJKFNJDKFIJFKFOfXNJBSFNJBCXNBpJFNJBvQNJBMBNJLJXNJOqXNJeCXNJeGFNdsJCNbTKFNwXUJQNFEPQDiJcQDMSJQSFpBQGMQJQJeOcQyCJEQUJEBQJFBrQFEJqDXDJFDJXpBDJXIMDGiJhDIJGRDJeYcDHrDJDVXgFDkAWpDkIgRDjDEqDMvJRDJFNFDJFIBSKclmSJQOFSJQVHSJQjDSJGJBSJGJFSECJoSHEJqSJHTBSJVJDSViJYSZJNBSJsJDSFSJFSFEfXSJFLXCBUJVCJXSBCJXpBCXVJXCJXsXCJXdFCJNJHCLIJgCHiJFCVNJMChCJhCUHEJCsJTRCJdYcCoQJCCFEfXCFIJgCFUJxCFstFGJBaQGJBIDGQJqXGYJNRGJHKFGeQqDGHEJFGJeLXGHIiJGHdBlGUJEBGkIJTGFQPDGJFEqEAGegEJIJBEJVJXEhQJTEiJNcEJZJFEJoEqEjDEqEPDsXEPGJBEPOqXEPeQFEfDiDEJfEFEfepQEfMiJEqXNBEqDIDEqeSFEqVJXEMvJRYXNJDYXEJHYKVJcYYJEBYJeEcYJUqXYFpJFYFstXpAZJMpBSJFpNBNFpeQPDpHLJDpHIJFpHgJFpeitFpHZJFpJFADpFSJFpJFCJpFOqXpFitBpJFZJLXIJFLIJgRLVNJWLVHJMLwNpJLFGJBLFLJDLFOqXLJFUJIBDJXIBGJBIJBYQIJBIBIBOqXIBcqDIEGJFILNJTIIJEBIOiJhIJeNBIJeIBIhiJIIWoTRIJFAHIJFpBIJFuHIFUtFIJFTHOSBYJOEcqXOHEJqOvBpFOkVJrObBVJOncqDOcNJkHhNJRHuHJuHdMhBgBUqXgBsJXgONJBgHNJDgHHJQgJeitgHsJXgJyNagyDJBgZJDrgsVJQgkEJNgkjSJgJFAHgFCJDgFZtMVJXNFVXQfXVJXDJVXoQJVQVJQVDEfXVDvJHVEqNFVeQfXVHpJFVHxfXVVJSRVVmaRVlIJOhCXVJhHjYkhxCJVhWVUJhWiJcxBNJIxeEqDxfXBFxcFEPxFSJFxFYJXyBDQJydaUJyFOPDuYCJYuLvJRuHLJXuZJLDuFOPDuFZJHuFcqXmKHJdmCQJcmOsVJiJAGFitLCFieOfXiestXiZJMEikNJQirXzFiFQqXiFIJFiFZJFiFvtFUHpJFUteIcUteOcUVCJkUhdHcUbEJEUJqXQUMNJhURjYkUFitFZDGJHZJIxDZJVJXZJFDJZJFpQvBNJBvBSJFvJxBrseQqDsVFVJdFLJDkEJNBkmNJYkFLJDoQJOPoGsJRoEAHBoEJfFbBQqDbBZJHbFVJXlFIJBjYIrXjeitcjjCEBjWMNBwXQfXwXOaFwDsJXwCJTRwrCZJMDNJQcDDJFcqDOPRYiJFTBsJXTQIJBTFEfXTFLJDrXEJFrEJXMrFZJFWEJdEWYTlm",
+ // 7-kana words
+ "ABCDEFACNJTRAMBDJdAcNJVXBLNJEBXSIdWRXErNJkXYDJMBXZJCJaXMNJaYKKVJKcKDEJqXKDcNJhKVJrNYKbgJVXKFVJSBNBYBwDNJeQfXNJeEqXNhGJWENJFiJRQlIJbEQJfXxDQqXcfXQFNDEJQFwXUJDYcnUJDJIBgQDIUJTRDJFEqDSJQSJFSJQIJFSOPeZtSJFZJHCJXQfXCTDEqFGJBSJFGJBOfXGJBcqXGJHNJDGJRLiJEJfXEqEJFEJPEFpBEJYJBZJFYBwXUJYiJMEBYJZJyTYTONJXpQMFXFpeGIDdpJFstXpJFcPDLBVSJRLHQJqXLJFZJFIJBNJDIJBUqXIBkFDJIJEJPTIYJGWRIJeQPDIJeEfHIJFsJXOqGDSFHXEJqXgJCsJCgGQJqXgdQYJEgFMFNBgJFcqDVJwXUJVJFZJchIgJCCxOEJqXxOwXUJyDJBVRuscisciJBiJBieUtqXiJFDJkiFsJXQUGEZJcUJFsJXZtXIrXZDZJDrZJFNJDZJFstXvJFQqXvJFCJEsJXQJqkhkNGBbDJdTRbYJMEBlDwXUJMEFiJFcfXNJDRcNJWMTBLJXC",
+ // 8-kana words
+ "BraFUtHBFSJFdbNBLJXVJQoYJNEBSJBEJfHSJHwXUJCJdAZJMGjaFVJXEJPNJBlEJfFiJFpFbFEJqIJBVJCrIBdHiJhOPFChvJVJZJNJWxGFNIFLueIBQJqUHEJfUFstOZJDrlXEASJRlXVJXSFwVJNJWD",
+ // 9-kana words
+ "QJEJNNJDQJEJIBSFQJEJxegBQJEJfHEPSJBmXEJFSJCDEJqXLXNJFQqXIcQsFNJFIFEJqXUJgFsJXIJBUJEJfHNFvJxEqXNJnXUJFQqD",
+ // 10-kana words
+ "IJBEJqXZJ"
+ ];
+ var mapping = "~~AzB~X~a~KN~Q~D~S~C~G~E~Y~p~L~I~O~eH~g~V~hxyumi~~U~~Z~~v~~s~~dkoblPjfnqwMcRTr~W~~~F~~~~~Jt";
+ var wordlist = null;
+ function hex(word) {
+ return (0, bytes_1.hexlify)((0, strings_1.toUtf8Bytes)(word));
+ }
+ var KiYoKu = "0xe3818de38284e3818f";
+ var KyoKu = "0xe3818de38283e3818f";
+ function loadWords(lang) {
+ if (wordlist !== null) {
+ return;
+ }
+ wordlist = [];
+ var transform = {};
+ transform[(0, strings_1.toUtf8String)([227, 130, 154])] = false;
+ transform[(0, strings_1.toUtf8String)([227, 130, 153])] = false;
+ transform[(0, strings_1.toUtf8String)([227, 130, 133])] = (0, strings_1.toUtf8String)([227, 130, 134]);
+ transform[(0, strings_1.toUtf8String)([227, 129, 163])] = (0, strings_1.toUtf8String)([227, 129, 164]);
+ transform[(0, strings_1.toUtf8String)([227, 130, 131])] = (0, strings_1.toUtf8String)([227, 130, 132]);
+ transform[(0, strings_1.toUtf8String)([227, 130, 135])] = (0, strings_1.toUtf8String)([227, 130, 136]);
+ function normalize(word2) {
+ var result = "";
+ for (var i2 = 0; i2 < word2.length; i2++) {
+ var kana = word2[i2];
+ var target = transform[kana];
+ if (target === false) {
+ continue;
+ }
+ if (target) {
+ kana = target;
+ }
+ result += kana;
+ }
+ return result;
+ }
+ function sortJapanese(a, b) {
+ a = normalize(a);
+ b = normalize(b);
+ if (a < b) {
+ return -1;
+ }
+ if (a > b) {
+ return 1;
+ }
+ return 0;
+ }
+ for (var length_1 = 3; length_1 <= 9; length_1++) {
+ var d = data[length_1 - 3];
+ for (var offset = 0; offset < d.length; offset += length_1) {
+ var word = [];
+ for (var i = 0; i < length_1; i++) {
+ var k = mapping.indexOf(d[offset + i]);
+ word.push(227);
+ word.push(k & 64 ? 130 : 129);
+ word.push((k & 63) + 128);
+ }
+ wordlist.push((0, strings_1.toUtf8String)(word));
+ }
+ }
+ wordlist.sort(sortJapanese);
+ if (hex(wordlist[442]) === KiYoKu && hex(wordlist[443]) === KyoKu) {
+ var tmp = wordlist[442];
+ wordlist[442] = wordlist[443];
+ wordlist[443] = tmp;
+ }
+ if (wordlist_1.Wordlist.check(lang) !== "0xcb36b09e6baa935787fd762ce65e80b0c6a8dabdfbc3a7f86ac0e2c4fd111600") {
+ wordlist = null;
+ throw new Error("BIP39 Wordlist for ja (Japanese) FAILED");
+ }
+ }
+ var LangJa = (
+ /** @class */
+ function(_super) {
+ __extends13(LangJa2, _super);
+ function LangJa2() {
+ return _super.call(this, "ja") || this;
+ }
+ LangJa2.prototype.getWord = function(index) {
+ loadWords(this);
+ return wordlist[index];
+ };
+ LangJa2.prototype.getWordIndex = function(word) {
+ loadWords(this);
+ return wordlist.indexOf(word);
+ };
+ LangJa2.prototype.split = function(mnemonic) {
+ wordlist_1.logger.checkNormalize();
+ return mnemonic.split(/(?:\u3000| )+/g);
+ };
+ LangJa2.prototype.join = function(words) {
+ return words.join("\u3000");
+ };
+ return LangJa2;
+ }(wordlist_1.Wordlist)
+ );
+ var langJa = new LangJa();
+ exports2.langJa = langJa;
+ wordlist_1.Wordlist.register(langJa);
+ }
+});
+
+// node_modules/@ethersproject/wordlists/lib/lang-ko.js
+var require_lang_ko = __commonJS({
+ "node_modules/@ethersproject/wordlists/lib/lang-ko.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.langKo = void 0;
+ var strings_1 = require_lib15();
+ var wordlist_1 = require_wordlist();
+ var data = [
+ "OYAa",
+ "ATAZoATBl3ATCTrATCl8ATDloATGg3ATHT8ATJT8ATJl3ATLlvATLn4ATMT8ATMX8ATMboATMgoAToLbAToMTATrHgATvHnAT3AnAT3JbAT3MTAT8DbAT8JTAT8LmAT8MYAT8MbAT#LnAUHT8AUHZvAUJXrAUJX8AULnrAXJnvAXLUoAXLgvAXMn6AXRg3AXrMbAX3JTAX3QbAYLn3AZLgvAZrSUAZvAcAZ8AaAZ8AbAZ8AnAZ8HnAZ8LgAZ8MYAZ8MgAZ8OnAaAboAaDTrAaFTrAaJTrAaJboAaLVoAaMXvAaOl8AaSeoAbAUoAbAg8AbAl4AbGnrAbMT8AbMXrAbMn4AbQb8AbSV8AbvRlAb8AUAb8AnAb8HgAb8JTAb8NTAb8RbAcGboAcLnvAcMT8AcMX8AcSToAcrAaAcrFnAc8AbAc8MgAfGgrAfHboAfJnvAfLV8AfLkoAfMT8AfMnoAfQb8AfScrAfSgrAgAZ8AgFl3AgGX8AgHZvAgHgrAgJXoAgJX8AgJboAgLZoAgLn4AgOX8AgoATAgoAnAgoCUAgoJgAgoLXAgoMYAgoSeAgrDUAgrJTAhrFnAhrLjAhrQgAjAgoAjJnrAkMX8AkOnoAlCTvAlCV8AlClvAlFg4AlFl6AlFn3AloSnAlrAXAlrAfAlrFUAlrFbAlrGgAlrOXAlvKnAlvMTAl3AbAl3MnAnATrAnAcrAnCZ3AnCl8AnDg8AnFboAnFl3AnHX4AnHbrAnHgrAnIl3AnJgvAnLXoAnLX4AnLbrAnLgrAnLhrAnMXoAnMgrAnOn3AnSbrAnSeoAnvLnAn3OnCTGgvCTSlvCTvAUCTvKnCTvNTCT3CZCT3GUCT3MTCT8HnCUCZrCULf8CULnvCU3HnCU3JUCY6NUCbDb8CbFZoCbLnrCboOTCboScCbrFnCbvLnCb8AgCb8HgCb$LnCkLfoClBn3CloDUDTHT8DTLl3DTSU8DTrAaDTrLXDTrLjDTrOYDTrOgDTvFXDTvFnDT3HUDT3LfDUCT9DUDT4DUFVoDUFV8DUFkoDUGgrDUJnrDULl8DUMT8DUMXrDUMX4DUMg8DUOUoDUOgvDUOg8DUSToDUSZ8DbDXoDbDgoDbGT8DbJn3DbLg3DbLn4DbMXrDbMg8DbOToDboJXGTClvGTDT8GTFZrGTLVoGTLlvGTLl3GTMg8GTOTvGTSlrGToCUGTrDgGTrJYGTrScGTtLnGTvAnGTvQgGUCZrGUDTvGUFZoGUHXrGULnvGUMT8GUoMgGXoLnGXrMXGXrMnGXvFnGYLnvGZOnvGZvOnGZ8LaGZ8LmGbAl3GbDYvGbDlrGbHX3GbJl4GbLV8GbLn3GbMn4GboJTGboRfGbvFUGb3GUGb4JnGgDX3GgFl$GgJlrGgLX6GgLZoGgLf8GgOXoGgrAgGgrJXGgrMYGgrScGgvATGgvOYGnAgoGnJgvGnLZoGnLg3GnLnrGnQn8GnSbrGnrMgHTClvHTDToHTFT3HTQT8HToJTHToJgHTrDUHTrMnHTvFYHTvRfHT8MnHT8SUHUAZ8HUBb4HUDTvHUoMYHXFl6HXJX6HXQlrHXrAUHXrMnHXrSbHXvFYHXvKXHX3LjHX3MeHYvQlHZrScHZvDbHbAcrHbFT3HbFl3HbJT8HbLTrHbMT8HbMXrHbMbrHbQb8HbSX3HboDbHboJTHbrFUHbrHgHbrJTHb8JTHb8MnHb8QgHgAlrHgDT3HgGgrHgHgrHgJTrHgJT8HgLX@HgLnrHgMT8HgMX8HgMboHgOnrHgQToHgRg3HgoHgHgrCbHgrFnHgrLVHgvAcHgvAfHnAloHnCTrHnCnvHnGTrHnGZ8HnGnvHnJT8HnLf8HnLkvHnMg8HnRTrITvFUITvFnJTAXrJTCV8JTFT3JTFT8JTFn4JTGgvJTHT8JTJT8JTJXvJTJl3JTJnvJTLX4JTLf8JTLhvJTMT8JTMXrJTMnrJTObrJTQT8JTSlvJT8DUJT8FkJT8MTJT8OXJT8OgJT8QUJT8RfJUHZoJXFT4JXFlrJXGZ8JXGnrJXLV8JXLgvJXMXoJXMX3JXNboJXPlvJXoJTJXoLkJXrAXJXrHUJXrJgJXvJTJXvOnJX4KnJYAl3JYJT8JYLhvJYQToJYrQXJY6NUJbAl3JbCZrJbDloJbGT8JbGgrJbJXvJbJboJbLf8JbLhrJbLl3JbMnvJbRg8JbSZ8JboDbJbrCZJbrSUJb3KnJb8LnJfRn8JgAXrJgCZrJgDTrJgGZrJgGZ8JgHToJgJT8JgJXoJgJgvJgLX4JgLZ3JgLZ8JgLn4JgMgrJgMn4JgOgvJgPX6JgRnvJgSToJgoCZJgoJbJgoMYJgrJXJgrJgJgrLjJg6MTJlCn3JlGgvJlJl8Jl4AnJl8FnJl8HgJnAToJnATrJnAbvJnDUoJnGnrJnJXrJnJXvJnLhvJnLnrJnLnvJnMToJnMT8JnMXvJnMX3JnMg8JnMlrJnMn4JnOX8JnST4JnSX3JnoAgJnoAnJnoJTJnoObJnrAbJnrAkJnrHnJnrJTJnrJYJnrOYJnrScJnvCUJnvFaJnvJgJnvJnJnvOYJnvQUJnvRUJn3FnJn3JTKnFl3KnLT6LTDlvLTMnoLTOn3LTRl3LTSb4LTSlrLToAnLToJgLTrAULTrAcLTrCULTrHgLTrMgLT3JnLULnrLUMX8LUoJgLVATrLVDTrLVLb8LVoJgLV8MgLV8RTLXDg3LXFlrLXrCnLXrLXLX3GTLX4GgLX4OYLZAXrLZAcrLZAgrLZAhrLZDXyLZDlrLZFbrLZFl3LZJX6LZJX8LZLc8LZLnrLZSU8LZoJTLZoJnLZrAgLZrAnLZrJYLZrLULZrMgLZrSkLZvAnLZvGULZvJeLZvOTLZ3FZLZ4JXLZ8STLZ8ScLaAT3LaAl3LaHT8LaJTrLaJT8LaJXrLaJgvLaJl4LaLVoLaMXrLaMXvLaMX8LbClvLbFToLbHlrLbJn4LbLZ3LbLhvLbMXrLbMnoLbvSULcLnrLc8HnLc8MTLdrMnLeAgoLeOgvLeOn3LfAl3LfLnvLfMl3LfOX8Lf8AnLf8JXLf8LXLgJTrLgJXrLgJl8LgMX8LgRZrLhCToLhrAbLhrFULhrJXLhvJYLjHTrLjHX4LjJX8LjLhrLjSX3LjSZ4LkFX4LkGZ8LkGgvLkJTrLkMXoLkSToLkSU8LkSZ8LkoOYLl3FfLl3MgLmAZrLmCbrLmGgrLmHboLmJnoLmJn3LmLfoLmLhrLmSToLnAX6LnAb6LnCZ3LnCb3LnDTvLnDb8LnFl3LnGnrLnHZvLnHgvLnITvLnJT8LnJX8LnJlvLnLf8LnLg6LnLhvLnLnoLnMXrLnMg8LnQlvLnSbrLnrAgLnrAnLnrDbLnrFkLnrJdLnrMULnrOYLnrSTLnvAnLnvDULnvHgLnvOYLnvOnLn3GgLn4DULn4JTLn4JnMTAZoMTAloMTDb8MTFT8MTJnoMTJnrMTLZrMTLhrMTLkvMTMX8MTRTrMToATMTrDnMTrOnMT3JnMT4MnMT8FUMT8FaMT8FlMT8GTMT8GbMT8GnMT8HnMT8JTMT8JbMT8OTMUCl8MUJTrMUJU8MUMX8MURTrMUSToMXAX6MXAb6MXCZoMXFXrMXHXrMXLgvMXOgoMXrAUMXrAnMXrHgMXrJYMXrJnMXrMTMXrMgMXrOYMXrSZMXrSgMXvDUMXvOTMX3JgMX3OTMX4JnMX8DbMX8FnMX8HbMX8HgMX8HnMX8LbMX8MnMX8OnMYAb8MYGboMYHTvMYHX4MYLTrMYLnvMYMToMYOgvMYRg3MYSTrMbAToMbAXrMbAl3MbAn8MbGZ8MbJT8MbJXrMbMXvMbMX8MbMnoMbrMUMb8AfMb8FbMb8FkMcJXoMeLnrMgFl3MgGTvMgGXoMgGgrMgGnrMgHT8MgHZrMgJnoMgLnrMgLnvMgMT8MgQUoMgrHnMgvAnMg8HgMg8JYMg8LfMloJnMl8ATMl8AXMl8JYMnAToMnAT4MnAZ8MnAl3MnAl4MnCl8MnHT8MnHg8MnJnoMnLZoMnLhrMnMXoMnMX3MnMnrMnOgvMnrFbMnrFfMnrFnMnrNTMnvJXNTMl8OTCT3OTFV8OTFn3OTHZvOTJXrOTOl3OT3ATOT3JUOT3LZOT3LeOT3MbOT8ATOT8AbOT8AgOT8MbOUCXvOUMX3OXHXvOXLl3OXrMUOXvDbOX6NUOX8JbOYFZoOYLbrOYLkoOYMg8OYSX3ObHTrObHT4ObJgrObLhrObMX3ObOX8Ob8FnOeAlrOeJT8OeJXrOeJnrOeLToOeMb8OgJXoOgLXoOgMnrOgOXrOgOloOgoAgOgoJbOgoMYOgoSTOg8AbOjLX4OjMnoOjSV8OnLVoOnrAgOn3DUPXQlrPXvFXPbvFTPdAT3PlFn3PnvFbQTLn4QToAgQToMTQULV8QURg8QUoJnQXCXvQbFbrQb8AaQb8AcQb8FbQb8MYQb8ScQeAlrQeLhrQjAn3QlFXoQloJgQloSnRTLnvRTrGURTrJTRUJZrRUoJlRUrQnRZrLmRZrMnRZrSnRZ8ATRZ8JbRZ8ScRbMT8RbST3RfGZrRfMX8RfMgrRfSZrRnAbrRnGT8RnvJgRnvLfRnvMTRn8AaSTClvSTJgrSTOXrSTRg3STRnvSToAcSToAfSToAnSToHnSToLjSToMTSTrAaSTrEUST3BYST8AgST8LmSUAZvSUAgrSUDT4SUDT8SUGgvSUJXoSUJXvSULTrSU8JTSU8LjSV8AnSV8JgSXFToSXLf8SYvAnSZrDUSZrMUSZrMnSZ8HgSZ8JTSZ8JgSZ8MYSZ8QUSaQUoSbCT3SbHToSbQYvSbSl4SboJnSbvFbSb8HbSb8JgSb8OTScGZrScHgrScJTvScMT8ScSToScoHbScrMTScvAnSeAZrSeAcrSeHboSeJUoSeLhrSeMT8SeMXrSe6JgSgHTrSkJnoSkLnvSk8CUSlFl3SlrSnSl8GnSmAboSmGT8SmJU8",
+ "ATLnDlATrAZoATrJX4ATrMT8ATrMX4ATrRTrATvDl8ATvJUoATvMl8AT3AToAT3MX8AT8CT3AT8DT8AT8HZrAT8HgoAUAgFnAUCTFnAXoMX8AXrAT8AXrGgvAXrJXvAXrOgoAXvLl3AZvAgoAZvFbrAZvJXoAZvJl8AZvJn3AZvMX8AZvSbrAZ8FZoAZ8LZ8AZ8MU8AZ8OTvAZ8SV8AZ8SX3AbAgFZAboJnoAbvGboAb8ATrAb8AZoAb8AgrAb8Al4Ab8Db8Ab8JnoAb8LX4Ab8LZrAb8LhrAb8MT8Ab8OUoAb8Qb8Ab8ST8AcrAUoAcrAc8AcrCZ3AcrFT3AcrFZrAcrJl4AcrJn3AcrMX3AcrOTvAc8AZ8Ac8MT8AfAcJXAgoFn4AgoGgvAgoGnrAgoLc8AgoMXoAgrLnrAkrSZ8AlFXCTAloHboAlrHbrAlrLhrAlrLkoAl3CZrAl3LUoAl3LZrAnrAl4AnrMT8An3HT4BT3IToBX4MnvBb!Ln$CTGXMnCToLZ4CTrHT8CT3JTrCT3RZrCT#GTvCU6GgvCU8Db8CU8GZrCU8HT8CboLl3CbrGgrCbrMU8Cb8DT3Cb8GnrCb8LX4Cb8MT8Cb8ObrCgrGgvCgrKX4Cl8FZoDTrAbvDTrDboDTrGT6DTrJgrDTrMX3DTrRZrDTrRg8DTvAVvDTvFZoDT3DT8DT3Ln3DT4HZrDT4MT8DT8AlrDT8MT8DUAkGbDUDbJnDYLnQlDbDUOYDbMTAnDbMXSnDboAT3DboFn4DboLnvDj6JTrGTCgFTGTGgFnGTJTMnGTLnPlGToJT8GTrCT3GTrLVoGTrLnvGTrMX3GTrMboGTvKl3GZClFnGZrDT3GZ8DTrGZ8FZ8GZ8MXvGZ8On8GZ8ST3GbCnQXGbMbFnGboFboGboJg3GboMXoGb3JTvGb3JboGb3Mn6Gb3Qb8GgDXLjGgMnAUGgrDloGgrHX4GgrSToGgvAXrGgvAZvGgvFbrGgvLl3GgvMnvGnDnLXGnrATrGnrMboGnuLl3HTATMnHTAgCnHTCTCTHTrGTvHTrHTvHTrJX8HTrLl8HTrMT8HTrMgoHTrOTrHTuOn3HTvAZrHTvDTvHTvGboHTvJU8HTvLl3HTvMXrHTvQb4HT4GT6HT4JT8HT4Jb#HT8Al3HT8GZrHT8GgrHT8HX4HT8Jb8HT8JnoHT8LTrHT8LgvHT8SToHT8SV8HUoJUoHUoJX8HUoLnrHXrLZoHXvAl3HX3LnrHX4FkvHX4LhrHX4MXoHX4OnoHZrAZ8HZrDb8HZrGZ8HZrJnrHZvGZ8HZvLnvHZ8JnvHZ8LhrHbCXJlHbMTAnHboJl4HbpLl3HbrJX8HbrLnrHbrMnvHbvRYrHgoSTrHgrFV8HgrGZ8HgrJXoHgrRnvHgvBb!HgvGTrHgvHX4HgvHn!HgvLTrHgvSU8HnDnLbHnFbJbHnvDn8Hn6GgvHn!BTvJTCTLnJTQgFnJTrAnvJTrLX4JTrOUoJTvFn3JTvLnrJTvNToJT3AgoJT3Jn4JT3LhvJT3ObrJT8AcrJT8Al3JT8JT8JT8JnoJT8LX4JT8LnrJT8MX3JT8Rg3JT8Sc8JUoBTvJU8AToJU8GZ8JU8GgvJU8JTrJU8JXrJU8JnrJU8LnvJU8ScvJXHnJlJXrGgvJXrJU8JXrLhrJXrMT8JXrMXrJXrQUoJXvCTvJXvGZ8JXvGgrJXvQT8JX8Ab8JX8DT8JX8GZ8JX8HZvJX8LnrJX8MT8JX8MXoJX8MnvJX8ST3JYGnCTJbAkGbJbCTAnJbLTAcJboDT3JboLb6JbrAnvJbrCn3JbrDl8JbrGboJbrIZoJbrJnvJbrMnvJbrQb4Jb8RZrJeAbAnJgJnFbJgScAnJgrATrJgvHZ8JgvMn4JlJlFbJlLiQXJlLjOnJlRbOlJlvNXoJlvRl3Jl4AcrJl8AUoJl8MnrJnFnMlJnHgGbJnoDT8JnoFV8JnoGgvJnoIT8JnoQToJnoRg3JnrCZ3JnrGgrJnrHTvJnrLf8JnrOX8JnvAT3JnvFZoJnvGT8JnvJl4JnvMT8JnvMX8JnvOXrJnvPX6JnvSX3JnvSZrJn3MT8Jn3MX8Jn3RTrLTATKnLTJnLTLTMXKnLTRTQlLToGb8LTrAZ8LTrCZ8LTrDb8LTrHT8LT3PX6LT4FZoLT$CTvLT$GgrLUvHX3LVoATrLVoAgoLVoJboLVoMX3LVoRg3LV8CZ3LV8FZoLV8GTvLXrDXoLXrFbrLXvAgvLXvFlrLXvLl3LXvRn6LX4Mb8LX8GT8LYCXMnLYrMnrLZoSTvLZrAZvLZrAloLZrFToLZrJXvLZrJboLZrJl4LZrLnrLZrMT8LZrOgvLZrRnvLZrST4LZvMX8LZvSlvLZ8AgoLZ8CT3LZ8JT8LZ8LV8LZ8LZoLZ8Lg8LZ8SV8LZ8SbrLZ$HT8LZ$Mn4La6CTvLbFbMnLbRYFTLbSnFZLboJT8LbrAT9LbrGb3LbrQb8LcrJX8LcrMXrLerHTvLerJbrLerNboLgrDb8LgrGZ8LgrHTrLgrMXrLgrSU8LgvJTrLgvLl3Lg6Ll3LhrLnrLhrMT8LhvAl4LiLnQXLkoAgrLkoJT8LkoJn4LlrSU8Ll3FZoLl3HTrLl3JX8Ll3JnoLl3LToLmLeFbLnDUFbLnLVAnLnrATrLnrAZoLnrAb8LnrAlrLnrGgvLnrJU8LnrLZrLnrLhrLnrMb8LnrOXrLnrSZ8LnvAb4LnvDTrLnvDl8LnvHTrLnvHbrLnvJT8LnvJU8LnvJbrLnvLhvLnvMX8LnvMb8LnvNnoLnvSU8Ln3Al3Ln4FZoLn4GT6Ln4JgvLn4LhrLn4MT8Ln4SToMToCZrMToJX8MToLX4MToLf8MToRg3MTrEloMTvGb6MT3BTrMT3Lb6MT8AcrMT8AgrMT8GZrMT8JnoMT8LnrMT8MX3MUOUAnMXAbFnMXoAloMXoJX8MXoLf8MXoLl8MXrAb8MXrDTvMXrGT8MXrGgrMXrHTrMXrLf8MXrMU8MXrOXvMXrQb8MXvGT8MXvHTrMXvLVoMX3AX3MX3Jn3MX3LhrMX3MX3MX4AlrMX4OboMX8GTvMX8GZrMX8GgrMX8JT8MX8JX8MX8LhrMX8MT8MYDUFbMYMgDbMbGnFfMbvLX4MbvLl3Mb8Mb8Mb8ST4MgGXCnMg8ATrMg8AgoMg8CZrMg8DTrMg8DboMg8HTrMg8JgrMg8LT8MloJXoMl8AhrMl8JT8MnLgAUMnoJXrMnoLX4MnoLhrMnoMT8MnrAl4MnrDb8MnrOTvMnrOgvMnrQb8MnrSU8MnvGgrMnvHZ8Mn3MToMn4DTrMn4LTrMn4Mg8NnBXAnOTFTFnOToAToOTrGgvOTrJX8OT3JXoOT6MTrOT8GgrOT8HTpOT8MToOUoHT8OUoJT8OUoLn3OXrAgoOXrDg8OXrMT8OXvSToOX6CTvOX8CZrOX8OgrOb6HgvOb8AToOb8MT8OcvLZ8OgvAlrOgvHTvOgvJTrOgvJnrOgvLZrOgvLn4OgvMT8OgvRTrOg8AZoOg8DbvOnrOXoOnvJn4OnvLhvOnvRTrOn3GgoOn3JnvOn6JbvOn8OTrPTGYFTPbBnFnPbGnDnPgDYQTPlrAnvPlrETvPlrLnvPlrMXvPlvFX4QTMTAnQTrJU8QYCnJlQYJlQlQbGTQbQb8JnrQb8LZoQb8LnvQb8MT8Qb8Ml8Qb8ST4QloAl4QloHZvQloJX8QloMn8QnJZOlRTrAZvRTrDTrRTvJn4RTvLhvRT4Jb8RZrAZrRZ8AkrRZ8JU8RZ8LV8RZ8LnvRbJlQXRg3GboRg3MnvRg8AZ8Rg8JboRg8Jl4RnLTCbRnvFl3RnvQb8SToAl4SToCZrSToFZoSToHXrSToJU8SToJgvSToJl4SToLhrSToMX3STrAlvSTrCT9STrCgrSTrGgrSTrHXrSTrHboSTrJnoSTrNboSTvLnrST4AZoST8Ab8ST8JT8SUoJn3SU6HZ#SU6JTvSU8Db8SU8HboSU8LgrSV8JT8SZrAcrSZrAl3SZrJT8SZrJnvSZrMT8SZvLUoSZ4FZoSZ8JnoSZ8RZrScoLnrScoMT8ScoMX8ScrAT4ScrAZ8ScrLZ8ScrLkvScvDb8ScvLf8ScvNToSgrFZrShvKnrSloHUoSloLnrSlrMXoSl8HgrSmrJUoSn3BX6",
+ "ATFlOn3ATLgrDYAT4MTAnAT8LTMnAYJnRTrAbGgJnrAbLV8LnAbvNTAnAeFbLg3AgOYMXoAlQbFboAnDboAfAnJgoJTBToDgAnBUJbAl3BboDUAnCTDlvLnCTFTrSnCYoQTLnDTwAbAnDUDTrSnDUHgHgrDX8LXFnDbJXAcrETvLTLnGTFTQbrGTMnGToGT3DUFbGUJlPX3GbQg8LnGboJbFnGb3GgAYGgAg8ScGgMbAXrGgvAbAnGnJTLnvGnvATFgHTDT6ATHTrDlJnHYLnMn8HZrSbJTHZ8LTFnHbFTJUoHgSeMT8HgrLjAnHgvAbAnHlFUrDlHnDgvAnHnHTFT3HnQTGnrJTAaMXvJTGbCn3JTOgrAnJXvAXMnJbMg8SnJbMnRg3Jb8LTMnJnAl3OnJnGYrQlJnJlQY3LTDlCn3LTJjLg3LTLgvFXLTMg3GTLV8HUOgLXFZLg3LXNXrMnLX8QXFnLX9AlMYLYLXPXrLZAbJU8LZDUJU8LZMXrSnLZ$AgFnLaPXrDULbFYrMnLbMn8LXLboJgJgLeFbLg3LgLZrSnLgOYAgoLhrRnJlLkCTrSnLkOnLhrLnFX%AYLnFZoJXLnHTvJbLnLloAbMTATLf8MTHgJn3MTMXrAXMT3MTFnMUITvFnMXFX%AYMXMXvFbMXrFTDbMYAcMX3MbLf8SnMb8JbFnMgMXrMTMgvAXFnMgvGgCmMnAloSnMnFnJTrOXvMXSnOX8HTMnObJT8ScObLZFl3ObMXCZoPTLgrQXPUFnoQXPU3RXJlPX3RkQXPbrJXQlPlrJbFnQUAhrDbQXGnCXvQYLnHlvQbLfLnvRTOgvJbRXJYrQlRYLnrQlRbLnrQlRlFT8JlRlFnrQXSTClCn3STHTrAnSTLZQlrSTMnGTrSToHgGbSTrGTDnSTvGXCnST3HgFbSU3HXAXSbAnJn3SbFT8LnScLfLnv",
+ "AT3JgJX8AT8FZoSnAT8JgFV8AT8LhrDbAZ8JT8DbAb8GgLhrAb8SkLnvAe8MT8SnAlMYJXLVAl3GYDTvAl3LfLnvBUDTvLl3CTOn3HTrCT3DUGgrCU8MT8AbCbFTrJUoCgrDb8MTDTLV8JX8DTLnLXQlDT8LZrSnDUQb8FZ8DUST4JnvDb8ScOUoDj6GbJl4GTLfCYMlGToAXvFnGboAXvLnGgAcrJn3GgvFnSToGnLf8JnvGn#HTDToHTLnFXJlHTvATFToHTvHTDToHTvMTAgoHT3STClvHT4AlFl6HT8HTDToHUoDgJTrHUoScMX3HbRZrMXoHboJg8LTHgDb8JTrHgMToLf8HgvLnLnoHnHn3HT4Hn6MgvAnJTJU8ScvJT3AaQT8JT8HTrAnJXrRg8AnJbAloMXoJbrATFToJbvMnoSnJgDb6GgvJgDb8MXoJgSX3JU8JguATFToJlPYLnQlJlQkDnLbJlQlFYJlJl8Lf8OTJnCTFnLbJnLTHXMnJnLXGXCnJnoFfRg3JnrMYRg3Jn3HgFl3KT8Dg8LnLTRlFnPTLTvPbLbvLVoSbrCZLXMY6HT3LXNU7DlrLXNXDTATLX8DX8LnLZDb8JU8LZMnoLhrLZSToJU8LZrLaLnrLZvJn3SnLZ8LhrSnLaJnoMT8LbFlrHTvLbrFTLnrLbvATLlvLb6OTFn3LcLnJZOlLeAT6Mn4LeJT3ObrLg6LXFlrLhrJg8LnLhvDlPX4LhvLfLnvLj6JTFT3LnFbrMXoLnQluCTvLnrQXCY6LnvLfLnvLnvMgLnvLnvSeLf8MTMbrJn3MT3JgST3MT8AnATrMT8LULnrMUMToCZrMUScvLf8MXoDT8SnMX6ATFToMX8AXMT8MX8FkMT8MX8HTrDUMX8ScoSnMYJT6CTvMgAcrMXoMg8SToAfMlvAXLg3MnFl3AnvOT3AnFl3OUoATHT8OU3RnLXrOXrOXrSnObPbvFn6Og8HgrSnOg8OX8DbPTvAgoJgPU3RYLnrPXrDnJZrPb8CTGgvPlrLTDlvPlvFUJnoQUvFXrQlQeMnoAl3QlrQlrSnRTFTrJUoSTDlLiLXSTFg6HT3STJgoMn4STrFTJTrSTrLZFl3ST4FnMXoSUrDlHUoScvHTvSnSfLkvMXo",
+ "AUoAcrMXoAZ8HboAg8AbOg6ATFgAg8AloMXoAl3AT8JTrAl8MX8MXoCT3SToJU8Cl8Db8MXoDT8HgrATrDboOT8MXoGTOTrATMnGT8LhrAZ8GnvFnGnQXHToGgvAcrHTvAXvLl3HbrAZoMXoHgBlFXLg3HgMnFXrSnHgrSb8JUoHn6HT8LgvITvATrJUoJUoLZrRnvJU8HT8Jb8JXvFX8QT8JXvLToJTrJYrQnGnQXJgrJnoATrJnoJU8ScvJnvMnvMXoLTCTLgrJXLTJlRTvQlLbRnJlQYvLbrMb8LnvLbvFn3RnoLdCVSTGZrLeSTvGXCnLg3MnoLn3MToLlrETvMT8SToAl3MbrDU6GTvMb8LX4LhrPlrLXGXCnSToLf8Rg3STrDb8LTrSTvLTHXMnSb3RYLnMnSgOg6ATFg",
+ "HUDlGnrQXrJTrHgLnrAcJYMb8DULc8LTvFgGnCk3Mg8JbAnLX4QYvFYHnMXrRUoJnGnvFnRlvFTJlQnoSTrBXHXrLYSUJgLfoMT8Se8DTrHbDb",
+ "AbDl8SToJU8An3RbAb8ST8DUSTrGnrAgoLbFU6Db8LTrMg8AaHT8Jb8ObDl8SToJU8Pb3RlvFYoJl"
+ ];
+ var codes = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";
+ function getHangul(code) {
+ if (code >= 40) {
+ code = code + 168 - 40;
+ } else if (code >= 19) {
+ code = code + 97 - 19;
+ }
+ return (0, strings_1.toUtf8String)([225, (code >> 6) + 132, (code & 63) + 128]);
+ }
+ var wordlist = null;
+ function loadWords(lang) {
+ if (wordlist != null) {
+ return;
+ }
+ wordlist = [];
+ data.forEach(function(data2, length) {
+ length += 4;
+ for (var i = 0; i < data2.length; i += length) {
+ var word = "";
+ for (var j = 0; j < length; j++) {
+ word += getHangul(codes.indexOf(data2[i + j]));
+ }
+ wordlist.push(word);
+ }
+ });
+ wordlist.sort();
+ if (wordlist_1.Wordlist.check(lang) !== "0xf9eddeace9c5d3da9c93cf7d3cd38f6a13ed3affb933259ae865714e8a3ae71a") {
+ wordlist = null;
+ throw new Error("BIP39 Wordlist for ko (Korean) FAILED");
+ }
+ }
+ var LangKo = (
+ /** @class */
+ function(_super) {
+ __extends13(LangKo2, _super);
+ function LangKo2() {
+ return _super.call(this, "ko") || this;
+ }
+ LangKo2.prototype.getWord = function(index) {
+ loadWords(this);
+ return wordlist[index];
+ };
+ LangKo2.prototype.getWordIndex = function(word) {
+ loadWords(this);
+ return wordlist.indexOf(word);
+ };
+ return LangKo2;
+ }(wordlist_1.Wordlist)
+ );
+ var langKo = new LangKo();
+ exports2.langKo = langKo;
+ wordlist_1.Wordlist.register(langKo);
+ }
+});
+
+// node_modules/@ethersproject/wordlists/lib/lang-it.js
+var require_lang_it = __commonJS({
+ "node_modules/@ethersproject/wordlists/lib/lang-it.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.langIt = void 0;
+ var wordlist_1 = require_wordlist();
+ var words = "AbacoAbbaglioAbbinatoAbeteAbissoAbolireAbrasivoAbrogatoAccadereAccennoAccusatoAcetoneAchilleAcidoAcquaAcreAcrilicoAcrobataAcutoAdagioAddebitoAddomeAdeguatoAderireAdipeAdottareAdulareAffabileAffettoAffissoAffrantoAforismaAfosoAfricanoAgaveAgenteAgevoleAggancioAgireAgitareAgonismoAgricoloAgrumetoAguzzoAlabardaAlatoAlbatroAlberatoAlboAlbumeAlceAlcolicoAlettoneAlfaAlgebraAlianteAlibiAlimentoAllagatoAllegroAllievoAllodolaAllusivoAlmenoAlogenoAlpacaAlpestreAltalenaAlternoAlticcioAltroveAlunnoAlveoloAlzareAmalgamaAmanitaAmarenaAmbitoAmbratoAmebaAmericaAmetistaAmicoAmmassoAmmendaAmmirareAmmonitoAmoreAmpioAmpliareAmuletoAnacardoAnagrafeAnalistaAnarchiaAnatraAncaAncellaAncoraAndareAndreaAnelloAngeloAngolareAngustoAnimaAnnegareAnnidatoAnnoAnnuncioAnonimoAnticipoAnziApaticoAperturaApodeApparireAppetitoAppoggioApprodoAppuntoAprileArabicaArachideAragostaAraldicaArancioAraturaArazzoArbitroArchivioArditoArenileArgentoArgineArgutoAriaArmoniaArneseArredatoArringaArrostoArsenicoArsoArteficeArzilloAsciuttoAscoltoAsepsiAsetticoAsfaltoAsinoAsolaAspiratoAsproAssaggioAsseAssolutoAssurdoAstaAstenutoAsticeAstrattoAtavicoAteismoAtomicoAtonoAttesaAttivareAttornoAttritoAttualeAusilioAustriaAutistaAutonomoAutunnoAvanzatoAvereAvvenireAvvisoAvvolgereAzioneAzotoAzzimoAzzurroBabeleBaccanoBacinoBacoBadessaBadilataBagnatoBaitaBalconeBaldoBalenaBallataBalzanoBambinoBandireBaraondaBarbaroBarcaBaritonoBarlumeBaroccoBasilicoBassoBatostaBattutoBauleBavaBavosaBeccoBeffaBelgioBelvaBendaBenevoleBenignoBenzinaBereBerlinaBetaBibitaBiciBidoneBifidoBigaBilanciaBimboBinocoloBiologoBipedeBipolareBirbanteBirraBiscottoBisestoBisnonnoBisonteBisturiBizzarroBlandoBlattaBollitoBonificoBordoBoscoBotanicoBottinoBozzoloBraccioBradipoBramaBrancaBravuraBretellaBrevettoBrezzaBrigliaBrillanteBrindareBroccoloBrodoBronzinaBrulloBrunoBubboneBucaBudinoBuffoneBuioBulboBuonoBurloneBurrascaBussolaBustaCadettoCaducoCalamaroCalcoloCalesseCalibroCalmoCaloriaCambusaCamerataCamiciaCamminoCamolaCampaleCanapaCandelaCaneCaninoCanottoCantinaCapaceCapelloCapitoloCapogiroCapperoCapraCapsulaCarapaceCarcassaCardoCarismaCarovanaCarrettoCartolinaCasaccioCascataCasermaCasoCassoneCastelloCasualeCatastaCatenaCatrameCautoCavilloCedibileCedrataCefaloCelebreCellulareCenaCenoneCentesimoCeramicaCercareCertoCerumeCervelloCesoiaCespoCetoChelaChiaroChiccaChiedereChimeraChinaChirurgoChitarraCiaoCiclismoCifrareCignoCilindroCiottoloCircaCirrosiCitricoCittadinoCiuffoCivettaCivileClassicoClinicaCloroCoccoCodardoCodiceCoerenteCognomeCollareColmatoColoreColposoColtivatoColzaComaCometaCommandoComodoComputerComuneConcisoCondurreConfermaCongelareConiugeConnessoConoscereConsumoContinuoConvegnoCopertoCopioneCoppiaCopricapoCorazzaCordataCoricatoCorniceCorollaCorpoCorredoCorsiaCorteseCosmicoCostanteCotturaCovatoCratereCravattaCreatoCredereCremosoCrescitaCretaCricetoCrinaleCrisiCriticoCroceCronacaCrostataCrucialeCruscaCucireCuculoCuginoCullatoCupolaCuratoreCursoreCurvoCuscinoCustodeDadoDainoDalmataDamerinoDanielaDannosoDanzareDatatoDavantiDavveroDebuttoDecennioDecisoDeclinoDecolloDecretoDedicatoDefinitoDeformeDegnoDelegareDelfinoDelirioDeltaDemenzaDenotatoDentroDepositoDerapataDerivareDerogaDescrittoDesertoDesiderioDesumereDetersivoDevotoDiametroDicembreDiedroDifesoDiffusoDigerireDigitaleDiluvioDinamicoDinnanziDipintoDiplomaDipoloDiradareDireDirottoDirupoDisagioDiscretoDisfareDisgeloDispostoDistanzaDisumanoDitoDivanoDiveltoDividereDivoratoDobloneDocenteDoganaleDogmaDolceDomatoDomenicaDominareDondoloDonoDormireDoteDottoreDovutoDozzinaDragoDruidoDubbioDubitareDucaleDunaDuomoDupliceDuraturoEbanoEccessoEccoEclissiEconomiaEderaEdicolaEdileEditoriaEducareEgemoniaEgliEgoismoEgregioElaboratoElargireEleganteElencatoElettoElevareElficoElicaElmoElsaElusoEmanatoEmblemaEmessoEmiroEmotivoEmozioneEmpiricoEmuloEndemicoEnduroEnergiaEnfasiEnotecaEntrareEnzimaEpatiteEpilogoEpisodioEpocaleEppureEquatoreErarioErbaErbosoEredeEremitaErigereErmeticoEroeErosivoErranteEsagonoEsameEsanimeEsaudireEscaEsempioEsercitoEsibitoEsigenteEsistereEsitoEsofagoEsortatoEsosoEspansoEspressoEssenzaEssoEstesoEstimareEstoniaEstrosoEsultareEtilicoEtnicoEtruscoEttoEuclideoEuropaEvasoEvidenzaEvitatoEvolutoEvvivaFabbricaFaccendaFachiroFalcoFamigliaFanaleFanfaraFangoFantasmaFareFarfallaFarinosoFarmacoFasciaFastosoFasulloFaticareFatoFavolosoFebbreFecolaFedeFegatoFelpaFeltroFemminaFendereFenomenoFermentoFerroFertileFessuraFestivoFettaFeudoFiabaFiduciaFifaFiguratoFiloFinanzaFinestraFinireFioreFiscaleFisicoFiumeFlaconeFlamencoFleboFlemmaFloridoFluenteFluoroFobicoFocacciaFocosoFoderatoFoglioFolataFolcloreFolgoreFondenteFoneticoFoniaFontanaForbitoForchettaForestaFormicaFornaioForoFortezzaForzareFosfatoFossoFracassoFranaFrassinoFratelloFreccettaFrenataFrescoFrigoFrollinoFrondeFrugaleFruttaFucilataFucsiaFuggenteFulmineFulvoFumanteFumettoFumosoFuneFunzioneFuocoFurboFurgoneFuroreFusoFutileGabbianoGaffeGalateoGallinaGaloppoGamberoGammaGaranziaGarboGarofanoGarzoneGasdottoGasolioGastricoGattoGaudioGazeboGazzellaGecoGelatinaGelsoGemelloGemmatoGeneGenitoreGennaioGenotipoGergoGhepardoGhiaccioGhisaGialloGildaGineproGiocareGioielloGiornoGioveGiratoGironeGittataGiudizioGiuratoGiustoGlobuloGlutineGnomoGobbaGolfGomitoGommoneGonfioGonnaGovernoGracileGradoGraficoGrammoGrandeGrattareGravosoGraziaGrecaGreggeGrifoneGrigioGrinzaGrottaGruppoGuadagnoGuaioGuantoGuardareGufoGuidareIbernatoIconaIdenticoIdillioIdoloIdraIdricoIdrogenoIgieneIgnaroIgnoratoIlareIllesoIllogicoIlludereImballoImbevutoImboccoImbutoImmaneImmersoImmolatoImpaccoImpetoImpiegoImportoImprontaInalareInarcareInattivoIncantoIncendioInchinoIncisivoInclusoIncontroIncrocioIncuboIndagineIndiaIndoleIneditoInfattiInfilareInflittoIngaggioIngegnoIngleseIngordoIngrossoInnescoInodoreInoltrareInondatoInsanoInsettoInsiemeInsonniaInsulinaIntasatoInteroIntonacoIntuitoInumidireInvalidoInveceInvitoIperboleIpnoticoIpotesiIppicaIrideIrlandaIronicoIrrigatoIrrorareIsolatoIsotopoIstericoIstitutoIstriceItaliaIterareLabbroLabirintoLaccaLaceratoLacrimaLacunaLaddoveLagoLampoLancettaLanternaLardosoLargaLaringeLastraLatenzaLatinoLattugaLavagnaLavoroLegaleLeggeroLemboLentezzaLenzaLeoneLepreLesivoLessatoLestoLetteraleLevaLevigatoLiberoLidoLievitoLillaLimaturaLimitareLimpidoLineareLinguaLiquidoLiraLiricaLiscaLiteLitigioLivreaLocandaLodeLogicaLombareLondraLongevoLoquaceLorenzoLotoLotteriaLuceLucidatoLumacaLuminosoLungoLupoLuppoloLusingaLussoLuttoMacabroMacchinaMaceroMacinatoMadamaMagicoMagliaMagneteMagroMaiolicaMalafedeMalgradoMalintesoMalsanoMaltoMalumoreManaManciaMandorlaMangiareManifestoMannaroManovraMansardaMantideManubrioMappaMaratonaMarcireMarettaMarmoMarsupioMascheraMassaiaMastinoMaterassoMatricolaMattoneMaturoMazurcaMeandroMeccanicoMecenateMedesimoMeditareMegaMelassaMelisMelodiaMeningeMenoMensolaMercurioMerendaMerloMeschinoMeseMessereMestoloMetalloMetodoMettereMiagolareMicaMicelioMicheleMicroboMidolloMieleMiglioreMilanoMiliteMimosaMineraleMiniMinoreMirinoMirtilloMiscelaMissivaMistoMisurareMitezzaMitigareMitraMittenteMnemonicoModelloModificaModuloMoganoMogioMoleMolossoMonasteroMoncoMondinaMonetarioMonileMonotonoMonsoneMontatoMonvisoMoraMordereMorsicatoMostroMotivatoMotosegaMottoMovenzaMovimentoMozzoMuccaMucosaMuffaMughettoMugnaioMulattoMulinelloMultiploMummiaMuntoMuovereMuraleMusaMuscoloMusicaMutevoleMutoNababboNaftaNanometroNarcisoNariceNarratoNascereNastrareNaturaleNauticaNaviglioNebulosaNecrosiNegativoNegozioNemmenoNeofitaNerettoNervoNessunoNettunoNeutraleNeveNevroticoNicchiaNinfaNitidoNobileNocivoNodoNomeNominaNordicoNormaleNorvegeseNostranoNotareNotiziaNotturnoNovellaNucleoNullaNumeroNuovoNutrireNuvolaNuzialeOasiObbedireObbligoObeliscoOblioOboloObsoletoOccasioneOcchioOccidenteOccorrereOccultareOcraOculatoOdiernoOdorareOffertaOffrireOffuscatoOggettoOggiOgnunoOlandeseOlfattoOliatoOlivaOlogrammaOltreOmaggioOmbelicoOmbraOmegaOmissioneOndosoOnereOniceOnnivoroOnorevoleOntaOperatoOpinioneOppostoOracoloOrafoOrdineOrecchinoOreficeOrfanoOrganicoOrigineOrizzonteOrmaOrmeggioOrnativoOrologioOrrendoOrribileOrtensiaOrticaOrzataOrzoOsareOscurareOsmosiOspedaleOspiteOssaOssidareOstacoloOsteOtiteOtreOttagonoOttimoOttobreOvaleOvestOvinoOviparoOvocitoOvunqueOvviareOzioPacchettoPacePacificoPadellaPadronePaesePagaPaginaPalazzinaPalesarePallidoPaloPaludePandoroPannelloPaoloPaonazzoPapricaParabolaParcellaParerePargoloPariParlatoParolaPartireParvenzaParzialePassivoPasticcaPataccaPatologiaPattumePavonePeccatoPedalarePedonalePeggioPelosoPenarePendicePenisolaPennutoPenombraPensarePentolaPepePepitaPerbenePercorsoPerdonatoPerforarePergamenaPeriodoPermessoPernoPerplessoPersuasoPertugioPervasoPesatorePesistaPesoPestiferoPetaloPettinePetulantePezzoPiacerePiantaPiattinoPiccinoPicozzaPiegaPietraPifferoPigiamaPigolioPigroPilaPiliferoPillolaPilotaPimpantePinetaPinnaPinoloPioggiaPiomboPiramidePireticoPiritePirolisiPitonePizzicoPlaceboPlanarePlasmaPlatanoPlenarioPochezzaPoderosoPodismoPoesiaPoggiarePolentaPoligonoPollicePolmonitePolpettaPolsoPoltronaPolverePomicePomodoroPontePopolosoPorfidoPorosoPorporaPorrePortataPosaPositivoPossessoPostulatoPotassioPoterePranzoPrassiPraticaPreclusoPredicaPrefissoPregiatoPrelievoPremerePrenotarePreparatoPresenzaPretestoPrevalsoPrimaPrincipePrivatoProblemaProcuraProdurreProfumoProgettoProlungaPromessaPronomePropostaProrogaProtesoProvaPrudentePrugnaPruritoPsichePubblicoPudicaPugilatoPugnoPulcePulitoPulsantePuntarePupazzoPupillaPuroQuadroQualcosaQuasiQuerelaQuotaRaccoltoRaddoppioRadicaleRadunatoRafficaRagazzoRagioneRagnoRamarroRamingoRamoRandagioRantolareRapatoRapinaRappresoRasaturaRaschiatoRasenteRassegnaRastrelloRataRavvedutoRealeRecepireRecintoReclutaReconditoRecuperoRedditoRedimereRegalatoRegistroRegolaRegressoRelazioneRemareRemotoRennaReplicaReprimereReputareResaResidenteResponsoRestauroReteRetinaRetoricaRettificaRevocatoRiassuntoRibadireRibelleRibrezzoRicaricaRiccoRicevereRiciclatoRicordoRicredutoRidicoloRidurreRifasareRiflessoRiformaRifugioRigareRigettatoRighelloRilassatoRilevatoRimanereRimbalzoRimedioRimorchioRinascitaRincaroRinforzoRinnovoRinomatoRinsavitoRintoccoRinunciaRinvenireRiparatoRipetutoRipienoRiportareRipresaRipulireRisataRischioRiservaRisibileRisoRispettoRistoroRisultatoRisvoltoRitardoRitegnoRitmicoRitrovoRiunioneRivaRiversoRivincitaRivoltoRizomaRobaRoboticoRobustoRocciaRocoRodaggioRodereRoditoreRogitoRollioRomanticoRompereRonzioRosolareRospoRotanteRotondoRotulaRovescioRubizzoRubricaRugaRullinoRumineRumorosoRuoloRupeRussareRusticoSabatoSabbiareSabotatoSagomaSalassoSaldaturaSalgemmaSalivareSalmoneSaloneSaltareSalutoSalvoSapereSapidoSaporitoSaracenoSarcasmoSartoSassosoSatelliteSatiraSatolloSaturnoSavanaSavioSaziatoSbadiglioSbalzoSbancatoSbarraSbattereSbavareSbendareSbirciareSbloccatoSbocciatoSbrinareSbruffoneSbuffareScabrosoScadenzaScalaScambiareScandaloScapolaScarsoScatenareScavatoSceltoScenicoScettroSchedaSchienaSciarpaScienzaScindereScippoSciroppoScivoloSclerareScodellaScolpitoScompartoSconfortoScoprireScortaScossoneScozzeseScribaScrollareScrutinioScuderiaScultoreScuolaScuroScusareSdebitareSdoganareSeccaturaSecondoSedanoSeggiolaSegnalatoSegregatoSeguitoSelciatoSelettivoSellaSelvaggioSemaforoSembrareSemeSeminatoSempreSensoSentireSepoltoSequenzaSerataSerbatoSerenoSerioSerpenteSerraglioServireSestinaSetolaSettimanaSfaceloSfaldareSfamatoSfarzosoSfaticatoSferaSfidaSfilatoSfingeSfocatoSfoderareSfogoSfoltireSforzatoSfrattoSfruttatoSfuggitoSfumareSfusoSgabelloSgarbatoSgonfiareSgorbioSgrassatoSguardoSibiloSiccomeSierraSiglaSignoreSilenzioSillabaSimboloSimpaticoSimulatoSinfoniaSingoloSinistroSinoSintesiSinusoideSiparioSismaSistoleSituatoSlittaSlogaturaSlovenoSmarritoSmemoratoSmentitoSmeraldoSmilzoSmontareSmottatoSmussatoSnellireSnervatoSnodoSobbalzoSobrioSoccorsoSocialeSodaleSoffittoSognoSoldatoSolenneSolidoSollazzoSoloSolubileSolventeSomaticoSommaSondaSonettoSonniferoSopireSoppesoSopraSorgereSorpassoSorrisoSorsoSorteggioSorvolatoSospiroSostaSottileSpadaSpallaSpargereSpatolaSpaventoSpazzolaSpecieSpedireSpegnereSpelaturaSperanzaSpessoreSpettraleSpezzatoSpiaSpigolosoSpillatoSpinosoSpiraleSplendidoSportivoSposoSprangaSprecareSpronatoSpruzzoSpuntinoSquilloSradicareSrotolatoStabileStaccoStaffaStagnareStampatoStantioStarnutoStaseraStatutoSteloSteppaSterzoStilettoStimaStirpeStivaleStizzosoStonatoStoricoStrappoStregatoStriduloStrozzareStruttoStuccareStufoStupendoSubentroSuccosoSudoreSuggeritoSugoSultanoSuonareSuperboSupportoSurgelatoSurrogatoSussurroSuturaSvagareSvedeseSveglioSvelareSvenutoSveziaSviluppoSvistaSvizzeraSvoltaSvuotareTabaccoTabulatoTacciareTaciturnoTaleTalismanoTamponeTanninoTaraTardivoTargatoTariffaTarpareTartarugaTastoTatticoTavernaTavolataTazzaTecaTecnicoTelefonoTemerarioTempoTemutoTendoneTeneroTensioneTentacoloTeoremaTermeTerrazzoTerzettoTesiTesseratoTestatoTetroTettoiaTifareTigellaTimbroTintoTipicoTipografoTiraggioTiroTitanioTitoloTitubanteTizioTizzoneToccareTollerareToltoTombolaTomoTonfoTonsillaTopazioTopologiaToppaTorbaTornareTorroneTortoraToscanoTossireTostaturaTotanoTraboccoTracheaTrafilaTragediaTralcioTramontoTransitoTrapanoTrarreTraslocoTrattatoTraveTrecciaTremolioTrespoloTributoTrichecoTrifoglioTrilloTrinceaTrioTristezzaTrituratoTrivellaTrombaTronoTroppoTrottolaTrovareTruccatoTubaturaTuffatoTulipanoTumultoTunisiaTurbareTurchinoTutaTutelaUbicatoUccelloUccisoreUdireUditivoUffaUfficioUgualeUlisseUltimatoUmanoUmileUmorismoUncinettoUngereUnghereseUnicornoUnificatoUnisonoUnitarioUnteUovoUpupaUraganoUrgenzaUrloUsanzaUsatoUscitoUsignoloUsuraioUtensileUtilizzoUtopiaVacanteVaccinatoVagabondoVagliatoValangaValgoValicoVallettaValorosoValutareValvolaVampataVangareVanitosoVanoVantaggioVanveraVaporeVaranoVarcatoVarianteVascaVedettaVedovaVedutoVegetaleVeicoloVelcroVelinaVellutoVeloceVenatoVendemmiaVentoVeraceVerbaleVergognaVerificaVeroVerrucaVerticaleVescicaVessilloVestaleVeteranoVetrinaVetustoViandanteVibranteVicendaVichingoVicinanzaVidimareVigiliaVignetoVigoreVileVillanoViminiVincitoreViolaViperaVirgolaVirologoVirulentoViscosoVisioneVispoVissutoVisuraVitaVitelloVittimaVivandaVividoViziareVoceVogaVolatileVolereVolpeVoragineVulcanoZampognaZannaZappatoZatteraZavorraZefiroZelanteZeloZenzeroZerbinoZibettoZincoZirconeZittoZollaZoticoZuccheroZufoloZuluZuppa";
+ var wordlist = null;
+ function loadWords(lang) {
+ if (wordlist != null) {
+ return;
+ }
+ wordlist = words.replace(/([A-Z])/g, " $1").toLowerCase().substring(1).split(" ");
+ if (wordlist_1.Wordlist.check(lang) !== "0x5c1362d88fd4cf614a96f3234941d29f7d37c08c5292fde03bf62c2db6ff7620") {
+ wordlist = null;
+ throw new Error("BIP39 Wordlist for it (Italian) FAILED");
+ }
+ }
+ var LangIt = (
+ /** @class */
+ function(_super) {
+ __extends13(LangIt2, _super);
+ function LangIt2() {
+ return _super.call(this, "it") || this;
+ }
+ LangIt2.prototype.getWord = function(index) {
+ loadWords(this);
+ return wordlist[index];
+ };
+ LangIt2.prototype.getWordIndex = function(word) {
+ loadWords(this);
+ return wordlist.indexOf(word);
+ };
+ return LangIt2;
+ }(wordlist_1.Wordlist)
+ );
+ var langIt = new LangIt();
+ exports2.langIt = langIt;
+ wordlist_1.Wordlist.register(langIt);
+ }
+});
+
+// node_modules/@ethersproject/wordlists/lib/lang-zh.js
+var require_lang_zh = __commonJS({
+ "node_modules/@ethersproject/wordlists/lib/lang-zh.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.langZhTw = exports2.langZhCn = void 0;
+ var strings_1 = require_lib15();
+ var wordlist_1 = require_wordlist();
+ var data = "}aE#4A=Yv&co#4N#6G=cJ&SM#66|/Z#4t&kn~46#4K~4q%b9=IR#7l,mB#7W_X2*dl}Uo~7s}Uf&Iw#9c&cw~6O&H6&wx&IG%v5=IQ~8a&Pv#47$PR&50%Ko&QM&3l#5f,D9#4L|/H&tQ;v0~6n]nN> 2),
+ 128 + codes.indexOf(data[i * 3 + 1]),
+ 128 + codes.indexOf(data[i * 3 + 2])
+ ];
+ if (lang.locale === "zh_tw") {
+ var common = s % 4;
+ for (var i_1 = common; i_1 < 3; i_1++) {
+ bytes[i_1] = codes.indexOf(deltaData[deltaOffset++]) + (i_1 == 0 ? 228 : 128);
+ }
+ }
+ wordlist[lang.locale].push((0, strings_1.toUtf8String)(bytes));
+ }
+ if (wordlist_1.Wordlist.check(lang) !== Checks[lang.locale]) {
+ wordlist[lang.locale] = null;
+ throw new Error("BIP39 Wordlist for " + lang.locale + " (Chinese) FAILED");
+ }
+ }
+ var LangZh = (
+ /** @class */
+ function(_super) {
+ __extends13(LangZh2, _super);
+ function LangZh2(country) {
+ return _super.call(this, "zh_" + country) || this;
+ }
+ LangZh2.prototype.getWord = function(index) {
+ loadWords(this);
+ return wordlist[this.locale][index];
+ };
+ LangZh2.prototype.getWordIndex = function(word) {
+ loadWords(this);
+ return wordlist[this.locale].indexOf(word);
+ };
+ LangZh2.prototype.split = function(mnemonic) {
+ mnemonic = mnemonic.replace(/(?:\u3000| )+/g, "");
+ return mnemonic.split("");
+ };
+ return LangZh2;
+ }(wordlist_1.Wordlist)
+ );
+ var langZhCn = new LangZh("cn");
+ exports2.langZhCn = langZhCn;
+ wordlist_1.Wordlist.register(langZhCn);
+ wordlist_1.Wordlist.register(langZhCn, "zh");
+ var langZhTw = new LangZh("tw");
+ exports2.langZhTw = langZhTw;
+ wordlist_1.Wordlist.register(langZhTw);
+ }
+});
+
+// node_modules/@ethersproject/wordlists/lib/wordlists.js
+var require_wordlists = __commonJS({
+ "node_modules/@ethersproject/wordlists/lib/wordlists.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.wordlists = void 0;
+ var lang_cz_1 = require_lang_cz();
+ var lang_en_1 = require_lang_en();
+ var lang_es_1 = require_lang_es();
+ var lang_fr_1 = require_lang_fr();
+ var lang_ja_1 = require_lang_ja();
+ var lang_ko_1 = require_lang_ko();
+ var lang_it_1 = require_lang_it();
+ var lang_zh_1 = require_lang_zh();
+ exports2.wordlists = {
+ cz: lang_cz_1.langCz,
+ en: lang_en_1.langEn,
+ es: lang_es_1.langEs,
+ fr: lang_fr_1.langFr,
+ it: lang_it_1.langIt,
+ ja: lang_ja_1.langJa,
+ ko: lang_ko_1.langKo,
+ zh: lang_zh_1.langZhCn,
+ zh_cn: lang_zh_1.langZhCn,
+ zh_tw: lang_zh_1.langZhTw
+ };
+ }
+});
+
+// node_modules/@ethersproject/wordlists/lib/index.js
+var require_lib26 = __commonJS({
+ "node_modules/@ethersproject/wordlists/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.wordlists = exports2.Wordlist = exports2.logger = void 0;
+ var wordlist_1 = require_wordlist();
+ Object.defineProperty(exports2, "logger", { enumerable: true, get: function() {
+ return wordlist_1.logger;
+ } });
+ Object.defineProperty(exports2, "Wordlist", { enumerable: true, get: function() {
+ return wordlist_1.Wordlist;
+ } });
+ var wordlists_1 = require_wordlists();
+ Object.defineProperty(exports2, "wordlists", { enumerable: true, get: function() {
+ return wordlists_1.wordlists;
+ } });
+ }
+});
+
+// node_modules/@ethersproject/hdnode/lib/_version.js
+var require_version17 = __commonJS({
+ "node_modules/@ethersproject/hdnode/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "hdnode/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/hdnode/lib/index.js
+var require_lib27 = __commonJS({
+ "node_modules/@ethersproject/hdnode/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getAccountPath = exports2.isValidMnemonic = exports2.entropyToMnemonic = exports2.mnemonicToEntropy = exports2.mnemonicToSeed = exports2.HDNode = exports2.defaultPath = void 0;
+ var basex_1 = require_lib23();
+ var bytes_1 = require_lib6();
+ var bignumber_1 = require_lib7();
+ var strings_1 = require_lib15();
+ var pbkdf2_1 = require_lib24();
+ var properties_1 = require_lib12();
+ var signing_key_1 = require_lib13();
+ var sha2_1 = require_lib25();
+ var transactions_1 = require_lib14();
+ var wordlists_1 = require_lib26();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version17();
+ var logger = new logger_1.Logger(_version_1.version);
+ var N = bignumber_1.BigNumber.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141");
+ var MasterSecret = (0, strings_1.toUtf8Bytes)("Bitcoin seed");
+ var HardenedBit = 2147483648;
+ function getUpperMask(bits) {
+ return (1 << bits) - 1 << 8 - bits;
+ }
+ function getLowerMask(bits) {
+ return (1 << bits) - 1;
+ }
+ function bytes32(value) {
+ return (0, bytes_1.hexZeroPad)((0, bytes_1.hexlify)(value), 32);
+ }
+ function base58check(data) {
+ return basex_1.Base58.encode((0, bytes_1.concat)([data, (0, bytes_1.hexDataSlice)((0, sha2_1.sha256)((0, sha2_1.sha256)(data)), 0, 4)]));
+ }
+ function getWordlist(wordlist) {
+ if (wordlist == null) {
+ return wordlists_1.wordlists["en"];
+ }
+ if (typeof wordlist === "string") {
+ var words = wordlists_1.wordlists[wordlist];
+ if (words == null) {
+ logger.throwArgumentError("unknown locale", "wordlist", wordlist);
+ }
+ return words;
+ }
+ return wordlist;
+ }
+ var _constructorGuard = {};
+ exports2.defaultPath = "m/44'/60'/0'/0/0";
+ var HDNode = (
+ /** @class */
+ function() {
+ function HDNode2(constructorGuard, privateKey, publicKey, parentFingerprint, chainCode, index, depth, mnemonicOrPath) {
+ if (constructorGuard !== _constructorGuard) {
+ throw new Error("HDNode constructor cannot be called directly");
+ }
+ if (privateKey) {
+ var signingKey = new signing_key_1.SigningKey(privateKey);
+ (0, properties_1.defineReadOnly)(this, "privateKey", signingKey.privateKey);
+ (0, properties_1.defineReadOnly)(this, "publicKey", signingKey.compressedPublicKey);
+ } else {
+ (0, properties_1.defineReadOnly)(this, "privateKey", null);
+ (0, properties_1.defineReadOnly)(this, "publicKey", (0, bytes_1.hexlify)(publicKey));
+ }
+ (0, properties_1.defineReadOnly)(this, "parentFingerprint", parentFingerprint);
+ (0, properties_1.defineReadOnly)(this, "fingerprint", (0, bytes_1.hexDataSlice)((0, sha2_1.ripemd160)((0, sha2_1.sha256)(this.publicKey)), 0, 4));
+ (0, properties_1.defineReadOnly)(this, "address", (0, transactions_1.computeAddress)(this.publicKey));
+ (0, properties_1.defineReadOnly)(this, "chainCode", chainCode);
+ (0, properties_1.defineReadOnly)(this, "index", index);
+ (0, properties_1.defineReadOnly)(this, "depth", depth);
+ if (mnemonicOrPath == null) {
+ (0, properties_1.defineReadOnly)(this, "mnemonic", null);
+ (0, properties_1.defineReadOnly)(this, "path", null);
+ } else if (typeof mnemonicOrPath === "string") {
+ (0, properties_1.defineReadOnly)(this, "mnemonic", null);
+ (0, properties_1.defineReadOnly)(this, "path", mnemonicOrPath);
+ } else {
+ (0, properties_1.defineReadOnly)(this, "mnemonic", mnemonicOrPath);
+ (0, properties_1.defineReadOnly)(this, "path", mnemonicOrPath.path);
+ }
+ }
+ Object.defineProperty(HDNode2.prototype, "extendedKey", {
+ get: function() {
+ if (this.depth >= 256) {
+ throw new Error("Depth too large!");
+ }
+ return base58check((0, bytes_1.concat)([
+ this.privateKey != null ? "0x0488ADE4" : "0x0488B21E",
+ (0, bytes_1.hexlify)(this.depth),
+ this.parentFingerprint,
+ (0, bytes_1.hexZeroPad)((0, bytes_1.hexlify)(this.index), 4),
+ this.chainCode,
+ this.privateKey != null ? (0, bytes_1.concat)(["0x00", this.privateKey]) : this.publicKey
+ ]));
+ },
+ enumerable: false,
+ configurable: true
+ });
+ HDNode2.prototype.neuter = function() {
+ return new HDNode2(_constructorGuard, null, this.publicKey, this.parentFingerprint, this.chainCode, this.index, this.depth, this.path);
+ };
+ HDNode2.prototype._derive = function(index) {
+ if (index > 4294967295) {
+ throw new Error("invalid index - " + String(index));
+ }
+ var path = this.path;
+ if (path) {
+ path += "/" + (index & ~HardenedBit);
+ }
+ var data = new Uint8Array(37);
+ if (index & HardenedBit) {
+ if (!this.privateKey) {
+ throw new Error("cannot derive child of neutered node");
+ }
+ data.set((0, bytes_1.arrayify)(this.privateKey), 1);
+ if (path) {
+ path += "'";
+ }
+ } else {
+ data.set((0, bytes_1.arrayify)(this.publicKey));
+ }
+ for (var i = 24; i >= 0; i -= 8) {
+ data[33 + (i >> 3)] = index >> 24 - i & 255;
+ }
+ var I = (0, bytes_1.arrayify)((0, sha2_1.computeHmac)(sha2_1.SupportedAlgorithm.sha512, this.chainCode, data));
+ var IL = I.slice(0, 32);
+ var IR = I.slice(32);
+ var ki = null;
+ var Ki = null;
+ if (this.privateKey) {
+ ki = bytes32(bignumber_1.BigNumber.from(IL).add(this.privateKey).mod(N));
+ } else {
+ var ek = new signing_key_1.SigningKey((0, bytes_1.hexlify)(IL));
+ Ki = ek._addPoint(this.publicKey);
+ }
+ var mnemonicOrPath = path;
+ var srcMnemonic = this.mnemonic;
+ if (srcMnemonic) {
+ mnemonicOrPath = Object.freeze({
+ phrase: srcMnemonic.phrase,
+ path,
+ locale: srcMnemonic.locale || "en"
+ });
+ }
+ return new HDNode2(_constructorGuard, ki, Ki, this.fingerprint, bytes32(IR), index, this.depth + 1, mnemonicOrPath);
+ };
+ HDNode2.prototype.derivePath = function(path) {
+ var components = path.split("/");
+ if (components.length === 0 || components[0] === "m" && this.depth !== 0) {
+ throw new Error("invalid path - " + path);
+ }
+ if (components[0] === "m") {
+ components.shift();
+ }
+ var result = this;
+ for (var i = 0; i < components.length; i++) {
+ var component = components[i];
+ if (component.match(/^[0-9]+'$/)) {
+ var index = parseInt(component.substring(0, component.length - 1));
+ if (index >= HardenedBit) {
+ throw new Error("invalid path index - " + component);
+ }
+ result = result._derive(HardenedBit + index);
+ } else if (component.match(/^[0-9]+$/)) {
+ var index = parseInt(component);
+ if (index >= HardenedBit) {
+ throw new Error("invalid path index - " + component);
+ }
+ result = result._derive(index);
+ } else {
+ throw new Error("invalid path component - " + component);
+ }
+ }
+ return result;
+ };
+ HDNode2._fromSeed = function(seed, mnemonic) {
+ var seedArray = (0, bytes_1.arrayify)(seed);
+ if (seedArray.length < 16 || seedArray.length > 64) {
+ throw new Error("invalid seed");
+ }
+ var I = (0, bytes_1.arrayify)((0, sha2_1.computeHmac)(sha2_1.SupportedAlgorithm.sha512, MasterSecret, seedArray));
+ return new HDNode2(_constructorGuard, bytes32(I.slice(0, 32)), null, "0x00000000", bytes32(I.slice(32)), 0, 0, mnemonic);
+ };
+ HDNode2.fromMnemonic = function(mnemonic, password, wordlist) {
+ wordlist = getWordlist(wordlist);
+ mnemonic = entropyToMnemonic(mnemonicToEntropy(mnemonic, wordlist), wordlist);
+ return HDNode2._fromSeed(mnemonicToSeed(mnemonic, password), {
+ phrase: mnemonic,
+ path: "m",
+ locale: wordlist.locale
+ });
+ };
+ HDNode2.fromSeed = function(seed) {
+ return HDNode2._fromSeed(seed, null);
+ };
+ HDNode2.fromExtendedKey = function(extendedKey) {
+ var bytes = basex_1.Base58.decode(extendedKey);
+ if (bytes.length !== 82 || base58check(bytes.slice(0, 78)) !== extendedKey) {
+ logger.throwArgumentError("invalid extended key", "extendedKey", "[REDACTED]");
+ }
+ var depth = bytes[4];
+ var parentFingerprint = (0, bytes_1.hexlify)(bytes.slice(5, 9));
+ var index = parseInt((0, bytes_1.hexlify)(bytes.slice(9, 13)).substring(2), 16);
+ var chainCode = (0, bytes_1.hexlify)(bytes.slice(13, 45));
+ var key = bytes.slice(45, 78);
+ switch ((0, bytes_1.hexlify)(bytes.slice(0, 4))) {
+ case "0x0488b21e":
+ case "0x043587cf":
+ return new HDNode2(_constructorGuard, null, (0, bytes_1.hexlify)(key), parentFingerprint, chainCode, index, depth, null);
+ case "0x0488ade4":
+ case "0x04358394 ":
+ if (key[0] !== 0) {
+ break;
+ }
+ return new HDNode2(_constructorGuard, (0, bytes_1.hexlify)(key.slice(1)), null, parentFingerprint, chainCode, index, depth, null);
+ }
+ return logger.throwArgumentError("invalid extended key", "extendedKey", "[REDACTED]");
+ };
+ return HDNode2;
+ }()
+ );
+ exports2.HDNode = HDNode;
+ function mnemonicToSeed(mnemonic, password) {
+ if (!password) {
+ password = "";
+ }
+ var salt = (0, strings_1.toUtf8Bytes)("mnemonic" + password, strings_1.UnicodeNormalizationForm.NFKD);
+ return (0, pbkdf2_1.pbkdf2)((0, strings_1.toUtf8Bytes)(mnemonic, strings_1.UnicodeNormalizationForm.NFKD), salt, 2048, 64, "sha512");
+ }
+ exports2.mnemonicToSeed = mnemonicToSeed;
+ function mnemonicToEntropy(mnemonic, wordlist) {
+ wordlist = getWordlist(wordlist);
+ logger.checkNormalize();
+ var words = wordlist.split(mnemonic);
+ if (words.length % 3 !== 0) {
+ throw new Error("invalid mnemonic");
+ }
+ var entropy = (0, bytes_1.arrayify)(new Uint8Array(Math.ceil(11 * words.length / 8)));
+ var offset = 0;
+ for (var i = 0; i < words.length; i++) {
+ var index = wordlist.getWordIndex(words[i].normalize("NFKD"));
+ if (index === -1) {
+ throw new Error("invalid mnemonic");
+ }
+ for (var bit = 0; bit < 11; bit++) {
+ if (index & 1 << 10 - bit) {
+ entropy[offset >> 3] |= 1 << 7 - offset % 8;
+ }
+ offset++;
+ }
+ }
+ var entropyBits = 32 * words.length / 3;
+ var checksumBits = words.length / 3;
+ var checksumMask = getUpperMask(checksumBits);
+ var checksum = (0, bytes_1.arrayify)((0, sha2_1.sha256)(entropy.slice(0, entropyBits / 8)))[0] & checksumMask;
+ if (checksum !== (entropy[entropy.length - 1] & checksumMask)) {
+ throw new Error("invalid checksum");
+ }
+ return (0, bytes_1.hexlify)(entropy.slice(0, entropyBits / 8));
+ }
+ exports2.mnemonicToEntropy = mnemonicToEntropy;
+ function entropyToMnemonic(entropy, wordlist) {
+ wordlist = getWordlist(wordlist);
+ entropy = (0, bytes_1.arrayify)(entropy);
+ if (entropy.length % 4 !== 0 || entropy.length < 16 || entropy.length > 32) {
+ throw new Error("invalid entropy");
+ }
+ var indices = [0];
+ var remainingBits = 11;
+ for (var i = 0; i < entropy.length; i++) {
+ if (remainingBits > 8) {
+ indices[indices.length - 1] <<= 8;
+ indices[indices.length - 1] |= entropy[i];
+ remainingBits -= 8;
+ } else {
+ indices[indices.length - 1] <<= remainingBits;
+ indices[indices.length - 1] |= entropy[i] >> 8 - remainingBits;
+ indices.push(entropy[i] & getLowerMask(8 - remainingBits));
+ remainingBits += 3;
+ }
+ }
+ var checksumBits = entropy.length / 4;
+ var checksum = (0, bytes_1.arrayify)((0, sha2_1.sha256)(entropy))[0] & getUpperMask(checksumBits);
+ indices[indices.length - 1] <<= checksumBits;
+ indices[indices.length - 1] |= checksum >> 8 - checksumBits;
+ return wordlist.join(indices.map(function(index) {
+ return wordlist.getWord(index);
+ }));
+ }
+ exports2.entropyToMnemonic = entropyToMnemonic;
+ function isValidMnemonic(mnemonic, wordlist) {
+ try {
+ mnemonicToEntropy(mnemonic, wordlist);
+ return true;
+ } catch (error) {
+ }
+ return false;
+ }
+ exports2.isValidMnemonic = isValidMnemonic;
+ function getAccountPath(index) {
+ if (typeof index !== "number" || index < 0 || index >= HardenedBit || index % 1) {
+ logger.throwArgumentError("invalid account index", "index", index);
+ }
+ return "m/44'/60'/" + index + "'/0/0";
+ }
+ exports2.getAccountPath = getAccountPath;
+ }
+});
+
+// node_modules/@ethersproject/random/lib/random.js
+var require_random = __commonJS({
+ "node_modules/@ethersproject/random/lib/random.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.randomBytes = void 0;
+ var crypto_1 = require("crypto");
+ var bytes_1 = require_lib6();
+ function randomBytes(length) {
+ return (0, bytes_1.arrayify)((0, crypto_1.randomBytes)(length));
+ }
+ exports2.randomBytes = randomBytes;
+ }
+});
+
+// node_modules/@ethersproject/random/lib/shuffle.js
+var require_shuffle = __commonJS({
+ "node_modules/@ethersproject/random/lib/shuffle.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.shuffled = void 0;
+ function shuffled(array) {
+ array = array.slice();
+ for (var i = array.length - 1; i > 0; i--) {
+ var j = Math.floor(Math.random() * (i + 1));
+ var tmp = array[i];
+ array[i] = array[j];
+ array[j] = tmp;
+ }
+ return array;
+ }
+ exports2.shuffled = shuffled;
+ }
+});
+
+// node_modules/@ethersproject/random/lib/index.js
+var require_lib28 = __commonJS({
+ "node_modules/@ethersproject/random/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.shuffled = exports2.randomBytes = void 0;
+ var random_1 = require_random();
+ Object.defineProperty(exports2, "randomBytes", { enumerable: true, get: function() {
+ return random_1.randomBytes;
+ } });
+ var shuffle_1 = require_shuffle();
+ Object.defineProperty(exports2, "shuffled", { enumerable: true, get: function() {
+ return shuffle_1.shuffled;
+ } });
+ }
+});
+
+// node_modules/aes-js/index.js
+var require_aes_js = __commonJS({
+ "node_modules/aes-js/index.js"(exports2, module2) {
+ "use strict";
+ (function(root) {
+ function checkInt(value) {
+ return parseInt(value) === value;
+ }
+ function checkInts(arrayish) {
+ if (!checkInt(arrayish.length)) {
+ return false;
+ }
+ for (var i = 0; i < arrayish.length; i++) {
+ if (!checkInt(arrayish[i]) || arrayish[i] < 0 || arrayish[i] > 255) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function coerceArray(arg, copy) {
+ if (arg.buffer && ArrayBuffer.isView(arg) && arg.name === "Uint8Array") {
+ if (copy) {
+ if (arg.slice) {
+ arg = arg.slice();
+ } else {
+ arg = Array.prototype.slice.call(arg);
+ }
+ }
+ return arg;
+ }
+ if (Array.isArray(arg)) {
+ if (!checkInts(arg)) {
+ throw new Error("Array contains invalid value: " + arg);
+ }
+ return new Uint8Array(arg);
+ }
+ if (checkInt(arg.length) && checkInts(arg)) {
+ return new Uint8Array(arg);
+ }
+ throw new Error("unsupported array-like object");
+ }
+ function createArray(length) {
+ return new Uint8Array(length);
+ }
+ function copyArray(sourceArray, targetArray, targetStart, sourceStart, sourceEnd) {
+ if (sourceStart != null || sourceEnd != null) {
+ if (sourceArray.slice) {
+ sourceArray = sourceArray.slice(sourceStart, sourceEnd);
+ } else {
+ sourceArray = Array.prototype.slice.call(sourceArray, sourceStart, sourceEnd);
+ }
+ }
+ targetArray.set(sourceArray, targetStart);
+ }
+ var convertUtf8 = /* @__PURE__ */ function() {
+ function toBytes(text) {
+ var result = [], i = 0;
+ text = encodeURI(text);
+ while (i < text.length) {
+ var c = text.charCodeAt(i++);
+ if (c === 37) {
+ result.push(parseInt(text.substr(i, 2), 16));
+ i += 2;
+ } else {
+ result.push(c);
+ }
+ }
+ return coerceArray(result);
+ }
+ function fromBytes(bytes) {
+ var result = [], i = 0;
+ while (i < bytes.length) {
+ var c = bytes[i];
+ if (c < 128) {
+ result.push(String.fromCharCode(c));
+ i++;
+ } else if (c > 191 && c < 224) {
+ result.push(String.fromCharCode((c & 31) << 6 | bytes[i + 1] & 63));
+ i += 2;
+ } else {
+ result.push(String.fromCharCode((c & 15) << 12 | (bytes[i + 1] & 63) << 6 | bytes[i + 2] & 63));
+ i += 3;
+ }
+ }
+ return result.join("");
+ }
+ return {
+ toBytes,
+ fromBytes
+ };
+ }();
+ var convertHex = /* @__PURE__ */ function() {
+ function toBytes(text) {
+ var result = [];
+ for (var i = 0; i < text.length; i += 2) {
+ result.push(parseInt(text.substr(i, 2), 16));
+ }
+ return result;
+ }
+ var Hex = "0123456789abcdef";
+ function fromBytes(bytes) {
+ var result = [];
+ for (var i = 0; i < bytes.length; i++) {
+ var v = bytes[i];
+ result.push(Hex[(v & 240) >> 4] + Hex[v & 15]);
+ }
+ return result.join("");
+ }
+ return {
+ toBytes,
+ fromBytes
+ };
+ }();
+ var numberOfRounds = { 16: 10, 24: 12, 32: 14 };
+ var rcon = [1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145];
+ var S = [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22];
+ var Si = [82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125];
+ var T1 = [3328402341, 4168907908, 4000806809, 4135287693, 4294111757, 3597364157, 3731845041, 2445657428, 1613770832, 33620227, 3462883241, 1445669757, 3892248089, 3050821474, 1303096294, 3967186586, 2412431941, 528646813, 2311702848, 4202528135, 4026202645, 2992200171, 2387036105, 4226871307, 1101901292, 3017069671, 1604494077, 1169141738, 597466303, 1403299063, 3832705686, 2613100635, 1974974402, 3791519004, 1033081774, 1277568618, 1815492186, 2118074177, 4126668546, 2211236943, 1748251740, 1369810420, 3521504564, 4193382664, 3799085459, 2883115123, 1647391059, 706024767, 134480908, 2512897874, 1176707941, 2646852446, 806885416, 932615841, 168101135, 798661301, 235341577, 605164086, 461406363, 3756188221, 3454790438, 1311188841, 2142417613, 3933566367, 302582043, 495158174, 1479289972, 874125870, 907746093, 3698224818, 3025820398, 1537253627, 2756858614, 1983593293, 3084310113, 2108928974, 1378429307, 3722699582, 1580150641, 327451799, 2790478837, 3117535592, 0, 3253595436, 1075847264, 3825007647, 2041688520, 3059440621, 3563743934, 2378943302, 1740553945, 1916352843, 2487896798, 2555137236, 2958579944, 2244988746, 3151024235, 3320835882, 1336584933, 3992714006, 2252555205, 2588757463, 1714631509, 293963156, 2319795663, 3925473552, 67240454, 4269768577, 2689618160, 2017213508, 631218106, 1269344483, 2723238387, 1571005438, 2151694528, 93294474, 1066570413, 563977660, 1882732616, 4059428100, 1673313503, 2008463041, 2950355573, 1109467491, 537923632, 3858759450, 4260623118, 3218264685, 2177748300, 403442708, 638784309, 3287084079, 3193921505, 899127202, 2286175436, 773265209, 2479146071, 1437050866, 4236148354, 2050833735, 3362022572, 3126681063, 840505643, 3866325909, 3227541664, 427917720, 2655997905, 2749160575, 1143087718, 1412049534, 999329963, 193497219, 2353415882, 3354324521, 1807268051, 672404540, 2816401017, 3160301282, 369822493, 2916866934, 3688947771, 1681011286, 1949973070, 336202270, 2454276571, 201721354, 1210328172, 3093060836, 2680341085, 3184776046, 1135389935, 3294782118, 965841320, 831886756, 3554993207, 4068047243, 3588745010, 2345191491, 1849112409, 3664604599, 26054028, 2983581028, 2622377682, 1235855840, 3630984372, 2891339514, 4092916743, 3488279077, 3395642799, 4101667470, 1202630377, 268961816, 1874508501, 4034427016, 1243948399, 1546530418, 941366308, 1470539505, 1941222599, 2546386513, 3421038627, 2715671932, 3899946140, 1042226977, 2521517021, 1639824860, 227249030, 260737669, 3765465232, 2084453954, 1907733956, 3429263018, 2420656344, 100860677, 4160157185, 470683154, 3261161891, 1781871967, 2924959737, 1773779408, 394692241, 2579611992, 974986535, 664706745, 3655459128, 3958962195, 731420851, 571543859, 3530123707, 2849626480, 126783113, 865375399, 765172662, 1008606754, 361203602, 3387549984, 2278477385, 2857719295, 1344809080, 2782912378, 59542671, 1503764984, 160008576, 437062935, 1707065306, 3622233649, 2218934982, 3496503480, 2185314755, 697932208, 1512910199, 504303377, 2075177163, 2824099068, 1841019862, 739644986];
+ var T2 = [2781242211, 2230877308, 2582542199, 2381740923, 234877682, 3184946027, 2984144751, 1418839493, 1348481072, 50462977, 2848876391, 2102799147, 434634494, 1656084439, 3863849899, 2599188086, 1167051466, 2636087938, 1082771913, 2281340285, 368048890, 3954334041, 3381544775, 201060592, 3963727277, 1739838676, 4250903202, 3930435503, 3206782108, 4149453988, 2531553906, 1536934080, 3262494647, 484572669, 2923271059, 1783375398, 1517041206, 1098792767, 49674231, 1334037708, 1550332980, 4098991525, 886171109, 150598129, 2481090929, 1940642008, 1398944049, 1059722517, 201851908, 1385547719, 1699095331, 1587397571, 674240536, 2704774806, 252314885, 3039795866, 151914247, 908333586, 2602270848, 1038082786, 651029483, 1766729511, 3447698098, 2682942837, 454166793, 2652734339, 1951935532, 775166490, 758520603, 3000790638, 4004797018, 4217086112, 4137964114, 1299594043, 1639438038, 3464344499, 2068982057, 1054729187, 1901997871, 2534638724, 4121318227, 1757008337, 0, 750906861, 1614815264, 535035132, 3363418545, 3988151131, 3201591914, 1183697867, 3647454910, 1265776953, 3734260298, 3566750796, 3903871064, 1250283471, 1807470800, 717615087, 3847203498, 384695291, 3313910595, 3617213773, 1432761139, 2484176261, 3481945413, 283769337, 100925954, 2180939647, 4037038160, 1148730428, 3123027871, 3813386408, 4087501137, 4267549603, 3229630528, 2315620239, 2906624658, 3156319645, 1215313976, 82966005, 3747855548, 3245848246, 1974459098, 1665278241, 807407632, 451280895, 251524083, 1841287890, 1283575245, 337120268, 891687699, 801369324, 3787349855, 2721421207, 3431482436, 959321879, 1469301956, 4065699751, 2197585534, 1199193405, 2898814052, 3887750493, 724703513, 2514908019, 2696962144, 2551808385, 3516813135, 2141445340, 1715741218, 2119445034, 2872807568, 2198571144, 3398190662, 700968686, 3547052216, 1009259540, 2041044702, 3803995742, 487983883, 1991105499, 1004265696, 1449407026, 1316239930, 504629770, 3683797321, 168560134, 1816667172, 3837287516, 1570751170, 1857934291, 4014189740, 2797888098, 2822345105, 2754712981, 936633572, 2347923833, 852879335, 1133234376, 1500395319, 3084545389, 2348912013, 1689376213, 3533459022, 3762923945, 3034082412, 4205598294, 133428468, 634383082, 2949277029, 2398386810, 3913789102, 403703816, 3580869306, 2297460856, 1867130149, 1918643758, 607656988, 4049053350, 3346248884, 1368901318, 600565992, 2090982877, 2632479860, 557719327, 3717614411, 3697393085, 2249034635, 2232388234, 2430627952, 1115438654, 3295786421, 2865522278, 3633334344, 84280067, 33027830, 303828494, 2747425121, 1600795957, 4188952407, 3496589753, 2434238086, 1486471617, 658119965, 3106381470, 953803233, 334231800, 3005978776, 857870609, 3151128937, 1890179545, 2298973838, 2805175444, 3056442267, 574365214, 2450884487, 550103529, 1233637070, 4289353045, 2018519080, 2057691103, 2399374476, 4166623649, 2148108681, 387583245, 3664101311, 836232934, 3330556482, 3100665960, 3280093505, 2955516313, 2002398509, 287182607, 3413881008, 4238890068, 3597515707, 975967766];
+ var T3 = [1671808611, 2089089148, 2006576759, 2072901243, 4061003762, 1807603307, 1873927791, 3310653893, 810573872, 16974337, 1739181671, 729634347, 4263110654, 3613570519, 2883997099, 1989864566, 3393556426, 2191335298, 3376449993, 2106063485, 4195741690, 1508618841, 1204391495, 4027317232, 2917941677, 3563566036, 2734514082, 2951366063, 2629772188, 2767672228, 1922491506, 3227229120, 3082974647, 4246528509, 2477669779, 644500518, 911895606, 1061256767, 4144166391, 3427763148, 878471220, 2784252325, 3845444069, 4043897329, 1905517169, 3631459288, 827548209, 356461077, 67897348, 3344078279, 593839651, 3277757891, 405286936, 2527147926, 84871685, 2595565466, 118033927, 305538066, 2157648768, 3795705826, 3945188843, 661212711, 2999812018, 1973414517, 152769033, 2208177539, 745822252, 439235610, 455947803, 1857215598, 1525593178, 2700827552, 1391895634, 994932283, 3596728278, 3016654259, 695947817, 3812548067, 795958831, 2224493444, 1408607827, 3513301457, 0, 3979133421, 543178784, 4229948412, 2982705585, 1542305371, 1790891114, 3410398667, 3201918910, 961245753, 1256100938, 1289001036, 1491644504, 3477767631, 3496721360, 4012557807, 2867154858, 4212583931, 1137018435, 1305975373, 861234739, 2241073541, 1171229253, 4178635257, 33948674, 2139225727, 1357946960, 1011120188, 2679776671, 2833468328, 1374921297, 2751356323, 1086357568, 2408187279, 2460827538, 2646352285, 944271416, 4110742005, 3168756668, 3066132406, 3665145818, 560153121, 271589392, 4279952895, 4077846003, 3530407890, 3444343245, 202643468, 322250259, 3962553324, 1608629855, 2543990167, 1154254916, 389623319, 3294073796, 2817676711, 2122513534, 1028094525, 1689045092, 1575467613, 422261273, 1939203699, 1621147744, 2174228865, 1339137615, 3699352540, 577127458, 712922154, 2427141008, 2290289544, 1187679302, 3995715566, 3100863416, 339486740, 3732514782, 1591917662, 186455563, 3681988059, 3762019296, 844522546, 978220090, 169743370, 1239126601, 101321734, 611076132, 1558493276, 3260915650, 3547250131, 2901361580, 1655096418, 2443721105, 2510565781, 3828863972, 2039214713, 3878868455, 3359869896, 928607799, 1840765549, 2374762893, 3580146133, 1322425422, 2850048425, 1823791212, 1459268694, 4094161908, 3928346602, 1706019429, 2056189050, 2934523822, 135794696, 3134549946, 2022240376, 628050469, 779246638, 472135708, 2800834470, 3032970164, 3327236038, 3894660072, 3715932637, 1956440180, 522272287, 1272813131, 3185336765, 2340818315, 2323976074, 1888542832, 1044544574, 3049550261, 1722469478, 1222152264, 50660867, 4127324150, 236067854, 1638122081, 895445557, 1475980887, 3117443513, 2257655686, 3243809217, 489110045, 2662934430, 3778599393, 4162055160, 2561878936, 288563729, 1773916777, 3648039385, 2391345038, 2493985684, 2612407707, 505560094, 2274497927, 3911240169, 3460925390, 1442818645, 678973480, 3749357023, 2358182796, 2717407649, 2306869641, 219617805, 3218761151, 3862026214, 1120306242, 1756942440, 1103331905, 2578459033, 762796589, 252780047, 2966125488, 1425844308, 3151392187, 372911126];
+ var T4 = [1667474886, 2088535288, 2004326894, 2071694838, 4075949567, 1802223062, 1869591006, 3318043793, 808472672, 16843522, 1734846926, 724270422, 4278065639, 3621216949, 2880169549, 1987484396, 3402253711, 2189597983, 3385409673, 2105378810, 4210693615, 1499065266, 1195886990, 4042263547, 2913856577, 3570689971, 2728590687, 2947541573, 2627518243, 2762274643, 1920112356, 3233831835, 3082273397, 4261223649, 2475929149, 640051788, 909531756, 1061110142, 4160160501, 3435941763, 875846760, 2779116625, 3857003729, 4059105529, 1903268834, 3638064043, 825316194, 353713962, 67374088, 3351728789, 589522246, 3284360861, 404236336, 2526454071, 84217610, 2593830191, 117901582, 303183396, 2155911963, 3806477791, 3958056653, 656894286, 2998062463, 1970642922, 151591698, 2206440989, 741110872, 437923380, 454765878, 1852748508, 1515908788, 2694904667, 1381168804, 993742198, 3604373943, 3014905469, 690584402, 3823320797, 791638366, 2223281939, 1398011302, 3520161977, 0, 3991743681, 538992704, 4244381667, 2981218425, 1532751286, 1785380564, 3419096717, 3200178535, 960056178, 1246420628, 1280103576, 1482221744, 3486468741, 3503319995, 4025428677, 2863326543, 4227536621, 1128514950, 1296947098, 859002214, 2240123921, 1162203018, 4193849577, 33687044, 2139062782, 1347481760, 1010582648, 2678045221, 2829640523, 1364325282, 2745433693, 1077985408, 2408548869, 2459086143, 2644360225, 943212656, 4126475505, 3166494563, 3065430391, 3671750063, 555836226, 269496352, 4294908645, 4092792573, 3537006015, 3452783745, 202118168, 320025894, 3974901699, 1600119230, 2543297077, 1145359496, 387397934, 3301201811, 2812801621, 2122220284, 1027426170, 1684319432, 1566435258, 421079858, 1936954854, 1616945344, 2172753945, 1330631070, 3705438115, 572679748, 707427924, 2425400123, 2290647819, 1179044492, 4008585671, 3099120491, 336870440, 3739122087, 1583276732, 185277718, 3688593069, 3772791771, 842159716, 976899700, 168435220, 1229577106, 101059084, 606366792, 1549591736, 3267517855, 3553849021, 2897014595, 1650632388, 2442242105, 2509612081, 3840161747, 2038008818, 3890688725, 3368567691, 926374254, 1835907034, 2374863873, 3587531953, 1313788572, 2846482505, 1819063512, 1448540844, 4109633523, 3941213647, 1701162954, 2054852340, 2930698567, 134748176, 3132806511, 2021165296, 623210314, 774795868, 471606328, 2795958615, 3031746419, 3334885783, 3907527627, 3722280097, 1953799400, 522133822, 1263263126, 3183336545, 2341176845, 2324333839, 1886425312, 1044267644, 3048588401, 1718004428, 1212733584, 50529542, 4143317495, 235803164, 1633788866, 892690282, 1465383342, 3115962473, 2256965911, 3250673817, 488449850, 2661202215, 3789633753, 4177007595, 2560144171, 286339874, 1768537042, 3654906025, 2391705863, 2492770099, 2610673197, 505291324, 2273808917, 3924369609, 3469625735, 1431699370, 673740880, 3755965093, 2358021891, 2711746649, 2307489801, 218961690, 3217021541, 3873845719, 1111672452, 1751693520, 1094828930, 2576986153, 757954394, 252645662, 2964376443, 1414855848, 3149649517, 370555436];
+ var T5 = [1374988112, 2118214995, 437757123, 975658646, 1001089995, 530400753, 2902087851, 1273168787, 540080725, 2910219766, 2295101073, 4110568485, 1340463100, 3307916247, 641025152, 3043140495, 3736164937, 632953703, 1172967064, 1576976609, 3274667266, 2169303058, 2370213795, 1809054150, 59727847, 361929877, 3211623147, 2505202138, 3569255213, 1484005843, 1239443753, 2395588676, 1975683434, 4102977912, 2572697195, 666464733, 3202437046, 4035489047, 3374361702, 2110667444, 1675577880, 3843699074, 2538681184, 1649639237, 2976151520, 3144396420, 4269907996, 4178062228, 1883793496, 2403728665, 2497604743, 1383856311, 2876494627, 1917518562, 3810496343, 1716890410, 3001755655, 800440835, 2261089178, 3543599269, 807962610, 599762354, 33778362, 3977675356, 2328828971, 2809771154, 4077384432, 1315562145, 1708848333, 101039829, 3509871135, 3299278474, 875451293, 2733856160, 92987698, 2767645557, 193195065, 1080094634, 1584504582, 3178106961, 1042385657, 2531067453, 3711829422, 1306967366, 2438237621, 1908694277, 67556463, 1615861247, 429456164, 3602770327, 2302690252, 1742315127, 2968011453, 126454664, 3877198648, 2043211483, 2709260871, 2084704233, 4169408201, 0, 159417987, 841739592, 504459436, 1817866830, 4245618683, 260388950, 1034867998, 908933415, 168810852, 1750902305, 2606453969, 607530554, 202008497, 2472011535, 3035535058, 463180190, 2160117071, 1641816226, 1517767529, 470948374, 3801332234, 3231722213, 1008918595, 303765277, 235474187, 4069246893, 766945465, 337553864, 1475418501, 2943682380, 4003061179, 2743034109, 4144047775, 1551037884, 1147550661, 1543208500, 2336434550, 3408119516, 3069049960, 3102011747, 3610369226, 1113818384, 328671808, 2227573024, 2236228733, 3535486456, 2935566865, 3341394285, 496906059, 3702665459, 226906860, 2009195472, 733156972, 2842737049, 294930682, 1206477858, 2835123396, 2700099354, 1451044056, 573804783, 2269728455, 3644379585, 2362090238, 2564033334, 2801107407, 2776292904, 3669462566, 1068351396, 742039012, 1350078989, 1784663195, 1417561698, 4136440770, 2430122216, 775550814, 2193862645, 2673705150, 1775276924, 1876241833, 3475313331, 3366754619, 270040487, 3902563182, 3678124923, 3441850377, 1851332852, 3969562369, 2203032232, 3868552805, 2868897406, 566021896, 4011190502, 3135740889, 1248802510, 3936291284, 699432150, 832877231, 708780849, 3332740144, 899835584, 1951317047, 4236429990, 3767586992, 866637845, 4043610186, 1106041591, 2144161806, 395441711, 1984812685, 1139781709, 3433712980, 3835036895, 2664543715, 1282050075, 3240894392, 1181045119, 2640243204, 25965917, 4203181171, 4211818798, 3009879386, 2463879762, 3910161971, 1842759443, 2597806476, 933301370, 1509430414, 3943906441, 3467192302, 3076639029, 3776767469, 2051518780, 2631065433, 1441952575, 404016761, 1942435775, 1408749034, 1610459739, 3745345300, 2017778566, 3400528769, 3110650942, 941896748, 3265478751, 371049330, 3168937228, 675039627, 4279080257, 967311729, 135050206, 3635733660, 1683407248, 2076935265, 3576870512, 1215061108, 3501741890];
+ var T6 = [1347548327, 1400783205, 3273267108, 2520393566, 3409685355, 4045380933, 2880240216, 2471224067, 1428173050, 4138563181, 2441661558, 636813900, 4233094615, 3620022987, 2149987652, 2411029155, 1239331162, 1730525723, 2554718734, 3781033664, 46346101, 310463728, 2743944855, 3328955385, 3875770207, 2501218972, 3955191162, 3667219033, 768917123, 3545789473, 692707433, 1150208456, 1786102409, 2029293177, 1805211710, 3710368113, 3065962831, 401639597, 1724457132, 3028143674, 409198410, 2196052529, 1620529459, 1164071807, 3769721975, 2226875310, 486441376, 2499348523, 1483753576, 428819965, 2274680428, 3075636216, 598438867, 3799141122, 1474502543, 711349675, 129166120, 53458370, 2592523643, 2782082824, 4063242375, 2988687269, 3120694122, 1559041666, 730517276, 2460449204, 4042459122, 2706270690, 3446004468, 3573941694, 533804130, 2328143614, 2637442643, 2695033685, 839224033, 1973745387, 957055980, 2856345839, 106852767, 1371368976, 4181598602, 1033297158, 2933734917, 1179510461, 3046200461, 91341917, 1862534868, 4284502037, 605657339, 2547432937, 3431546947, 2003294622, 3182487618, 2282195339, 954669403, 3682191598, 1201765386, 3917234703, 3388507166, 0, 2198438022, 1211247597, 2887651696, 1315723890, 4227665663, 1443857720, 507358933, 657861945, 1678381017, 560487590, 3516619604, 975451694, 2970356327, 261314535, 3535072918, 2652609425, 1333838021, 2724322336, 1767536459, 370938394, 182621114, 3854606378, 1128014560, 487725847, 185469197, 2918353863, 3106780840, 3356761769, 2237133081, 1286567175, 3152976349, 4255350624, 2683765030, 3160175349, 3309594171, 878443390, 1988838185, 3704300486, 1756818940, 1673061617, 3403100636, 272786309, 1075025698, 545572369, 2105887268, 4174560061, 296679730, 1841768865, 1260232239, 4091327024, 3960309330, 3497509347, 1814803222, 2578018489, 4195456072, 575138148, 3299409036, 446754879, 3629546796, 4011996048, 3347532110, 3252238545, 4270639778, 915985419, 3483825537, 681933534, 651868046, 2755636671, 3828103837, 223377554, 2607439820, 1649704518, 3270937875, 3901806776, 1580087799, 4118987695, 3198115200, 2087309459, 2842678573, 3016697106, 1003007129, 2802849917, 1860738147, 2077965243, 164439672, 4100872472, 32283319, 2827177882, 1709610350, 2125135846, 136428751, 3874428392, 3652904859, 3460984630, 3572145929, 3593056380, 2939266226, 824852259, 818324884, 3224740454, 930369212, 2801566410, 2967507152, 355706840, 1257309336, 4148292826, 243256656, 790073846, 2373340630, 1296297904, 1422699085, 3756299780, 3818836405, 457992840, 3099667487, 2135319889, 77422314, 1560382517, 1945798516, 788204353, 1521706781, 1385356242, 870912086, 325965383, 2358957921, 2050466060, 2388260884, 2313884476, 4006521127, 901210569, 3990953189, 1014646705, 1503449823, 1062597235, 2031621326, 3212035895, 3931371469, 1533017514, 350174575, 2256028891, 2177544179, 1052338372, 741876788, 1606591296, 1914052035, 213705253, 2334669897, 1107234197, 1899603969, 3725069491, 2631447780, 2422494913, 1635502980, 1893020342, 1950903388, 1120974935];
+ var T7 = [2807058932, 1699970625, 2764249623, 1586903591, 1808481195, 1173430173, 1487645946, 59984867, 4199882800, 1844882806, 1989249228, 1277555970, 3623636965, 3419915562, 1149249077, 2744104290, 1514790577, 459744698, 244860394, 3235995134, 1963115311, 4027744588, 2544078150, 4190530515, 1608975247, 2627016082, 2062270317, 1507497298, 2200818878, 567498868, 1764313568, 3359936201, 2305455554, 2037970062, 1047239e3, 1910319033, 1337376481, 2904027272, 2892417312, 984907214, 1243112415, 830661914, 861968209, 2135253587, 2011214180, 2927934315, 2686254721, 731183368, 1750626376, 4246310725, 1820824798, 4172763771, 3542330227, 48394827, 2404901663, 2871682645, 671593195, 3254988725, 2073724613, 145085239, 2280796200, 2779915199, 1790575107, 2187128086, 472615631, 3029510009, 4075877127, 3802222185, 4107101658, 3201631749, 1646252340, 4270507174, 1402811438, 1436590835, 3778151818, 3950355702, 3963161475, 4020912224, 2667994737, 273792366, 2331590177, 104699613, 95345982, 3175501286, 2377486676, 1560637892, 3564045318, 369057872, 4213447064, 3919042237, 1137477952, 2658625497, 1119727848, 2340947849, 1530455833, 4007360968, 172466556, 266959938, 516552836, 0, 2256734592, 3980931627, 1890328081, 1917742170, 4294704398, 945164165, 3575528878, 958871085, 3647212047, 2787207260, 1423022939, 775562294, 1739656202, 3876557655, 2530391278, 2443058075, 3310321856, 547512796, 1265195639, 437656594, 3121275539, 719700128, 3762502690, 387781147, 218828297, 3350065803, 2830708150, 2848461854, 428169201, 122466165, 3720081049, 1627235199, 648017665, 4122762354, 1002783846, 2117360635, 695634755, 3336358691, 4234721005, 4049844452, 3704280881, 2232435299, 574624663, 287343814, 612205898, 1039717051, 840019705, 2708326185, 793451934, 821288114, 1391201670, 3822090177, 376187827, 3113855344, 1224348052, 1679968233, 2361698556, 1058709744, 752375421, 2431590963, 1321699145, 3519142200, 2734591178, 188127444, 2177869557, 3727205754, 2384911031, 3215212461, 2648976442, 2450346104, 3432737375, 1180849278, 331544205, 3102249176, 4150144569, 2952102595, 2159976285, 2474404304, 766078933, 313773861, 2570832044, 2108100632, 1668212892, 3145456443, 2013908262, 418672217, 3070356634, 2594734927, 1852171925, 3867060991, 3473416636, 3907448597, 2614737639, 919489135, 164948639, 2094410160, 2997825956, 590424639, 2486224549, 1723872674, 3157750862, 3399941250, 3501252752, 3625268135, 2555048196, 3673637356, 1343127501, 4130281361, 3599595085, 2957853679, 1297403050, 81781910, 3051593425, 2283490410, 532201772, 1367295589, 3926170974, 895287692, 1953757831, 1093597963, 492483431, 3528626907, 1446242576, 1192455638, 1636604631, 209336225, 344873464, 1015671571, 669961897, 3375740769, 3857572124, 2973530695, 3747192018, 1933530610, 3464042516, 935293895, 3454686199, 2858115069, 1863638845, 3683022916, 4085369519, 3292445032, 875313188, 1080017571, 3279033885, 621591778, 1233856572, 2504130317, 24197544, 3017672716, 3835484340, 3247465558, 2220981195, 3060847922, 1551124588, 1463996600];
+ var T8 = [4104605777, 1097159550, 396673818, 660510266, 2875968315, 2638606623, 4200115116, 3808662347, 821712160, 1986918061, 3430322568, 38544885, 3856137295, 718002117, 893681702, 1654886325, 2975484382, 3122358053, 3926825029, 4274053469, 796197571, 1290801793, 1184342925, 3556361835, 2405426947, 2459735317, 1836772287, 1381620373, 3196267988, 1948373848, 3764988233, 3385345166, 3263785589, 2390325492, 1480485785, 3111247143, 3780097726, 2293045232, 548169417, 3459953789, 3746175075, 439452389, 1362321559, 1400849762, 1685577905, 1806599355, 2174754046, 137073913, 1214797936, 1174215055, 3731654548, 2079897426, 1943217067, 1258480242, 529487843, 1437280870, 3945269170, 3049390895, 3313212038, 923313619, 679998e3, 3215307299, 57326082, 377642221, 3474729866, 2041877159, 133361907, 1776460110, 3673476453, 96392454, 878845905, 2801699524, 777231668, 4082475170, 2330014213, 4142626212, 2213296395, 1626319424, 1906247262, 1846563261, 562755902, 3708173718, 1040559837, 3871163981, 1418573201, 3294430577, 114585348, 1343618912, 2566595609, 3186202582, 1078185097, 3651041127, 3896688048, 2307622919, 425408743, 3371096953, 2081048481, 1108339068, 2216610296, 0, 2156299017, 736970802, 292596766, 1517440620, 251657213, 2235061775, 2933202493, 758720310, 265905162, 1554391400, 1532285339, 908999204, 174567692, 1474760595, 4002861748, 2610011675, 3234156416, 3693126241, 2001430874, 303699484, 2478443234, 2687165888, 585122620, 454499602, 151849742, 2345119218, 3064510765, 514443284, 4044981591, 1963412655, 2581445614, 2137062819, 19308535, 1928707164, 1715193156, 4219352155, 1126790795, 600235211, 3992742070, 3841024952, 836553431, 1669664834, 2535604243, 3323011204, 1243905413, 3141400786, 4180808110, 698445255, 2653899549, 2989552604, 2253581325, 3252932727, 3004591147, 1891211689, 2487810577, 3915653703, 4237083816, 4030667424, 2100090966, 865136418, 1229899655, 953270745, 3399679628, 3557504664, 4118925222, 2061379749, 3079546586, 2915017791, 983426092, 2022837584, 1607244650, 2118541908, 2366882550, 3635996816, 972512814, 3283088770, 1568718495, 3499326569, 3576539503, 621982671, 2895723464, 410887952, 2623762152, 1002142683, 645401037, 1494807662, 2595684844, 1335535747, 2507040230, 4293295786, 3167684641, 367585007, 3885750714, 1865862730, 2668221674, 2960971305, 2763173681, 1059270954, 2777952454, 2724642869, 1320957812, 2194319100, 2429595872, 2815956275, 77089521, 3973773121, 3444575871, 2448830231, 1305906550, 4021308739, 2857194700, 2516901860, 3518358430, 1787304780, 740276417, 1699839814, 1592394909, 2352307457, 2272556026, 188821243, 1729977011, 3687994002, 274084841, 3594982253, 3613494426, 2701949495, 4162096729, 322734571, 2837966542, 1640576439, 484830689, 1202797690, 3537852828, 4067639125, 349075736, 3342319475, 4157467219, 4255800159, 1030690015, 1155237496, 2951971274, 1757691577, 607398968, 2738905026, 499347990, 3794078908, 1011452712, 227885567, 2818666809, 213114376, 3034881240, 1455525988, 3414450555, 850817237, 1817998408, 3092726480];
+ var U1 = [0, 235474187, 470948374, 303765277, 941896748, 908933415, 607530554, 708780849, 1883793496, 2118214995, 1817866830, 1649639237, 1215061108, 1181045119, 1417561698, 1517767529, 3767586992, 4003061179, 4236429990, 4069246893, 3635733660, 3602770327, 3299278474, 3400528769, 2430122216, 2664543715, 2362090238, 2193862645, 2835123396, 2801107407, 3035535058, 3135740889, 3678124923, 3576870512, 3341394285, 3374361702, 3810496343, 3977675356, 4279080257, 4043610186, 2876494627, 2776292904, 3076639029, 3110650942, 2472011535, 2640243204, 2403728665, 2169303058, 1001089995, 899835584, 666464733, 699432150, 59727847, 226906860, 530400753, 294930682, 1273168787, 1172967064, 1475418501, 1509430414, 1942435775, 2110667444, 1876241833, 1641816226, 2910219766, 2743034109, 2976151520, 3211623147, 2505202138, 2606453969, 2302690252, 2269728455, 3711829422, 3543599269, 3240894392, 3475313331, 3843699074, 3943906441, 4178062228, 4144047775, 1306967366, 1139781709, 1374988112, 1610459739, 1975683434, 2076935265, 1775276924, 1742315127, 1034867998, 866637845, 566021896, 800440835, 92987698, 193195065, 429456164, 395441711, 1984812685, 2017778566, 1784663195, 1683407248, 1315562145, 1080094634, 1383856311, 1551037884, 101039829, 135050206, 437757123, 337553864, 1042385657, 807962610, 573804783, 742039012, 2531067453, 2564033334, 2328828971, 2227573024, 2935566865, 2700099354, 3001755655, 3168937228, 3868552805, 3902563182, 4203181171, 4102977912, 3736164937, 3501741890, 3265478751, 3433712980, 1106041591, 1340463100, 1576976609, 1408749034, 2043211483, 2009195472, 1708848333, 1809054150, 832877231, 1068351396, 766945465, 599762354, 159417987, 126454664, 361929877, 463180190, 2709260871, 2943682380, 3178106961, 3009879386, 2572697195, 2538681184, 2236228733, 2336434550, 3509871135, 3745345300, 3441850377, 3274667266, 3910161971, 3877198648, 4110568485, 4211818798, 2597806476, 2497604743, 2261089178, 2295101073, 2733856160, 2902087851, 3202437046, 2968011453, 3936291284, 3835036895, 4136440770, 4169408201, 3535486456, 3702665459, 3467192302, 3231722213, 2051518780, 1951317047, 1716890410, 1750902305, 1113818384, 1282050075, 1584504582, 1350078989, 168810852, 67556463, 371049330, 404016761, 841739592, 1008918595, 775550814, 540080725, 3969562369, 3801332234, 4035489047, 4269907996, 3569255213, 3669462566, 3366754619, 3332740144, 2631065433, 2463879762, 2160117071, 2395588676, 2767645557, 2868897406, 3102011747, 3069049960, 202008497, 33778362, 270040487, 504459436, 875451293, 975658646, 675039627, 641025152, 2084704233, 1917518562, 1615861247, 1851332852, 1147550661, 1248802510, 1484005843, 1451044056, 933301370, 967311729, 733156972, 632953703, 260388950, 25965917, 328671808, 496906059, 1206477858, 1239443753, 1543208500, 1441952575, 2144161806, 1908694277, 1675577880, 1842759443, 3610369226, 3644379585, 3408119516, 3307916247, 4011190502, 3776767469, 4077384432, 4245618683, 2809771154, 2842737049, 3144396420, 3043140495, 2673705150, 2438237621, 2203032232, 2370213795];
+ var U2 = [0, 185469197, 370938394, 487725847, 741876788, 657861945, 975451694, 824852259, 1483753576, 1400783205, 1315723890, 1164071807, 1950903388, 2135319889, 1649704518, 1767536459, 2967507152, 3152976349, 2801566410, 2918353863, 2631447780, 2547432937, 2328143614, 2177544179, 3901806776, 3818836405, 4270639778, 4118987695, 3299409036, 3483825537, 3535072918, 3652904859, 2077965243, 1893020342, 1841768865, 1724457132, 1474502543, 1559041666, 1107234197, 1257309336, 598438867, 681933534, 901210569, 1052338372, 261314535, 77422314, 428819965, 310463728, 3409685355, 3224740454, 3710368113, 3593056380, 3875770207, 3960309330, 4045380933, 4195456072, 2471224067, 2554718734, 2237133081, 2388260884, 3212035895, 3028143674, 2842678573, 2724322336, 4138563181, 4255350624, 3769721975, 3955191162, 3667219033, 3516619604, 3431546947, 3347532110, 2933734917, 2782082824, 3099667487, 3016697106, 2196052529, 2313884476, 2499348523, 2683765030, 1179510461, 1296297904, 1347548327, 1533017514, 1786102409, 1635502980, 2087309459, 2003294622, 507358933, 355706840, 136428751, 53458370, 839224033, 957055980, 605657339, 790073846, 2373340630, 2256028891, 2607439820, 2422494913, 2706270690, 2856345839, 3075636216, 3160175349, 3573941694, 3725069491, 3273267108, 3356761769, 4181598602, 4063242375, 4011996048, 3828103837, 1033297158, 915985419, 730517276, 545572369, 296679730, 446754879, 129166120, 213705253, 1709610350, 1860738147, 1945798516, 2029293177, 1239331162, 1120974935, 1606591296, 1422699085, 4148292826, 4233094615, 3781033664, 3931371469, 3682191598, 3497509347, 3446004468, 3328955385, 2939266226, 2755636671, 3106780840, 2988687269, 2198438022, 2282195339, 2501218972, 2652609425, 1201765386, 1286567175, 1371368976, 1521706781, 1805211710, 1620529459, 2105887268, 1988838185, 533804130, 350174575, 164439672, 46346101, 870912086, 954669403, 636813900, 788204353, 2358957921, 2274680428, 2592523643, 2441661558, 2695033685, 2880240216, 3065962831, 3182487618, 3572145929, 3756299780, 3270937875, 3388507166, 4174560061, 4091327024, 4006521127, 3854606378, 1014646705, 930369212, 711349675, 560487590, 272786309, 457992840, 106852767, 223377554, 1678381017, 1862534868, 1914052035, 2031621326, 1211247597, 1128014560, 1580087799, 1428173050, 32283319, 182621114, 401639597, 486441376, 768917123, 651868046, 1003007129, 818324884, 1503449823, 1385356242, 1333838021, 1150208456, 1973745387, 2125135846, 1673061617, 1756818940, 2970356327, 3120694122, 2802849917, 2887651696, 2637442643, 2520393566, 2334669897, 2149987652, 3917234703, 3799141122, 4284502037, 4100872472, 3309594171, 3460984630, 3545789473, 3629546796, 2050466060, 1899603969, 1814803222, 1730525723, 1443857720, 1560382517, 1075025698, 1260232239, 575138148, 692707433, 878443390, 1062597235, 243256656, 91341917, 409198410, 325965383, 3403100636, 3252238545, 3704300486, 3620022987, 3874428392, 3990953189, 4042459122, 4227665663, 2460449204, 2578018489, 2226875310, 2411029155, 3198115200, 3046200461, 2827177882, 2743944855];
+ var U3 = [0, 218828297, 437656594, 387781147, 875313188, 958871085, 775562294, 590424639, 1750626376, 1699970625, 1917742170, 2135253587, 1551124588, 1367295589, 1180849278, 1265195639, 3501252752, 3720081049, 3399941250, 3350065803, 3835484340, 3919042237, 4270507174, 4085369519, 3102249176, 3051593425, 2734591178, 2952102595, 2361698556, 2177869557, 2530391278, 2614737639, 3145456443, 3060847922, 2708326185, 2892417312, 2404901663, 2187128086, 2504130317, 2555048196, 3542330227, 3727205754, 3375740769, 3292445032, 3876557655, 3926170974, 4246310725, 4027744588, 1808481195, 1723872674, 1910319033, 2094410160, 1608975247, 1391201670, 1173430173, 1224348052, 59984867, 244860394, 428169201, 344873464, 935293895, 984907214, 766078933, 547512796, 1844882806, 1627235199, 2011214180, 2062270317, 1507497298, 1423022939, 1137477952, 1321699145, 95345982, 145085239, 532201772, 313773861, 830661914, 1015671571, 731183368, 648017665, 3175501286, 2957853679, 2807058932, 2858115069, 2305455554, 2220981195, 2474404304, 2658625497, 3575528878, 3625268135, 3473416636, 3254988725, 3778151818, 3963161475, 4213447064, 4130281361, 3599595085, 3683022916, 3432737375, 3247465558, 3802222185, 4020912224, 4172763771, 4122762354, 3201631749, 3017672716, 2764249623, 2848461854, 2331590177, 2280796200, 2431590963, 2648976442, 104699613, 188127444, 472615631, 287343814, 840019705, 1058709744, 671593195, 621591778, 1852171925, 1668212892, 1953757831, 2037970062, 1514790577, 1463996600, 1080017571, 1297403050, 3673637356, 3623636965, 3235995134, 3454686199, 4007360968, 3822090177, 4107101658, 4190530515, 2997825956, 3215212461, 2830708150, 2779915199, 2256734592, 2340947849, 2627016082, 2443058075, 172466556, 122466165, 273792366, 492483431, 1047239e3, 861968209, 612205898, 695634755, 1646252340, 1863638845, 2013908262, 1963115311, 1446242576, 1530455833, 1277555970, 1093597963, 1636604631, 1820824798, 2073724613, 1989249228, 1436590835, 1487645946, 1337376481, 1119727848, 164948639, 81781910, 331544205, 516552836, 1039717051, 821288114, 669961897, 719700128, 2973530695, 3157750862, 2871682645, 2787207260, 2232435299, 2283490410, 2667994737, 2450346104, 3647212047, 3564045318, 3279033885, 3464042516, 3980931627, 3762502690, 4150144569, 4199882800, 3070356634, 3121275539, 2904027272, 2686254721, 2200818878, 2384911031, 2570832044, 2486224549, 3747192018, 3528626907, 3310321856, 3359936201, 3950355702, 3867060991, 4049844452, 4234721005, 1739656202, 1790575107, 2108100632, 1890328081, 1402811438, 1586903591, 1233856572, 1149249077, 266959938, 48394827, 369057872, 418672217, 1002783846, 919489135, 567498868, 752375421, 209336225, 24197544, 376187827, 459744698, 945164165, 895287692, 574624663, 793451934, 1679968233, 1764313568, 2117360635, 1933530610, 1343127501, 1560637892, 1243112415, 1192455638, 3704280881, 3519142200, 3336358691, 3419915562, 3907448597, 3857572124, 4075877127, 4294704398, 3029510009, 3113855344, 2927934315, 2744104290, 2159976285, 2377486676, 2594734927, 2544078150];
+ var U4 = [0, 151849742, 303699484, 454499602, 607398968, 758720310, 908999204, 1059270954, 1214797936, 1097159550, 1517440620, 1400849762, 1817998408, 1699839814, 2118541908, 2001430874, 2429595872, 2581445614, 2194319100, 2345119218, 3034881240, 3186202582, 2801699524, 2951971274, 3635996816, 3518358430, 3399679628, 3283088770, 4237083816, 4118925222, 4002861748, 3885750714, 1002142683, 850817237, 698445255, 548169417, 529487843, 377642221, 227885567, 77089521, 1943217067, 2061379749, 1640576439, 1757691577, 1474760595, 1592394909, 1174215055, 1290801793, 2875968315, 2724642869, 3111247143, 2960971305, 2405426947, 2253581325, 2638606623, 2487810577, 3808662347, 3926825029, 4044981591, 4162096729, 3342319475, 3459953789, 3576539503, 3693126241, 1986918061, 2137062819, 1685577905, 1836772287, 1381620373, 1532285339, 1078185097, 1229899655, 1040559837, 923313619, 740276417, 621982671, 439452389, 322734571, 137073913, 19308535, 3871163981, 4021308739, 4104605777, 4255800159, 3263785589, 3414450555, 3499326569, 3651041127, 2933202493, 2815956275, 3167684641, 3049390895, 2330014213, 2213296395, 2566595609, 2448830231, 1305906550, 1155237496, 1607244650, 1455525988, 1776460110, 1626319424, 2079897426, 1928707164, 96392454, 213114376, 396673818, 514443284, 562755902, 679998e3, 865136418, 983426092, 3708173718, 3557504664, 3474729866, 3323011204, 4180808110, 4030667424, 3945269170, 3794078908, 2507040230, 2623762152, 2272556026, 2390325492, 2975484382, 3092726480, 2738905026, 2857194700, 3973773121, 3856137295, 4274053469, 4157467219, 3371096953, 3252932727, 3673476453, 3556361835, 2763173681, 2915017791, 3064510765, 3215307299, 2156299017, 2307622919, 2459735317, 2610011675, 2081048481, 1963412655, 1846563261, 1729977011, 1480485785, 1362321559, 1243905413, 1126790795, 878845905, 1030690015, 645401037, 796197571, 274084841, 425408743, 38544885, 188821243, 3613494426, 3731654548, 3313212038, 3430322568, 4082475170, 4200115116, 3780097726, 3896688048, 2668221674, 2516901860, 2366882550, 2216610296, 3141400786, 2989552604, 2837966542, 2687165888, 1202797690, 1320957812, 1437280870, 1554391400, 1669664834, 1787304780, 1906247262, 2022837584, 265905162, 114585348, 499347990, 349075736, 736970802, 585122620, 972512814, 821712160, 2595684844, 2478443234, 2293045232, 2174754046, 3196267988, 3079546586, 2895723464, 2777952454, 3537852828, 3687994002, 3234156416, 3385345166, 4142626212, 4293295786, 3841024952, 3992742070, 174567692, 57326082, 410887952, 292596766, 777231668, 660510266, 1011452712, 893681702, 1108339068, 1258480242, 1343618912, 1494807662, 1715193156, 1865862730, 1948373848, 2100090966, 2701949495, 2818666809, 3004591147, 3122358053, 2235061775, 2352307457, 2535604243, 2653899549, 3915653703, 3764988233, 4219352155, 4067639125, 3444575871, 3294430577, 3746175075, 3594982253, 836553431, 953270745, 600235211, 718002117, 367585007, 484830689, 133361907, 251657213, 2041877159, 1891211689, 1806599355, 1654886325, 1568718495, 1418573201, 1335535747, 1184342925];
+ function convertToInt32(bytes) {
+ var result = [];
+ for (var i = 0; i < bytes.length; i += 4) {
+ result.push(
+ bytes[i] << 24 | bytes[i + 1] << 16 | bytes[i + 2] << 8 | bytes[i + 3]
+ );
+ }
+ return result;
+ }
+ var AES = function(key) {
+ if (!(this instanceof AES)) {
+ throw Error("AES must be instanitated with `new`");
+ }
+ Object.defineProperty(this, "key", {
+ value: coerceArray(key, true)
+ });
+ this._prepare();
+ };
+ AES.prototype._prepare = function() {
+ var rounds = numberOfRounds[this.key.length];
+ if (rounds == null) {
+ throw new Error("invalid key size (must be 16, 24 or 32 bytes)");
+ }
+ this._Ke = [];
+ this._Kd = [];
+ for (var i = 0; i <= rounds; i++) {
+ this._Ke.push([0, 0, 0, 0]);
+ this._Kd.push([0, 0, 0, 0]);
+ }
+ var roundKeyCount = (rounds + 1) * 4;
+ var KC = this.key.length / 4;
+ var tk = convertToInt32(this.key);
+ var index;
+ for (var i = 0; i < KC; i++) {
+ index = i >> 2;
+ this._Ke[index][i % 4] = tk[i];
+ this._Kd[rounds - index][i % 4] = tk[i];
+ }
+ var rconpointer = 0;
+ var t = KC, tt;
+ while (t < roundKeyCount) {
+ tt = tk[KC - 1];
+ tk[0] ^= S[tt >> 16 & 255] << 24 ^ S[tt >> 8 & 255] << 16 ^ S[tt & 255] << 8 ^ S[tt >> 24 & 255] ^ rcon[rconpointer] << 24;
+ rconpointer += 1;
+ if (KC != 8) {
+ for (var i = 1; i < KC; i++) {
+ tk[i] ^= tk[i - 1];
+ }
+ } else {
+ for (var i = 1; i < KC / 2; i++) {
+ tk[i] ^= tk[i - 1];
+ }
+ tt = tk[KC / 2 - 1];
+ tk[KC / 2] ^= S[tt & 255] ^ S[tt >> 8 & 255] << 8 ^ S[tt >> 16 & 255] << 16 ^ S[tt >> 24 & 255] << 24;
+ for (var i = KC / 2 + 1; i < KC; i++) {
+ tk[i] ^= tk[i - 1];
+ }
+ }
+ var i = 0, r, c;
+ while (i < KC && t < roundKeyCount) {
+ r = t >> 2;
+ c = t % 4;
+ this._Ke[r][c] = tk[i];
+ this._Kd[rounds - r][c] = tk[i++];
+ t++;
+ }
+ }
+ for (var r = 1; r < rounds; r++) {
+ for (var c = 0; c < 4; c++) {
+ tt = this._Kd[r][c];
+ this._Kd[r][c] = U1[tt >> 24 & 255] ^ U2[tt >> 16 & 255] ^ U3[tt >> 8 & 255] ^ U4[tt & 255];
+ }
+ }
+ };
+ AES.prototype.encrypt = function(plaintext) {
+ if (plaintext.length != 16) {
+ throw new Error("invalid plaintext size (must be 16 bytes)");
+ }
+ var rounds = this._Ke.length - 1;
+ var a = [0, 0, 0, 0];
+ var t = convertToInt32(plaintext);
+ for (var i = 0; i < 4; i++) {
+ t[i] ^= this._Ke[0][i];
+ }
+ for (var r = 1; r < rounds; r++) {
+ for (var i = 0; i < 4; i++) {
+ a[i] = T1[t[i] >> 24 & 255] ^ T2[t[(i + 1) % 4] >> 16 & 255] ^ T3[t[(i + 2) % 4] >> 8 & 255] ^ T4[t[(i + 3) % 4] & 255] ^ this._Ke[r][i];
+ }
+ t = a.slice();
+ }
+ var result = createArray(16), tt;
+ for (var i = 0; i < 4; i++) {
+ tt = this._Ke[rounds][i];
+ result[4 * i] = (S[t[i] >> 24 & 255] ^ tt >> 24) & 255;
+ result[4 * i + 1] = (S[t[(i + 1) % 4] >> 16 & 255] ^ tt >> 16) & 255;
+ result[4 * i + 2] = (S[t[(i + 2) % 4] >> 8 & 255] ^ tt >> 8) & 255;
+ result[4 * i + 3] = (S[t[(i + 3) % 4] & 255] ^ tt) & 255;
+ }
+ return result;
+ };
+ AES.prototype.decrypt = function(ciphertext) {
+ if (ciphertext.length != 16) {
+ throw new Error("invalid ciphertext size (must be 16 bytes)");
+ }
+ var rounds = this._Kd.length - 1;
+ var a = [0, 0, 0, 0];
+ var t = convertToInt32(ciphertext);
+ for (var i = 0; i < 4; i++) {
+ t[i] ^= this._Kd[0][i];
+ }
+ for (var r = 1; r < rounds; r++) {
+ for (var i = 0; i < 4; i++) {
+ a[i] = T5[t[i] >> 24 & 255] ^ T6[t[(i + 3) % 4] >> 16 & 255] ^ T7[t[(i + 2) % 4] >> 8 & 255] ^ T8[t[(i + 1) % 4] & 255] ^ this._Kd[r][i];
+ }
+ t = a.slice();
+ }
+ var result = createArray(16), tt;
+ for (var i = 0; i < 4; i++) {
+ tt = this._Kd[rounds][i];
+ result[4 * i] = (Si[t[i] >> 24 & 255] ^ tt >> 24) & 255;
+ result[4 * i + 1] = (Si[t[(i + 3) % 4] >> 16 & 255] ^ tt >> 16) & 255;
+ result[4 * i + 2] = (Si[t[(i + 2) % 4] >> 8 & 255] ^ tt >> 8) & 255;
+ result[4 * i + 3] = (Si[t[(i + 1) % 4] & 255] ^ tt) & 255;
+ }
+ return result;
+ };
+ var ModeOfOperationECB = function(key) {
+ if (!(this instanceof ModeOfOperationECB)) {
+ throw Error("AES must be instanitated with `new`");
+ }
+ this.description = "Electronic Code Block";
+ this.name = "ecb";
+ this._aes = new AES(key);
+ };
+ ModeOfOperationECB.prototype.encrypt = function(plaintext) {
+ plaintext = coerceArray(plaintext);
+ if (plaintext.length % 16 !== 0) {
+ throw new Error("invalid plaintext size (must be multiple of 16 bytes)");
+ }
+ var ciphertext = createArray(plaintext.length);
+ var block = createArray(16);
+ for (var i = 0; i < plaintext.length; i += 16) {
+ copyArray(plaintext, block, 0, i, i + 16);
+ block = this._aes.encrypt(block);
+ copyArray(block, ciphertext, i);
+ }
+ return ciphertext;
+ };
+ ModeOfOperationECB.prototype.decrypt = function(ciphertext) {
+ ciphertext = coerceArray(ciphertext);
+ if (ciphertext.length % 16 !== 0) {
+ throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");
+ }
+ var plaintext = createArray(ciphertext.length);
+ var block = createArray(16);
+ for (var i = 0; i < ciphertext.length; i += 16) {
+ copyArray(ciphertext, block, 0, i, i + 16);
+ block = this._aes.decrypt(block);
+ copyArray(block, plaintext, i);
+ }
+ return plaintext;
+ };
+ var ModeOfOperationCBC = function(key, iv) {
+ if (!(this instanceof ModeOfOperationCBC)) {
+ throw Error("AES must be instanitated with `new`");
+ }
+ this.description = "Cipher Block Chaining";
+ this.name = "cbc";
+ if (!iv) {
+ iv = createArray(16);
+ } else if (iv.length != 16) {
+ throw new Error("invalid initialation vector size (must be 16 bytes)");
+ }
+ this._lastCipherblock = coerceArray(iv, true);
+ this._aes = new AES(key);
+ };
+ ModeOfOperationCBC.prototype.encrypt = function(plaintext) {
+ plaintext = coerceArray(plaintext);
+ if (plaintext.length % 16 !== 0) {
+ throw new Error("invalid plaintext size (must be multiple of 16 bytes)");
+ }
+ var ciphertext = createArray(plaintext.length);
+ var block = createArray(16);
+ for (var i = 0; i < plaintext.length; i += 16) {
+ copyArray(plaintext, block, 0, i, i + 16);
+ for (var j = 0; j < 16; j++) {
+ block[j] ^= this._lastCipherblock[j];
+ }
+ this._lastCipherblock = this._aes.encrypt(block);
+ copyArray(this._lastCipherblock, ciphertext, i);
+ }
+ return ciphertext;
+ };
+ ModeOfOperationCBC.prototype.decrypt = function(ciphertext) {
+ ciphertext = coerceArray(ciphertext);
+ if (ciphertext.length % 16 !== 0) {
+ throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");
+ }
+ var plaintext = createArray(ciphertext.length);
+ var block = createArray(16);
+ for (var i = 0; i < ciphertext.length; i += 16) {
+ copyArray(ciphertext, block, 0, i, i + 16);
+ block = this._aes.decrypt(block);
+ for (var j = 0; j < 16; j++) {
+ plaintext[i + j] = block[j] ^ this._lastCipherblock[j];
+ }
+ copyArray(ciphertext, this._lastCipherblock, 0, i, i + 16);
+ }
+ return plaintext;
+ };
+ var ModeOfOperationCFB = function(key, iv, segmentSize) {
+ if (!(this instanceof ModeOfOperationCFB)) {
+ throw Error("AES must be instanitated with `new`");
+ }
+ this.description = "Cipher Feedback";
+ this.name = "cfb";
+ if (!iv) {
+ iv = createArray(16);
+ } else if (iv.length != 16) {
+ throw new Error("invalid initialation vector size (must be 16 size)");
+ }
+ if (!segmentSize) {
+ segmentSize = 1;
+ }
+ this.segmentSize = segmentSize;
+ this._shiftRegister = coerceArray(iv, true);
+ this._aes = new AES(key);
+ };
+ ModeOfOperationCFB.prototype.encrypt = function(plaintext) {
+ if (plaintext.length % this.segmentSize != 0) {
+ throw new Error("invalid plaintext size (must be segmentSize bytes)");
+ }
+ var encrypted = coerceArray(plaintext, true);
+ var xorSegment;
+ for (var i = 0; i < encrypted.length; i += this.segmentSize) {
+ xorSegment = this._aes.encrypt(this._shiftRegister);
+ for (var j = 0; j < this.segmentSize; j++) {
+ encrypted[i + j] ^= xorSegment[j];
+ }
+ copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);
+ copyArray(encrypted, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);
+ }
+ return encrypted;
+ };
+ ModeOfOperationCFB.prototype.decrypt = function(ciphertext) {
+ if (ciphertext.length % this.segmentSize != 0) {
+ throw new Error("invalid ciphertext size (must be segmentSize bytes)");
+ }
+ var plaintext = coerceArray(ciphertext, true);
+ var xorSegment;
+ for (var i = 0; i < plaintext.length; i += this.segmentSize) {
+ xorSegment = this._aes.encrypt(this._shiftRegister);
+ for (var j = 0; j < this.segmentSize; j++) {
+ plaintext[i + j] ^= xorSegment[j];
+ }
+ copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);
+ copyArray(ciphertext, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);
+ }
+ return plaintext;
+ };
+ var ModeOfOperationOFB = function(key, iv) {
+ if (!(this instanceof ModeOfOperationOFB)) {
+ throw Error("AES must be instanitated with `new`");
+ }
+ this.description = "Output Feedback";
+ this.name = "ofb";
+ if (!iv) {
+ iv = createArray(16);
+ } else if (iv.length != 16) {
+ throw new Error("invalid initialation vector size (must be 16 bytes)");
+ }
+ this._lastPrecipher = coerceArray(iv, true);
+ this._lastPrecipherIndex = 16;
+ this._aes = new AES(key);
+ };
+ ModeOfOperationOFB.prototype.encrypt = function(plaintext) {
+ var encrypted = coerceArray(plaintext, true);
+ for (var i = 0; i < encrypted.length; i++) {
+ if (this._lastPrecipherIndex === 16) {
+ this._lastPrecipher = this._aes.encrypt(this._lastPrecipher);
+ this._lastPrecipherIndex = 0;
+ }
+ encrypted[i] ^= this._lastPrecipher[this._lastPrecipherIndex++];
+ }
+ return encrypted;
+ };
+ ModeOfOperationOFB.prototype.decrypt = ModeOfOperationOFB.prototype.encrypt;
+ var Counter = function(initialValue) {
+ if (!(this instanceof Counter)) {
+ throw Error("Counter must be instanitated with `new`");
+ }
+ if (initialValue !== 0 && !initialValue) {
+ initialValue = 1;
+ }
+ if (typeof initialValue === "number") {
+ this._counter = createArray(16);
+ this.setValue(initialValue);
+ } else {
+ this.setBytes(initialValue);
+ }
+ };
+ Counter.prototype.setValue = function(value) {
+ if (typeof value !== "number" || parseInt(value) != value) {
+ throw new Error("invalid counter value (must be an integer)");
+ }
+ for (var index = 15; index >= 0; --index) {
+ this._counter[index] = value % 256;
+ value = value >> 8;
+ }
+ };
+ Counter.prototype.setBytes = function(bytes) {
+ bytes = coerceArray(bytes, true);
+ if (bytes.length != 16) {
+ throw new Error("invalid counter bytes size (must be 16 bytes)");
+ }
+ this._counter = bytes;
+ };
+ Counter.prototype.increment = function() {
+ for (var i = 15; i >= 0; i--) {
+ if (this._counter[i] === 255) {
+ this._counter[i] = 0;
+ } else {
+ this._counter[i]++;
+ break;
+ }
+ }
+ };
+ var ModeOfOperationCTR = function(key, counter) {
+ if (!(this instanceof ModeOfOperationCTR)) {
+ throw Error("AES must be instanitated with `new`");
+ }
+ this.description = "Counter";
+ this.name = "ctr";
+ if (!(counter instanceof Counter)) {
+ counter = new Counter(counter);
+ }
+ this._counter = counter;
+ this._remainingCounter = null;
+ this._remainingCounterIndex = 16;
+ this._aes = new AES(key);
+ };
+ ModeOfOperationCTR.prototype.encrypt = function(plaintext) {
+ var encrypted = coerceArray(plaintext, true);
+ for (var i = 0; i < encrypted.length; i++) {
+ if (this._remainingCounterIndex === 16) {
+ this._remainingCounter = this._aes.encrypt(this._counter._counter);
+ this._remainingCounterIndex = 0;
+ this._counter.increment();
+ }
+ encrypted[i] ^= this._remainingCounter[this._remainingCounterIndex++];
+ }
+ return encrypted;
+ };
+ ModeOfOperationCTR.prototype.decrypt = ModeOfOperationCTR.prototype.encrypt;
+ function pkcs7pad(data) {
+ data = coerceArray(data, true);
+ var padder = 16 - data.length % 16;
+ var result = createArray(data.length + padder);
+ copyArray(data, result);
+ for (var i = data.length; i < result.length; i++) {
+ result[i] = padder;
+ }
+ return result;
+ }
+ function pkcs7strip(data) {
+ data = coerceArray(data, true);
+ if (data.length < 16) {
+ throw new Error("PKCS#7 invalid length");
+ }
+ var padder = data[data.length - 1];
+ if (padder > 16) {
+ throw new Error("PKCS#7 padding byte out of range");
+ }
+ var length = data.length - padder;
+ for (var i = 0; i < padder; i++) {
+ if (data[length + i] !== padder) {
+ throw new Error("PKCS#7 invalid padding byte");
+ }
+ }
+ var result = createArray(length);
+ copyArray(data, result, 0, 0, length);
+ return result;
+ }
+ var aesjs = {
+ AES,
+ Counter,
+ ModeOfOperation: {
+ ecb: ModeOfOperationECB,
+ cbc: ModeOfOperationCBC,
+ cfb: ModeOfOperationCFB,
+ ofb: ModeOfOperationOFB,
+ ctr: ModeOfOperationCTR
+ },
+ utils: {
+ hex: convertHex,
+ utf8: convertUtf8
+ },
+ padding: {
+ pkcs7: {
+ pad: pkcs7pad,
+ strip: pkcs7strip
+ }
+ },
+ _arrayTest: {
+ coerceArray,
+ createArray,
+ copyArray
+ }
+ };
+ if (typeof exports2 !== "undefined") {
+ module2.exports = aesjs;
+ } else if (typeof define === "function" && define.amd) {
+ define(aesjs);
+ } else {
+ if (root.aesjs) {
+ aesjs._aesjs = root.aesjs;
+ }
+ root.aesjs = aesjs;
+ }
+ })(exports2);
+ }
+});
+
+// node_modules/@ethersproject/json-wallets/lib/_version.js
+var require_version18 = __commonJS({
+ "node_modules/@ethersproject/json-wallets/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "json-wallets/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/json-wallets/lib/utils.js
+var require_utils7 = __commonJS({
+ "node_modules/@ethersproject/json-wallets/lib/utils.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.uuidV4 = exports2.searchPath = exports2.getPassword = exports2.zpad = exports2.looseArrayify = void 0;
+ var bytes_1 = require_lib6();
+ var strings_1 = require_lib15();
+ function looseArrayify(hexString) {
+ if (typeof hexString === "string" && hexString.substring(0, 2) !== "0x") {
+ hexString = "0x" + hexString;
+ }
+ return (0, bytes_1.arrayify)(hexString);
+ }
+ exports2.looseArrayify = looseArrayify;
+ function zpad(value, length) {
+ value = String(value);
+ while (value.length < length) {
+ value = "0" + value;
+ }
+ return value;
+ }
+ exports2.zpad = zpad;
+ function getPassword(password) {
+ if (typeof password === "string") {
+ return (0, strings_1.toUtf8Bytes)(password, strings_1.UnicodeNormalizationForm.NFKC);
+ }
+ return (0, bytes_1.arrayify)(password);
+ }
+ exports2.getPassword = getPassword;
+ function searchPath(object, path) {
+ var currentChild = object;
+ var comps = path.toLowerCase().split("/");
+ for (var i = 0; i < comps.length; i++) {
+ var matchingChild = null;
+ for (var key in currentChild) {
+ if (key.toLowerCase() === comps[i]) {
+ matchingChild = currentChild[key];
+ break;
+ }
+ }
+ if (matchingChild === null) {
+ return null;
+ }
+ currentChild = matchingChild;
+ }
+ return currentChild;
+ }
+ exports2.searchPath = searchPath;
+ function uuidV4(randomBytes) {
+ var bytes = (0, bytes_1.arrayify)(randomBytes);
+ bytes[6] = bytes[6] & 15 | 64;
+ bytes[8] = bytes[8] & 63 | 128;
+ var value = (0, bytes_1.hexlify)(bytes);
+ return [
+ value.substring(2, 10),
+ value.substring(10, 14),
+ value.substring(14, 18),
+ value.substring(18, 22),
+ value.substring(22, 34)
+ ].join("-");
+ }
+ exports2.uuidV4 = uuidV4;
+ }
+});
+
+// node_modules/@ethersproject/json-wallets/lib/crowdsale.js
+var require_crowdsale = __commonJS({
+ "node_modules/@ethersproject/json-wallets/lib/crowdsale.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ var __importDefault13 = exports2 && exports2.__importDefault || function(mod) {
+ return mod && mod.__esModule ? mod : { "default": mod };
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.decrypt = exports2.CrowdsaleAccount = void 0;
+ var aes_js_1 = __importDefault13(require_aes_js());
+ var address_1 = require_lib10();
+ var bytes_1 = require_lib6();
+ var keccak256_1 = require_lib8();
+ var pbkdf2_1 = require_lib24();
+ var strings_1 = require_lib15();
+ var properties_1 = require_lib12();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version18();
+ var logger = new logger_1.Logger(_version_1.version);
+ var utils_1 = require_utils7();
+ var CrowdsaleAccount = (
+ /** @class */
+ function(_super) {
+ __extends13(CrowdsaleAccount2, _super);
+ function CrowdsaleAccount2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ CrowdsaleAccount2.prototype.isCrowdsaleAccount = function(value) {
+ return !!(value && value._isCrowdsaleAccount);
+ };
+ return CrowdsaleAccount2;
+ }(properties_1.Description)
+ );
+ exports2.CrowdsaleAccount = CrowdsaleAccount;
+ function decrypt(json, password) {
+ var data = JSON.parse(json);
+ password = (0, utils_1.getPassword)(password);
+ var ethaddr = (0, address_1.getAddress)((0, utils_1.searchPath)(data, "ethaddr"));
+ var encseed = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "encseed"));
+ if (!encseed || encseed.length % 16 !== 0) {
+ logger.throwArgumentError("invalid encseed", "json", json);
+ }
+ var key = (0, bytes_1.arrayify)((0, pbkdf2_1.pbkdf2)(password, password, 2e3, 32, "sha256")).slice(0, 16);
+ var iv = encseed.slice(0, 16);
+ var encryptedSeed = encseed.slice(16);
+ var aesCbc = new aes_js_1.default.ModeOfOperation.cbc(key, iv);
+ var seed = aes_js_1.default.padding.pkcs7.strip((0, bytes_1.arrayify)(aesCbc.decrypt(encryptedSeed)));
+ var seedHex = "";
+ for (var i = 0; i < seed.length; i++) {
+ seedHex += String.fromCharCode(seed[i]);
+ }
+ var seedHexBytes = (0, strings_1.toUtf8Bytes)(seedHex);
+ var privateKey = (0, keccak256_1.keccak256)(seedHexBytes);
+ return new CrowdsaleAccount({
+ _isCrowdsaleAccount: true,
+ address: ethaddr,
+ privateKey
+ });
+ }
+ exports2.decrypt = decrypt;
+ }
+});
+
+// node_modules/@ethersproject/json-wallets/lib/inspect.js
+var require_inspect = __commonJS({
+ "node_modules/@ethersproject/json-wallets/lib/inspect.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getJsonWalletAddress = exports2.isKeystoreWallet = exports2.isCrowdsaleWallet = void 0;
+ var address_1 = require_lib10();
+ function isCrowdsaleWallet(json) {
+ var data = null;
+ try {
+ data = JSON.parse(json);
+ } catch (error) {
+ return false;
+ }
+ return data.encseed && data.ethaddr;
+ }
+ exports2.isCrowdsaleWallet = isCrowdsaleWallet;
+ function isKeystoreWallet(json) {
+ var data = null;
+ try {
+ data = JSON.parse(json);
+ } catch (error) {
+ return false;
+ }
+ if (!data.version || parseInt(data.version) !== data.version || parseInt(data.version) !== 3) {
+ return false;
+ }
+ return true;
+ }
+ exports2.isKeystoreWallet = isKeystoreWallet;
+ function getJsonWalletAddress(json) {
+ if (isCrowdsaleWallet(json)) {
+ try {
+ return (0, address_1.getAddress)(JSON.parse(json).ethaddr);
+ } catch (error) {
+ return null;
+ }
+ }
+ if (isKeystoreWallet(json)) {
+ try {
+ return (0, address_1.getAddress)(JSON.parse(json).address);
+ } catch (error) {
+ return null;
+ }
+ }
+ return null;
+ }
+ exports2.getJsonWalletAddress = getJsonWalletAddress;
+ }
+});
+
+// node_modules/scrypt-js/scrypt.js
+var require_scrypt = __commonJS({
+ "node_modules/scrypt-js/scrypt.js"(exports2, module2) {
+ "use strict";
+ (function(root) {
+ const MAX_VALUE = 2147483647;
+ function SHA256(m) {
+ const K = new Uint32Array([
+ 1116352408,
+ 1899447441,
+ 3049323471,
+ 3921009573,
+ 961987163,
+ 1508970993,
+ 2453635748,
+ 2870763221,
+ 3624381080,
+ 310598401,
+ 607225278,
+ 1426881987,
+ 1925078388,
+ 2162078206,
+ 2614888103,
+ 3248222580,
+ 3835390401,
+ 4022224774,
+ 264347078,
+ 604807628,
+ 770255983,
+ 1249150122,
+ 1555081692,
+ 1996064986,
+ 2554220882,
+ 2821834349,
+ 2952996808,
+ 3210313671,
+ 3336571891,
+ 3584528711,
+ 113926993,
+ 338241895,
+ 666307205,
+ 773529912,
+ 1294757372,
+ 1396182291,
+ 1695183700,
+ 1986661051,
+ 2177026350,
+ 2456956037,
+ 2730485921,
+ 2820302411,
+ 3259730800,
+ 3345764771,
+ 3516065817,
+ 3600352804,
+ 4094571909,
+ 275423344,
+ 430227734,
+ 506948616,
+ 659060556,
+ 883997877,
+ 958139571,
+ 1322822218,
+ 1537002063,
+ 1747873779,
+ 1955562222,
+ 2024104815,
+ 2227730452,
+ 2361852424,
+ 2428436474,
+ 2756734187,
+ 3204031479,
+ 3329325298
+ ]);
+ let h0 = 1779033703, h1 = 3144134277, h2 = 1013904242, h3 = 2773480762;
+ let h4 = 1359893119, h5 = 2600822924, h6 = 528734635, h7 = 1541459225;
+ const w = new Uint32Array(64);
+ function blocks(p2) {
+ let off = 0, len = p2.length;
+ while (len >= 64) {
+ let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, u, i2, j, t1, t2;
+ for (i2 = 0; i2 < 16; i2++) {
+ j = off + i2 * 4;
+ w[i2] = (p2[j] & 255) << 24 | (p2[j + 1] & 255) << 16 | (p2[j + 2] & 255) << 8 | p2[j + 3] & 255;
+ }
+ for (i2 = 16; i2 < 64; i2++) {
+ u = w[i2 - 2];
+ t1 = (u >>> 17 | u << 32 - 17) ^ (u >>> 19 | u << 32 - 19) ^ u >>> 10;
+ u = w[i2 - 15];
+ t2 = (u >>> 7 | u << 32 - 7) ^ (u >>> 18 | u << 32 - 18) ^ u >>> 3;
+ w[i2] = (t1 + w[i2 - 7] | 0) + (t2 + w[i2 - 16] | 0) | 0;
+ }
+ for (i2 = 0; i2 < 64; i2++) {
+ t1 = (((e >>> 6 | e << 32 - 6) ^ (e >>> 11 | e << 32 - 11) ^ (e >>> 25 | e << 32 - 25)) + (e & f ^ ~e & g) | 0) + (h + (K[i2] + w[i2] | 0) | 0) | 0;
+ t2 = ((a >>> 2 | a << 32 - 2) ^ (a >>> 13 | a << 32 - 13) ^ (a >>> 22 | a << 32 - 22)) + (a & b ^ a & c ^ b & c) | 0;
+ h = g;
+ g = f;
+ f = e;
+ e = d + t1 | 0;
+ d = c;
+ c = b;
+ b = a;
+ a = t1 + t2 | 0;
+ }
+ h0 = h0 + a | 0;
+ h1 = h1 + b | 0;
+ h2 = h2 + c | 0;
+ h3 = h3 + d | 0;
+ h4 = h4 + e | 0;
+ h5 = h5 + f | 0;
+ h6 = h6 + g | 0;
+ h7 = h7 + h | 0;
+ off += 64;
+ len -= 64;
+ }
+ }
+ blocks(m);
+ let i, bytesLeft = m.length % 64, bitLenHi = m.length / 536870912 | 0, bitLenLo = m.length << 3, numZeros = bytesLeft < 56 ? 56 : 120, p = m.slice(m.length - bytesLeft, m.length);
+ p.push(128);
+ for (i = bytesLeft + 1; i < numZeros; i++) {
+ p.push(0);
+ }
+ p.push(bitLenHi >>> 24 & 255);
+ p.push(bitLenHi >>> 16 & 255);
+ p.push(bitLenHi >>> 8 & 255);
+ p.push(bitLenHi >>> 0 & 255);
+ p.push(bitLenLo >>> 24 & 255);
+ p.push(bitLenLo >>> 16 & 255);
+ p.push(bitLenLo >>> 8 & 255);
+ p.push(bitLenLo >>> 0 & 255);
+ blocks(p);
+ return [
+ h0 >>> 24 & 255,
+ h0 >>> 16 & 255,
+ h0 >>> 8 & 255,
+ h0 >>> 0 & 255,
+ h1 >>> 24 & 255,
+ h1 >>> 16 & 255,
+ h1 >>> 8 & 255,
+ h1 >>> 0 & 255,
+ h2 >>> 24 & 255,
+ h2 >>> 16 & 255,
+ h2 >>> 8 & 255,
+ h2 >>> 0 & 255,
+ h3 >>> 24 & 255,
+ h3 >>> 16 & 255,
+ h3 >>> 8 & 255,
+ h3 >>> 0 & 255,
+ h4 >>> 24 & 255,
+ h4 >>> 16 & 255,
+ h4 >>> 8 & 255,
+ h4 >>> 0 & 255,
+ h5 >>> 24 & 255,
+ h5 >>> 16 & 255,
+ h5 >>> 8 & 255,
+ h5 >>> 0 & 255,
+ h6 >>> 24 & 255,
+ h6 >>> 16 & 255,
+ h6 >>> 8 & 255,
+ h6 >>> 0 & 255,
+ h7 >>> 24 & 255,
+ h7 >>> 16 & 255,
+ h7 >>> 8 & 255,
+ h7 >>> 0 & 255
+ ];
+ }
+ function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) {
+ password = password.length <= 64 ? password : SHA256(password);
+ const innerLen = 64 + salt.length + 4;
+ const inner = new Array(innerLen);
+ const outerKey = new Array(64);
+ let i;
+ let dk = [];
+ for (i = 0; i < 64; i++) {
+ inner[i] = 54;
+ }
+ for (i = 0; i < password.length; i++) {
+ inner[i] ^= password[i];
+ }
+ for (i = 0; i < salt.length; i++) {
+ inner[64 + i] = salt[i];
+ }
+ for (i = innerLen - 4; i < innerLen; i++) {
+ inner[i] = 0;
+ }
+ for (i = 0; i < 64; i++)
+ outerKey[i] = 92;
+ for (i = 0; i < password.length; i++)
+ outerKey[i] ^= password[i];
+ function incrementCounter() {
+ for (let i2 = innerLen - 1; i2 >= innerLen - 4; i2--) {
+ inner[i2]++;
+ if (inner[i2] <= 255)
+ return;
+ inner[i2] = 0;
+ }
+ }
+ while (dkLen >= 32) {
+ incrementCounter();
+ dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))));
+ dkLen -= 32;
+ }
+ if (dkLen > 0) {
+ incrementCounter();
+ dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen));
+ }
+ return dk;
+ }
+ function blockmix_salsa8(BY, Yi, r, x, _X) {
+ let i;
+ arraycopy(BY, (2 * r - 1) * 16, _X, 0, 16);
+ for (i = 0; i < 2 * r; i++) {
+ blockxor(BY, i * 16, _X, 16);
+ salsa20_8(_X, x);
+ arraycopy(_X, 0, BY, Yi + i * 16, 16);
+ }
+ for (i = 0; i < r; i++) {
+ arraycopy(BY, Yi + i * 2 * 16, BY, i * 16, 16);
+ }
+ for (i = 0; i < r; i++) {
+ arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r) * 16, 16);
+ }
+ }
+ function R(a, b) {
+ return a << b | a >>> 32 - b;
+ }
+ function salsa20_8(B, x) {
+ arraycopy(B, 0, x, 0, 16);
+ for (let i = 8; i > 0; i -= 2) {
+ x[4] ^= R(x[0] + x[12], 7);
+ x[8] ^= R(x[4] + x[0], 9);
+ x[12] ^= R(x[8] + x[4], 13);
+ x[0] ^= R(x[12] + x[8], 18);
+ x[9] ^= R(x[5] + x[1], 7);
+ x[13] ^= R(x[9] + x[5], 9);
+ x[1] ^= R(x[13] + x[9], 13);
+ x[5] ^= R(x[1] + x[13], 18);
+ x[14] ^= R(x[10] + x[6], 7);
+ x[2] ^= R(x[14] + x[10], 9);
+ x[6] ^= R(x[2] + x[14], 13);
+ x[10] ^= R(x[6] + x[2], 18);
+ x[3] ^= R(x[15] + x[11], 7);
+ x[7] ^= R(x[3] + x[15], 9);
+ x[11] ^= R(x[7] + x[3], 13);
+ x[15] ^= R(x[11] + x[7], 18);
+ x[1] ^= R(x[0] + x[3], 7);
+ x[2] ^= R(x[1] + x[0], 9);
+ x[3] ^= R(x[2] + x[1], 13);
+ x[0] ^= R(x[3] + x[2], 18);
+ x[6] ^= R(x[5] + x[4], 7);
+ x[7] ^= R(x[6] + x[5], 9);
+ x[4] ^= R(x[7] + x[6], 13);
+ x[5] ^= R(x[4] + x[7], 18);
+ x[11] ^= R(x[10] + x[9], 7);
+ x[8] ^= R(x[11] + x[10], 9);
+ x[9] ^= R(x[8] + x[11], 13);
+ x[10] ^= R(x[9] + x[8], 18);
+ x[12] ^= R(x[15] + x[14], 7);
+ x[13] ^= R(x[12] + x[15], 9);
+ x[14] ^= R(x[13] + x[12], 13);
+ x[15] ^= R(x[14] + x[13], 18);
+ }
+ for (let i = 0; i < 16; ++i) {
+ B[i] += x[i];
+ }
+ }
+ function blockxor(S, Si, D, len) {
+ for (let i = 0; i < len; i++) {
+ D[i] ^= S[Si + i];
+ }
+ }
+ function arraycopy(src, srcPos, dest, destPos, length) {
+ while (length--) {
+ dest[destPos++] = src[srcPos++];
+ }
+ }
+ function checkBufferish(o) {
+ if (!o || typeof o.length !== "number") {
+ return false;
+ }
+ for (let i = 0; i < o.length; i++) {
+ const v = o[i];
+ if (typeof v !== "number" || v % 1 || v < 0 || v >= 256) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function ensureInteger(value, name) {
+ if (typeof value !== "number" || value % 1) {
+ throw new Error("invalid " + name);
+ }
+ return value;
+ }
+ function _scrypt(password, salt, N, r, p, dkLen, callback) {
+ N = ensureInteger(N, "N");
+ r = ensureInteger(r, "r");
+ p = ensureInteger(p, "p");
+ dkLen = ensureInteger(dkLen, "dkLen");
+ if (N === 0 || (N & N - 1) !== 0) {
+ throw new Error("N must be power of 2");
+ }
+ if (N > MAX_VALUE / 128 / r) {
+ throw new Error("N too large");
+ }
+ if (r > MAX_VALUE / 128 / p) {
+ throw new Error("r too large");
+ }
+ if (!checkBufferish(password)) {
+ throw new Error("password must be an array or buffer");
+ }
+ password = Array.prototype.slice.call(password);
+ if (!checkBufferish(salt)) {
+ throw new Error("salt must be an array or buffer");
+ }
+ salt = Array.prototype.slice.call(salt);
+ let b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r);
+ const B = new Uint32Array(p * 32 * r);
+ for (let i = 0; i < B.length; i++) {
+ const j = i * 4;
+ B[i] = (b[j + 3] & 255) << 24 | (b[j + 2] & 255) << 16 | (b[j + 1] & 255) << 8 | (b[j + 0] & 255) << 0;
+ }
+ const XY = new Uint32Array(64 * r);
+ const V = new Uint32Array(32 * r * N);
+ const Yi = 32 * r;
+ const x = new Uint32Array(16);
+ const _X = new Uint32Array(16);
+ const totalOps = p * N * 2;
+ let currentOp = 0;
+ let lastPercent10 = null;
+ let stop = false;
+ let state = 0;
+ let i0 = 0, i1;
+ let Bi;
+ const limit = callback ? parseInt(1e3 / r) : 4294967295;
+ const nextTick = typeof setImmediate !== "undefined" ? setImmediate : setTimeout;
+ const incrementalSMix = function() {
+ if (stop) {
+ return callback(new Error("cancelled"), currentOp / totalOps);
+ }
+ let steps;
+ switch (state) {
+ case 0:
+ Bi = i0 * 32 * r;
+ arraycopy(B, Bi, XY, 0, Yi);
+ state = 1;
+ i1 = 0;
+ case 1:
+ steps = N - i1;
+ if (steps > limit) {
+ steps = limit;
+ }
+ for (let i = 0; i < steps; i++) {
+ arraycopy(XY, 0, V, (i1 + i) * Yi, Yi);
+ blockmix_salsa8(XY, Yi, r, x, _X);
+ }
+ i1 += steps;
+ currentOp += steps;
+ if (callback) {
+ const percent10 = parseInt(1e3 * currentOp / totalOps);
+ if (percent10 !== lastPercent10) {
+ stop = callback(null, currentOp / totalOps);
+ if (stop) {
+ break;
+ }
+ lastPercent10 = percent10;
+ }
+ }
+ if (i1 < N) {
+ break;
+ }
+ i1 = 0;
+ state = 2;
+ case 2:
+ steps = N - i1;
+ if (steps > limit) {
+ steps = limit;
+ }
+ for (let i = 0; i < steps; i++) {
+ const offset = (2 * r - 1) * 16;
+ const j = XY[offset] & N - 1;
+ blockxor(V, j * Yi, XY, Yi);
+ blockmix_salsa8(XY, Yi, r, x, _X);
+ }
+ i1 += steps;
+ currentOp += steps;
+ if (callback) {
+ const percent10 = parseInt(1e3 * currentOp / totalOps);
+ if (percent10 !== lastPercent10) {
+ stop = callback(null, currentOp / totalOps);
+ if (stop) {
+ break;
+ }
+ lastPercent10 = percent10;
+ }
+ }
+ if (i1 < N) {
+ break;
+ }
+ arraycopy(XY, 0, B, Bi, Yi);
+ i0++;
+ if (i0 < p) {
+ state = 0;
+ break;
+ }
+ b = [];
+ for (let i = 0; i < B.length; i++) {
+ b.push(B[i] >> 0 & 255);
+ b.push(B[i] >> 8 & 255);
+ b.push(B[i] >> 16 & 255);
+ b.push(B[i] >> 24 & 255);
+ }
+ const derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen);
+ if (callback) {
+ callback(null, 1, derivedKey);
+ }
+ return derivedKey;
+ }
+ if (callback) {
+ nextTick(incrementalSMix);
+ }
+ };
+ if (!callback) {
+ while (true) {
+ const derivedKey = incrementalSMix();
+ if (derivedKey != void 0) {
+ return derivedKey;
+ }
+ }
+ }
+ incrementalSMix();
+ }
+ const lib = {
+ scrypt: function(password, salt, N, r, p, dkLen, progressCallback) {
+ return new Promise(function(resolve, reject) {
+ let lastProgress = 0;
+ if (progressCallback) {
+ progressCallback(0);
+ }
+ _scrypt(password, salt, N, r, p, dkLen, function(error, progress, key) {
+ if (error) {
+ reject(error);
+ } else if (key) {
+ if (progressCallback && lastProgress !== 1) {
+ progressCallback(1);
+ }
+ resolve(new Uint8Array(key));
+ } else if (progressCallback && progress !== lastProgress) {
+ lastProgress = progress;
+ return progressCallback(progress);
+ }
+ });
+ });
+ },
+ syncScrypt: function(password, salt, N, r, p, dkLen) {
+ return new Uint8Array(_scrypt(password, salt, N, r, p, dkLen));
+ }
+ };
+ if (typeof exports2 !== "undefined") {
+ module2.exports = lib;
+ } else if (typeof define === "function" && define.amd) {
+ define(lib);
+ } else if (root) {
+ if (root.scrypt) {
+ root._scrypt = root.scrypt;
+ }
+ root.scrypt = lib;
+ }
+ })(exports2);
+ }
+});
+
+// node_modules/@ethersproject/json-wallets/lib/keystore.js
+var require_keystore = __commonJS({
+ "node_modules/@ethersproject/json-wallets/lib/keystore.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ var __importDefault13 = exports2 && exports2.__importDefault || function(mod) {
+ return mod && mod.__esModule ? mod : { "default": mod };
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.encrypt = exports2.decrypt = exports2.decryptSync = exports2.KeystoreAccount = void 0;
+ var aes_js_1 = __importDefault13(require_aes_js());
+ var scrypt_js_1 = __importDefault13(require_scrypt());
+ var address_1 = require_lib10();
+ var bytes_1 = require_lib6();
+ var hdnode_1 = require_lib27();
+ var keccak256_1 = require_lib8();
+ var pbkdf2_1 = require_lib24();
+ var random_1 = require_lib28();
+ var properties_1 = require_lib12();
+ var transactions_1 = require_lib14();
+ var utils_1 = require_utils7();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version18();
+ var logger = new logger_1.Logger(_version_1.version);
+ function hasMnemonic(value) {
+ return value != null && value.mnemonic && value.mnemonic.phrase;
+ }
+ var KeystoreAccount = (
+ /** @class */
+ function(_super) {
+ __extends13(KeystoreAccount2, _super);
+ function KeystoreAccount2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ KeystoreAccount2.prototype.isKeystoreAccount = function(value) {
+ return !!(value && value._isKeystoreAccount);
+ };
+ return KeystoreAccount2;
+ }(properties_1.Description)
+ );
+ exports2.KeystoreAccount = KeystoreAccount;
+ function _decrypt(data, key, ciphertext) {
+ var cipher = (0, utils_1.searchPath)(data, "crypto/cipher");
+ if (cipher === "aes-128-ctr") {
+ var iv = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "crypto/cipherparams/iv"));
+ var counter = new aes_js_1.default.Counter(iv);
+ var aesCtr = new aes_js_1.default.ModeOfOperation.ctr(key, counter);
+ return (0, bytes_1.arrayify)(aesCtr.decrypt(ciphertext));
+ }
+ return null;
+ }
+ function _getAccount(data, key) {
+ var ciphertext = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "crypto/ciphertext"));
+ var computedMAC = (0, bytes_1.hexlify)((0, keccak256_1.keccak256)((0, bytes_1.concat)([key.slice(16, 32), ciphertext]))).substring(2);
+ if (computedMAC !== (0, utils_1.searchPath)(data, "crypto/mac").toLowerCase()) {
+ throw new Error("invalid password");
+ }
+ var privateKey = _decrypt(data, key.slice(0, 16), ciphertext);
+ if (!privateKey) {
+ logger.throwError("unsupported cipher", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "decrypt"
+ });
+ }
+ var mnemonicKey = key.slice(32, 64);
+ var address = (0, transactions_1.computeAddress)(privateKey);
+ if (data.address) {
+ var check = data.address.toLowerCase();
+ if (check.substring(0, 2) !== "0x") {
+ check = "0x" + check;
+ }
+ if ((0, address_1.getAddress)(check) !== address) {
+ throw new Error("address mismatch");
+ }
+ }
+ var account = {
+ _isKeystoreAccount: true,
+ address,
+ privateKey: (0, bytes_1.hexlify)(privateKey)
+ };
+ if ((0, utils_1.searchPath)(data, "x-ethers/version") === "0.1") {
+ var mnemonicCiphertext = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "x-ethers/mnemonicCiphertext"));
+ var mnemonicIv = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "x-ethers/mnemonicCounter"));
+ var mnemonicCounter = new aes_js_1.default.Counter(mnemonicIv);
+ var mnemonicAesCtr = new aes_js_1.default.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);
+ var path = (0, utils_1.searchPath)(data, "x-ethers/path") || hdnode_1.defaultPath;
+ var locale = (0, utils_1.searchPath)(data, "x-ethers/locale") || "en";
+ var entropy = (0, bytes_1.arrayify)(mnemonicAesCtr.decrypt(mnemonicCiphertext));
+ try {
+ var mnemonic = (0, hdnode_1.entropyToMnemonic)(entropy, locale);
+ var node = hdnode_1.HDNode.fromMnemonic(mnemonic, null, locale).derivePath(path);
+ if (node.privateKey != account.privateKey) {
+ throw new Error("mnemonic mismatch");
+ }
+ account.mnemonic = node.mnemonic;
+ } catch (error) {
+ if (error.code !== logger_1.Logger.errors.INVALID_ARGUMENT || error.argument !== "wordlist") {
+ throw error;
+ }
+ }
+ }
+ return new KeystoreAccount(account);
+ }
+ function pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc) {
+ return (0, bytes_1.arrayify)((0, pbkdf2_1.pbkdf2)(passwordBytes, salt, count, dkLen, prfFunc));
+ }
+ function pbkdf2(passwordBytes, salt, count, dkLen, prfFunc) {
+ return Promise.resolve(pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc));
+ }
+ function _computeKdfKey(data, password, pbkdf2Func, scryptFunc, progressCallback) {
+ var passwordBytes = (0, utils_1.getPassword)(password);
+ var kdf = (0, utils_1.searchPath)(data, "crypto/kdf");
+ if (kdf && typeof kdf === "string") {
+ var throwError = function(name, value) {
+ return logger.throwArgumentError("invalid key-derivation function parameters", name, value);
+ };
+ if (kdf.toLowerCase() === "scrypt") {
+ var salt = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "crypto/kdfparams/salt"));
+ var N = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/n"));
+ var r = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/r"));
+ var p = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/p"));
+ if (!N || !r || !p) {
+ throwError("kdf", kdf);
+ }
+ if ((N & N - 1) !== 0) {
+ throwError("N", N);
+ }
+ var dkLen = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/dklen"));
+ if (dkLen !== 32) {
+ throwError("dklen", dkLen);
+ }
+ return scryptFunc(passwordBytes, salt, N, r, p, 64, progressCallback);
+ } else if (kdf.toLowerCase() === "pbkdf2") {
+ var salt = (0, utils_1.looseArrayify)((0, utils_1.searchPath)(data, "crypto/kdfparams/salt"));
+ var prfFunc = null;
+ var prf = (0, utils_1.searchPath)(data, "crypto/kdfparams/prf");
+ if (prf === "hmac-sha256") {
+ prfFunc = "sha256";
+ } else if (prf === "hmac-sha512") {
+ prfFunc = "sha512";
+ } else {
+ throwError("prf", prf);
+ }
+ var count = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/c"));
+ var dkLen = parseInt((0, utils_1.searchPath)(data, "crypto/kdfparams/dklen"));
+ if (dkLen !== 32) {
+ throwError("dklen", dkLen);
+ }
+ return pbkdf2Func(passwordBytes, salt, count, dkLen, prfFunc);
+ }
+ }
+ return logger.throwArgumentError("unsupported key-derivation function", "kdf", kdf);
+ }
+ function decryptSync(json, password) {
+ var data = JSON.parse(json);
+ var key = _computeKdfKey(data, password, pbkdf2Sync, scrypt_js_1.default.syncScrypt);
+ return _getAccount(data, key);
+ }
+ exports2.decryptSync = decryptSync;
+ function decrypt(json, password, progressCallback) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var data, key;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ data = JSON.parse(json);
+ return [4, _computeKdfKey(data, password, pbkdf2, scrypt_js_1.default.scrypt, progressCallback)];
+ case 1:
+ key = _a.sent();
+ return [2, _getAccount(data, key)];
+ }
+ });
+ });
+ }
+ exports2.decrypt = decrypt;
+ function encrypt(account, password, options, progressCallback) {
+ try {
+ if ((0, address_1.getAddress)(account.address) !== (0, transactions_1.computeAddress)(account.privateKey)) {
+ throw new Error("address/privateKey mismatch");
+ }
+ if (hasMnemonic(account)) {
+ var mnemonic = account.mnemonic;
+ var node = hdnode_1.HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path || hdnode_1.defaultPath);
+ if (node.privateKey != account.privateKey) {
+ throw new Error("mnemonic mismatch");
+ }
+ }
+ } catch (e) {
+ return Promise.reject(e);
+ }
+ if (typeof options === "function" && !progressCallback) {
+ progressCallback = options;
+ options = {};
+ }
+ if (!options) {
+ options = {};
+ }
+ var privateKey = (0, bytes_1.arrayify)(account.privateKey);
+ var passwordBytes = (0, utils_1.getPassword)(password);
+ var entropy = null;
+ var path = null;
+ var locale = null;
+ if (hasMnemonic(account)) {
+ var srcMnemonic = account.mnemonic;
+ entropy = (0, bytes_1.arrayify)((0, hdnode_1.mnemonicToEntropy)(srcMnemonic.phrase, srcMnemonic.locale || "en"));
+ path = srcMnemonic.path || hdnode_1.defaultPath;
+ locale = srcMnemonic.locale || "en";
+ }
+ var client = options.client;
+ if (!client) {
+ client = "ethers.js";
+ }
+ var salt = null;
+ if (options.salt) {
+ salt = (0, bytes_1.arrayify)(options.salt);
+ } else {
+ salt = (0, random_1.randomBytes)(32);
+ ;
+ }
+ var iv = null;
+ if (options.iv) {
+ iv = (0, bytes_1.arrayify)(options.iv);
+ if (iv.length !== 16) {
+ throw new Error("invalid iv");
+ }
+ } else {
+ iv = (0, random_1.randomBytes)(16);
+ }
+ var uuidRandom = null;
+ if (options.uuid) {
+ uuidRandom = (0, bytes_1.arrayify)(options.uuid);
+ if (uuidRandom.length !== 16) {
+ throw new Error("invalid uuid");
+ }
+ } else {
+ uuidRandom = (0, random_1.randomBytes)(16);
+ }
+ var N = 1 << 17, r = 8, p = 1;
+ if (options.scrypt) {
+ if (options.scrypt.N) {
+ N = options.scrypt.N;
+ }
+ if (options.scrypt.r) {
+ r = options.scrypt.r;
+ }
+ if (options.scrypt.p) {
+ p = options.scrypt.p;
+ }
+ }
+ return scrypt_js_1.default.scrypt(passwordBytes, salt, N, r, p, 64, progressCallback).then(function(key) {
+ key = (0, bytes_1.arrayify)(key);
+ var derivedKey = key.slice(0, 16);
+ var macPrefix = key.slice(16, 32);
+ var mnemonicKey = key.slice(32, 64);
+ var counter = new aes_js_1.default.Counter(iv);
+ var aesCtr = new aes_js_1.default.ModeOfOperation.ctr(derivedKey, counter);
+ var ciphertext = (0, bytes_1.arrayify)(aesCtr.encrypt(privateKey));
+ var mac = (0, keccak256_1.keccak256)((0, bytes_1.concat)([macPrefix, ciphertext]));
+ var data = {
+ address: account.address.substring(2).toLowerCase(),
+ id: (0, utils_1.uuidV4)(uuidRandom),
+ version: 3,
+ crypto: {
+ cipher: "aes-128-ctr",
+ cipherparams: {
+ iv: (0, bytes_1.hexlify)(iv).substring(2)
+ },
+ ciphertext: (0, bytes_1.hexlify)(ciphertext).substring(2),
+ kdf: "scrypt",
+ kdfparams: {
+ salt: (0, bytes_1.hexlify)(salt).substring(2),
+ n: N,
+ dklen: 32,
+ p,
+ r
+ },
+ mac: mac.substring(2)
+ }
+ };
+ if (entropy) {
+ var mnemonicIv = (0, random_1.randomBytes)(16);
+ var mnemonicCounter = new aes_js_1.default.Counter(mnemonicIv);
+ var mnemonicAesCtr = new aes_js_1.default.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);
+ var mnemonicCiphertext = (0, bytes_1.arrayify)(mnemonicAesCtr.encrypt(entropy));
+ var now = /* @__PURE__ */ new Date();
+ var timestamp = now.getUTCFullYear() + "-" + (0, utils_1.zpad)(now.getUTCMonth() + 1, 2) + "-" + (0, utils_1.zpad)(now.getUTCDate(), 2) + "T" + (0, utils_1.zpad)(now.getUTCHours(), 2) + "-" + (0, utils_1.zpad)(now.getUTCMinutes(), 2) + "-" + (0, utils_1.zpad)(now.getUTCSeconds(), 2) + ".0Z";
+ data["x-ethers"] = {
+ client,
+ gethFilename: "UTC--" + timestamp + "--" + data.address,
+ mnemonicCounter: (0, bytes_1.hexlify)(mnemonicIv).substring(2),
+ mnemonicCiphertext: (0, bytes_1.hexlify)(mnemonicCiphertext).substring(2),
+ path,
+ locale,
+ version: "0.1"
+ };
+ }
+ return JSON.stringify(data);
+ });
+ }
+ exports2.encrypt = encrypt;
+ }
+});
+
+// node_modules/@ethersproject/json-wallets/lib/index.js
+var require_lib29 = __commonJS({
+ "node_modules/@ethersproject/json-wallets/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.decryptJsonWalletSync = exports2.decryptJsonWallet = exports2.getJsonWalletAddress = exports2.isKeystoreWallet = exports2.isCrowdsaleWallet = exports2.encryptKeystore = exports2.decryptKeystoreSync = exports2.decryptKeystore = exports2.decryptCrowdsale = void 0;
+ var crowdsale_1 = require_crowdsale();
+ Object.defineProperty(exports2, "decryptCrowdsale", { enumerable: true, get: function() {
+ return crowdsale_1.decrypt;
+ } });
+ var inspect_1 = require_inspect();
+ Object.defineProperty(exports2, "getJsonWalletAddress", { enumerable: true, get: function() {
+ return inspect_1.getJsonWalletAddress;
+ } });
+ Object.defineProperty(exports2, "isCrowdsaleWallet", { enumerable: true, get: function() {
+ return inspect_1.isCrowdsaleWallet;
+ } });
+ Object.defineProperty(exports2, "isKeystoreWallet", { enumerable: true, get: function() {
+ return inspect_1.isKeystoreWallet;
+ } });
+ var keystore_1 = require_keystore();
+ Object.defineProperty(exports2, "decryptKeystore", { enumerable: true, get: function() {
+ return keystore_1.decrypt;
+ } });
+ Object.defineProperty(exports2, "decryptKeystoreSync", { enumerable: true, get: function() {
+ return keystore_1.decryptSync;
+ } });
+ Object.defineProperty(exports2, "encryptKeystore", { enumerable: true, get: function() {
+ return keystore_1.encrypt;
+ } });
+ function decryptJsonWallet(json, password, progressCallback) {
+ if ((0, inspect_1.isCrowdsaleWallet)(json)) {
+ if (progressCallback) {
+ progressCallback(0);
+ }
+ var account = (0, crowdsale_1.decrypt)(json, password);
+ if (progressCallback) {
+ progressCallback(1);
+ }
+ return Promise.resolve(account);
+ }
+ if ((0, inspect_1.isKeystoreWallet)(json)) {
+ return (0, keystore_1.decrypt)(json, password, progressCallback);
+ }
+ return Promise.reject(new Error("invalid JSON wallet"));
+ }
+ exports2.decryptJsonWallet = decryptJsonWallet;
+ function decryptJsonWalletSync(json, password) {
+ if ((0, inspect_1.isCrowdsaleWallet)(json)) {
+ return (0, crowdsale_1.decrypt)(json, password);
+ }
+ if ((0, inspect_1.isKeystoreWallet)(json)) {
+ return (0, keystore_1.decryptSync)(json, password);
+ }
+ throw new Error("invalid JSON wallet");
+ }
+ exports2.decryptJsonWalletSync = decryptJsonWalletSync;
+ }
+});
+
+// node_modules/@ethersproject/wallet/lib/_version.js
+var require_version19 = __commonJS({
+ "node_modules/@ethersproject/wallet/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "wallet/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/wallet/lib/index.js
+var require_lib30 = __commonJS({
+ "node_modules/@ethersproject/wallet/lib/index.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.verifyTypedData = exports2.verifyMessage = exports2.Wallet = void 0;
+ var address_1 = require_lib10();
+ var abstract_provider_1 = require_lib20();
+ var abstract_signer_1 = require_lib21();
+ var bytes_1 = require_lib6();
+ var hash_1 = require_lib18();
+ var hdnode_1 = require_lib27();
+ var keccak256_1 = require_lib8();
+ var properties_1 = require_lib12();
+ var random_1 = require_lib28();
+ var signing_key_1 = require_lib13();
+ var json_wallets_1 = require_lib29();
+ var transactions_1 = require_lib14();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version19();
+ var logger = new logger_1.Logger(_version_1.version);
+ function isAccount(value) {
+ return value != null && (0, bytes_1.isHexString)(value.privateKey, 32) && value.address != null;
+ }
+ function hasMnemonic(value) {
+ var mnemonic = value.mnemonic;
+ return mnemonic && mnemonic.phrase;
+ }
+ var Wallet = (
+ /** @class */
+ function(_super) {
+ __extends13(Wallet2, _super);
+ function Wallet2(privateKey, provider) {
+ var _this = _super.call(this) || this;
+ if (isAccount(privateKey)) {
+ var signingKey_1 = new signing_key_1.SigningKey(privateKey.privateKey);
+ (0, properties_1.defineReadOnly)(_this, "_signingKey", function() {
+ return signingKey_1;
+ });
+ (0, properties_1.defineReadOnly)(_this, "address", (0, transactions_1.computeAddress)(_this.publicKey));
+ if (_this.address !== (0, address_1.getAddress)(privateKey.address)) {
+ logger.throwArgumentError("privateKey/address mismatch", "privateKey", "[REDACTED]");
+ }
+ if (hasMnemonic(privateKey)) {
+ var srcMnemonic_1 = privateKey.mnemonic;
+ (0, properties_1.defineReadOnly)(_this, "_mnemonic", function() {
+ return {
+ phrase: srcMnemonic_1.phrase,
+ path: srcMnemonic_1.path || hdnode_1.defaultPath,
+ locale: srcMnemonic_1.locale || "en"
+ };
+ });
+ var mnemonic = _this.mnemonic;
+ var node = hdnode_1.HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path);
+ if ((0, transactions_1.computeAddress)(node.privateKey) !== _this.address) {
+ logger.throwArgumentError("mnemonic/address mismatch", "privateKey", "[REDACTED]");
+ }
+ } else {
+ (0, properties_1.defineReadOnly)(_this, "_mnemonic", function() {
+ return null;
+ });
+ }
+ } else {
+ if (signing_key_1.SigningKey.isSigningKey(privateKey)) {
+ if (privateKey.curve !== "secp256k1") {
+ logger.throwArgumentError("unsupported curve; must be secp256k1", "privateKey", "[REDACTED]");
+ }
+ (0, properties_1.defineReadOnly)(_this, "_signingKey", function() {
+ return privateKey;
+ });
+ } else {
+ if (typeof privateKey === "string") {
+ if (privateKey.match(/^[0-9a-f]*$/i) && privateKey.length === 64) {
+ privateKey = "0x" + privateKey;
+ }
+ }
+ var signingKey_2 = new signing_key_1.SigningKey(privateKey);
+ (0, properties_1.defineReadOnly)(_this, "_signingKey", function() {
+ return signingKey_2;
+ });
+ }
+ (0, properties_1.defineReadOnly)(_this, "_mnemonic", function() {
+ return null;
+ });
+ (0, properties_1.defineReadOnly)(_this, "address", (0, transactions_1.computeAddress)(_this.publicKey));
+ }
+ if (provider && !abstract_provider_1.Provider.isProvider(provider)) {
+ logger.throwArgumentError("invalid provider", "provider", provider);
+ }
+ (0, properties_1.defineReadOnly)(_this, "provider", provider || null);
+ return _this;
+ }
+ Object.defineProperty(Wallet2.prototype, "mnemonic", {
+ get: function() {
+ return this._mnemonic();
+ },
+ enumerable: false,
+ configurable: true
+ });
+ Object.defineProperty(Wallet2.prototype, "privateKey", {
+ get: function() {
+ return this._signingKey().privateKey;
+ },
+ enumerable: false,
+ configurable: true
+ });
+ Object.defineProperty(Wallet2.prototype, "publicKey", {
+ get: function() {
+ return this._signingKey().publicKey;
+ },
+ enumerable: false,
+ configurable: true
+ });
+ Wallet2.prototype.getAddress = function() {
+ return Promise.resolve(this.address);
+ };
+ Wallet2.prototype.connect = function(provider) {
+ return new Wallet2(this, provider);
+ };
+ Wallet2.prototype.signTransaction = function(transaction) {
+ var _this = this;
+ return (0, properties_1.resolveProperties)(transaction).then(function(tx) {
+ if (tx.from != null) {
+ if ((0, address_1.getAddress)(tx.from) !== _this.address) {
+ logger.throwArgumentError("transaction from address mismatch", "transaction.from", transaction.from);
+ }
+ delete tx.from;
+ }
+ var signature = _this._signingKey().signDigest((0, keccak256_1.keccak256)((0, transactions_1.serialize)(tx)));
+ return (0, transactions_1.serialize)(tx, signature);
+ });
+ };
+ Wallet2.prototype.signMessage = function(message) {
+ return __awaiter13(this, void 0, void 0, function() {
+ return __generator13(this, function(_a) {
+ return [2, (0, bytes_1.joinSignature)(this._signingKey().signDigest((0, hash_1.hashMessage)(message)))];
+ });
+ });
+ };
+ Wallet2.prototype._signTypedData = function(domain, types, value) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var populated;
+ var _this = this;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, hash_1._TypedDataEncoder.resolveNames(domain, types, value, function(name) {
+ if (_this.provider == null) {
+ logger.throwError("cannot resolve ENS names without a provider", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "resolveName",
+ value: name
+ });
+ }
+ return _this.provider.resolveName(name);
+ })];
+ case 1:
+ populated = _a.sent();
+ return [2, (0, bytes_1.joinSignature)(this._signingKey().signDigest(hash_1._TypedDataEncoder.hash(populated.domain, types, populated.value)))];
+ }
+ });
+ });
+ };
+ Wallet2.prototype.encrypt = function(password, options, progressCallback) {
+ if (typeof options === "function" && !progressCallback) {
+ progressCallback = options;
+ options = {};
+ }
+ if (progressCallback && typeof progressCallback !== "function") {
+ throw new Error("invalid callback");
+ }
+ if (!options) {
+ options = {};
+ }
+ return (0, json_wallets_1.encryptKeystore)(this, password, options, progressCallback);
+ };
+ Wallet2.createRandom = function(options) {
+ var entropy = (0, random_1.randomBytes)(16);
+ if (!options) {
+ options = {};
+ }
+ if (options.extraEntropy) {
+ entropy = (0, bytes_1.arrayify)((0, bytes_1.hexDataSlice)((0, keccak256_1.keccak256)((0, bytes_1.concat)([entropy, options.extraEntropy])), 0, 16));
+ }
+ var mnemonic = (0, hdnode_1.entropyToMnemonic)(entropy, options.locale);
+ return Wallet2.fromMnemonic(mnemonic, options.path, options.locale);
+ };
+ Wallet2.fromEncryptedJson = function(json, password, progressCallback) {
+ return (0, json_wallets_1.decryptJsonWallet)(json, password, progressCallback).then(function(account) {
+ return new Wallet2(account);
+ });
+ };
+ Wallet2.fromEncryptedJsonSync = function(json, password) {
+ return new Wallet2((0, json_wallets_1.decryptJsonWalletSync)(json, password));
+ };
+ Wallet2.fromMnemonic = function(mnemonic, path, wordlist) {
+ if (!path) {
+ path = hdnode_1.defaultPath;
+ }
+ return new Wallet2(hdnode_1.HDNode.fromMnemonic(mnemonic, null, wordlist).derivePath(path));
+ };
+ return Wallet2;
+ }(abstract_signer_1.Signer)
+ );
+ exports2.Wallet = Wallet;
+ function verifyMessage(message, signature) {
+ return (0, transactions_1.recoverAddress)((0, hash_1.hashMessage)(message), signature);
+ }
+ exports2.verifyMessage = verifyMessage;
+ function verifyTypedData(domain, types, value, signature) {
+ return (0, transactions_1.recoverAddress)(hash_1._TypedDataEncoder.hash(domain, types, value), signature);
+ }
+ exports2.verifyTypedData = verifyTypedData;
+ }
+});
+
+// node_modules/@ethersproject/networks/lib/_version.js
+var require_version20 = __commonJS({
+ "node_modules/@ethersproject/networks/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "networks/5.7.1";
+ }
+});
+
+// node_modules/@ethersproject/networks/lib/index.js
+var require_lib31 = __commonJS({
+ "node_modules/@ethersproject/networks/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getNetwork = void 0;
+ var logger_1 = require_lib5();
+ var _version_1 = require_version20();
+ var logger = new logger_1.Logger(_version_1.version);
+ function isRenetworkable(value) {
+ return value && typeof value.renetwork === "function";
+ }
+ function ethDefaultProvider(network) {
+ var func = function(providers, options) {
+ if (options == null) {
+ options = {};
+ }
+ var providerList = [];
+ if (providers.InfuraProvider && options.infura !== "-") {
+ try {
+ providerList.push(new providers.InfuraProvider(network, options.infura));
+ } catch (error) {
+ }
+ }
+ if (providers.EtherscanProvider && options.etherscan !== "-") {
+ try {
+ providerList.push(new providers.EtherscanProvider(network, options.etherscan));
+ } catch (error) {
+ }
+ }
+ if (providers.AlchemyProvider && options.alchemy !== "-") {
+ try {
+ providerList.push(new providers.AlchemyProvider(network, options.alchemy));
+ } catch (error) {
+ }
+ }
+ if (providers.PocketProvider && options.pocket !== "-") {
+ var skip = ["goerli", "ropsten", "rinkeby", "sepolia"];
+ try {
+ var provider = new providers.PocketProvider(network, options.pocket);
+ if (provider.network && skip.indexOf(provider.network.name) === -1) {
+ providerList.push(provider);
+ }
+ } catch (error) {
+ }
+ }
+ if (providers.CloudflareProvider && options.cloudflare !== "-") {
+ try {
+ providerList.push(new providers.CloudflareProvider(network));
+ } catch (error) {
+ }
+ }
+ if (providers.AnkrProvider && options.ankr !== "-") {
+ try {
+ var skip = ["ropsten"];
+ var provider = new providers.AnkrProvider(network, options.ankr);
+ if (provider.network && skip.indexOf(provider.network.name) === -1) {
+ providerList.push(provider);
+ }
+ } catch (error) {
+ }
+ }
+ if (providerList.length === 0) {
+ return null;
+ }
+ if (providers.FallbackProvider) {
+ var quorum = 1;
+ if (options.quorum != null) {
+ quorum = options.quorum;
+ } else if (network === "homestead") {
+ quorum = 2;
+ }
+ return new providers.FallbackProvider(providerList, quorum);
+ }
+ return providerList[0];
+ };
+ func.renetwork = function(network2) {
+ return ethDefaultProvider(network2);
+ };
+ return func;
+ }
+ function etcDefaultProvider(url, network) {
+ var func = function(providers, options) {
+ if (providers.JsonRpcProvider) {
+ return new providers.JsonRpcProvider(url, network);
+ }
+ return null;
+ };
+ func.renetwork = function(network2) {
+ return etcDefaultProvider(url, network2);
+ };
+ return func;
+ }
+ var homestead = {
+ chainId: 1,
+ ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
+ name: "homestead",
+ _defaultProvider: ethDefaultProvider("homestead")
+ };
+ var ropsten = {
+ chainId: 3,
+ ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
+ name: "ropsten",
+ _defaultProvider: ethDefaultProvider("ropsten")
+ };
+ var classicMordor = {
+ chainId: 63,
+ name: "classicMordor",
+ _defaultProvider: etcDefaultProvider("https://www.ethercluster.com/mordor", "classicMordor")
+ };
+ var networks = {
+ unspecified: { chainId: 0, name: "unspecified" },
+ homestead,
+ mainnet: homestead,
+ morden: { chainId: 2, name: "morden" },
+ ropsten,
+ testnet: ropsten,
+ rinkeby: {
+ chainId: 4,
+ ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
+ name: "rinkeby",
+ _defaultProvider: ethDefaultProvider("rinkeby")
+ },
+ kovan: {
+ chainId: 42,
+ name: "kovan",
+ _defaultProvider: ethDefaultProvider("kovan")
+ },
+ goerli: {
+ chainId: 5,
+ ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",
+ name: "goerli",
+ _defaultProvider: ethDefaultProvider("goerli")
+ },
+ kintsugi: { chainId: 1337702, name: "kintsugi" },
+ sepolia: {
+ chainId: 11155111,
+ name: "sepolia",
+ _defaultProvider: ethDefaultProvider("sepolia")
+ },
+ // ETC (See: #351)
+ classic: {
+ chainId: 61,
+ name: "classic",
+ _defaultProvider: etcDefaultProvider("https://www.ethercluster.com/etc", "classic")
+ },
+ classicMorden: { chainId: 62, name: "classicMorden" },
+ classicMordor,
+ classicTestnet: classicMordor,
+ classicKotti: {
+ chainId: 6,
+ name: "classicKotti",
+ _defaultProvider: etcDefaultProvider("https://www.ethercluster.com/kotti", "classicKotti")
+ },
+ xdai: { chainId: 100, name: "xdai" },
+ matic: {
+ chainId: 137,
+ name: "matic",
+ _defaultProvider: ethDefaultProvider("matic")
+ },
+ maticmum: { chainId: 80001, name: "maticmum" },
+ optimism: {
+ chainId: 10,
+ name: "optimism",
+ _defaultProvider: ethDefaultProvider("optimism")
+ },
+ "optimism-kovan": { chainId: 69, name: "optimism-kovan" },
+ "optimism-goerli": { chainId: 420, name: "optimism-goerli" },
+ arbitrum: { chainId: 42161, name: "arbitrum" },
+ "arbitrum-rinkeby": { chainId: 421611, name: "arbitrum-rinkeby" },
+ "arbitrum-goerli": { chainId: 421613, name: "arbitrum-goerli" },
+ bnb: { chainId: 56, name: "bnb" },
+ bnbt: { chainId: 97, name: "bnbt" }
+ };
+ function getNetwork(network) {
+ if (network == null) {
+ return null;
+ }
+ if (typeof network === "number") {
+ for (var name_1 in networks) {
+ var standard_1 = networks[name_1];
+ if (standard_1.chainId === network) {
+ return {
+ name: standard_1.name,
+ chainId: standard_1.chainId,
+ ensAddress: standard_1.ensAddress || null,
+ _defaultProvider: standard_1._defaultProvider || null
+ };
+ }
+ }
+ return {
+ chainId: network,
+ name: "unknown"
+ };
+ }
+ if (typeof network === "string") {
+ var standard_2 = networks[network];
+ if (standard_2 == null) {
+ return null;
+ }
+ return {
+ name: standard_2.name,
+ chainId: standard_2.chainId,
+ ensAddress: standard_2.ensAddress,
+ _defaultProvider: standard_2._defaultProvider || null
+ };
+ }
+ var standard = networks[network.name];
+ if (!standard) {
+ if (typeof network.chainId !== "number") {
+ logger.throwArgumentError("invalid network chainId", "network", network);
+ }
+ return network;
+ }
+ if (network.chainId !== 0 && network.chainId !== standard.chainId) {
+ logger.throwArgumentError("network chainId mismatch", "network", network);
+ }
+ var defaultProvider = network._defaultProvider || null;
+ if (defaultProvider == null && standard._defaultProvider) {
+ if (isRenetworkable(standard._defaultProvider)) {
+ defaultProvider = standard._defaultProvider.renetwork(network);
+ } else {
+ defaultProvider = standard._defaultProvider;
+ }
+ }
+ return {
+ name: network.name,
+ chainId: standard.chainId,
+ ensAddress: network.ensAddress || standard.ensAddress || null,
+ _defaultProvider: defaultProvider
+ };
+ }
+ exports2.getNetwork = getNetwork;
+ }
+});
+
+// node_modules/@ethersproject/web/lib/_version.js
+var require_version21 = __commonJS({
+ "node_modules/@ethersproject/web/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "web/5.7.1";
+ }
+});
+
+// node_modules/@ethersproject/web/lib/geturl.js
+var require_geturl = __commonJS({
+ "node_modules/@ethersproject/web/lib/geturl.js"(exports2) {
+ "use strict";
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ var __importDefault13 = exports2 && exports2.__importDefault || function(mod) {
+ return mod && mod.__esModule ? mod : { "default": mod };
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getUrl = void 0;
+ var http_1 = __importDefault13(require("http"));
+ var https_1 = __importDefault13(require("https"));
+ var zlib_1 = require("zlib");
+ var url_1 = require("url");
+ var bytes_1 = require_lib6();
+ var properties_1 = require_lib12();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version21();
+ var logger = new logger_1.Logger(_version_1.version);
+ function getResponse(request) {
+ return new Promise(function(resolve, reject) {
+ request.once("response", function(resp) {
+ var response = {
+ statusCode: resp.statusCode,
+ statusMessage: resp.statusMessage,
+ headers: Object.keys(resp.headers).reduce(function(accum, name) {
+ var value = resp.headers[name];
+ if (Array.isArray(value)) {
+ value = value.join(", ");
+ }
+ accum[name] = value;
+ return accum;
+ }, {}),
+ body: null
+ };
+ resp.on("data", function(chunk) {
+ if (response.body == null) {
+ response.body = new Uint8Array(0);
+ }
+ response.body = (0, bytes_1.concat)([response.body, chunk]);
+ });
+ resp.on("end", function() {
+ if (response.headers["content-encoding"] === "gzip") {
+ response.body = (0, bytes_1.arrayify)((0, zlib_1.gunzipSync)(response.body));
+ }
+ resolve(response);
+ });
+ resp.on("error", function(error) {
+ error.response = response;
+ reject(error);
+ });
+ });
+ request.on("error", function(error) {
+ reject(error);
+ });
+ });
+ }
+ function nonnull(value) {
+ if (value == null) {
+ return "";
+ }
+ return value;
+ }
+ function getUrl(href, options) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var url, request, req, response;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ if (options == null) {
+ options = {};
+ }
+ url = (0, url_1.parse)(href);
+ request = {
+ protocol: nonnull(url.protocol),
+ hostname: nonnull(url.hostname),
+ port: nonnull(url.port),
+ path: nonnull(url.pathname) + nonnull(url.search),
+ method: options.method || "GET",
+ headers: (0, properties_1.shallowCopy)(options.headers || {})
+ };
+ if (options.allowGzip) {
+ request.headers["accept-encoding"] = "gzip";
+ }
+ req = null;
+ switch (nonnull(url.protocol)) {
+ case "http:":
+ req = http_1.default.request(request);
+ break;
+ case "https:":
+ req = https_1.default.request(request);
+ break;
+ default:
+ logger.throwError("unsupported protocol " + url.protocol, logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ protocol: url.protocol,
+ operation: "request"
+ });
+ }
+ if (options.body) {
+ req.write(Buffer.from(options.body));
+ }
+ req.end();
+ return [4, getResponse(req)];
+ case 1:
+ response = _a.sent();
+ return [2, response];
+ }
+ });
+ });
+ }
+ exports2.getUrl = getUrl;
+ }
+});
+
+// node_modules/@ethersproject/web/lib/index.js
+var require_lib32 = __commonJS({
+ "node_modules/@ethersproject/web/lib/index.js"(exports2) {
+ "use strict";
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.poll = exports2.fetchJson = exports2._fetchData = void 0;
+ var base64_1 = require_lib16();
+ var bytes_1 = require_lib6();
+ var properties_1 = require_lib12();
+ var strings_1 = require_lib15();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version21();
+ var logger = new logger_1.Logger(_version_1.version);
+ var geturl_1 = require_geturl();
+ function staller(duration) {
+ return new Promise(function(resolve) {
+ setTimeout(resolve, duration);
+ });
+ }
+ function bodyify(value, type) {
+ if (value == null) {
+ return null;
+ }
+ if (typeof value === "string") {
+ return value;
+ }
+ if ((0, bytes_1.isBytesLike)(value)) {
+ if (type && (type.split("/")[0] === "text" || type.split(";")[0].trim() === "application/json")) {
+ try {
+ return (0, strings_1.toUtf8String)(value);
+ } catch (error) {
+ }
+ ;
+ }
+ return (0, bytes_1.hexlify)(value);
+ }
+ return value;
+ }
+ function unpercent(value) {
+ return (0, strings_1.toUtf8Bytes)(value.replace(/%([0-9a-f][0-9a-f])/gi, function(all, code) {
+ return String.fromCharCode(parseInt(code, 16));
+ }));
+ }
+ function _fetchData(connection, body, processFunc) {
+ var attemptLimit = typeof connection === "object" && connection.throttleLimit != null ? connection.throttleLimit : 12;
+ logger.assertArgument(attemptLimit > 0 && attemptLimit % 1 === 0, "invalid connection throttle limit", "connection.throttleLimit", attemptLimit);
+ var throttleCallback = typeof connection === "object" ? connection.throttleCallback : null;
+ var throttleSlotInterval = typeof connection === "object" && typeof connection.throttleSlotInterval === "number" ? connection.throttleSlotInterval : 100;
+ logger.assertArgument(throttleSlotInterval > 0 && throttleSlotInterval % 1 === 0, "invalid connection throttle slot interval", "connection.throttleSlotInterval", throttleSlotInterval);
+ var errorPassThrough = typeof connection === "object" ? !!connection.errorPassThrough : false;
+ var headers = {};
+ var url = null;
+ var options = {
+ method: "GET"
+ };
+ var allow304 = false;
+ var timeout = 2 * 60 * 1e3;
+ if (typeof connection === "string") {
+ url = connection;
+ } else if (typeof connection === "object") {
+ if (connection == null || connection.url == null) {
+ logger.throwArgumentError("missing URL", "connection.url", connection);
+ }
+ url = connection.url;
+ if (typeof connection.timeout === "number" && connection.timeout > 0) {
+ timeout = connection.timeout;
+ }
+ if (connection.headers) {
+ for (var key in connection.headers) {
+ headers[key.toLowerCase()] = { key, value: String(connection.headers[key]) };
+ if (["if-none-match", "if-modified-since"].indexOf(key.toLowerCase()) >= 0) {
+ allow304 = true;
+ }
+ }
+ }
+ options.allowGzip = !!connection.allowGzip;
+ if (connection.user != null && connection.password != null) {
+ if (url.substring(0, 6) !== "https:" && connection.allowInsecureAuthentication !== true) {
+ logger.throwError("basic authentication requires a secure https url", logger_1.Logger.errors.INVALID_ARGUMENT, { argument: "url", url, user: connection.user, password: "[REDACTED]" });
+ }
+ var authorization = connection.user + ":" + connection.password;
+ headers["authorization"] = {
+ key: "Authorization",
+ value: "Basic " + (0, base64_1.encode)((0, strings_1.toUtf8Bytes)(authorization))
+ };
+ }
+ if (connection.skipFetchSetup != null) {
+ options.skipFetchSetup = !!connection.skipFetchSetup;
+ }
+ if (connection.fetchOptions != null) {
+ options.fetchOptions = (0, properties_1.shallowCopy)(connection.fetchOptions);
+ }
+ }
+ var reData = new RegExp("^data:([^;:]*)?(;base64)?,(.*)$", "i");
+ var dataMatch = url ? url.match(reData) : null;
+ if (dataMatch) {
+ try {
+ var response = {
+ statusCode: 200,
+ statusMessage: "OK",
+ headers: { "content-type": dataMatch[1] || "text/plain" },
+ body: dataMatch[2] ? (0, base64_1.decode)(dataMatch[3]) : unpercent(dataMatch[3])
+ };
+ var result = response.body;
+ if (processFunc) {
+ result = processFunc(response.body, response);
+ }
+ return Promise.resolve(result);
+ } catch (error) {
+ logger.throwError("processing response error", logger_1.Logger.errors.SERVER_ERROR, {
+ body: bodyify(dataMatch[1], dataMatch[2]),
+ error,
+ requestBody: null,
+ requestMethod: "GET",
+ url
+ });
+ }
+ }
+ if (body) {
+ options.method = "POST";
+ options.body = body;
+ if (headers["content-type"] == null) {
+ headers["content-type"] = { key: "Content-Type", value: "application/octet-stream" };
+ }
+ if (headers["content-length"] == null) {
+ headers["content-length"] = { key: "Content-Length", value: String(body.length) };
+ }
+ }
+ var flatHeaders = {};
+ Object.keys(headers).forEach(function(key2) {
+ var header = headers[key2];
+ flatHeaders[header.key] = header.value;
+ });
+ options.headers = flatHeaders;
+ var runningTimeout = function() {
+ var timer = null;
+ var promise = new Promise(function(resolve, reject) {
+ if (timeout) {
+ timer = setTimeout(function() {
+ if (timer == null) {
+ return;
+ }
+ timer = null;
+ reject(logger.makeError("timeout", logger_1.Logger.errors.TIMEOUT, {
+ requestBody: bodyify(options.body, flatHeaders["content-type"]),
+ requestMethod: options.method,
+ timeout,
+ url
+ }));
+ }, timeout);
+ }
+ });
+ var cancel = function() {
+ if (timer == null) {
+ return;
+ }
+ clearTimeout(timer);
+ timer = null;
+ };
+ return { promise, cancel };
+ }();
+ var runningFetch = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ var attempt, response2, location_1, tryAgain, stall, retryAfter, error_1, body_1, result2, error_2, tryAgain, timeout_1;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ attempt = 0;
+ _a.label = 1;
+ case 1:
+ if (!(attempt < attemptLimit))
+ return [3, 20];
+ response2 = null;
+ _a.label = 2;
+ case 2:
+ _a.trys.push([2, 9, , 10]);
+ return [4, (0, geturl_1.getUrl)(url, options)];
+ case 3:
+ response2 = _a.sent();
+ if (!(attempt < attemptLimit))
+ return [3, 8];
+ if (!(response2.statusCode === 301 || response2.statusCode === 302))
+ return [3, 4];
+ location_1 = response2.headers.location || "";
+ if (options.method === "GET" && location_1.match(/^https:/)) {
+ url = response2.headers.location;
+ return [3, 19];
+ }
+ return [3, 8];
+ case 4:
+ if (!(response2.statusCode === 429))
+ return [3, 8];
+ tryAgain = true;
+ if (!throttleCallback)
+ return [3, 6];
+ return [4, throttleCallback(attempt, url)];
+ case 5:
+ tryAgain = _a.sent();
+ _a.label = 6;
+ case 6:
+ if (!tryAgain)
+ return [3, 8];
+ stall = 0;
+ retryAfter = response2.headers["retry-after"];
+ if (typeof retryAfter === "string" && retryAfter.match(/^[1-9][0-9]*$/)) {
+ stall = parseInt(retryAfter) * 1e3;
+ } else {
+ stall = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));
+ }
+ return [4, staller(stall)];
+ case 7:
+ _a.sent();
+ return [3, 19];
+ case 8:
+ return [3, 10];
+ case 9:
+ error_1 = _a.sent();
+ response2 = error_1.response;
+ if (response2 == null) {
+ runningTimeout.cancel();
+ logger.throwError("missing response", logger_1.Logger.errors.SERVER_ERROR, {
+ requestBody: bodyify(options.body, flatHeaders["content-type"]),
+ requestMethod: options.method,
+ serverError: error_1,
+ url
+ });
+ }
+ return [3, 10];
+ case 10:
+ body_1 = response2.body;
+ if (allow304 && response2.statusCode === 304) {
+ body_1 = null;
+ } else if (!errorPassThrough && (response2.statusCode < 200 || response2.statusCode >= 300)) {
+ runningTimeout.cancel();
+ logger.throwError("bad response", logger_1.Logger.errors.SERVER_ERROR, {
+ status: response2.statusCode,
+ headers: response2.headers,
+ body: bodyify(body_1, response2.headers ? response2.headers["content-type"] : null),
+ requestBody: bodyify(options.body, flatHeaders["content-type"]),
+ requestMethod: options.method,
+ url
+ });
+ }
+ if (!processFunc)
+ return [3, 18];
+ _a.label = 11;
+ case 11:
+ _a.trys.push([11, 13, , 18]);
+ return [4, processFunc(body_1, response2)];
+ case 12:
+ result2 = _a.sent();
+ runningTimeout.cancel();
+ return [2, result2];
+ case 13:
+ error_2 = _a.sent();
+ if (!(error_2.throttleRetry && attempt < attemptLimit))
+ return [3, 17];
+ tryAgain = true;
+ if (!throttleCallback)
+ return [3, 15];
+ return [4, throttleCallback(attempt, url)];
+ case 14:
+ tryAgain = _a.sent();
+ _a.label = 15;
+ case 15:
+ if (!tryAgain)
+ return [3, 17];
+ timeout_1 = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));
+ return [4, staller(timeout_1)];
+ case 16:
+ _a.sent();
+ return [3, 19];
+ case 17:
+ runningTimeout.cancel();
+ logger.throwError("processing response error", logger_1.Logger.errors.SERVER_ERROR, {
+ body: bodyify(body_1, response2.headers ? response2.headers["content-type"] : null),
+ error: error_2,
+ requestBody: bodyify(options.body, flatHeaders["content-type"]),
+ requestMethod: options.method,
+ url
+ });
+ return [3, 18];
+ case 18:
+ runningTimeout.cancel();
+ return [2, body_1];
+ case 19:
+ attempt++;
+ return [3, 1];
+ case 20:
+ return [2, logger.throwError("failed response", logger_1.Logger.errors.SERVER_ERROR, {
+ requestBody: bodyify(options.body, flatHeaders["content-type"]),
+ requestMethod: options.method,
+ url
+ })];
+ }
+ });
+ });
+ }();
+ return Promise.race([runningTimeout.promise, runningFetch]);
+ }
+ exports2._fetchData = _fetchData;
+ function fetchJson(connection, json, processFunc) {
+ var processJsonFunc = function(value, response) {
+ var result = null;
+ if (value != null) {
+ try {
+ result = JSON.parse((0, strings_1.toUtf8String)(value));
+ } catch (error) {
+ logger.throwError("invalid JSON", logger_1.Logger.errors.SERVER_ERROR, {
+ body: value,
+ error
+ });
+ }
+ }
+ if (processFunc) {
+ result = processFunc(result, response);
+ }
+ return result;
+ };
+ var body = null;
+ if (json != null) {
+ body = (0, strings_1.toUtf8Bytes)(json);
+ var updated = typeof connection === "string" ? { url: connection } : (0, properties_1.shallowCopy)(connection);
+ if (updated.headers) {
+ var hasContentType = Object.keys(updated.headers).filter(function(k) {
+ return k.toLowerCase() === "content-type";
+ }).length !== 0;
+ if (!hasContentType) {
+ updated.headers = (0, properties_1.shallowCopy)(updated.headers);
+ updated.headers["content-type"] = "application/json";
+ }
+ } else {
+ updated.headers = { "content-type": "application/json" };
+ }
+ connection = updated;
+ }
+ return _fetchData(connection, body, processJsonFunc);
+ }
+ exports2.fetchJson = fetchJson;
+ function poll(func, options) {
+ if (!options) {
+ options = {};
+ }
+ options = (0, properties_1.shallowCopy)(options);
+ if (options.floor == null) {
+ options.floor = 0;
+ }
+ if (options.ceiling == null) {
+ options.ceiling = 1e4;
+ }
+ if (options.interval == null) {
+ options.interval = 250;
+ }
+ return new Promise(function(resolve, reject) {
+ var timer = null;
+ var done = false;
+ var cancel = function() {
+ if (done) {
+ return false;
+ }
+ done = true;
+ if (timer) {
+ clearTimeout(timer);
+ }
+ return true;
+ };
+ if (options.timeout) {
+ timer = setTimeout(function() {
+ if (cancel()) {
+ reject(new Error("timeout"));
+ }
+ }, options.timeout);
+ }
+ var retryLimit = options.retryLimit;
+ var attempt = 0;
+ function check() {
+ return func().then(function(result) {
+ if (result !== void 0) {
+ if (cancel()) {
+ resolve(result);
+ }
+ } else if (options.oncePoll) {
+ options.oncePoll.once("poll", check);
+ } else if (options.onceBlock) {
+ options.onceBlock.once("block", check);
+ } else if (!done) {
+ attempt++;
+ if (attempt > retryLimit) {
+ if (cancel()) {
+ reject(new Error("retry limit reached"));
+ }
+ return;
+ }
+ var timeout = options.interval * parseInt(String(Math.random() * Math.pow(2, attempt)));
+ if (timeout < options.floor) {
+ timeout = options.floor;
+ }
+ if (timeout > options.ceiling) {
+ timeout = options.ceiling;
+ }
+ setTimeout(check, timeout);
+ }
+ return null;
+ }, function(error) {
+ if (cancel()) {
+ reject(error);
+ }
+ });
+ }
+ check();
+ });
+ }
+ exports2.poll = poll;
+ }
+});
+
+// node_modules/bech32/index.js
+var require_bech32 = __commonJS({
+ "node_modules/bech32/index.js"(exports2, module2) {
+ "use strict";
+ var ALPHABET = "qpzry9x8gf2tvdw0s3jn54khce6mua7l";
+ var ALPHABET_MAP = {};
+ for (z = 0; z < ALPHABET.length; z++) {
+ x = ALPHABET.charAt(z);
+ if (ALPHABET_MAP[x] !== void 0)
+ throw new TypeError(x + " is ambiguous");
+ ALPHABET_MAP[x] = z;
+ }
+ var x;
+ var z;
+ function polymodStep(pre) {
+ var b = pre >> 25;
+ return (pre & 33554431) << 5 ^ -(b >> 0 & 1) & 996825010 ^ -(b >> 1 & 1) & 642813549 ^ -(b >> 2 & 1) & 513874426 ^ -(b >> 3 & 1) & 1027748829 ^ -(b >> 4 & 1) & 705979059;
+ }
+ function prefixChk(prefix) {
+ var chk = 1;
+ for (var i = 0; i < prefix.length; ++i) {
+ var c = prefix.charCodeAt(i);
+ if (c < 33 || c > 126)
+ return "Invalid prefix (" + prefix + ")";
+ chk = polymodStep(chk) ^ c >> 5;
+ }
+ chk = polymodStep(chk);
+ for (i = 0; i < prefix.length; ++i) {
+ var v = prefix.charCodeAt(i);
+ chk = polymodStep(chk) ^ v & 31;
+ }
+ return chk;
+ }
+ function encode(prefix, words, LIMIT) {
+ LIMIT = LIMIT || 90;
+ if (prefix.length + 7 + words.length > LIMIT)
+ throw new TypeError("Exceeds length limit");
+ prefix = prefix.toLowerCase();
+ var chk = prefixChk(prefix);
+ if (typeof chk === "string")
+ throw new Error(chk);
+ var result = prefix + "1";
+ for (var i = 0; i < words.length; ++i) {
+ var x2 = words[i];
+ if (x2 >> 5 !== 0)
+ throw new Error("Non 5-bit word");
+ chk = polymodStep(chk) ^ x2;
+ result += ALPHABET.charAt(x2);
+ }
+ for (i = 0; i < 6; ++i) {
+ chk = polymodStep(chk);
+ }
+ chk ^= 1;
+ for (i = 0; i < 6; ++i) {
+ var v = chk >> (5 - i) * 5 & 31;
+ result += ALPHABET.charAt(v);
+ }
+ return result;
+ }
+ function __decode(str, LIMIT) {
+ LIMIT = LIMIT || 90;
+ if (str.length < 8)
+ return str + " too short";
+ if (str.length > LIMIT)
+ return "Exceeds length limit";
+ var lowered = str.toLowerCase();
+ var uppered = str.toUpperCase();
+ if (str !== lowered && str !== uppered)
+ return "Mixed-case string " + str;
+ str = lowered;
+ var split = str.lastIndexOf("1");
+ if (split === -1)
+ return "No separator character for " + str;
+ if (split === 0)
+ return "Missing prefix for " + str;
+ var prefix = str.slice(0, split);
+ var wordChars = str.slice(split + 1);
+ if (wordChars.length < 6)
+ return "Data too short";
+ var chk = prefixChk(prefix);
+ if (typeof chk === "string")
+ return chk;
+ var words = [];
+ for (var i = 0; i < wordChars.length; ++i) {
+ var c = wordChars.charAt(i);
+ var v = ALPHABET_MAP[c];
+ if (v === void 0)
+ return "Unknown character " + c;
+ chk = polymodStep(chk) ^ v;
+ if (i + 6 >= wordChars.length)
+ continue;
+ words.push(v);
+ }
+ if (chk !== 1)
+ return "Invalid checksum for " + str;
+ return { prefix, words };
+ }
+ function decodeUnsafe() {
+ var res = __decode.apply(null, arguments);
+ if (typeof res === "object")
+ return res;
+ }
+ function decode(str) {
+ var res = __decode.apply(null, arguments);
+ if (typeof res === "object")
+ return res;
+ throw new Error(res);
+ }
+ function convert(data, inBits, outBits, pad) {
+ var value = 0;
+ var bits = 0;
+ var maxV = (1 << outBits) - 1;
+ var result = [];
+ for (var i = 0; i < data.length; ++i) {
+ value = value << inBits | data[i];
+ bits += inBits;
+ while (bits >= outBits) {
+ bits -= outBits;
+ result.push(value >> bits & maxV);
+ }
+ }
+ if (pad) {
+ if (bits > 0) {
+ result.push(value << outBits - bits & maxV);
+ }
+ } else {
+ if (bits >= inBits)
+ return "Excess padding";
+ if (value << outBits - bits & maxV)
+ return "Non-zero padding";
+ }
+ return result;
+ }
+ function toWordsUnsafe(bytes) {
+ var res = convert(bytes, 8, 5, true);
+ if (Array.isArray(res))
+ return res;
+ }
+ function toWords(bytes) {
+ var res = convert(bytes, 8, 5, true);
+ if (Array.isArray(res))
+ return res;
+ throw new Error(res);
+ }
+ function fromWordsUnsafe(words) {
+ var res = convert(words, 5, 8, false);
+ if (Array.isArray(res))
+ return res;
+ }
+ function fromWords(words) {
+ var res = convert(words, 5, 8, false);
+ if (Array.isArray(res))
+ return res;
+ throw new Error(res);
+ }
+ module2.exports = {
+ decodeUnsafe,
+ decode,
+ encode,
+ toWordsUnsafe,
+ toWords,
+ fromWordsUnsafe,
+ fromWords
+ };
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/_version.js
+var require_version22 = __commonJS({
+ "node_modules/@ethersproject/providers/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "providers/5.7.2";
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/formatter.js
+var require_formatter = __commonJS({
+ "node_modules/@ethersproject/providers/lib/formatter.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.showThrottleMessage = exports2.isCommunityResource = exports2.isCommunityResourcable = exports2.Formatter = void 0;
+ var address_1 = require_lib10();
+ var bignumber_1 = require_lib7();
+ var bytes_1 = require_lib6();
+ var constants_1 = require_lib11();
+ var properties_1 = require_lib12();
+ var transactions_1 = require_lib14();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ var Formatter = (
+ /** @class */
+ function() {
+ function Formatter2() {
+ this.formats = this.getDefaultFormats();
+ }
+ Formatter2.prototype.getDefaultFormats = function() {
+ var _this = this;
+ var formats = {};
+ var address = this.address.bind(this);
+ var bigNumber = this.bigNumber.bind(this);
+ var blockTag = this.blockTag.bind(this);
+ var data = this.data.bind(this);
+ var hash = this.hash.bind(this);
+ var hex = this.hex.bind(this);
+ var number = this.number.bind(this);
+ var type = this.type.bind(this);
+ var strictData = function(v) {
+ return _this.data(v, true);
+ };
+ formats.transaction = {
+ hash,
+ type,
+ accessList: Formatter2.allowNull(this.accessList.bind(this), null),
+ blockHash: Formatter2.allowNull(hash, null),
+ blockNumber: Formatter2.allowNull(number, null),
+ transactionIndex: Formatter2.allowNull(number, null),
+ confirmations: Formatter2.allowNull(number, null),
+ from: address,
+ // either (gasPrice) or (maxPriorityFeePerGas + maxFeePerGas)
+ // must be set
+ gasPrice: Formatter2.allowNull(bigNumber),
+ maxPriorityFeePerGas: Formatter2.allowNull(bigNumber),
+ maxFeePerGas: Formatter2.allowNull(bigNumber),
+ gasLimit: bigNumber,
+ to: Formatter2.allowNull(address, null),
+ value: bigNumber,
+ nonce: number,
+ data,
+ r: Formatter2.allowNull(this.uint256),
+ s: Formatter2.allowNull(this.uint256),
+ v: Formatter2.allowNull(number),
+ creates: Formatter2.allowNull(address, null),
+ raw: Formatter2.allowNull(data)
+ };
+ formats.transactionRequest = {
+ from: Formatter2.allowNull(address),
+ nonce: Formatter2.allowNull(number),
+ gasLimit: Formatter2.allowNull(bigNumber),
+ gasPrice: Formatter2.allowNull(bigNumber),
+ maxPriorityFeePerGas: Formatter2.allowNull(bigNumber),
+ maxFeePerGas: Formatter2.allowNull(bigNumber),
+ to: Formatter2.allowNull(address),
+ value: Formatter2.allowNull(bigNumber),
+ data: Formatter2.allowNull(strictData),
+ type: Formatter2.allowNull(number),
+ accessList: Formatter2.allowNull(this.accessList.bind(this), null)
+ };
+ formats.receiptLog = {
+ transactionIndex: number,
+ blockNumber: number,
+ transactionHash: hash,
+ address,
+ topics: Formatter2.arrayOf(hash),
+ data,
+ logIndex: number,
+ blockHash: hash
+ };
+ formats.receipt = {
+ to: Formatter2.allowNull(this.address, null),
+ from: Formatter2.allowNull(this.address, null),
+ contractAddress: Formatter2.allowNull(address, null),
+ transactionIndex: number,
+ // should be allowNull(hash), but broken-EIP-658 support is handled in receipt
+ root: Formatter2.allowNull(hex),
+ gasUsed: bigNumber,
+ logsBloom: Formatter2.allowNull(data),
+ blockHash: hash,
+ transactionHash: hash,
+ logs: Formatter2.arrayOf(this.receiptLog.bind(this)),
+ blockNumber: number,
+ confirmations: Formatter2.allowNull(number, null),
+ cumulativeGasUsed: bigNumber,
+ effectiveGasPrice: Formatter2.allowNull(bigNumber),
+ status: Formatter2.allowNull(number),
+ type
+ };
+ formats.block = {
+ hash: Formatter2.allowNull(hash),
+ parentHash: hash,
+ number,
+ timestamp: number,
+ nonce: Formatter2.allowNull(hex),
+ difficulty: this.difficulty.bind(this),
+ gasLimit: bigNumber,
+ gasUsed: bigNumber,
+ miner: Formatter2.allowNull(address),
+ extraData: data,
+ transactions: Formatter2.allowNull(Formatter2.arrayOf(hash)),
+ baseFeePerGas: Formatter2.allowNull(bigNumber)
+ };
+ formats.blockWithTransactions = (0, properties_1.shallowCopy)(formats.block);
+ formats.blockWithTransactions.transactions = Formatter2.allowNull(Formatter2.arrayOf(this.transactionResponse.bind(this)));
+ formats.filter = {
+ fromBlock: Formatter2.allowNull(blockTag, void 0),
+ toBlock: Formatter2.allowNull(blockTag, void 0),
+ blockHash: Formatter2.allowNull(hash, void 0),
+ address: Formatter2.allowNull(address, void 0),
+ topics: Formatter2.allowNull(this.topics.bind(this), void 0)
+ };
+ formats.filterLog = {
+ blockNumber: Formatter2.allowNull(number),
+ blockHash: Formatter2.allowNull(hash),
+ transactionIndex: number,
+ removed: Formatter2.allowNull(this.boolean.bind(this)),
+ address,
+ data: Formatter2.allowFalsish(data, "0x"),
+ topics: Formatter2.arrayOf(hash),
+ transactionHash: hash,
+ logIndex: number
+ };
+ return formats;
+ };
+ Formatter2.prototype.accessList = function(accessList) {
+ return (0, transactions_1.accessListify)(accessList || []);
+ };
+ Formatter2.prototype.number = function(number) {
+ if (number === "0x") {
+ return 0;
+ }
+ return bignumber_1.BigNumber.from(number).toNumber();
+ };
+ Formatter2.prototype.type = function(number) {
+ if (number === "0x" || number == null) {
+ return 0;
+ }
+ return bignumber_1.BigNumber.from(number).toNumber();
+ };
+ Formatter2.prototype.bigNumber = function(value) {
+ return bignumber_1.BigNumber.from(value);
+ };
+ Formatter2.prototype.boolean = function(value) {
+ if (typeof value === "boolean") {
+ return value;
+ }
+ if (typeof value === "string") {
+ value = value.toLowerCase();
+ if (value === "true") {
+ return true;
+ }
+ if (value === "false") {
+ return false;
+ }
+ }
+ throw new Error("invalid boolean - " + value);
+ };
+ Formatter2.prototype.hex = function(value, strict) {
+ if (typeof value === "string") {
+ if (!strict && value.substring(0, 2) !== "0x") {
+ value = "0x" + value;
+ }
+ if ((0, bytes_1.isHexString)(value)) {
+ return value.toLowerCase();
+ }
+ }
+ return logger.throwArgumentError("invalid hash", "value", value);
+ };
+ Formatter2.prototype.data = function(value, strict) {
+ var result = this.hex(value, strict);
+ if (result.length % 2 !== 0) {
+ throw new Error("invalid data; odd-length - " + value);
+ }
+ return result;
+ };
+ Formatter2.prototype.address = function(value) {
+ return (0, address_1.getAddress)(value);
+ };
+ Formatter2.prototype.callAddress = function(value) {
+ if (!(0, bytes_1.isHexString)(value, 32)) {
+ return null;
+ }
+ var address = (0, address_1.getAddress)((0, bytes_1.hexDataSlice)(value, 12));
+ return address === constants_1.AddressZero ? null : address;
+ };
+ Formatter2.prototype.contractAddress = function(value) {
+ return (0, address_1.getContractAddress)(value);
+ };
+ Formatter2.prototype.blockTag = function(blockTag) {
+ if (blockTag == null) {
+ return "latest";
+ }
+ if (blockTag === "earliest") {
+ return "0x0";
+ }
+ switch (blockTag) {
+ case "earliest":
+ return "0x0";
+ case "latest":
+ case "pending":
+ case "safe":
+ case "finalized":
+ return blockTag;
+ }
+ if (typeof blockTag === "number" || (0, bytes_1.isHexString)(blockTag)) {
+ return (0, bytes_1.hexValue)(blockTag);
+ }
+ throw new Error("invalid blockTag");
+ };
+ Formatter2.prototype.hash = function(value, strict) {
+ var result = this.hex(value, strict);
+ if ((0, bytes_1.hexDataLength)(result) !== 32) {
+ return logger.throwArgumentError("invalid hash", "value", value);
+ }
+ return result;
+ };
+ Formatter2.prototype.difficulty = function(value) {
+ if (value == null) {
+ return null;
+ }
+ var v = bignumber_1.BigNumber.from(value);
+ try {
+ return v.toNumber();
+ } catch (error) {
+ }
+ return null;
+ };
+ Formatter2.prototype.uint256 = function(value) {
+ if (!(0, bytes_1.isHexString)(value)) {
+ throw new Error("invalid uint256");
+ }
+ return (0, bytes_1.hexZeroPad)(value, 32);
+ };
+ Formatter2.prototype._block = function(value, format) {
+ if (value.author != null && value.miner == null) {
+ value.miner = value.author;
+ }
+ var difficulty = value._difficulty != null ? value._difficulty : value.difficulty;
+ var result = Formatter2.check(format, value);
+ result._difficulty = difficulty == null ? null : bignumber_1.BigNumber.from(difficulty);
+ return result;
+ };
+ Formatter2.prototype.block = function(value) {
+ return this._block(value, this.formats.block);
+ };
+ Formatter2.prototype.blockWithTransactions = function(value) {
+ return this._block(value, this.formats.blockWithTransactions);
+ };
+ Formatter2.prototype.transactionRequest = function(value) {
+ return Formatter2.check(this.formats.transactionRequest, value);
+ };
+ Formatter2.prototype.transactionResponse = function(transaction) {
+ if (transaction.gas != null && transaction.gasLimit == null) {
+ transaction.gasLimit = transaction.gas;
+ }
+ if (transaction.to && bignumber_1.BigNumber.from(transaction.to).isZero()) {
+ transaction.to = "0x0000000000000000000000000000000000000000";
+ }
+ if (transaction.input != null && transaction.data == null) {
+ transaction.data = transaction.input;
+ }
+ if (transaction.to == null && transaction.creates == null) {
+ transaction.creates = this.contractAddress(transaction);
+ }
+ if ((transaction.type === 1 || transaction.type === 2) && transaction.accessList == null) {
+ transaction.accessList = [];
+ }
+ var result = Formatter2.check(this.formats.transaction, transaction);
+ if (transaction.chainId != null) {
+ var chainId = transaction.chainId;
+ if ((0, bytes_1.isHexString)(chainId)) {
+ chainId = bignumber_1.BigNumber.from(chainId).toNumber();
+ }
+ result.chainId = chainId;
+ } else {
+ var chainId = transaction.networkId;
+ if (chainId == null && result.v == null) {
+ chainId = transaction.chainId;
+ }
+ if ((0, bytes_1.isHexString)(chainId)) {
+ chainId = bignumber_1.BigNumber.from(chainId).toNumber();
+ }
+ if (typeof chainId !== "number" && result.v != null) {
+ chainId = (result.v - 35) / 2;
+ if (chainId < 0) {
+ chainId = 0;
+ }
+ chainId = parseInt(chainId);
+ }
+ if (typeof chainId !== "number") {
+ chainId = 0;
+ }
+ result.chainId = chainId;
+ }
+ if (result.blockHash && result.blockHash.replace(/0/g, "") === "x") {
+ result.blockHash = null;
+ }
+ return result;
+ };
+ Formatter2.prototype.transaction = function(value) {
+ return (0, transactions_1.parse)(value);
+ };
+ Formatter2.prototype.receiptLog = function(value) {
+ return Formatter2.check(this.formats.receiptLog, value);
+ };
+ Formatter2.prototype.receipt = function(value) {
+ var result = Formatter2.check(this.formats.receipt, value);
+ if (result.root != null) {
+ if (result.root.length <= 4) {
+ var value_1 = bignumber_1.BigNumber.from(result.root).toNumber();
+ if (value_1 === 0 || value_1 === 1) {
+ if (result.status != null && result.status !== value_1) {
+ logger.throwArgumentError("alt-root-status/status mismatch", "value", { root: result.root, status: result.status });
+ }
+ result.status = value_1;
+ delete result.root;
+ } else {
+ logger.throwArgumentError("invalid alt-root-status", "value.root", result.root);
+ }
+ } else if (result.root.length !== 66) {
+ logger.throwArgumentError("invalid root hash", "value.root", result.root);
+ }
+ }
+ if (result.status != null) {
+ result.byzantium = true;
+ }
+ return result;
+ };
+ Formatter2.prototype.topics = function(value) {
+ var _this = this;
+ if (Array.isArray(value)) {
+ return value.map(function(v) {
+ return _this.topics(v);
+ });
+ } else if (value != null) {
+ return this.hash(value, true);
+ }
+ return null;
+ };
+ Formatter2.prototype.filter = function(value) {
+ return Formatter2.check(this.formats.filter, value);
+ };
+ Formatter2.prototype.filterLog = function(value) {
+ return Formatter2.check(this.formats.filterLog, value);
+ };
+ Formatter2.check = function(format, object) {
+ var result = {};
+ for (var key in format) {
+ try {
+ var value = format[key](object[key]);
+ if (value !== void 0) {
+ result[key] = value;
+ }
+ } catch (error) {
+ error.checkKey = key;
+ error.checkValue = object[key];
+ throw error;
+ }
+ }
+ return result;
+ };
+ Formatter2.allowNull = function(format, nullValue) {
+ return function(value) {
+ if (value == null) {
+ return nullValue;
+ }
+ return format(value);
+ };
+ };
+ Formatter2.allowFalsish = function(format, replaceValue) {
+ return function(value) {
+ if (!value) {
+ return replaceValue;
+ }
+ return format(value);
+ };
+ };
+ Formatter2.arrayOf = function(format) {
+ return function(array) {
+ if (!Array.isArray(array)) {
+ throw new Error("not an array");
+ }
+ var result = [];
+ array.forEach(function(value) {
+ result.push(format(value));
+ });
+ return result;
+ };
+ };
+ return Formatter2;
+ }()
+ );
+ exports2.Formatter = Formatter;
+ function isCommunityResourcable(value) {
+ return value && typeof value.isCommunityResource === "function";
+ }
+ exports2.isCommunityResourcable = isCommunityResourcable;
+ function isCommunityResource(value) {
+ return isCommunityResourcable(value) && value.isCommunityResource();
+ }
+ exports2.isCommunityResource = isCommunityResource;
+ var throttleMessage = false;
+ function showThrottleMessage() {
+ if (throttleMessage) {
+ return;
+ }
+ throttleMessage = true;
+ console.log("========= NOTICE =========");
+ console.log("Request-Rate Exceeded (this message will not be repeated)");
+ console.log("");
+ console.log("The default API keys for each service are provided as a highly-throttled,");
+ console.log("community resource for low-traffic projects and early prototyping.");
+ console.log("");
+ console.log("While your application will continue to function, we highly recommended");
+ console.log("signing up for your own API keys to improve performance, increase your");
+ console.log("request rate/limit and enable other perks, such as metrics and advanced APIs.");
+ console.log("");
+ console.log("For more details: https://docs.ethers.io/api-keys/");
+ console.log("==========================");
+ }
+ exports2.showThrottleMessage = showThrottleMessage;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/base-provider.js
+var require_base_provider = __commonJS({
+ "node_modules/@ethersproject/providers/lib/base-provider.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ var __importDefault13 = exports2 && exports2.__importDefault || function(mod) {
+ return mod && mod.__esModule ? mod : { "default": mod };
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.BaseProvider = exports2.Resolver = exports2.Event = void 0;
+ var abstract_provider_1 = require_lib20();
+ var base64_1 = require_lib16();
+ var basex_1 = require_lib23();
+ var bignumber_1 = require_lib7();
+ var bytes_1 = require_lib6();
+ var constants_1 = require_lib11();
+ var hash_1 = require_lib18();
+ var networks_1 = require_lib31();
+ var properties_1 = require_lib12();
+ var sha2_1 = require_lib25();
+ var strings_1 = require_lib15();
+ var web_1 = require_lib32();
+ var bech32_1 = __importDefault13(require_bech32());
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ var formatter_1 = require_formatter();
+ var MAX_CCIP_REDIRECTS = 10;
+ function checkTopic(topic) {
+ if (topic == null) {
+ return "null";
+ }
+ if ((0, bytes_1.hexDataLength)(topic) !== 32) {
+ logger.throwArgumentError("invalid topic", "topic", topic);
+ }
+ return topic.toLowerCase();
+ }
+ function serializeTopics(topics) {
+ topics = topics.slice();
+ while (topics.length > 0 && topics[topics.length - 1] == null) {
+ topics.pop();
+ }
+ return topics.map(function(topic) {
+ if (Array.isArray(topic)) {
+ var unique_1 = {};
+ topic.forEach(function(topic2) {
+ unique_1[checkTopic(topic2)] = true;
+ });
+ var sorted = Object.keys(unique_1);
+ sorted.sort();
+ return sorted.join("|");
+ } else {
+ return checkTopic(topic);
+ }
+ }).join("&");
+ }
+ function deserializeTopics(data) {
+ if (data === "") {
+ return [];
+ }
+ return data.split(/&/g).map(function(topic) {
+ if (topic === "") {
+ return [];
+ }
+ var comps = topic.split("|").map(function(topic2) {
+ return topic2 === "null" ? null : topic2;
+ });
+ return comps.length === 1 ? comps[0] : comps;
+ });
+ }
+ function getEventTag(eventName) {
+ if (typeof eventName === "string") {
+ eventName = eventName.toLowerCase();
+ if ((0, bytes_1.hexDataLength)(eventName) === 32) {
+ return "tx:" + eventName;
+ }
+ if (eventName.indexOf(":") === -1) {
+ return eventName;
+ }
+ } else if (Array.isArray(eventName)) {
+ return "filter:*:" + serializeTopics(eventName);
+ } else if (abstract_provider_1.ForkEvent.isForkEvent(eventName)) {
+ logger.warn("not implemented");
+ throw new Error("not implemented");
+ } else if (eventName && typeof eventName === "object") {
+ return "filter:" + (eventName.address || "*") + ":" + serializeTopics(eventName.topics || []);
+ }
+ throw new Error("invalid event - " + eventName);
+ }
+ function getTime() {
+ return (/* @__PURE__ */ new Date()).getTime();
+ }
+ function stall(duration) {
+ return new Promise(function(resolve) {
+ setTimeout(resolve, duration);
+ });
+ }
+ var PollableEvents = ["block", "network", "pending", "poll"];
+ var Event2 = (
+ /** @class */
+ function() {
+ function Event3(tag, listener, once) {
+ (0, properties_1.defineReadOnly)(this, "tag", tag);
+ (0, properties_1.defineReadOnly)(this, "listener", listener);
+ (0, properties_1.defineReadOnly)(this, "once", once);
+ this._lastBlockNumber = -2;
+ this._inflight = false;
+ }
+ Object.defineProperty(Event3.prototype, "event", {
+ get: function() {
+ switch (this.type) {
+ case "tx":
+ return this.hash;
+ case "filter":
+ return this.filter;
+ }
+ return this.tag;
+ },
+ enumerable: false,
+ configurable: true
+ });
+ Object.defineProperty(Event3.prototype, "type", {
+ get: function() {
+ return this.tag.split(":")[0];
+ },
+ enumerable: false,
+ configurable: true
+ });
+ Object.defineProperty(Event3.prototype, "hash", {
+ get: function() {
+ var comps = this.tag.split(":");
+ if (comps[0] !== "tx") {
+ return null;
+ }
+ return comps[1];
+ },
+ enumerable: false,
+ configurable: true
+ });
+ Object.defineProperty(Event3.prototype, "filter", {
+ get: function() {
+ var comps = this.tag.split(":");
+ if (comps[0] !== "filter") {
+ return null;
+ }
+ var address = comps[1];
+ var topics = deserializeTopics(comps[2]);
+ var filter = {};
+ if (topics.length > 0) {
+ filter.topics = topics;
+ }
+ if (address && address !== "*") {
+ filter.address = address;
+ }
+ return filter;
+ },
+ enumerable: false,
+ configurable: true
+ });
+ Event3.prototype.pollable = function() {
+ return this.tag.indexOf(":") >= 0 || PollableEvents.indexOf(this.tag) >= 0;
+ };
+ return Event3;
+ }()
+ );
+ exports2.Event = Event2;
+ var coinInfos = {
+ "0": { symbol: "btc", p2pkh: 0, p2sh: 5, prefix: "bc" },
+ "2": { symbol: "ltc", p2pkh: 48, p2sh: 50, prefix: "ltc" },
+ "3": { symbol: "doge", p2pkh: 30, p2sh: 22 },
+ "60": { symbol: "eth", ilk: "eth" },
+ "61": { symbol: "etc", ilk: "eth" },
+ "700": { symbol: "xdai", ilk: "eth" }
+ };
+ function bytes32ify(value) {
+ return (0, bytes_1.hexZeroPad)(bignumber_1.BigNumber.from(value).toHexString(), 32);
+ }
+ function base58Encode(data) {
+ return basex_1.Base58.encode((0, bytes_1.concat)([data, (0, bytes_1.hexDataSlice)((0, sha2_1.sha256)((0, sha2_1.sha256)(data)), 0, 4)]));
+ }
+ var matcherIpfs = new RegExp("^(ipfs)://(.*)$", "i");
+ var matchers = [
+ new RegExp("^(https)://(.*)$", "i"),
+ new RegExp("^(data):(.*)$", "i"),
+ matcherIpfs,
+ new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$", "i")
+ ];
+ function _parseString(result, start) {
+ try {
+ return (0, strings_1.toUtf8String)(_parseBytes(result, start));
+ } catch (error) {
+ }
+ return null;
+ }
+ function _parseBytes(result, start) {
+ if (result === "0x") {
+ return null;
+ }
+ var offset = bignumber_1.BigNumber.from((0, bytes_1.hexDataSlice)(result, start, start + 32)).toNumber();
+ var length = bignumber_1.BigNumber.from((0, bytes_1.hexDataSlice)(result, offset, offset + 32)).toNumber();
+ return (0, bytes_1.hexDataSlice)(result, offset + 32, offset + 32 + length);
+ }
+ function getIpfsLink(link) {
+ if (link.match(/^ipfs:\/\/ipfs\//i)) {
+ link = link.substring(12);
+ } else if (link.match(/^ipfs:\/\//i)) {
+ link = link.substring(7);
+ } else {
+ logger.throwArgumentError("unsupported IPFS format", "link", link);
+ }
+ return "https://gateway.ipfs.io/ipfs/" + link;
+ }
+ function numPad(value) {
+ var result = (0, bytes_1.arrayify)(value);
+ if (result.length > 32) {
+ throw new Error("internal; should not happen");
+ }
+ var padded = new Uint8Array(32);
+ padded.set(result, 32 - result.length);
+ return padded;
+ }
+ function bytesPad(value) {
+ if (value.length % 32 === 0) {
+ return value;
+ }
+ var result = new Uint8Array(Math.ceil(value.length / 32) * 32);
+ result.set(value);
+ return result;
+ }
+ function encodeBytes(datas) {
+ var result = [];
+ var byteCount = 0;
+ for (var i = 0; i < datas.length; i++) {
+ result.push(null);
+ byteCount += 32;
+ }
+ for (var i = 0; i < datas.length; i++) {
+ var data = (0, bytes_1.arrayify)(datas[i]);
+ result[i] = numPad(byteCount);
+ result.push(numPad(data.length));
+ result.push(bytesPad(data));
+ byteCount += 32 + Math.ceil(data.length / 32) * 32;
+ }
+ return (0, bytes_1.hexConcat)(result);
+ }
+ var Resolver = (
+ /** @class */
+ function() {
+ function Resolver2(provider, address, name, resolvedAddress) {
+ (0, properties_1.defineReadOnly)(this, "provider", provider);
+ (0, properties_1.defineReadOnly)(this, "name", name);
+ (0, properties_1.defineReadOnly)(this, "address", provider.formatter.address(address));
+ (0, properties_1.defineReadOnly)(this, "_resolvedAddress", resolvedAddress);
+ }
+ Resolver2.prototype.supportsWildcard = function() {
+ var _this = this;
+ if (!this._supportsEip2544) {
+ this._supportsEip2544 = this.provider.call({
+ to: this.address,
+ data: "0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"
+ }).then(function(result) {
+ return bignumber_1.BigNumber.from(result).eq(1);
+ }).catch(function(error) {
+ if (error.code === logger_1.Logger.errors.CALL_EXCEPTION) {
+ return false;
+ }
+ _this._supportsEip2544 = null;
+ throw error;
+ });
+ }
+ return this._supportsEip2544;
+ };
+ Resolver2.prototype._fetch = function(selector, parameters) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var tx, parseBytes, result, error_1;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ tx = {
+ to: this.address,
+ ccipReadEnabled: true,
+ data: (0, bytes_1.hexConcat)([selector, (0, hash_1.namehash)(this.name), parameters || "0x"])
+ };
+ parseBytes = false;
+ return [4, this.supportsWildcard()];
+ case 1:
+ if (_a.sent()) {
+ parseBytes = true;
+ tx.data = (0, bytes_1.hexConcat)(["0x9061b923", encodeBytes([(0, hash_1.dnsEncode)(this.name), tx.data])]);
+ }
+ _a.label = 2;
+ case 2:
+ _a.trys.push([2, 4, , 5]);
+ return [4, this.provider.call(tx)];
+ case 3:
+ result = _a.sent();
+ if ((0, bytes_1.arrayify)(result).length % 32 === 4) {
+ logger.throwError("resolver threw error", logger_1.Logger.errors.CALL_EXCEPTION, {
+ transaction: tx,
+ data: result
+ });
+ }
+ if (parseBytes) {
+ result = _parseBytes(result, 0);
+ }
+ return [2, result];
+ case 4:
+ error_1 = _a.sent();
+ if (error_1.code === logger_1.Logger.errors.CALL_EXCEPTION) {
+ return [2, null];
+ }
+ throw error_1;
+ case 5:
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ Resolver2.prototype._fetchBytes = function(selector, parameters) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var result;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this._fetch(selector, parameters)];
+ case 1:
+ result = _a.sent();
+ if (result != null) {
+ return [2, _parseBytes(result, 0)];
+ }
+ return [2, null];
+ }
+ });
+ });
+ };
+ Resolver2.prototype._getAddress = function(coinType, hexBytes) {
+ var coinInfo = coinInfos[String(coinType)];
+ if (coinInfo == null) {
+ logger.throwError("unsupported coin type: " + coinType, logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "getAddress(" + coinType + ")"
+ });
+ }
+ if (coinInfo.ilk === "eth") {
+ return this.provider.formatter.address(hexBytes);
+ }
+ var bytes = (0, bytes_1.arrayify)(hexBytes);
+ if (coinInfo.p2pkh != null) {
+ var p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);
+ if (p2pkh) {
+ var length_1 = parseInt(p2pkh[1], 16);
+ if (p2pkh[2].length === length_1 * 2 && length_1 >= 1 && length_1 <= 75) {
+ return base58Encode((0, bytes_1.concat)([[coinInfo.p2pkh], "0x" + p2pkh[2]]));
+ }
+ }
+ }
+ if (coinInfo.p2sh != null) {
+ var p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);
+ if (p2sh) {
+ var length_2 = parseInt(p2sh[1], 16);
+ if (p2sh[2].length === length_2 * 2 && length_2 >= 1 && length_2 <= 75) {
+ return base58Encode((0, bytes_1.concat)([[coinInfo.p2sh], "0x" + p2sh[2]]));
+ }
+ }
+ }
+ if (coinInfo.prefix != null) {
+ var length_3 = bytes[1];
+ var version_1 = bytes[0];
+ if (version_1 === 0) {
+ if (length_3 !== 20 && length_3 !== 32) {
+ version_1 = -1;
+ }
+ } else {
+ version_1 = -1;
+ }
+ if (version_1 >= 0 && bytes.length === 2 + length_3 && length_3 >= 1 && length_3 <= 75) {
+ var words = bech32_1.default.toWords(bytes.slice(2));
+ words.unshift(version_1);
+ return bech32_1.default.encode(coinInfo.prefix, words);
+ }
+ }
+ return null;
+ };
+ Resolver2.prototype.getAddress = function(coinType) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var result, error_2, hexBytes, address;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ if (coinType == null) {
+ coinType = 60;
+ }
+ if (!(coinType === 60))
+ return [3, 4];
+ _a.label = 1;
+ case 1:
+ _a.trys.push([1, 3, , 4]);
+ return [4, this._fetch("0x3b3b57de")];
+ case 2:
+ result = _a.sent();
+ if (result === "0x" || result === constants_1.HashZero) {
+ return [2, null];
+ }
+ return [2, this.provider.formatter.callAddress(result)];
+ case 3:
+ error_2 = _a.sent();
+ if (error_2.code === logger_1.Logger.errors.CALL_EXCEPTION) {
+ return [2, null];
+ }
+ throw error_2;
+ case 4:
+ return [4, this._fetchBytes("0xf1cb7e06", bytes32ify(coinType))];
+ case 5:
+ hexBytes = _a.sent();
+ if (hexBytes == null || hexBytes === "0x") {
+ return [2, null];
+ }
+ address = this._getAddress(coinType, hexBytes);
+ if (address == null) {
+ logger.throwError("invalid or unsupported coin data", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "getAddress(" + coinType + ")",
+ coinType,
+ data: hexBytes
+ });
+ }
+ return [2, address];
+ }
+ });
+ });
+ };
+ Resolver2.prototype.getAvatar = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ var linkage, avatar, i, match, scheme, _a, selector, owner, _b, comps, addr, tokenId, tokenOwner, _c, _d, balance, _e, _f, tx, metadataUrl, _g, metadata, imageUrl, ipfs, error_3;
+ return __generator13(this, function(_h) {
+ switch (_h.label) {
+ case 0:
+ linkage = [{ type: "name", content: this.name }];
+ _h.label = 1;
+ case 1:
+ _h.trys.push([1, 19, , 20]);
+ return [4, this.getText("avatar")];
+ case 2:
+ avatar = _h.sent();
+ if (avatar == null) {
+ return [2, null];
+ }
+ i = 0;
+ _h.label = 3;
+ case 3:
+ if (!(i < matchers.length))
+ return [3, 18];
+ match = avatar.match(matchers[i]);
+ if (match == null) {
+ return [3, 17];
+ }
+ scheme = match[1].toLowerCase();
+ _a = scheme;
+ switch (_a) {
+ case "https":
+ return [3, 4];
+ case "data":
+ return [3, 5];
+ case "ipfs":
+ return [3, 6];
+ case "erc721":
+ return [3, 7];
+ case "erc1155":
+ return [3, 7];
+ }
+ return [3, 17];
+ case 4:
+ linkage.push({ type: "url", content: avatar });
+ return [2, { linkage, url: avatar }];
+ case 5:
+ linkage.push({ type: "data", content: avatar });
+ return [2, { linkage, url: avatar }];
+ case 6:
+ linkage.push({ type: "ipfs", content: avatar });
+ return [2, { linkage, url: getIpfsLink(avatar) }];
+ case 7:
+ selector = scheme === "erc721" ? "0xc87b56dd" : "0x0e89341c";
+ linkage.push({ type: scheme, content: avatar });
+ _b = this._resolvedAddress;
+ if (_b)
+ return [3, 9];
+ return [4, this.getAddress()];
+ case 8:
+ _b = _h.sent();
+ _h.label = 9;
+ case 9:
+ owner = _b;
+ comps = (match[2] || "").split("/");
+ if (comps.length !== 2) {
+ return [2, null];
+ }
+ return [4, this.provider.formatter.address(comps[0])];
+ case 10:
+ addr = _h.sent();
+ tokenId = (0, bytes_1.hexZeroPad)(bignumber_1.BigNumber.from(comps[1]).toHexString(), 32);
+ if (!(scheme === "erc721"))
+ return [3, 12];
+ _d = (_c = this.provider.formatter).callAddress;
+ return [4, this.provider.call({
+ to: addr,
+ data: (0, bytes_1.hexConcat)(["0x6352211e", tokenId])
+ })];
+ case 11:
+ tokenOwner = _d.apply(_c, [_h.sent()]);
+ if (owner !== tokenOwner) {
+ return [2, null];
+ }
+ linkage.push({ type: "owner", content: tokenOwner });
+ return [3, 14];
+ case 12:
+ if (!(scheme === "erc1155"))
+ return [3, 14];
+ _f = (_e = bignumber_1.BigNumber).from;
+ return [4, this.provider.call({
+ to: addr,
+ data: (0, bytes_1.hexConcat)(["0x00fdd58e", (0, bytes_1.hexZeroPad)(owner, 32), tokenId])
+ })];
+ case 13:
+ balance = _f.apply(_e, [_h.sent()]);
+ if (balance.isZero()) {
+ return [2, null];
+ }
+ linkage.push({ type: "balance", content: balance.toString() });
+ _h.label = 14;
+ case 14:
+ tx = {
+ to: this.provider.formatter.address(comps[0]),
+ data: (0, bytes_1.hexConcat)([selector, tokenId])
+ };
+ _g = _parseString;
+ return [4, this.provider.call(tx)];
+ case 15:
+ metadataUrl = _g.apply(void 0, [_h.sent(), 0]);
+ if (metadataUrl == null) {
+ return [2, null];
+ }
+ linkage.push({ type: "metadata-url-base", content: metadataUrl });
+ if (scheme === "erc1155") {
+ metadataUrl = metadataUrl.replace("{id}", tokenId.substring(2));
+ linkage.push({ type: "metadata-url-expanded", content: metadataUrl });
+ }
+ if (metadataUrl.match(/^ipfs:/i)) {
+ metadataUrl = getIpfsLink(metadataUrl);
+ }
+ linkage.push({ type: "metadata-url", content: metadataUrl });
+ return [4, (0, web_1.fetchJson)(metadataUrl)];
+ case 16:
+ metadata = _h.sent();
+ if (!metadata) {
+ return [2, null];
+ }
+ linkage.push({ type: "metadata", content: JSON.stringify(metadata) });
+ imageUrl = metadata.image;
+ if (typeof imageUrl !== "string") {
+ return [2, null];
+ }
+ if (imageUrl.match(/^(https:\/\/|data:)/i)) {
+ } else {
+ ipfs = imageUrl.match(matcherIpfs);
+ if (ipfs == null) {
+ return [2, null];
+ }
+ linkage.push({ type: "url-ipfs", content: imageUrl });
+ imageUrl = getIpfsLink(imageUrl);
+ }
+ linkage.push({ type: "url", content: imageUrl });
+ return [2, { linkage, url: imageUrl }];
+ case 17:
+ i++;
+ return [3, 3];
+ case 18:
+ return [3, 20];
+ case 19:
+ error_3 = _h.sent();
+ return [3, 20];
+ case 20:
+ return [2, null];
+ }
+ });
+ });
+ };
+ Resolver2.prototype.getContentHash = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ var hexBytes, ipfs, length_4, ipns, length_5, swarm, skynet, urlSafe_1, hash;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this._fetchBytes("0xbc1c58d1")];
+ case 1:
+ hexBytes = _a.sent();
+ if (hexBytes == null || hexBytes === "0x") {
+ return [2, null];
+ }
+ ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);
+ if (ipfs) {
+ length_4 = parseInt(ipfs[3], 16);
+ if (ipfs[4].length === length_4 * 2) {
+ return [2, "ipfs://" + basex_1.Base58.encode("0x" + ipfs[1])];
+ }
+ }
+ ipns = hexBytes.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);
+ if (ipns) {
+ length_5 = parseInt(ipns[3], 16);
+ if (ipns[4].length === length_5 * 2) {
+ return [2, "ipns://" + basex_1.Base58.encode("0x" + ipns[1])];
+ }
+ }
+ swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/);
+ if (swarm) {
+ if (swarm[1].length === 32 * 2) {
+ return [2, "bzz://" + swarm[1]];
+ }
+ }
+ skynet = hexBytes.match(/^0x90b2c605([0-9a-f]*)$/);
+ if (skynet) {
+ if (skynet[1].length === 34 * 2) {
+ urlSafe_1 = { "=": "", "+": "-", "/": "_" };
+ hash = (0, base64_1.encode)("0x" + skynet[1]).replace(/[=+\/]/g, function(a) {
+ return urlSafe_1[a];
+ });
+ return [2, "sia://" + hash];
+ }
+ }
+ return [2, logger.throwError("invalid or unsupported content hash data", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "getContentHash()",
+ data: hexBytes
+ })];
+ }
+ });
+ });
+ };
+ Resolver2.prototype.getText = function(key) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var keyBytes, hexBytes;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ keyBytes = (0, strings_1.toUtf8Bytes)(key);
+ keyBytes = (0, bytes_1.concat)([bytes32ify(64), bytes32ify(keyBytes.length), keyBytes]);
+ if (keyBytes.length % 32 !== 0) {
+ keyBytes = (0, bytes_1.concat)([keyBytes, (0, bytes_1.hexZeroPad)("0x", 32 - key.length % 32)]);
+ }
+ return [4, this._fetchBytes("0x59d1d43c", (0, bytes_1.hexlify)(keyBytes))];
+ case 1:
+ hexBytes = _a.sent();
+ if (hexBytes == null || hexBytes === "0x") {
+ return [2, null];
+ }
+ return [2, (0, strings_1.toUtf8String)(hexBytes)];
+ }
+ });
+ });
+ };
+ return Resolver2;
+ }()
+ );
+ exports2.Resolver = Resolver;
+ var defaultFormatter = null;
+ var nextPollId = 1;
+ var BaseProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(BaseProvider2, _super);
+ function BaseProvider2(network) {
+ var _newTarget = this.constructor;
+ var _this = _super.call(this) || this;
+ _this._events = [];
+ _this._emitted = { block: -2 };
+ _this.disableCcipRead = false;
+ _this.formatter = _newTarget.getFormatter();
+ (0, properties_1.defineReadOnly)(_this, "anyNetwork", network === "any");
+ if (_this.anyNetwork) {
+ network = _this.detectNetwork();
+ }
+ if (network instanceof Promise) {
+ _this._networkPromise = network;
+ network.catch(function(error) {
+ });
+ _this._ready().catch(function(error) {
+ });
+ } else {
+ var knownNetwork = (0, properties_1.getStatic)(_newTarget, "getNetwork")(network);
+ if (knownNetwork) {
+ (0, properties_1.defineReadOnly)(_this, "_network", knownNetwork);
+ _this.emit("network", knownNetwork, null);
+ } else {
+ logger.throwArgumentError("invalid network", "network", network);
+ }
+ }
+ _this._maxInternalBlockNumber = -1024;
+ _this._lastBlockNumber = -2;
+ _this._maxFilterBlockRange = 10;
+ _this._pollingInterval = 4e3;
+ _this._fastQueryDate = 0;
+ return _this;
+ }
+ BaseProvider2.prototype._ready = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ var network, error_4;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ if (!(this._network == null))
+ return [3, 7];
+ network = null;
+ if (!this._networkPromise)
+ return [3, 4];
+ _a.label = 1;
+ case 1:
+ _a.trys.push([1, 3, , 4]);
+ return [4, this._networkPromise];
+ case 2:
+ network = _a.sent();
+ return [3, 4];
+ case 3:
+ error_4 = _a.sent();
+ return [3, 4];
+ case 4:
+ if (!(network == null))
+ return [3, 6];
+ return [4, this.detectNetwork()];
+ case 5:
+ network = _a.sent();
+ _a.label = 6;
+ case 6:
+ if (!network) {
+ logger.throwError("no network detected", logger_1.Logger.errors.UNKNOWN_ERROR, {});
+ }
+ if (this._network == null) {
+ if (this.anyNetwork) {
+ this._network = network;
+ } else {
+ (0, properties_1.defineReadOnly)(this, "_network", network);
+ }
+ this.emit("network", network, null);
+ }
+ _a.label = 7;
+ case 7:
+ return [2, this._network];
+ }
+ });
+ });
+ };
+ Object.defineProperty(BaseProvider2.prototype, "ready", {
+ // This will always return the most recently established network.
+ // For "any", this can change (a "network" event is emitted before
+ // any change is reflected); otherwise this cannot change
+ get: function() {
+ var _this = this;
+ return (0, web_1.poll)(function() {
+ return _this._ready().then(function(network) {
+ return network;
+ }, function(error) {
+ if (error.code === logger_1.Logger.errors.NETWORK_ERROR && error.event === "noNetwork") {
+ return void 0;
+ }
+ throw error;
+ });
+ });
+ },
+ enumerable: false,
+ configurable: true
+ });
+ BaseProvider2.getFormatter = function() {
+ if (defaultFormatter == null) {
+ defaultFormatter = new formatter_1.Formatter();
+ }
+ return defaultFormatter;
+ };
+ BaseProvider2.getNetwork = function(network) {
+ return (0, networks_1.getNetwork)(network == null ? "homestead" : network);
+ };
+ BaseProvider2.prototype.ccipReadFetch = function(tx, calldata, urls) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var sender, data, errorMessages, i, url, href, json, result, errorMessage;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ if (this.disableCcipRead || urls.length === 0) {
+ return [2, null];
+ }
+ sender = tx.to.toLowerCase();
+ data = calldata.toLowerCase();
+ errorMessages = [];
+ i = 0;
+ _a.label = 1;
+ case 1:
+ if (!(i < urls.length))
+ return [3, 4];
+ url = urls[i];
+ href = url.replace("{sender}", sender).replace("{data}", data);
+ json = url.indexOf("{data}") >= 0 ? null : JSON.stringify({ data, sender });
+ return [4, (0, web_1.fetchJson)({ url: href, errorPassThrough: true }, json, function(value, response) {
+ value.status = response.statusCode;
+ return value;
+ })];
+ case 2:
+ result = _a.sent();
+ if (result.data) {
+ return [2, result.data];
+ }
+ errorMessage = result.message || "unknown error";
+ if (result.status >= 400 && result.status < 500) {
+ return [2, logger.throwError("response not found during CCIP fetch: " + errorMessage, logger_1.Logger.errors.SERVER_ERROR, { url, errorMessage })];
+ }
+ errorMessages.push(errorMessage);
+ _a.label = 3;
+ case 3:
+ i++;
+ return [3, 1];
+ case 4:
+ return [2, logger.throwError("error encountered during CCIP fetch: " + errorMessages.map(function(m) {
+ return JSON.stringify(m);
+ }).join(", "), logger_1.Logger.errors.SERVER_ERROR, {
+ urls,
+ errorMessages
+ })];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype._getInternalBlockNumber = function(maxAge) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var internalBlockNumber, result, error_5, reqTime, checkInternalBlockNumber;
+ var _this = this;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this._ready()];
+ case 1:
+ _a.sent();
+ if (!(maxAge > 0))
+ return [3, 7];
+ _a.label = 2;
+ case 2:
+ if (!this._internalBlockNumber)
+ return [3, 7];
+ internalBlockNumber = this._internalBlockNumber;
+ _a.label = 3;
+ case 3:
+ _a.trys.push([3, 5, , 6]);
+ return [4, internalBlockNumber];
+ case 4:
+ result = _a.sent();
+ if (getTime() - result.respTime <= maxAge) {
+ return [2, result.blockNumber];
+ }
+ return [3, 7];
+ case 5:
+ error_5 = _a.sent();
+ if (this._internalBlockNumber === internalBlockNumber) {
+ return [3, 7];
+ }
+ return [3, 6];
+ case 6:
+ return [3, 2];
+ case 7:
+ reqTime = getTime();
+ checkInternalBlockNumber = (0, properties_1.resolveProperties)({
+ blockNumber: this.perform("getBlockNumber", {}),
+ networkError: this.getNetwork().then(function(network) {
+ return null;
+ }, function(error) {
+ return error;
+ })
+ }).then(function(_a2) {
+ var blockNumber = _a2.blockNumber, networkError = _a2.networkError;
+ if (networkError) {
+ if (_this._internalBlockNumber === checkInternalBlockNumber) {
+ _this._internalBlockNumber = null;
+ }
+ throw networkError;
+ }
+ var respTime = getTime();
+ blockNumber = bignumber_1.BigNumber.from(blockNumber).toNumber();
+ if (blockNumber < _this._maxInternalBlockNumber) {
+ blockNumber = _this._maxInternalBlockNumber;
+ }
+ _this._maxInternalBlockNumber = blockNumber;
+ _this._setFastBlockNumber(blockNumber);
+ return { blockNumber, reqTime, respTime };
+ });
+ this._internalBlockNumber = checkInternalBlockNumber;
+ checkInternalBlockNumber.catch(function(error) {
+ if (_this._internalBlockNumber === checkInternalBlockNumber) {
+ _this._internalBlockNumber = null;
+ }
+ });
+ return [4, checkInternalBlockNumber];
+ case 8:
+ return [2, _a.sent().blockNumber];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.poll = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ var pollId, runners, blockNumber, error_6, i;
+ var _this = this;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ pollId = nextPollId++;
+ runners = [];
+ blockNumber = null;
+ _a.label = 1;
+ case 1:
+ _a.trys.push([1, 3, , 4]);
+ return [4, this._getInternalBlockNumber(100 + this.pollingInterval / 2)];
+ case 2:
+ blockNumber = _a.sent();
+ return [3, 4];
+ case 3:
+ error_6 = _a.sent();
+ this.emit("error", error_6);
+ return [
+ 2
+ /*return*/
+ ];
+ case 4:
+ this._setFastBlockNumber(blockNumber);
+ this.emit("poll", pollId, blockNumber);
+ if (blockNumber === this._lastBlockNumber) {
+ this.emit("didPoll", pollId);
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ if (this._emitted.block === -2) {
+ this._emitted.block = blockNumber - 1;
+ }
+ if (Math.abs(this._emitted.block - blockNumber) > 1e3) {
+ logger.warn("network block skew detected; skipping block events (emitted=" + this._emitted.block + " blockNumber" + blockNumber + ")");
+ this.emit("error", logger.makeError("network block skew detected", logger_1.Logger.errors.NETWORK_ERROR, {
+ blockNumber,
+ event: "blockSkew",
+ previousBlockNumber: this._emitted.block
+ }));
+ this.emit("block", blockNumber);
+ } else {
+ for (i = this._emitted.block + 1; i <= blockNumber; i++) {
+ this.emit("block", i);
+ }
+ }
+ if (this._emitted.block !== blockNumber) {
+ this._emitted.block = blockNumber;
+ Object.keys(this._emitted).forEach(function(key) {
+ if (key === "block") {
+ return;
+ }
+ var eventBlockNumber = _this._emitted[key];
+ if (eventBlockNumber === "pending") {
+ return;
+ }
+ if (blockNumber - eventBlockNumber > 12) {
+ delete _this._emitted[key];
+ }
+ });
+ }
+ if (this._lastBlockNumber === -2) {
+ this._lastBlockNumber = blockNumber - 1;
+ }
+ this._events.forEach(function(event) {
+ switch (event.type) {
+ case "tx": {
+ var hash_2 = event.hash;
+ var runner = _this.getTransactionReceipt(hash_2).then(function(receipt) {
+ if (!receipt || receipt.blockNumber == null) {
+ return null;
+ }
+ _this._emitted["t:" + hash_2] = receipt.blockNumber;
+ _this.emit(hash_2, receipt);
+ return null;
+ }).catch(function(error) {
+ _this.emit("error", error);
+ });
+ runners.push(runner);
+ break;
+ }
+ case "filter": {
+ if (!event._inflight) {
+ event._inflight = true;
+ if (event._lastBlockNumber === -2) {
+ event._lastBlockNumber = blockNumber - 1;
+ }
+ var filter_1 = event.filter;
+ filter_1.fromBlock = event._lastBlockNumber + 1;
+ filter_1.toBlock = blockNumber;
+ var minFromBlock = filter_1.toBlock - _this._maxFilterBlockRange;
+ if (minFromBlock > filter_1.fromBlock) {
+ filter_1.fromBlock = minFromBlock;
+ }
+ if (filter_1.fromBlock < 0) {
+ filter_1.fromBlock = 0;
+ }
+ var runner = _this.getLogs(filter_1).then(function(logs) {
+ event._inflight = false;
+ if (logs.length === 0) {
+ return;
+ }
+ logs.forEach(function(log) {
+ if (log.blockNumber > event._lastBlockNumber) {
+ event._lastBlockNumber = log.blockNumber;
+ }
+ _this._emitted["b:" + log.blockHash] = log.blockNumber;
+ _this._emitted["t:" + log.transactionHash] = log.blockNumber;
+ _this.emit(filter_1, log);
+ });
+ }).catch(function(error) {
+ _this.emit("error", error);
+ event._inflight = false;
+ });
+ runners.push(runner);
+ }
+ break;
+ }
+ }
+ });
+ this._lastBlockNumber = blockNumber;
+ Promise.all(runners).then(function() {
+ _this.emit("didPoll", pollId);
+ }).catch(function(error) {
+ _this.emit("error", error);
+ });
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.resetEventsBlock = function(blockNumber) {
+ this._lastBlockNumber = blockNumber - 1;
+ if (this.polling) {
+ this.poll();
+ }
+ };
+ Object.defineProperty(BaseProvider2.prototype, "network", {
+ get: function() {
+ return this._network;
+ },
+ enumerable: false,
+ configurable: true
+ });
+ BaseProvider2.prototype.detectNetwork = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ return __generator13(this, function(_a) {
+ return [2, logger.throwError("provider does not support network detection", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "provider.detectNetwork"
+ })];
+ });
+ });
+ };
+ BaseProvider2.prototype.getNetwork = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ var network, currentNetwork, error;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this._ready()];
+ case 1:
+ network = _a.sent();
+ return [4, this.detectNetwork()];
+ case 2:
+ currentNetwork = _a.sent();
+ if (!(network.chainId !== currentNetwork.chainId))
+ return [3, 5];
+ if (!this.anyNetwork)
+ return [3, 4];
+ this._network = currentNetwork;
+ this._lastBlockNumber = -2;
+ this._fastBlockNumber = null;
+ this._fastBlockNumberPromise = null;
+ this._fastQueryDate = 0;
+ this._emitted.block = -2;
+ this._maxInternalBlockNumber = -1024;
+ this._internalBlockNumber = null;
+ this.emit("network", currentNetwork, network);
+ return [4, stall(0)];
+ case 3:
+ _a.sent();
+ return [2, this._network];
+ case 4:
+ error = logger.makeError("underlying network changed", logger_1.Logger.errors.NETWORK_ERROR, {
+ event: "changed",
+ network,
+ detectedNetwork: currentNetwork
+ });
+ this.emit("error", error);
+ throw error;
+ case 5:
+ return [2, network];
+ }
+ });
+ });
+ };
+ Object.defineProperty(BaseProvider2.prototype, "blockNumber", {
+ get: function() {
+ var _this = this;
+ this._getInternalBlockNumber(100 + this.pollingInterval / 2).then(function(blockNumber) {
+ _this._setFastBlockNumber(blockNumber);
+ }, function(error) {
+ });
+ return this._fastBlockNumber != null ? this._fastBlockNumber : -1;
+ },
+ enumerable: false,
+ configurable: true
+ });
+ Object.defineProperty(BaseProvider2.prototype, "polling", {
+ get: function() {
+ return this._poller != null;
+ },
+ set: function(value) {
+ var _this = this;
+ if (value && !this._poller) {
+ this._poller = setInterval(function() {
+ _this.poll();
+ }, this.pollingInterval);
+ if (!this._bootstrapPoll) {
+ this._bootstrapPoll = setTimeout(function() {
+ _this.poll();
+ _this._bootstrapPoll = setTimeout(function() {
+ if (!_this._poller) {
+ _this.poll();
+ }
+ _this._bootstrapPoll = null;
+ }, _this.pollingInterval);
+ }, 0);
+ }
+ } else if (!value && this._poller) {
+ clearInterval(this._poller);
+ this._poller = null;
+ }
+ },
+ enumerable: false,
+ configurable: true
+ });
+ Object.defineProperty(BaseProvider2.prototype, "pollingInterval", {
+ get: function() {
+ return this._pollingInterval;
+ },
+ set: function(value) {
+ var _this = this;
+ if (typeof value !== "number" || value <= 0 || parseInt(String(value)) != value) {
+ throw new Error("invalid polling interval");
+ }
+ this._pollingInterval = value;
+ if (this._poller) {
+ clearInterval(this._poller);
+ this._poller = setInterval(function() {
+ _this.poll();
+ }, this._pollingInterval);
+ }
+ },
+ enumerable: false,
+ configurable: true
+ });
+ BaseProvider2.prototype._getFastBlockNumber = function() {
+ var _this = this;
+ var now = getTime();
+ if (now - this._fastQueryDate > 2 * this._pollingInterval) {
+ this._fastQueryDate = now;
+ this._fastBlockNumberPromise = this.getBlockNumber().then(function(blockNumber) {
+ if (_this._fastBlockNumber == null || blockNumber > _this._fastBlockNumber) {
+ _this._fastBlockNumber = blockNumber;
+ }
+ return _this._fastBlockNumber;
+ });
+ }
+ return this._fastBlockNumberPromise;
+ };
+ BaseProvider2.prototype._setFastBlockNumber = function(blockNumber) {
+ if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) {
+ return;
+ }
+ this._fastQueryDate = getTime();
+ if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {
+ this._fastBlockNumber = blockNumber;
+ this._fastBlockNumberPromise = Promise.resolve(blockNumber);
+ }
+ };
+ BaseProvider2.prototype.waitForTransaction = function(transactionHash, confirmations, timeout) {
+ return __awaiter13(this, void 0, void 0, function() {
+ return __generator13(this, function(_a) {
+ return [2, this._waitForTransaction(transactionHash, confirmations == null ? 1 : confirmations, timeout || 0, null)];
+ });
+ });
+ };
+ BaseProvider2.prototype._waitForTransaction = function(transactionHash, confirmations, timeout, replaceable) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var receipt;
+ var _this = this;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this.getTransactionReceipt(transactionHash)];
+ case 1:
+ receipt = _a.sent();
+ if ((receipt ? receipt.confirmations : 0) >= confirmations) {
+ return [2, receipt];
+ }
+ return [2, new Promise(function(resolve, reject) {
+ var cancelFuncs = [];
+ var done = false;
+ var alreadyDone = function() {
+ if (done) {
+ return true;
+ }
+ done = true;
+ cancelFuncs.forEach(function(func) {
+ func();
+ });
+ return false;
+ };
+ var minedHandler = function(receipt2) {
+ if (receipt2.confirmations < confirmations) {
+ return;
+ }
+ if (alreadyDone()) {
+ return;
+ }
+ resolve(receipt2);
+ };
+ _this.on(transactionHash, minedHandler);
+ cancelFuncs.push(function() {
+ _this.removeListener(transactionHash, minedHandler);
+ });
+ if (replaceable) {
+ var lastBlockNumber_1 = replaceable.startBlock;
+ var scannedBlock_1 = null;
+ var replaceHandler_1 = function(blockNumber) {
+ return __awaiter13(_this, void 0, void 0, function() {
+ var _this2 = this;
+ return __generator13(this, function(_a2) {
+ switch (_a2.label) {
+ case 0:
+ if (done) {
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ return [4, stall(1e3)];
+ case 1:
+ _a2.sent();
+ this.getTransactionCount(replaceable.from).then(function(nonce) {
+ return __awaiter13(_this2, void 0, void 0, function() {
+ var mined, block, ti, tx, receipt_1, reason;
+ return __generator13(this, function(_a3) {
+ switch (_a3.label) {
+ case 0:
+ if (done) {
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ if (!(nonce <= replaceable.nonce))
+ return [3, 1];
+ lastBlockNumber_1 = blockNumber;
+ return [3, 9];
+ case 1:
+ return [4, this.getTransaction(transactionHash)];
+ case 2:
+ mined = _a3.sent();
+ if (mined && mined.blockNumber != null) {
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ if (scannedBlock_1 == null) {
+ scannedBlock_1 = lastBlockNumber_1 - 3;
+ if (scannedBlock_1 < replaceable.startBlock) {
+ scannedBlock_1 = replaceable.startBlock;
+ }
+ }
+ _a3.label = 3;
+ case 3:
+ if (!(scannedBlock_1 <= blockNumber))
+ return [3, 9];
+ if (done) {
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ return [4, this.getBlockWithTransactions(scannedBlock_1)];
+ case 4:
+ block = _a3.sent();
+ ti = 0;
+ _a3.label = 5;
+ case 5:
+ if (!(ti < block.transactions.length))
+ return [3, 8];
+ tx = block.transactions[ti];
+ if (tx.hash === transactionHash) {
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ if (!(tx.from === replaceable.from && tx.nonce === replaceable.nonce))
+ return [3, 7];
+ if (done) {
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ return [4, this.waitForTransaction(tx.hash, confirmations)];
+ case 6:
+ receipt_1 = _a3.sent();
+ if (alreadyDone()) {
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ reason = "replaced";
+ if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) {
+ reason = "repriced";
+ } else if (tx.data === "0x" && tx.from === tx.to && tx.value.isZero()) {
+ reason = "cancelled";
+ }
+ reject(logger.makeError("transaction was replaced", logger_1.Logger.errors.TRANSACTION_REPLACED, {
+ cancelled: reason === "replaced" || reason === "cancelled",
+ reason,
+ replacement: this._wrapTransaction(tx),
+ hash: transactionHash,
+ receipt: receipt_1
+ }));
+ return [
+ 2
+ /*return*/
+ ];
+ case 7:
+ ti++;
+ return [3, 5];
+ case 8:
+ scannedBlock_1++;
+ return [3, 3];
+ case 9:
+ if (done) {
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ this.once("block", replaceHandler_1);
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ }, function(error) {
+ if (done) {
+ return;
+ }
+ _this2.once("block", replaceHandler_1);
+ });
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ if (done) {
+ return;
+ }
+ _this.once("block", replaceHandler_1);
+ cancelFuncs.push(function() {
+ _this.removeListener("block", replaceHandler_1);
+ });
+ }
+ if (typeof timeout === "number" && timeout > 0) {
+ var timer_1 = setTimeout(function() {
+ if (alreadyDone()) {
+ return;
+ }
+ reject(logger.makeError("timeout exceeded", logger_1.Logger.errors.TIMEOUT, { timeout }));
+ }, timeout);
+ if (timer_1.unref) {
+ timer_1.unref();
+ }
+ cancelFuncs.push(function() {
+ clearTimeout(timer_1);
+ });
+ }
+ })];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.getBlockNumber = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ return __generator13(this, function(_a) {
+ return [2, this._getInternalBlockNumber(0)];
+ });
+ });
+ };
+ BaseProvider2.prototype.getGasPrice = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ var result;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this.getNetwork()];
+ case 1:
+ _a.sent();
+ return [4, this.perform("getGasPrice", {})];
+ case 2:
+ result = _a.sent();
+ try {
+ return [2, bignumber_1.BigNumber.from(result)];
+ } catch (error) {
+ return [2, logger.throwError("bad result from backend", logger_1.Logger.errors.SERVER_ERROR, {
+ method: "getGasPrice",
+ result,
+ error
+ })];
+ }
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.getBalance = function(addressOrName, blockTag) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var params, result;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this.getNetwork()];
+ case 1:
+ _a.sent();
+ return [4, (0, properties_1.resolveProperties)({
+ address: this._getAddress(addressOrName),
+ blockTag: this._getBlockTag(blockTag)
+ })];
+ case 2:
+ params = _a.sent();
+ return [4, this.perform("getBalance", params)];
+ case 3:
+ result = _a.sent();
+ try {
+ return [2, bignumber_1.BigNumber.from(result)];
+ } catch (error) {
+ return [2, logger.throwError("bad result from backend", logger_1.Logger.errors.SERVER_ERROR, {
+ method: "getBalance",
+ params,
+ result,
+ error
+ })];
+ }
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.getTransactionCount = function(addressOrName, blockTag) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var params, result;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this.getNetwork()];
+ case 1:
+ _a.sent();
+ return [4, (0, properties_1.resolveProperties)({
+ address: this._getAddress(addressOrName),
+ blockTag: this._getBlockTag(blockTag)
+ })];
+ case 2:
+ params = _a.sent();
+ return [4, this.perform("getTransactionCount", params)];
+ case 3:
+ result = _a.sent();
+ try {
+ return [2, bignumber_1.BigNumber.from(result).toNumber()];
+ } catch (error) {
+ return [2, logger.throwError("bad result from backend", logger_1.Logger.errors.SERVER_ERROR, {
+ method: "getTransactionCount",
+ params,
+ result,
+ error
+ })];
+ }
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.getCode = function(addressOrName, blockTag) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var params, result;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this.getNetwork()];
+ case 1:
+ _a.sent();
+ return [4, (0, properties_1.resolveProperties)({
+ address: this._getAddress(addressOrName),
+ blockTag: this._getBlockTag(blockTag)
+ })];
+ case 2:
+ params = _a.sent();
+ return [4, this.perform("getCode", params)];
+ case 3:
+ result = _a.sent();
+ try {
+ return [2, (0, bytes_1.hexlify)(result)];
+ } catch (error) {
+ return [2, logger.throwError("bad result from backend", logger_1.Logger.errors.SERVER_ERROR, {
+ method: "getCode",
+ params,
+ result,
+ error
+ })];
+ }
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.getStorageAt = function(addressOrName, position, blockTag) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var params, result;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this.getNetwork()];
+ case 1:
+ _a.sent();
+ return [4, (0, properties_1.resolveProperties)({
+ address: this._getAddress(addressOrName),
+ blockTag: this._getBlockTag(blockTag),
+ position: Promise.resolve(position).then(function(p) {
+ return (0, bytes_1.hexValue)(p);
+ })
+ })];
+ case 2:
+ params = _a.sent();
+ return [4, this.perform("getStorageAt", params)];
+ case 3:
+ result = _a.sent();
+ try {
+ return [2, (0, bytes_1.hexlify)(result)];
+ } catch (error) {
+ return [2, logger.throwError("bad result from backend", logger_1.Logger.errors.SERVER_ERROR, {
+ method: "getStorageAt",
+ params,
+ result,
+ error
+ })];
+ }
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype._wrapTransaction = function(tx, hash, startBlock) {
+ var _this = this;
+ if (hash != null && (0, bytes_1.hexDataLength)(hash) !== 32) {
+ throw new Error("invalid response - sendTransaction");
+ }
+ var result = tx;
+ if (hash != null && tx.hash !== hash) {
+ logger.throwError("Transaction hash mismatch from Provider.sendTransaction.", logger_1.Logger.errors.UNKNOWN_ERROR, { expectedHash: tx.hash, returnedHash: hash });
+ }
+ result.wait = function(confirms, timeout) {
+ return __awaiter13(_this, void 0, void 0, function() {
+ var replacement, receipt;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ if (confirms == null) {
+ confirms = 1;
+ }
+ if (timeout == null) {
+ timeout = 0;
+ }
+ replacement = void 0;
+ if (confirms !== 0 && startBlock != null) {
+ replacement = {
+ data: tx.data,
+ from: tx.from,
+ nonce: tx.nonce,
+ to: tx.to,
+ value: tx.value,
+ startBlock
+ };
+ }
+ return [4, this._waitForTransaction(tx.hash, confirms, timeout, replacement)];
+ case 1:
+ receipt = _a.sent();
+ if (receipt == null && confirms === 0) {
+ return [2, null];
+ }
+ this._emitted["t:" + tx.hash] = receipt.blockNumber;
+ if (receipt.status === 0) {
+ logger.throwError("transaction failed", logger_1.Logger.errors.CALL_EXCEPTION, {
+ transactionHash: tx.hash,
+ transaction: tx,
+ receipt
+ });
+ }
+ return [2, receipt];
+ }
+ });
+ });
+ };
+ return result;
+ };
+ BaseProvider2.prototype.sendTransaction = function(signedTransaction) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var hexTx, tx, blockNumber, hash, error_7;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this.getNetwork()];
+ case 1:
+ _a.sent();
+ return [4, Promise.resolve(signedTransaction).then(function(t) {
+ return (0, bytes_1.hexlify)(t);
+ })];
+ case 2:
+ hexTx = _a.sent();
+ tx = this.formatter.transaction(signedTransaction);
+ if (tx.confirmations == null) {
+ tx.confirmations = 0;
+ }
+ return [4, this._getInternalBlockNumber(100 + 2 * this.pollingInterval)];
+ case 3:
+ blockNumber = _a.sent();
+ _a.label = 4;
+ case 4:
+ _a.trys.push([4, 6, , 7]);
+ return [4, this.perform("sendTransaction", { signedTransaction: hexTx })];
+ case 5:
+ hash = _a.sent();
+ return [2, this._wrapTransaction(tx, hash, blockNumber)];
+ case 6:
+ error_7 = _a.sent();
+ error_7.transaction = tx;
+ error_7.transactionHash = tx.hash;
+ throw error_7;
+ case 7:
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype._getTransactionRequest = function(transaction) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var values, tx, _a, _b;
+ var _this = this;
+ return __generator13(this, function(_c) {
+ switch (_c.label) {
+ case 0:
+ return [4, transaction];
+ case 1:
+ values = _c.sent();
+ tx = {};
+ ["from", "to"].forEach(function(key) {
+ if (values[key] == null) {
+ return;
+ }
+ tx[key] = Promise.resolve(values[key]).then(function(v) {
+ return v ? _this._getAddress(v) : null;
+ });
+ });
+ ["gasLimit", "gasPrice", "maxFeePerGas", "maxPriorityFeePerGas", "value"].forEach(function(key) {
+ if (values[key] == null) {
+ return;
+ }
+ tx[key] = Promise.resolve(values[key]).then(function(v) {
+ return v ? bignumber_1.BigNumber.from(v) : null;
+ });
+ });
+ ["type"].forEach(function(key) {
+ if (values[key] == null) {
+ return;
+ }
+ tx[key] = Promise.resolve(values[key]).then(function(v) {
+ return v != null ? v : null;
+ });
+ });
+ if (values.accessList) {
+ tx.accessList = this.formatter.accessList(values.accessList);
+ }
+ ["data"].forEach(function(key) {
+ if (values[key] == null) {
+ return;
+ }
+ tx[key] = Promise.resolve(values[key]).then(function(v) {
+ return v ? (0, bytes_1.hexlify)(v) : null;
+ });
+ });
+ _b = (_a = this.formatter).transactionRequest;
+ return [4, (0, properties_1.resolveProperties)(tx)];
+ case 2:
+ return [2, _b.apply(_a, [_c.sent()])];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype._getFilter = function(filter) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var result, _a, _b;
+ var _this = this;
+ return __generator13(this, function(_c) {
+ switch (_c.label) {
+ case 0:
+ return [4, filter];
+ case 1:
+ filter = _c.sent();
+ result = {};
+ if (filter.address != null) {
+ result.address = this._getAddress(filter.address);
+ }
+ ["blockHash", "topics"].forEach(function(key) {
+ if (filter[key] == null) {
+ return;
+ }
+ result[key] = filter[key];
+ });
+ ["fromBlock", "toBlock"].forEach(function(key) {
+ if (filter[key] == null) {
+ return;
+ }
+ result[key] = _this._getBlockTag(filter[key]);
+ });
+ _b = (_a = this.formatter).filter;
+ return [4, (0, properties_1.resolveProperties)(result)];
+ case 2:
+ return [2, _b.apply(_a, [_c.sent()])];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype._call = function(transaction, blockTag, attempt) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var txSender, result, data, sender, urls, urlsOffset, urlsLength, urlsData, u, url, calldata, callbackSelector, extraData, ccipResult, tx, error_8;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ if (attempt >= MAX_CCIP_REDIRECTS) {
+ logger.throwError("CCIP read exceeded maximum redirections", logger_1.Logger.errors.SERVER_ERROR, {
+ redirects: attempt,
+ transaction
+ });
+ }
+ txSender = transaction.to;
+ return [4, this.perform("call", { transaction, blockTag })];
+ case 1:
+ result = _a.sent();
+ if (!(attempt >= 0 && blockTag === "latest" && txSender != null && result.substring(0, 10) === "0x556f1830" && (0, bytes_1.hexDataLength)(result) % 32 === 4))
+ return [3, 5];
+ _a.label = 2;
+ case 2:
+ _a.trys.push([2, 4, , 5]);
+ data = (0, bytes_1.hexDataSlice)(result, 4);
+ sender = (0, bytes_1.hexDataSlice)(data, 0, 32);
+ if (!bignumber_1.BigNumber.from(sender).eq(txSender)) {
+ logger.throwError("CCIP Read sender did not match", logger_1.Logger.errors.CALL_EXCEPTION, {
+ name: "OffchainLookup",
+ signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)",
+ transaction,
+ data: result
+ });
+ }
+ urls = [];
+ urlsOffset = bignumber_1.BigNumber.from((0, bytes_1.hexDataSlice)(data, 32, 64)).toNumber();
+ urlsLength = bignumber_1.BigNumber.from((0, bytes_1.hexDataSlice)(data, urlsOffset, urlsOffset + 32)).toNumber();
+ urlsData = (0, bytes_1.hexDataSlice)(data, urlsOffset + 32);
+ for (u = 0; u < urlsLength; u++) {
+ url = _parseString(urlsData, u * 32);
+ if (url == null) {
+ logger.throwError("CCIP Read contained corrupt URL string", logger_1.Logger.errors.CALL_EXCEPTION, {
+ name: "OffchainLookup",
+ signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)",
+ transaction,
+ data: result
+ });
+ }
+ urls.push(url);
+ }
+ calldata = _parseBytes(data, 64);
+ if (!bignumber_1.BigNumber.from((0, bytes_1.hexDataSlice)(data, 100, 128)).isZero()) {
+ logger.throwError("CCIP Read callback selector included junk", logger_1.Logger.errors.CALL_EXCEPTION, {
+ name: "OffchainLookup",
+ signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)",
+ transaction,
+ data: result
+ });
+ }
+ callbackSelector = (0, bytes_1.hexDataSlice)(data, 96, 100);
+ extraData = _parseBytes(data, 128);
+ return [4, this.ccipReadFetch(transaction, calldata, urls)];
+ case 3:
+ ccipResult = _a.sent();
+ if (ccipResult == null) {
+ logger.throwError("CCIP Read disabled or provided no URLs", logger_1.Logger.errors.CALL_EXCEPTION, {
+ name: "OffchainLookup",
+ signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)",
+ transaction,
+ data: result
+ });
+ }
+ tx = {
+ to: txSender,
+ data: (0, bytes_1.hexConcat)([callbackSelector, encodeBytes([ccipResult, extraData])])
+ };
+ return [2, this._call(tx, blockTag, attempt + 1)];
+ case 4:
+ error_8 = _a.sent();
+ if (error_8.code === logger_1.Logger.errors.SERVER_ERROR) {
+ throw error_8;
+ }
+ return [3, 5];
+ case 5:
+ try {
+ return [2, (0, bytes_1.hexlify)(result)];
+ } catch (error) {
+ return [2, logger.throwError("bad result from backend", logger_1.Logger.errors.SERVER_ERROR, {
+ method: "call",
+ params: { transaction, blockTag },
+ result,
+ error
+ })];
+ }
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.call = function(transaction, blockTag) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var resolved;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this.getNetwork()];
+ case 1:
+ _a.sent();
+ return [4, (0, properties_1.resolveProperties)({
+ transaction: this._getTransactionRequest(transaction),
+ blockTag: this._getBlockTag(blockTag),
+ ccipReadEnabled: Promise.resolve(transaction.ccipReadEnabled)
+ })];
+ case 2:
+ resolved = _a.sent();
+ return [2, this._call(resolved.transaction, resolved.blockTag, resolved.ccipReadEnabled ? 0 : -1)];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.estimateGas = function(transaction) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var params, result;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this.getNetwork()];
+ case 1:
+ _a.sent();
+ return [4, (0, properties_1.resolveProperties)({
+ transaction: this._getTransactionRequest(transaction)
+ })];
+ case 2:
+ params = _a.sent();
+ return [4, this.perform("estimateGas", params)];
+ case 3:
+ result = _a.sent();
+ try {
+ return [2, bignumber_1.BigNumber.from(result)];
+ } catch (error) {
+ return [2, logger.throwError("bad result from backend", logger_1.Logger.errors.SERVER_ERROR, {
+ method: "estimateGas",
+ params,
+ result,
+ error
+ })];
+ }
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype._getAddress = function(addressOrName) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var address;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, addressOrName];
+ case 1:
+ addressOrName = _a.sent();
+ if (typeof addressOrName !== "string") {
+ logger.throwArgumentError("invalid address or ENS name", "name", addressOrName);
+ }
+ return [4, this.resolveName(addressOrName)];
+ case 2:
+ address = _a.sent();
+ if (address == null) {
+ logger.throwError("ENS name not configured", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "resolveName(" + JSON.stringify(addressOrName) + ")"
+ });
+ }
+ return [2, address];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype._getBlock = function(blockHashOrBlockTag, includeTransactions) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var blockNumber, params, _a, error_9;
+ var _this = this;
+ return __generator13(this, function(_b) {
+ switch (_b.label) {
+ case 0:
+ return [4, this.getNetwork()];
+ case 1:
+ _b.sent();
+ return [4, blockHashOrBlockTag];
+ case 2:
+ blockHashOrBlockTag = _b.sent();
+ blockNumber = -128;
+ params = {
+ includeTransactions: !!includeTransactions
+ };
+ if (!(0, bytes_1.isHexString)(blockHashOrBlockTag, 32))
+ return [3, 3];
+ params.blockHash = blockHashOrBlockTag;
+ return [3, 6];
+ case 3:
+ _b.trys.push([3, 5, , 6]);
+ _a = params;
+ return [4, this._getBlockTag(blockHashOrBlockTag)];
+ case 4:
+ _a.blockTag = _b.sent();
+ if ((0, bytes_1.isHexString)(params.blockTag)) {
+ blockNumber = parseInt(params.blockTag.substring(2), 16);
+ }
+ return [3, 6];
+ case 5:
+ error_9 = _b.sent();
+ logger.throwArgumentError("invalid block hash or block tag", "blockHashOrBlockTag", blockHashOrBlockTag);
+ return [3, 6];
+ case 6:
+ return [2, (0, web_1.poll)(function() {
+ return __awaiter13(_this, void 0, void 0, function() {
+ var block, blockNumber_1, i, tx, confirmations, blockWithTxs;
+ var _this2 = this;
+ return __generator13(this, function(_a2) {
+ switch (_a2.label) {
+ case 0:
+ return [4, this.perform("getBlock", params)];
+ case 1:
+ block = _a2.sent();
+ if (block == null) {
+ if (params.blockHash != null) {
+ if (this._emitted["b:" + params.blockHash] == null) {
+ return [2, null];
+ }
+ }
+ if (params.blockTag != null) {
+ if (blockNumber > this._emitted.block) {
+ return [2, null];
+ }
+ }
+ return [2, void 0];
+ }
+ if (!includeTransactions)
+ return [3, 8];
+ blockNumber_1 = null;
+ i = 0;
+ _a2.label = 2;
+ case 2:
+ if (!(i < block.transactions.length))
+ return [3, 7];
+ tx = block.transactions[i];
+ if (!(tx.blockNumber == null))
+ return [3, 3];
+ tx.confirmations = 0;
+ return [3, 6];
+ case 3:
+ if (!(tx.confirmations == null))
+ return [3, 6];
+ if (!(blockNumber_1 == null))
+ return [3, 5];
+ return [4, this._getInternalBlockNumber(100 + 2 * this.pollingInterval)];
+ case 4:
+ blockNumber_1 = _a2.sent();
+ _a2.label = 5;
+ case 5:
+ confirmations = blockNumber_1 - tx.blockNumber + 1;
+ if (confirmations <= 0) {
+ confirmations = 1;
+ }
+ tx.confirmations = confirmations;
+ _a2.label = 6;
+ case 6:
+ i++;
+ return [3, 2];
+ case 7:
+ blockWithTxs = this.formatter.blockWithTransactions(block);
+ blockWithTxs.transactions = blockWithTxs.transactions.map(function(tx2) {
+ return _this2._wrapTransaction(tx2);
+ });
+ return [2, blockWithTxs];
+ case 8:
+ return [2, this.formatter.block(block)];
+ }
+ });
+ });
+ }, { oncePoll: this })];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.getBlock = function(blockHashOrBlockTag) {
+ return this._getBlock(blockHashOrBlockTag, false);
+ };
+ BaseProvider2.prototype.getBlockWithTransactions = function(blockHashOrBlockTag) {
+ return this._getBlock(blockHashOrBlockTag, true);
+ };
+ BaseProvider2.prototype.getTransaction = function(transactionHash) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var params;
+ var _this = this;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this.getNetwork()];
+ case 1:
+ _a.sent();
+ return [4, transactionHash];
+ case 2:
+ transactionHash = _a.sent();
+ params = { transactionHash: this.formatter.hash(transactionHash, true) };
+ return [2, (0, web_1.poll)(function() {
+ return __awaiter13(_this, void 0, void 0, function() {
+ var result, tx, blockNumber, confirmations;
+ return __generator13(this, function(_a2) {
+ switch (_a2.label) {
+ case 0:
+ return [4, this.perform("getTransaction", params)];
+ case 1:
+ result = _a2.sent();
+ if (result == null) {
+ if (this._emitted["t:" + transactionHash] == null) {
+ return [2, null];
+ }
+ return [2, void 0];
+ }
+ tx = this.formatter.transactionResponse(result);
+ if (!(tx.blockNumber == null))
+ return [3, 2];
+ tx.confirmations = 0;
+ return [3, 4];
+ case 2:
+ if (!(tx.confirmations == null))
+ return [3, 4];
+ return [4, this._getInternalBlockNumber(100 + 2 * this.pollingInterval)];
+ case 3:
+ blockNumber = _a2.sent();
+ confirmations = blockNumber - tx.blockNumber + 1;
+ if (confirmations <= 0) {
+ confirmations = 1;
+ }
+ tx.confirmations = confirmations;
+ _a2.label = 4;
+ case 4:
+ return [2, this._wrapTransaction(tx)];
+ }
+ });
+ });
+ }, { oncePoll: this })];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.getTransactionReceipt = function(transactionHash) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var params;
+ var _this = this;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this.getNetwork()];
+ case 1:
+ _a.sent();
+ return [4, transactionHash];
+ case 2:
+ transactionHash = _a.sent();
+ params = { transactionHash: this.formatter.hash(transactionHash, true) };
+ return [2, (0, web_1.poll)(function() {
+ return __awaiter13(_this, void 0, void 0, function() {
+ var result, receipt, blockNumber, confirmations;
+ return __generator13(this, function(_a2) {
+ switch (_a2.label) {
+ case 0:
+ return [4, this.perform("getTransactionReceipt", params)];
+ case 1:
+ result = _a2.sent();
+ if (result == null) {
+ if (this._emitted["t:" + transactionHash] == null) {
+ return [2, null];
+ }
+ return [2, void 0];
+ }
+ if (result.blockHash == null) {
+ return [2, void 0];
+ }
+ receipt = this.formatter.receipt(result);
+ if (!(receipt.blockNumber == null))
+ return [3, 2];
+ receipt.confirmations = 0;
+ return [3, 4];
+ case 2:
+ if (!(receipt.confirmations == null))
+ return [3, 4];
+ return [4, this._getInternalBlockNumber(100 + 2 * this.pollingInterval)];
+ case 3:
+ blockNumber = _a2.sent();
+ confirmations = blockNumber - receipt.blockNumber + 1;
+ if (confirmations <= 0) {
+ confirmations = 1;
+ }
+ receipt.confirmations = confirmations;
+ _a2.label = 4;
+ case 4:
+ return [2, receipt];
+ }
+ });
+ });
+ }, { oncePoll: this })];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.getLogs = function(filter) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var params, logs;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this.getNetwork()];
+ case 1:
+ _a.sent();
+ return [4, (0, properties_1.resolveProperties)({ filter: this._getFilter(filter) })];
+ case 2:
+ params = _a.sent();
+ return [4, this.perform("getLogs", params)];
+ case 3:
+ logs = _a.sent();
+ logs.forEach(function(log) {
+ if (log.removed == null) {
+ log.removed = false;
+ }
+ });
+ return [2, formatter_1.Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs)];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.getEtherPrice = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this.getNetwork()];
+ case 1:
+ _a.sent();
+ return [2, this.perform("getEtherPrice", {})];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype._getBlockTag = function(blockTag) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var blockNumber;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, blockTag];
+ case 1:
+ blockTag = _a.sent();
+ if (!(typeof blockTag === "number" && blockTag < 0))
+ return [3, 3];
+ if (blockTag % 1) {
+ logger.throwArgumentError("invalid BlockTag", "blockTag", blockTag);
+ }
+ return [4, this._getInternalBlockNumber(100 + 2 * this.pollingInterval)];
+ case 2:
+ blockNumber = _a.sent();
+ blockNumber += blockTag;
+ if (blockNumber < 0) {
+ blockNumber = 0;
+ }
+ return [2, this.formatter.blockTag(blockNumber)];
+ case 3:
+ return [2, this.formatter.blockTag(blockTag)];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.getResolver = function(name) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var currentName, addr, resolver, _a;
+ return __generator13(this, function(_b) {
+ switch (_b.label) {
+ case 0:
+ currentName = name;
+ _b.label = 1;
+ case 1:
+ if (false)
+ return [3, 6];
+ if (currentName === "" || currentName === ".") {
+ return [2, null];
+ }
+ if (name !== "eth" && currentName === "eth") {
+ return [2, null];
+ }
+ return [4, this._getResolver(currentName, "getResolver")];
+ case 2:
+ addr = _b.sent();
+ if (!(addr != null))
+ return [3, 5];
+ resolver = new Resolver(this, addr, name);
+ _a = currentName !== name;
+ if (!_a)
+ return [3, 4];
+ return [4, resolver.supportsWildcard()];
+ case 3:
+ _a = !_b.sent();
+ _b.label = 4;
+ case 4:
+ if (_a) {
+ return [2, null];
+ }
+ return [2, resolver];
+ case 5:
+ currentName = currentName.split(".").slice(1).join(".");
+ return [3, 1];
+ case 6:
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype._getResolver = function(name, operation) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var network, addrData, error_10;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ if (operation == null) {
+ operation = "ENS";
+ }
+ return [4, this.getNetwork()];
+ case 1:
+ network = _a.sent();
+ if (!network.ensAddress) {
+ logger.throwError("network does not support ENS", logger_1.Logger.errors.UNSUPPORTED_OPERATION, { operation, network: network.name });
+ }
+ _a.label = 2;
+ case 2:
+ _a.trys.push([2, 4, , 5]);
+ return [4, this.call({
+ to: network.ensAddress,
+ data: "0x0178b8bf" + (0, hash_1.namehash)(name).substring(2)
+ })];
+ case 3:
+ addrData = _a.sent();
+ return [2, this.formatter.callAddress(addrData)];
+ case 4:
+ error_10 = _a.sent();
+ return [3, 5];
+ case 5:
+ return [2, null];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.resolveName = function(name) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var resolver;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, name];
+ case 1:
+ name = _a.sent();
+ try {
+ return [2, Promise.resolve(this.formatter.address(name))];
+ } catch (error) {
+ if ((0, bytes_1.isHexString)(name)) {
+ throw error;
+ }
+ }
+ if (typeof name !== "string") {
+ logger.throwArgumentError("invalid ENS name", "name", name);
+ }
+ return [4, this.getResolver(name)];
+ case 2:
+ resolver = _a.sent();
+ if (!resolver) {
+ return [2, null];
+ }
+ return [4, resolver.getAddress()];
+ case 3:
+ return [2, _a.sent()];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.lookupAddress = function(address) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var node, resolverAddr, name, _a, addr;
+ return __generator13(this, function(_b) {
+ switch (_b.label) {
+ case 0:
+ return [4, address];
+ case 1:
+ address = _b.sent();
+ address = this.formatter.address(address);
+ node = address.substring(2).toLowerCase() + ".addr.reverse";
+ return [4, this._getResolver(node, "lookupAddress")];
+ case 2:
+ resolverAddr = _b.sent();
+ if (resolverAddr == null) {
+ return [2, null];
+ }
+ _a = _parseString;
+ return [4, this.call({
+ to: resolverAddr,
+ data: "0x691f3431" + (0, hash_1.namehash)(node).substring(2)
+ })];
+ case 3:
+ name = _a.apply(void 0, [_b.sent(), 0]);
+ return [4, this.resolveName(name)];
+ case 4:
+ addr = _b.sent();
+ if (addr != address) {
+ return [2, null];
+ }
+ return [2, name];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.getAvatar = function(nameOrAddress) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var resolver, address, node, resolverAddress, avatar_1, error_11, name_1, _a, error_12, avatar;
+ return __generator13(this, function(_b) {
+ switch (_b.label) {
+ case 0:
+ resolver = null;
+ if (!(0, bytes_1.isHexString)(nameOrAddress))
+ return [3, 10];
+ address = this.formatter.address(nameOrAddress);
+ node = address.substring(2).toLowerCase() + ".addr.reverse";
+ return [4, this._getResolver(node, "getAvatar")];
+ case 1:
+ resolverAddress = _b.sent();
+ if (!resolverAddress) {
+ return [2, null];
+ }
+ resolver = new Resolver(this, resolverAddress, node);
+ _b.label = 2;
+ case 2:
+ _b.trys.push([2, 4, , 5]);
+ return [4, resolver.getAvatar()];
+ case 3:
+ avatar_1 = _b.sent();
+ if (avatar_1) {
+ return [2, avatar_1.url];
+ }
+ return [3, 5];
+ case 4:
+ error_11 = _b.sent();
+ if (error_11.code !== logger_1.Logger.errors.CALL_EXCEPTION) {
+ throw error_11;
+ }
+ return [3, 5];
+ case 5:
+ _b.trys.push([5, 8, , 9]);
+ _a = _parseString;
+ return [4, this.call({
+ to: resolverAddress,
+ data: "0x691f3431" + (0, hash_1.namehash)(node).substring(2)
+ })];
+ case 6:
+ name_1 = _a.apply(void 0, [_b.sent(), 0]);
+ return [4, this.getResolver(name_1)];
+ case 7:
+ resolver = _b.sent();
+ return [3, 9];
+ case 8:
+ error_12 = _b.sent();
+ if (error_12.code !== logger_1.Logger.errors.CALL_EXCEPTION) {
+ throw error_12;
+ }
+ return [2, null];
+ case 9:
+ return [3, 12];
+ case 10:
+ return [4, this.getResolver(nameOrAddress)];
+ case 11:
+ resolver = _b.sent();
+ if (!resolver) {
+ return [2, null];
+ }
+ _b.label = 12;
+ case 12:
+ return [4, resolver.getAvatar()];
+ case 13:
+ avatar = _b.sent();
+ if (avatar == null) {
+ return [2, null];
+ }
+ return [2, avatar.url];
+ }
+ });
+ });
+ };
+ BaseProvider2.prototype.perform = function(method, params) {
+ return logger.throwError(method + " not implemented", logger_1.Logger.errors.NOT_IMPLEMENTED, { operation: method });
+ };
+ BaseProvider2.prototype._startEvent = function(event) {
+ this.polling = this._events.filter(function(e) {
+ return e.pollable();
+ }).length > 0;
+ };
+ BaseProvider2.prototype._stopEvent = function(event) {
+ this.polling = this._events.filter(function(e) {
+ return e.pollable();
+ }).length > 0;
+ };
+ BaseProvider2.prototype._addEventListener = function(eventName, listener, once) {
+ var event = new Event2(getEventTag(eventName), listener, once);
+ this._events.push(event);
+ this._startEvent(event);
+ return this;
+ };
+ BaseProvider2.prototype.on = function(eventName, listener) {
+ return this._addEventListener(eventName, listener, false);
+ };
+ BaseProvider2.prototype.once = function(eventName, listener) {
+ return this._addEventListener(eventName, listener, true);
+ };
+ BaseProvider2.prototype.emit = function(eventName) {
+ var _this = this;
+ var args = [];
+ for (var _i = 1; _i < arguments.length; _i++) {
+ args[_i - 1] = arguments[_i];
+ }
+ var result = false;
+ var stopped = [];
+ var eventTag = getEventTag(eventName);
+ this._events = this._events.filter(function(event) {
+ if (event.tag !== eventTag) {
+ return true;
+ }
+ setTimeout(function() {
+ event.listener.apply(_this, args);
+ }, 0);
+ result = true;
+ if (event.once) {
+ stopped.push(event);
+ return false;
+ }
+ return true;
+ });
+ stopped.forEach(function(event) {
+ _this._stopEvent(event);
+ });
+ return result;
+ };
+ BaseProvider2.prototype.listenerCount = function(eventName) {
+ if (!eventName) {
+ return this._events.length;
+ }
+ var eventTag = getEventTag(eventName);
+ return this._events.filter(function(event) {
+ return event.tag === eventTag;
+ }).length;
+ };
+ BaseProvider2.prototype.listeners = function(eventName) {
+ if (eventName == null) {
+ return this._events.map(function(event) {
+ return event.listener;
+ });
+ }
+ var eventTag = getEventTag(eventName);
+ return this._events.filter(function(event) {
+ return event.tag === eventTag;
+ }).map(function(event) {
+ return event.listener;
+ });
+ };
+ BaseProvider2.prototype.off = function(eventName, listener) {
+ var _this = this;
+ if (listener == null) {
+ return this.removeAllListeners(eventName);
+ }
+ var stopped = [];
+ var found = false;
+ var eventTag = getEventTag(eventName);
+ this._events = this._events.filter(function(event) {
+ if (event.tag !== eventTag || event.listener != listener) {
+ return true;
+ }
+ if (found) {
+ return true;
+ }
+ found = true;
+ stopped.push(event);
+ return false;
+ });
+ stopped.forEach(function(event) {
+ _this._stopEvent(event);
+ });
+ return this;
+ };
+ BaseProvider2.prototype.removeAllListeners = function(eventName) {
+ var _this = this;
+ var stopped = [];
+ if (eventName == null) {
+ stopped = this._events;
+ this._events = [];
+ } else {
+ var eventTag_1 = getEventTag(eventName);
+ this._events = this._events.filter(function(event) {
+ if (event.tag !== eventTag_1) {
+ return true;
+ }
+ stopped.push(event);
+ return false;
+ });
+ }
+ stopped.forEach(function(event) {
+ _this._stopEvent(event);
+ });
+ return this;
+ };
+ return BaseProvider2;
+ }(abstract_provider_1.Provider)
+ );
+ exports2.BaseProvider = BaseProvider;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/json-rpc-provider.js
+var require_json_rpc_provider = __commonJS({
+ "node_modules/@ethersproject/providers/lib/json-rpc-provider.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.JsonRpcProvider = exports2.JsonRpcSigner = void 0;
+ var abstract_signer_1 = require_lib21();
+ var bignumber_1 = require_lib7();
+ var bytes_1 = require_lib6();
+ var hash_1 = require_lib18();
+ var properties_1 = require_lib12();
+ var strings_1 = require_lib15();
+ var transactions_1 = require_lib14();
+ var web_1 = require_lib32();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ var base_provider_1 = require_base_provider();
+ var errorGas = ["call", "estimateGas"];
+ function spelunk(value, requireData) {
+ if (value == null) {
+ return null;
+ }
+ if (typeof value.message === "string" && value.message.match("reverted")) {
+ var data = (0, bytes_1.isHexString)(value.data) ? value.data : null;
+ if (!requireData || data) {
+ return { message: value.message, data };
+ }
+ }
+ if (typeof value === "object") {
+ for (var key in value) {
+ var result = spelunk(value[key], requireData);
+ if (result) {
+ return result;
+ }
+ }
+ return null;
+ }
+ if (typeof value === "string") {
+ try {
+ return spelunk(JSON.parse(value), requireData);
+ } catch (error) {
+ }
+ }
+ return null;
+ }
+ function checkError(method, error, params) {
+ var transaction = params.transaction || params.signedTransaction;
+ if (method === "call") {
+ var result = spelunk(error, true);
+ if (result) {
+ return result.data;
+ }
+ logger.throwError("missing revert data in call exception; Transaction reverted without a reason string", logger_1.Logger.errors.CALL_EXCEPTION, {
+ data: "0x",
+ transaction,
+ error
+ });
+ }
+ if (method === "estimateGas") {
+ var result = spelunk(error.body, false);
+ if (result == null) {
+ result = spelunk(error, false);
+ }
+ if (result) {
+ logger.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", logger_1.Logger.errors.UNPREDICTABLE_GAS_LIMIT, {
+ reason: result.message,
+ method,
+ transaction,
+ error
+ });
+ }
+ }
+ var message = error.message;
+ if (error.code === logger_1.Logger.errors.SERVER_ERROR && error.error && typeof error.error.message === "string") {
+ message = error.error.message;
+ } else if (typeof error.body === "string") {
+ message = error.body;
+ } else if (typeof error.responseText === "string") {
+ message = error.responseText;
+ }
+ message = (message || "").toLowerCase();
+ if (message.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)) {
+ logger.throwError("insufficient funds for intrinsic transaction cost", logger_1.Logger.errors.INSUFFICIENT_FUNDS, {
+ error,
+ method,
+ transaction
+ });
+ }
+ if (message.match(/nonce (is )?too low/i)) {
+ logger.throwError("nonce has already been used", logger_1.Logger.errors.NONCE_EXPIRED, {
+ error,
+ method,
+ transaction
+ });
+ }
+ if (message.match(/replacement transaction underpriced|transaction gas price.*too low/i)) {
+ logger.throwError("replacement fee too low", logger_1.Logger.errors.REPLACEMENT_UNDERPRICED, {
+ error,
+ method,
+ transaction
+ });
+ }
+ if (message.match(/only replay-protected/i)) {
+ logger.throwError("legacy pre-eip-155 transactions not supported", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ error,
+ method,
+ transaction
+ });
+ }
+ if (errorGas.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)) {
+ logger.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", logger_1.Logger.errors.UNPREDICTABLE_GAS_LIMIT, {
+ error,
+ method,
+ transaction
+ });
+ }
+ throw error;
+ }
+ function timer(timeout) {
+ return new Promise(function(resolve) {
+ setTimeout(resolve, timeout);
+ });
+ }
+ function getResult(payload) {
+ if (payload.error) {
+ var error = new Error(payload.error.message);
+ error.code = payload.error.code;
+ error.data = payload.error.data;
+ throw error;
+ }
+ return payload.result;
+ }
+ function getLowerCase(value) {
+ if (value) {
+ return value.toLowerCase();
+ }
+ return value;
+ }
+ var _constructorGuard = {};
+ var JsonRpcSigner = (
+ /** @class */
+ function(_super) {
+ __extends13(JsonRpcSigner2, _super);
+ function JsonRpcSigner2(constructorGuard, provider, addressOrIndex) {
+ var _this = _super.call(this) || this;
+ if (constructorGuard !== _constructorGuard) {
+ throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");
+ }
+ (0, properties_1.defineReadOnly)(_this, "provider", provider);
+ if (addressOrIndex == null) {
+ addressOrIndex = 0;
+ }
+ if (typeof addressOrIndex === "string") {
+ (0, properties_1.defineReadOnly)(_this, "_address", _this.provider.formatter.address(addressOrIndex));
+ (0, properties_1.defineReadOnly)(_this, "_index", null);
+ } else if (typeof addressOrIndex === "number") {
+ (0, properties_1.defineReadOnly)(_this, "_index", addressOrIndex);
+ (0, properties_1.defineReadOnly)(_this, "_address", null);
+ } else {
+ logger.throwArgumentError("invalid address or index", "addressOrIndex", addressOrIndex);
+ }
+ return _this;
+ }
+ JsonRpcSigner2.prototype.connect = function(provider) {
+ return logger.throwError("cannot alter JSON-RPC Signer connection", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "connect"
+ });
+ };
+ JsonRpcSigner2.prototype.connectUnchecked = function() {
+ return new UncheckedJsonRpcSigner(_constructorGuard, this.provider, this._address || this._index);
+ };
+ JsonRpcSigner2.prototype.getAddress = function() {
+ var _this = this;
+ if (this._address) {
+ return Promise.resolve(this._address);
+ }
+ return this.provider.send("eth_accounts", []).then(function(accounts) {
+ if (accounts.length <= _this._index) {
+ logger.throwError("unknown account #" + _this._index, logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "getAddress"
+ });
+ }
+ return _this.provider.formatter.address(accounts[_this._index]);
+ });
+ };
+ JsonRpcSigner2.prototype.sendUncheckedTransaction = function(transaction) {
+ var _this = this;
+ transaction = (0, properties_1.shallowCopy)(transaction);
+ var fromAddress = this.getAddress().then(function(address) {
+ if (address) {
+ address = address.toLowerCase();
+ }
+ return address;
+ });
+ if (transaction.gasLimit == null) {
+ var estimate = (0, properties_1.shallowCopy)(transaction);
+ estimate.from = fromAddress;
+ transaction.gasLimit = this.provider.estimateGas(estimate);
+ }
+ if (transaction.to != null) {
+ transaction.to = Promise.resolve(transaction.to).then(function(to) {
+ return __awaiter13(_this, void 0, void 0, function() {
+ var address;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ if (to == null) {
+ return [2, null];
+ }
+ return [4, this.provider.resolveName(to)];
+ case 1:
+ address = _a.sent();
+ if (address == null) {
+ logger.throwArgumentError("provided ENS name resolves to null", "tx.to", to);
+ }
+ return [2, address];
+ }
+ });
+ });
+ });
+ }
+ return (0, properties_1.resolveProperties)({
+ tx: (0, properties_1.resolveProperties)(transaction),
+ sender: fromAddress
+ }).then(function(_a) {
+ var tx = _a.tx, sender = _a.sender;
+ if (tx.from != null) {
+ if (tx.from.toLowerCase() !== sender) {
+ logger.throwArgumentError("from address mismatch", "transaction", transaction);
+ }
+ } else {
+ tx.from = sender;
+ }
+ var hexTx = _this.provider.constructor.hexlifyTransaction(tx, { from: true });
+ return _this.provider.send("eth_sendTransaction", [hexTx]).then(function(hash) {
+ return hash;
+ }, function(error) {
+ if (typeof error.message === "string" && error.message.match(/user denied/i)) {
+ logger.throwError("user rejected transaction", logger_1.Logger.errors.ACTION_REJECTED, {
+ action: "sendTransaction",
+ transaction: tx
+ });
+ }
+ return checkError("sendTransaction", error, hexTx);
+ });
+ });
+ };
+ JsonRpcSigner2.prototype.signTransaction = function(transaction) {
+ return logger.throwError("signing transactions is unsupported", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "signTransaction"
+ });
+ };
+ JsonRpcSigner2.prototype.sendTransaction = function(transaction) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var blockNumber, hash, error_1;
+ var _this = this;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval)];
+ case 1:
+ blockNumber = _a.sent();
+ return [4, this.sendUncheckedTransaction(transaction)];
+ case 2:
+ hash = _a.sent();
+ _a.label = 3;
+ case 3:
+ _a.trys.push([3, 5, , 6]);
+ return [4, (0, web_1.poll)(function() {
+ return __awaiter13(_this, void 0, void 0, function() {
+ var tx;
+ return __generator13(this, function(_a2) {
+ switch (_a2.label) {
+ case 0:
+ return [4, this.provider.getTransaction(hash)];
+ case 1:
+ tx = _a2.sent();
+ if (tx === null) {
+ return [2, void 0];
+ }
+ return [2, this.provider._wrapTransaction(tx, hash, blockNumber)];
+ }
+ });
+ });
+ }, { oncePoll: this.provider })];
+ case 4:
+ return [2, _a.sent()];
+ case 5:
+ error_1 = _a.sent();
+ error_1.transactionHash = hash;
+ throw error_1;
+ case 6:
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ JsonRpcSigner2.prototype.signMessage = function(message) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var data, address, error_2;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ data = typeof message === "string" ? (0, strings_1.toUtf8Bytes)(message) : message;
+ return [4, this.getAddress()];
+ case 1:
+ address = _a.sent();
+ _a.label = 2;
+ case 2:
+ _a.trys.push([2, 4, , 5]);
+ return [4, this.provider.send("personal_sign", [(0, bytes_1.hexlify)(data), address.toLowerCase()])];
+ case 3:
+ return [2, _a.sent()];
+ case 4:
+ error_2 = _a.sent();
+ if (typeof error_2.message === "string" && error_2.message.match(/user denied/i)) {
+ logger.throwError("user rejected signing", logger_1.Logger.errors.ACTION_REJECTED, {
+ action: "signMessage",
+ from: address,
+ messageData: message
+ });
+ }
+ throw error_2;
+ case 5:
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ JsonRpcSigner2.prototype._legacySignMessage = function(message) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var data, address, error_3;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ data = typeof message === "string" ? (0, strings_1.toUtf8Bytes)(message) : message;
+ return [4, this.getAddress()];
+ case 1:
+ address = _a.sent();
+ _a.label = 2;
+ case 2:
+ _a.trys.push([2, 4, , 5]);
+ return [4, this.provider.send("eth_sign", [address.toLowerCase(), (0, bytes_1.hexlify)(data)])];
+ case 3:
+ return [2, _a.sent()];
+ case 4:
+ error_3 = _a.sent();
+ if (typeof error_3.message === "string" && error_3.message.match(/user denied/i)) {
+ logger.throwError("user rejected signing", logger_1.Logger.errors.ACTION_REJECTED, {
+ action: "_legacySignMessage",
+ from: address,
+ messageData: message
+ });
+ }
+ throw error_3;
+ case 5:
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ JsonRpcSigner2.prototype._signTypedData = function(domain, types, value) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var populated, address, error_4;
+ var _this = this;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, hash_1._TypedDataEncoder.resolveNames(domain, types, value, function(name) {
+ return _this.provider.resolveName(name);
+ })];
+ case 1:
+ populated = _a.sent();
+ return [4, this.getAddress()];
+ case 2:
+ address = _a.sent();
+ _a.label = 3;
+ case 3:
+ _a.trys.push([3, 5, , 6]);
+ return [4, this.provider.send("eth_signTypedData_v4", [
+ address.toLowerCase(),
+ JSON.stringify(hash_1._TypedDataEncoder.getPayload(populated.domain, types, populated.value))
+ ])];
+ case 4:
+ return [2, _a.sent()];
+ case 5:
+ error_4 = _a.sent();
+ if (typeof error_4.message === "string" && error_4.message.match(/user denied/i)) {
+ logger.throwError("user rejected signing", logger_1.Logger.errors.ACTION_REJECTED, {
+ action: "_signTypedData",
+ from: address,
+ messageData: { domain: populated.domain, types, value: populated.value }
+ });
+ }
+ throw error_4;
+ case 6:
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ JsonRpcSigner2.prototype.unlock = function(password) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var provider, address;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ provider = this.provider;
+ return [4, this.getAddress()];
+ case 1:
+ address = _a.sent();
+ return [2, provider.send("personal_unlockAccount", [address.toLowerCase(), password, null])];
+ }
+ });
+ });
+ };
+ return JsonRpcSigner2;
+ }(abstract_signer_1.Signer)
+ );
+ exports2.JsonRpcSigner = JsonRpcSigner;
+ var UncheckedJsonRpcSigner = (
+ /** @class */
+ function(_super) {
+ __extends13(UncheckedJsonRpcSigner2, _super);
+ function UncheckedJsonRpcSigner2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ UncheckedJsonRpcSigner2.prototype.sendTransaction = function(transaction) {
+ var _this = this;
+ return this.sendUncheckedTransaction(transaction).then(function(hash) {
+ return {
+ hash,
+ nonce: null,
+ gasLimit: null,
+ gasPrice: null,
+ data: null,
+ value: null,
+ chainId: null,
+ confirmations: 0,
+ from: null,
+ wait: function(confirmations) {
+ return _this.provider.waitForTransaction(hash, confirmations);
+ }
+ };
+ });
+ };
+ return UncheckedJsonRpcSigner2;
+ }(JsonRpcSigner)
+ );
+ var allowedTransactionKeys = {
+ chainId: true,
+ data: true,
+ gasLimit: true,
+ gasPrice: true,
+ nonce: true,
+ to: true,
+ value: true,
+ type: true,
+ accessList: true,
+ maxFeePerGas: true,
+ maxPriorityFeePerGas: true
+ };
+ var JsonRpcProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(JsonRpcProvider2, _super);
+ function JsonRpcProvider2(url, network) {
+ var _this = this;
+ var networkOrReady = network;
+ if (networkOrReady == null) {
+ networkOrReady = new Promise(function(resolve, reject) {
+ setTimeout(function() {
+ _this.detectNetwork().then(function(network2) {
+ resolve(network2);
+ }, function(error) {
+ reject(error);
+ });
+ }, 0);
+ });
+ }
+ _this = _super.call(this, networkOrReady) || this;
+ if (!url) {
+ url = (0, properties_1.getStatic)(_this.constructor, "defaultUrl")();
+ }
+ if (typeof url === "string") {
+ (0, properties_1.defineReadOnly)(_this, "connection", Object.freeze({
+ url
+ }));
+ } else {
+ (0, properties_1.defineReadOnly)(_this, "connection", Object.freeze((0, properties_1.shallowCopy)(url)));
+ }
+ _this._nextId = 42;
+ return _this;
+ }
+ Object.defineProperty(JsonRpcProvider2.prototype, "_cache", {
+ get: function() {
+ if (this._eventLoopCache == null) {
+ this._eventLoopCache = {};
+ }
+ return this._eventLoopCache;
+ },
+ enumerable: false,
+ configurable: true
+ });
+ JsonRpcProvider2.defaultUrl = function() {
+ return "http://localhost:8545";
+ };
+ JsonRpcProvider2.prototype.detectNetwork = function() {
+ var _this = this;
+ if (!this._cache["detectNetwork"]) {
+ this._cache["detectNetwork"] = this._uncachedDetectNetwork();
+ setTimeout(function() {
+ _this._cache["detectNetwork"] = null;
+ }, 0);
+ }
+ return this._cache["detectNetwork"];
+ };
+ JsonRpcProvider2.prototype._uncachedDetectNetwork = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ var chainId, error_5, error_6, getNetwork;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, timer(0)];
+ case 1:
+ _a.sent();
+ chainId = null;
+ _a.label = 2;
+ case 2:
+ _a.trys.push([2, 4, , 9]);
+ return [4, this.send("eth_chainId", [])];
+ case 3:
+ chainId = _a.sent();
+ return [3, 9];
+ case 4:
+ error_5 = _a.sent();
+ _a.label = 5;
+ case 5:
+ _a.trys.push([5, 7, , 8]);
+ return [4, this.send("net_version", [])];
+ case 6:
+ chainId = _a.sent();
+ return [3, 8];
+ case 7:
+ error_6 = _a.sent();
+ return [3, 8];
+ case 8:
+ return [3, 9];
+ case 9:
+ if (chainId != null) {
+ getNetwork = (0, properties_1.getStatic)(this.constructor, "getNetwork");
+ try {
+ return [2, getNetwork(bignumber_1.BigNumber.from(chainId).toNumber())];
+ } catch (error) {
+ return [2, logger.throwError("could not detect network", logger_1.Logger.errors.NETWORK_ERROR, {
+ chainId,
+ event: "invalidNetwork",
+ serverError: error
+ })];
+ }
+ }
+ return [2, logger.throwError("could not detect network", logger_1.Logger.errors.NETWORK_ERROR, {
+ event: "noNetwork"
+ })];
+ }
+ });
+ });
+ };
+ JsonRpcProvider2.prototype.getSigner = function(addressOrIndex) {
+ return new JsonRpcSigner(_constructorGuard, this, addressOrIndex);
+ };
+ JsonRpcProvider2.prototype.getUncheckedSigner = function(addressOrIndex) {
+ return this.getSigner(addressOrIndex).connectUnchecked();
+ };
+ JsonRpcProvider2.prototype.listAccounts = function() {
+ var _this = this;
+ return this.send("eth_accounts", []).then(function(accounts) {
+ return accounts.map(function(a) {
+ return _this.formatter.address(a);
+ });
+ });
+ };
+ JsonRpcProvider2.prototype.send = function(method, params) {
+ var _this = this;
+ var request = {
+ method,
+ params,
+ id: this._nextId++,
+ jsonrpc: "2.0"
+ };
+ this.emit("debug", {
+ action: "request",
+ request: (0, properties_1.deepCopy)(request),
+ provider: this
+ });
+ var cache = ["eth_chainId", "eth_blockNumber"].indexOf(method) >= 0;
+ if (cache && this._cache[method]) {
+ return this._cache[method];
+ }
+ var result = (0, web_1.fetchJson)(this.connection, JSON.stringify(request), getResult).then(function(result2) {
+ _this.emit("debug", {
+ action: "response",
+ request,
+ response: result2,
+ provider: _this
+ });
+ return result2;
+ }, function(error) {
+ _this.emit("debug", {
+ action: "response",
+ error,
+ request,
+ provider: _this
+ });
+ throw error;
+ });
+ if (cache) {
+ this._cache[method] = result;
+ setTimeout(function() {
+ _this._cache[method] = null;
+ }, 0);
+ }
+ return result;
+ };
+ JsonRpcProvider2.prototype.prepareRequest = function(method, params) {
+ switch (method) {
+ case "getBlockNumber":
+ return ["eth_blockNumber", []];
+ case "getGasPrice":
+ return ["eth_gasPrice", []];
+ case "getBalance":
+ return ["eth_getBalance", [getLowerCase(params.address), params.blockTag]];
+ case "getTransactionCount":
+ return ["eth_getTransactionCount", [getLowerCase(params.address), params.blockTag]];
+ case "getCode":
+ return ["eth_getCode", [getLowerCase(params.address), params.blockTag]];
+ case "getStorageAt":
+ return ["eth_getStorageAt", [getLowerCase(params.address), (0, bytes_1.hexZeroPad)(params.position, 32), params.blockTag]];
+ case "sendTransaction":
+ return ["eth_sendRawTransaction", [params.signedTransaction]];
+ case "getBlock":
+ if (params.blockTag) {
+ return ["eth_getBlockByNumber", [params.blockTag, !!params.includeTransactions]];
+ } else if (params.blockHash) {
+ return ["eth_getBlockByHash", [params.blockHash, !!params.includeTransactions]];
+ }
+ return null;
+ case "getTransaction":
+ return ["eth_getTransactionByHash", [params.transactionHash]];
+ case "getTransactionReceipt":
+ return ["eth_getTransactionReceipt", [params.transactionHash]];
+ case "call": {
+ var hexlifyTransaction = (0, properties_1.getStatic)(this.constructor, "hexlifyTransaction");
+ return ["eth_call", [hexlifyTransaction(params.transaction, { from: true }), params.blockTag]];
+ }
+ case "estimateGas": {
+ var hexlifyTransaction = (0, properties_1.getStatic)(this.constructor, "hexlifyTransaction");
+ return ["eth_estimateGas", [hexlifyTransaction(params.transaction, { from: true })]];
+ }
+ case "getLogs":
+ if (params.filter && params.filter.address != null) {
+ params.filter.address = getLowerCase(params.filter.address);
+ }
+ return ["eth_getLogs", [params.filter]];
+ default:
+ break;
+ }
+ return null;
+ };
+ JsonRpcProvider2.prototype.perform = function(method, params) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var tx, feeData, args, error_7;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ if (!(method === "call" || method === "estimateGas"))
+ return [3, 2];
+ tx = params.transaction;
+ if (!(tx && tx.type != null && bignumber_1.BigNumber.from(tx.type).isZero()))
+ return [3, 2];
+ if (!(tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null))
+ return [3, 2];
+ return [4, this.getFeeData()];
+ case 1:
+ feeData = _a.sent();
+ if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) {
+ params = (0, properties_1.shallowCopy)(params);
+ params.transaction = (0, properties_1.shallowCopy)(tx);
+ delete params.transaction.type;
+ }
+ _a.label = 2;
+ case 2:
+ args = this.prepareRequest(method, params);
+ if (args == null) {
+ logger.throwError(method + " not implemented", logger_1.Logger.errors.NOT_IMPLEMENTED, { operation: method });
+ }
+ _a.label = 3;
+ case 3:
+ _a.trys.push([3, 5, , 6]);
+ return [4, this.send(args[0], args[1])];
+ case 4:
+ return [2, _a.sent()];
+ case 5:
+ error_7 = _a.sent();
+ return [2, checkError(method, error_7, params)];
+ case 6:
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ JsonRpcProvider2.prototype._startEvent = function(event) {
+ if (event.tag === "pending") {
+ this._startPending();
+ }
+ _super.prototype._startEvent.call(this, event);
+ };
+ JsonRpcProvider2.prototype._startPending = function() {
+ if (this._pendingFilter != null) {
+ return;
+ }
+ var self2 = this;
+ var pendingFilter = this.send("eth_newPendingTransactionFilter", []);
+ this._pendingFilter = pendingFilter;
+ pendingFilter.then(function(filterId) {
+ function poll() {
+ self2.send("eth_getFilterChanges", [filterId]).then(function(hashes) {
+ if (self2._pendingFilter != pendingFilter) {
+ return null;
+ }
+ var seq = Promise.resolve();
+ hashes.forEach(function(hash) {
+ self2._emitted["t:" + hash.toLowerCase()] = "pending";
+ seq = seq.then(function() {
+ return self2.getTransaction(hash).then(function(tx) {
+ self2.emit("pending", tx);
+ return null;
+ });
+ });
+ });
+ return seq.then(function() {
+ return timer(1e3);
+ });
+ }).then(function() {
+ if (self2._pendingFilter != pendingFilter) {
+ self2.send("eth_uninstallFilter", [filterId]);
+ return;
+ }
+ setTimeout(function() {
+ poll();
+ }, 0);
+ return null;
+ }).catch(function(error) {
+ });
+ }
+ poll();
+ return filterId;
+ }).catch(function(error) {
+ });
+ };
+ JsonRpcProvider2.prototype._stopEvent = function(event) {
+ if (event.tag === "pending" && this.listenerCount("pending") === 0) {
+ this._pendingFilter = null;
+ }
+ _super.prototype._stopEvent.call(this, event);
+ };
+ JsonRpcProvider2.hexlifyTransaction = function(transaction, allowExtra) {
+ var allowed = (0, properties_1.shallowCopy)(allowedTransactionKeys);
+ if (allowExtra) {
+ for (var key in allowExtra) {
+ if (allowExtra[key]) {
+ allowed[key] = true;
+ }
+ }
+ }
+ (0, properties_1.checkProperties)(transaction, allowed);
+ var result = {};
+ ["chainId", "gasLimit", "gasPrice", "type", "maxFeePerGas", "maxPriorityFeePerGas", "nonce", "value"].forEach(function(key2) {
+ if (transaction[key2] == null) {
+ return;
+ }
+ var value = (0, bytes_1.hexValue)(bignumber_1.BigNumber.from(transaction[key2]));
+ if (key2 === "gasLimit") {
+ key2 = "gas";
+ }
+ result[key2] = value;
+ });
+ ["from", "to", "data"].forEach(function(key2) {
+ if (transaction[key2] == null) {
+ return;
+ }
+ result[key2] = (0, bytes_1.hexlify)(transaction[key2]);
+ });
+ if (transaction.accessList) {
+ result["accessList"] = (0, transactions_1.accessListify)(transaction.accessList);
+ }
+ return result;
+ };
+ return JsonRpcProvider2;
+ }(base_provider_1.BaseProvider)
+ );
+ exports2.JsonRpcProvider = JsonRpcProvider;
+ }
+});
+
+// node_modules/ws/lib/constants.js
+var require_constants = __commonJS({
+ "node_modules/ws/lib/constants.js"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ BINARY_TYPES: ["nodebuffer", "arraybuffer", "fragments"],
+ GUID: "258EAFA5-E914-47DA-95CA-C5AB0DC85B11",
+ kStatusCode: Symbol("status-code"),
+ kWebSocket: Symbol("websocket"),
+ EMPTY_BUFFER: Buffer.alloc(0),
+ NOOP: () => {
+ }
+ };
+ }
+});
+
+// node_modules/ws/lib/buffer-util.js
+var require_buffer_util = __commonJS({
+ "node_modules/ws/lib/buffer-util.js"(exports2, module2) {
+ "use strict";
+ var { EMPTY_BUFFER } = require_constants();
+ function concat(list, totalLength) {
+ if (list.length === 0)
+ return EMPTY_BUFFER;
+ if (list.length === 1)
+ return list[0];
+ const target = Buffer.allocUnsafe(totalLength);
+ let offset = 0;
+ for (let i = 0; i < list.length; i++) {
+ const buf = list[i];
+ target.set(buf, offset);
+ offset += buf.length;
+ }
+ if (offset < totalLength)
+ return target.slice(0, offset);
+ return target;
+ }
+ function _mask(source, mask, output, offset, length) {
+ for (let i = 0; i < length; i++) {
+ output[offset + i] = source[i] ^ mask[i & 3];
+ }
+ }
+ function _unmask(buffer, mask) {
+ const length = buffer.length;
+ for (let i = 0; i < length; i++) {
+ buffer[i] ^= mask[i & 3];
+ }
+ }
+ function toArrayBuffer(buf) {
+ if (buf.byteLength === buf.buffer.byteLength) {
+ return buf.buffer;
+ }
+ return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
+ }
+ function toBuffer(data) {
+ toBuffer.readOnly = true;
+ if (Buffer.isBuffer(data))
+ return data;
+ let buf;
+ if (data instanceof ArrayBuffer) {
+ buf = Buffer.from(data);
+ } else if (ArrayBuffer.isView(data)) {
+ buf = Buffer.from(data.buffer, data.byteOffset, data.byteLength);
+ } else {
+ buf = Buffer.from(data);
+ toBuffer.readOnly = false;
+ }
+ return buf;
+ }
+ try {
+ const bufferUtil = require("bufferutil");
+ const bu = bufferUtil.BufferUtil || bufferUtil;
+ module2.exports = {
+ concat,
+ mask(source, mask, output, offset, length) {
+ if (length < 48)
+ _mask(source, mask, output, offset, length);
+ else
+ bu.mask(source, mask, output, offset, length);
+ },
+ toArrayBuffer,
+ toBuffer,
+ unmask(buffer, mask) {
+ if (buffer.length < 32)
+ _unmask(buffer, mask);
+ else
+ bu.unmask(buffer, mask);
+ }
+ };
+ } catch (e) {
+ module2.exports = {
+ concat,
+ mask: _mask,
+ toArrayBuffer,
+ toBuffer,
+ unmask: _unmask
+ };
+ }
+ }
+});
+
+// node_modules/ws/lib/limiter.js
+var require_limiter = __commonJS({
+ "node_modules/ws/lib/limiter.js"(exports2, module2) {
+ "use strict";
+ var kDone = Symbol("kDone");
+ var kRun = Symbol("kRun");
+ var Limiter = class {
+ /**
+ * Creates a new `Limiter`.
+ *
+ * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed
+ * to run concurrently
+ */
+ constructor(concurrency) {
+ this[kDone] = () => {
+ this.pending--;
+ this[kRun]();
+ };
+ this.concurrency = concurrency || Infinity;
+ this.jobs = [];
+ this.pending = 0;
+ }
+ /**
+ * Adds a job to the queue.
+ *
+ * @param {Function} job The job to run
+ * @public
+ */
+ add(job) {
+ this.jobs.push(job);
+ this[kRun]();
+ }
+ /**
+ * Removes a job from the queue and runs it if possible.
+ *
+ * @private
+ */
+ [kRun]() {
+ if (this.pending === this.concurrency)
+ return;
+ if (this.jobs.length) {
+ const job = this.jobs.shift();
+ this.pending++;
+ job(this[kDone]);
+ }
+ }
+ };
+ module2.exports = Limiter;
+ }
+});
+
+// node_modules/ws/lib/permessage-deflate.js
+var require_permessage_deflate = __commonJS({
+ "node_modules/ws/lib/permessage-deflate.js"(exports2, module2) {
+ "use strict";
+ var zlib = require("zlib");
+ var bufferUtil = require_buffer_util();
+ var Limiter = require_limiter();
+ var { kStatusCode, NOOP } = require_constants();
+ var TRAILER = Buffer.from([0, 0, 255, 255]);
+ var kPerMessageDeflate = Symbol("permessage-deflate");
+ var kTotalLength = Symbol("total-length");
+ var kCallback = Symbol("callback");
+ var kBuffers = Symbol("buffers");
+ var kError = Symbol("error");
+ var zlibLimiter;
+ var PerMessageDeflate = class {
+ /**
+ * Creates a PerMessageDeflate instance.
+ *
+ * @param {Object} [options] Configuration options
+ * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept
+ * disabling of server context takeover
+ * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/
+ * acknowledge disabling of client context takeover
+ * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the
+ * use of a custom server window size
+ * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support
+ * for, or request, a custom client window size
+ * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on
+ * deflate
+ * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on
+ * inflate
+ * @param {Number} [options.threshold=1024] Size (in bytes) below which
+ * messages should not be compressed
+ * @param {Number} [options.concurrencyLimit=10] The number of concurrent
+ * calls to zlib
+ * @param {Boolean} [isServer=false] Create the instance in either server or
+ * client mode
+ * @param {Number} [maxPayload=0] The maximum allowed message length
+ */
+ constructor(options, isServer, maxPayload) {
+ this._maxPayload = maxPayload | 0;
+ this._options = options || {};
+ this._threshold = this._options.threshold !== void 0 ? this._options.threshold : 1024;
+ this._isServer = !!isServer;
+ this._deflate = null;
+ this._inflate = null;
+ this.params = null;
+ if (!zlibLimiter) {
+ const concurrency = this._options.concurrencyLimit !== void 0 ? this._options.concurrencyLimit : 10;
+ zlibLimiter = new Limiter(concurrency);
+ }
+ }
+ /**
+ * @type {String}
+ */
+ static get extensionName() {
+ return "permessage-deflate";
+ }
+ /**
+ * Create an extension negotiation offer.
+ *
+ * @return {Object} Extension parameters
+ * @public
+ */
+ offer() {
+ const params = {};
+ if (this._options.serverNoContextTakeover) {
+ params.server_no_context_takeover = true;
+ }
+ if (this._options.clientNoContextTakeover) {
+ params.client_no_context_takeover = true;
+ }
+ if (this._options.serverMaxWindowBits) {
+ params.server_max_window_bits = this._options.serverMaxWindowBits;
+ }
+ if (this._options.clientMaxWindowBits) {
+ params.client_max_window_bits = this._options.clientMaxWindowBits;
+ } else if (this._options.clientMaxWindowBits == null) {
+ params.client_max_window_bits = true;
+ }
+ return params;
+ }
+ /**
+ * Accept an extension negotiation offer/response.
+ *
+ * @param {Array} configurations The extension negotiation offers/reponse
+ * @return {Object} Accepted configuration
+ * @public
+ */
+ accept(configurations) {
+ configurations = this.normalizeParams(configurations);
+ this.params = this._isServer ? this.acceptAsServer(configurations) : this.acceptAsClient(configurations);
+ return this.params;
+ }
+ /**
+ * Releases all resources used by the extension.
+ *
+ * @public
+ */
+ cleanup() {
+ if (this._inflate) {
+ this._inflate.close();
+ this._inflate = null;
+ }
+ if (this._deflate) {
+ const callback = this._deflate[kCallback];
+ this._deflate.close();
+ this._deflate = null;
+ if (callback) {
+ callback(
+ new Error(
+ "The deflate stream was closed while data was being processed"
+ )
+ );
+ }
+ }
+ }
+ /**
+ * Accept an extension negotiation offer.
+ *
+ * @param {Array} offers The extension negotiation offers
+ * @return {Object} Accepted configuration
+ * @private
+ */
+ acceptAsServer(offers) {
+ const opts = this._options;
+ const accepted = offers.find((params) => {
+ if (opts.serverNoContextTakeover === false && params.server_no_context_takeover || params.server_max_window_bits && (opts.serverMaxWindowBits === false || typeof opts.serverMaxWindowBits === "number" && opts.serverMaxWindowBits > params.server_max_window_bits) || typeof opts.clientMaxWindowBits === "number" && !params.client_max_window_bits) {
+ return false;
+ }
+ return true;
+ });
+ if (!accepted) {
+ throw new Error("None of the extension offers can be accepted");
+ }
+ if (opts.serverNoContextTakeover) {
+ accepted.server_no_context_takeover = true;
+ }
+ if (opts.clientNoContextTakeover) {
+ accepted.client_no_context_takeover = true;
+ }
+ if (typeof opts.serverMaxWindowBits === "number") {
+ accepted.server_max_window_bits = opts.serverMaxWindowBits;
+ }
+ if (typeof opts.clientMaxWindowBits === "number") {
+ accepted.client_max_window_bits = opts.clientMaxWindowBits;
+ } else if (accepted.client_max_window_bits === true || opts.clientMaxWindowBits === false) {
+ delete accepted.client_max_window_bits;
+ }
+ return accepted;
+ }
+ /**
+ * Accept the extension negotiation response.
+ *
+ * @param {Array} response The extension negotiation response
+ * @return {Object} Accepted configuration
+ * @private
+ */
+ acceptAsClient(response) {
+ const params = response[0];
+ if (this._options.clientNoContextTakeover === false && params.client_no_context_takeover) {
+ throw new Error('Unexpected parameter "client_no_context_takeover"');
+ }
+ if (!params.client_max_window_bits) {
+ if (typeof this._options.clientMaxWindowBits === "number") {
+ params.client_max_window_bits = this._options.clientMaxWindowBits;
+ }
+ } else if (this._options.clientMaxWindowBits === false || typeof this._options.clientMaxWindowBits === "number" && params.client_max_window_bits > this._options.clientMaxWindowBits) {
+ throw new Error(
+ 'Unexpected or invalid parameter "client_max_window_bits"'
+ );
+ }
+ return params;
+ }
+ /**
+ * Normalize parameters.
+ *
+ * @param {Array} configurations The extension negotiation offers/reponse
+ * @return {Array} The offers/response with normalized parameters
+ * @private
+ */
+ normalizeParams(configurations) {
+ configurations.forEach((params) => {
+ Object.keys(params).forEach((key) => {
+ let value = params[key];
+ if (value.length > 1) {
+ throw new Error(`Parameter "${key}" must have only a single value`);
+ }
+ value = value[0];
+ if (key === "client_max_window_bits") {
+ if (value !== true) {
+ const num = +value;
+ if (!Number.isInteger(num) || num < 8 || num > 15) {
+ throw new TypeError(
+ `Invalid value for parameter "${key}": ${value}`
+ );
+ }
+ value = num;
+ } else if (!this._isServer) {
+ throw new TypeError(
+ `Invalid value for parameter "${key}": ${value}`
+ );
+ }
+ } else if (key === "server_max_window_bits") {
+ const num = +value;
+ if (!Number.isInteger(num) || num < 8 || num > 15) {
+ throw new TypeError(
+ `Invalid value for parameter "${key}": ${value}`
+ );
+ }
+ value = num;
+ } else if (key === "client_no_context_takeover" || key === "server_no_context_takeover") {
+ if (value !== true) {
+ throw new TypeError(
+ `Invalid value for parameter "${key}": ${value}`
+ );
+ }
+ } else {
+ throw new Error(`Unknown parameter "${key}"`);
+ }
+ params[key] = value;
+ });
+ });
+ return configurations;
+ }
+ /**
+ * Decompress data. Concurrency limited.
+ *
+ * @param {Buffer} data Compressed data
+ * @param {Boolean} fin Specifies whether or not this is the last fragment
+ * @param {Function} callback Callback
+ * @public
+ */
+ decompress(data, fin, callback) {
+ zlibLimiter.add((done) => {
+ this._decompress(data, fin, (err, result) => {
+ done();
+ callback(err, result);
+ });
+ });
+ }
+ /**
+ * Compress data. Concurrency limited.
+ *
+ * @param {Buffer} data Data to compress
+ * @param {Boolean} fin Specifies whether or not this is the last fragment
+ * @param {Function} callback Callback
+ * @public
+ */
+ compress(data, fin, callback) {
+ zlibLimiter.add((done) => {
+ this._compress(data, fin, (err, result) => {
+ done();
+ callback(err, result);
+ });
+ });
+ }
+ /**
+ * Decompress data.
+ *
+ * @param {Buffer} data Compressed data
+ * @param {Boolean} fin Specifies whether or not this is the last fragment
+ * @param {Function} callback Callback
+ * @private
+ */
+ _decompress(data, fin, callback) {
+ const endpoint = this._isServer ? "client" : "server";
+ if (!this._inflate) {
+ const key = `${endpoint}_max_window_bits`;
+ const windowBits = typeof this.params[key] !== "number" ? zlib.Z_DEFAULT_WINDOWBITS : this.params[key];
+ this._inflate = zlib.createInflateRaw({
+ ...this._options.zlibInflateOptions,
+ windowBits
+ });
+ this._inflate[kPerMessageDeflate] = this;
+ this._inflate[kTotalLength] = 0;
+ this._inflate[kBuffers] = [];
+ this._inflate.on("error", inflateOnError);
+ this._inflate.on("data", inflateOnData);
+ }
+ this._inflate[kCallback] = callback;
+ this._inflate.write(data);
+ if (fin)
+ this._inflate.write(TRAILER);
+ this._inflate.flush(() => {
+ const err = this._inflate[kError];
+ if (err) {
+ this._inflate.close();
+ this._inflate = null;
+ callback(err);
+ return;
+ }
+ const data2 = bufferUtil.concat(
+ this._inflate[kBuffers],
+ this._inflate[kTotalLength]
+ );
+ if (this._inflate._readableState.endEmitted) {
+ this._inflate.close();
+ this._inflate = null;
+ } else {
+ this._inflate[kTotalLength] = 0;
+ this._inflate[kBuffers] = [];
+ if (fin && this.params[`${endpoint}_no_context_takeover`]) {
+ this._inflate.reset();
+ }
+ }
+ callback(null, data2);
+ });
+ }
+ /**
+ * Compress data.
+ *
+ * @param {Buffer} data Data to compress
+ * @param {Boolean} fin Specifies whether or not this is the last fragment
+ * @param {Function} callback Callback
+ * @private
+ */
+ _compress(data, fin, callback) {
+ const endpoint = this._isServer ? "server" : "client";
+ if (!this._deflate) {
+ const key = `${endpoint}_max_window_bits`;
+ const windowBits = typeof this.params[key] !== "number" ? zlib.Z_DEFAULT_WINDOWBITS : this.params[key];
+ this._deflate = zlib.createDeflateRaw({
+ ...this._options.zlibDeflateOptions,
+ windowBits
+ });
+ this._deflate[kTotalLength] = 0;
+ this._deflate[kBuffers] = [];
+ this._deflate.on("error", NOOP);
+ this._deflate.on("data", deflateOnData);
+ }
+ this._deflate[kCallback] = callback;
+ this._deflate.write(data);
+ this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {
+ if (!this._deflate) {
+ return;
+ }
+ let data2 = bufferUtil.concat(
+ this._deflate[kBuffers],
+ this._deflate[kTotalLength]
+ );
+ if (fin)
+ data2 = data2.slice(0, data2.length - 4);
+ this._deflate[kCallback] = null;
+ this._deflate[kTotalLength] = 0;
+ this._deflate[kBuffers] = [];
+ if (fin && this.params[`${endpoint}_no_context_takeover`]) {
+ this._deflate.reset();
+ }
+ callback(null, data2);
+ });
+ }
+ };
+ module2.exports = PerMessageDeflate;
+ function deflateOnData(chunk) {
+ this[kBuffers].push(chunk);
+ this[kTotalLength] += chunk.length;
+ }
+ function inflateOnData(chunk) {
+ this[kTotalLength] += chunk.length;
+ if (this[kPerMessageDeflate]._maxPayload < 1 || this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload) {
+ this[kBuffers].push(chunk);
+ return;
+ }
+ this[kError] = new RangeError("Max payload size exceeded");
+ this[kError][kStatusCode] = 1009;
+ this.removeListener("data", inflateOnData);
+ this.reset();
+ }
+ function inflateOnError(err) {
+ this[kPerMessageDeflate]._inflate = null;
+ err[kStatusCode] = 1007;
+ this[kCallback](err);
+ }
+ }
+});
+
+// node_modules/ws/lib/validation.js
+var require_validation = __commonJS({
+ "node_modules/ws/lib/validation.js"(exports2, module2) {
+ "use strict";
+ function isValidStatusCode(code) {
+ return code >= 1e3 && code <= 1014 && code !== 1004 && code !== 1005 && code !== 1006 || code >= 3e3 && code <= 4999;
+ }
+ function _isValidUTF8(buf) {
+ const len = buf.length;
+ let i = 0;
+ while (i < len) {
+ if ((buf[i] & 128) === 0) {
+ i++;
+ } else if ((buf[i] & 224) === 192) {
+ if (i + 1 === len || (buf[i + 1] & 192) !== 128 || (buf[i] & 254) === 192) {
+ return false;
+ }
+ i += 2;
+ } else if ((buf[i] & 240) === 224) {
+ if (i + 2 >= len || (buf[i + 1] & 192) !== 128 || (buf[i + 2] & 192) !== 128 || buf[i] === 224 && (buf[i + 1] & 224) === 128 || // Overlong
+ buf[i] === 237 && (buf[i + 1] & 224) === 160) {
+ return false;
+ }
+ i += 3;
+ } else if ((buf[i] & 248) === 240) {
+ if (i + 3 >= len || (buf[i + 1] & 192) !== 128 || (buf[i + 2] & 192) !== 128 || (buf[i + 3] & 192) !== 128 || buf[i] === 240 && (buf[i + 1] & 240) === 128 || // Overlong
+ buf[i] === 244 && buf[i + 1] > 143 || buf[i] > 244) {
+ return false;
+ }
+ i += 4;
+ } else {
+ return false;
+ }
+ }
+ return true;
+ }
+ try {
+ let isValidUTF8 = require("utf-8-validate");
+ if (typeof isValidUTF8 === "object") {
+ isValidUTF8 = isValidUTF8.Validation.isValidUTF8;
+ }
+ module2.exports = {
+ isValidStatusCode,
+ isValidUTF8(buf) {
+ return buf.length < 150 ? _isValidUTF8(buf) : isValidUTF8(buf);
+ }
+ };
+ } catch (e) {
+ module2.exports = {
+ isValidStatusCode,
+ isValidUTF8: _isValidUTF8
+ };
+ }
+ }
+});
+
+// node_modules/ws/lib/receiver.js
+var require_receiver = __commonJS({
+ "node_modules/ws/lib/receiver.js"(exports2, module2) {
+ "use strict";
+ var { Writable } = require("stream");
+ var PerMessageDeflate = require_permessage_deflate();
+ var {
+ BINARY_TYPES,
+ EMPTY_BUFFER,
+ kStatusCode,
+ kWebSocket
+ } = require_constants();
+ var { concat, toArrayBuffer, unmask } = require_buffer_util();
+ var { isValidStatusCode, isValidUTF8 } = require_validation();
+ var GET_INFO = 0;
+ var GET_PAYLOAD_LENGTH_16 = 1;
+ var GET_PAYLOAD_LENGTH_64 = 2;
+ var GET_MASK = 3;
+ var GET_DATA = 4;
+ var INFLATING = 5;
+ var Receiver = class extends Writable {
+ /**
+ * Creates a Receiver instance.
+ *
+ * @param {String} [binaryType=nodebuffer] The type for binary data
+ * @param {Object} [extensions] An object containing the negotiated extensions
+ * @param {Boolean} [isServer=false] Specifies whether to operate in client or
+ * server mode
+ * @param {Number} [maxPayload=0] The maximum allowed message length
+ */
+ constructor(binaryType, extensions, isServer, maxPayload) {
+ super();
+ this._binaryType = binaryType || BINARY_TYPES[0];
+ this[kWebSocket] = void 0;
+ this._extensions = extensions || {};
+ this._isServer = !!isServer;
+ this._maxPayload = maxPayload | 0;
+ this._bufferedBytes = 0;
+ this._buffers = [];
+ this._compressed = false;
+ this._payloadLength = 0;
+ this._mask = void 0;
+ this._fragmented = 0;
+ this._masked = false;
+ this._fin = false;
+ this._opcode = 0;
+ this._totalPayloadLength = 0;
+ this._messageLength = 0;
+ this._fragments = [];
+ this._state = GET_INFO;
+ this._loop = false;
+ }
+ /**
+ * Implements `Writable.prototype._write()`.
+ *
+ * @param {Buffer} chunk The chunk of data to write
+ * @param {String} encoding The character encoding of `chunk`
+ * @param {Function} cb Callback
+ * @private
+ */
+ _write(chunk, encoding, cb) {
+ if (this._opcode === 8 && this._state == GET_INFO)
+ return cb();
+ this._bufferedBytes += chunk.length;
+ this._buffers.push(chunk);
+ this.startLoop(cb);
+ }
+ /**
+ * Consumes `n` bytes from the buffered data.
+ *
+ * @param {Number} n The number of bytes to consume
+ * @return {Buffer} The consumed bytes
+ * @private
+ */
+ consume(n) {
+ this._bufferedBytes -= n;
+ if (n === this._buffers[0].length)
+ return this._buffers.shift();
+ if (n < this._buffers[0].length) {
+ const buf = this._buffers[0];
+ this._buffers[0] = buf.slice(n);
+ return buf.slice(0, n);
+ }
+ const dst = Buffer.allocUnsafe(n);
+ do {
+ const buf = this._buffers[0];
+ const offset = dst.length - n;
+ if (n >= buf.length) {
+ dst.set(this._buffers.shift(), offset);
+ } else {
+ dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);
+ this._buffers[0] = buf.slice(n);
+ }
+ n -= buf.length;
+ } while (n > 0);
+ return dst;
+ }
+ /**
+ * Starts the parsing loop.
+ *
+ * @param {Function} cb Callback
+ * @private
+ */
+ startLoop(cb) {
+ let err;
+ this._loop = true;
+ do {
+ switch (this._state) {
+ case GET_INFO:
+ err = this.getInfo();
+ break;
+ case GET_PAYLOAD_LENGTH_16:
+ err = this.getPayloadLength16();
+ break;
+ case GET_PAYLOAD_LENGTH_64:
+ err = this.getPayloadLength64();
+ break;
+ case GET_MASK:
+ this.getMask();
+ break;
+ case GET_DATA:
+ err = this.getData(cb);
+ break;
+ default:
+ this._loop = false;
+ return;
+ }
+ } while (this._loop);
+ cb(err);
+ }
+ /**
+ * Reads the first two bytes of a frame.
+ *
+ * @return {(RangeError|undefined)} A possible error
+ * @private
+ */
+ getInfo() {
+ if (this._bufferedBytes < 2) {
+ this._loop = false;
+ return;
+ }
+ const buf = this.consume(2);
+ if ((buf[0] & 48) !== 0) {
+ this._loop = false;
+ return error(RangeError, "RSV2 and RSV3 must be clear", true, 1002);
+ }
+ const compressed = (buf[0] & 64) === 64;
+ if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {
+ this._loop = false;
+ return error(RangeError, "RSV1 must be clear", true, 1002);
+ }
+ this._fin = (buf[0] & 128) === 128;
+ this._opcode = buf[0] & 15;
+ this._payloadLength = buf[1] & 127;
+ if (this._opcode === 0) {
+ if (compressed) {
+ this._loop = false;
+ return error(RangeError, "RSV1 must be clear", true, 1002);
+ }
+ if (!this._fragmented) {
+ this._loop = false;
+ return error(RangeError, "invalid opcode 0", true, 1002);
+ }
+ this._opcode = this._fragmented;
+ } else if (this._opcode === 1 || this._opcode === 2) {
+ if (this._fragmented) {
+ this._loop = false;
+ return error(RangeError, `invalid opcode ${this._opcode}`, true, 1002);
+ }
+ this._compressed = compressed;
+ } else if (this._opcode > 7 && this._opcode < 11) {
+ if (!this._fin) {
+ this._loop = false;
+ return error(RangeError, "FIN must be set", true, 1002);
+ }
+ if (compressed) {
+ this._loop = false;
+ return error(RangeError, "RSV1 must be clear", true, 1002);
+ }
+ if (this._payloadLength > 125) {
+ this._loop = false;
+ return error(
+ RangeError,
+ `invalid payload length ${this._payloadLength}`,
+ true,
+ 1002
+ );
+ }
+ } else {
+ this._loop = false;
+ return error(RangeError, `invalid opcode ${this._opcode}`, true, 1002);
+ }
+ if (!this._fin && !this._fragmented)
+ this._fragmented = this._opcode;
+ this._masked = (buf[1] & 128) === 128;
+ if (this._isServer) {
+ if (!this._masked) {
+ this._loop = false;
+ return error(RangeError, "MASK must be set", true, 1002);
+ }
+ } else if (this._masked) {
+ this._loop = false;
+ return error(RangeError, "MASK must be clear", true, 1002);
+ }
+ if (this._payloadLength === 126)
+ this._state = GET_PAYLOAD_LENGTH_16;
+ else if (this._payloadLength === 127)
+ this._state = GET_PAYLOAD_LENGTH_64;
+ else
+ return this.haveLength();
+ }
+ /**
+ * Gets extended payload length (7+16).
+ *
+ * @return {(RangeError|undefined)} A possible error
+ * @private
+ */
+ getPayloadLength16() {
+ if (this._bufferedBytes < 2) {
+ this._loop = false;
+ return;
+ }
+ this._payloadLength = this.consume(2).readUInt16BE(0);
+ return this.haveLength();
+ }
+ /**
+ * Gets extended payload length (7+64).
+ *
+ * @return {(RangeError|undefined)} A possible error
+ * @private
+ */
+ getPayloadLength64() {
+ if (this._bufferedBytes < 8) {
+ this._loop = false;
+ return;
+ }
+ const buf = this.consume(8);
+ const num = buf.readUInt32BE(0);
+ if (num > Math.pow(2, 53 - 32) - 1) {
+ this._loop = false;
+ return error(
+ RangeError,
+ "Unsupported WebSocket frame: payload length > 2^53 - 1",
+ false,
+ 1009
+ );
+ }
+ this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);
+ return this.haveLength();
+ }
+ /**
+ * Payload length has been read.
+ *
+ * @return {(RangeError|undefined)} A possible error
+ * @private
+ */
+ haveLength() {
+ if (this._payloadLength && this._opcode < 8) {
+ this._totalPayloadLength += this._payloadLength;
+ if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {
+ this._loop = false;
+ return error(RangeError, "Max payload size exceeded", false, 1009);
+ }
+ }
+ if (this._masked)
+ this._state = GET_MASK;
+ else
+ this._state = GET_DATA;
+ }
+ /**
+ * Reads mask bytes.
+ *
+ * @private
+ */
+ getMask() {
+ if (this._bufferedBytes < 4) {
+ this._loop = false;
+ return;
+ }
+ this._mask = this.consume(4);
+ this._state = GET_DATA;
+ }
+ /**
+ * Reads data bytes.
+ *
+ * @param {Function} cb Callback
+ * @return {(Error|RangeError|undefined)} A possible error
+ * @private
+ */
+ getData(cb) {
+ let data = EMPTY_BUFFER;
+ if (this._payloadLength) {
+ if (this._bufferedBytes < this._payloadLength) {
+ this._loop = false;
+ return;
+ }
+ data = this.consume(this._payloadLength);
+ if (this._masked)
+ unmask(data, this._mask);
+ }
+ if (this._opcode > 7)
+ return this.controlMessage(data);
+ if (this._compressed) {
+ this._state = INFLATING;
+ this.decompress(data, cb);
+ return;
+ }
+ if (data.length) {
+ this._messageLength = this._totalPayloadLength;
+ this._fragments.push(data);
+ }
+ return this.dataMessage();
+ }
+ /**
+ * Decompresses data.
+ *
+ * @param {Buffer} data Compressed data
+ * @param {Function} cb Callback
+ * @private
+ */
+ decompress(data, cb) {
+ const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
+ perMessageDeflate.decompress(data, this._fin, (err, buf) => {
+ if (err)
+ return cb(err);
+ if (buf.length) {
+ this._messageLength += buf.length;
+ if (this._messageLength > this._maxPayload && this._maxPayload > 0) {
+ return cb(
+ error(RangeError, "Max payload size exceeded", false, 1009)
+ );
+ }
+ this._fragments.push(buf);
+ }
+ const er = this.dataMessage();
+ if (er)
+ return cb(er);
+ this.startLoop(cb);
+ });
+ }
+ /**
+ * Handles a data message.
+ *
+ * @return {(Error|undefined)} A possible error
+ * @private
+ */
+ dataMessage() {
+ if (this._fin) {
+ const messageLength = this._messageLength;
+ const fragments = this._fragments;
+ this._totalPayloadLength = 0;
+ this._messageLength = 0;
+ this._fragmented = 0;
+ this._fragments = [];
+ if (this._opcode === 2) {
+ let data;
+ if (this._binaryType === "nodebuffer") {
+ data = concat(fragments, messageLength);
+ } else if (this._binaryType === "arraybuffer") {
+ data = toArrayBuffer(concat(fragments, messageLength));
+ } else {
+ data = fragments;
+ }
+ this.emit("message", data);
+ } else {
+ const buf = concat(fragments, messageLength);
+ if (!isValidUTF8(buf)) {
+ this._loop = false;
+ return error(Error, "invalid UTF-8 sequence", true, 1007);
+ }
+ this.emit("message", buf.toString());
+ }
+ }
+ this._state = GET_INFO;
+ }
+ /**
+ * Handles a control message.
+ *
+ * @param {Buffer} data Data to handle
+ * @return {(Error|RangeError|undefined)} A possible error
+ * @private
+ */
+ controlMessage(data) {
+ if (this._opcode === 8) {
+ this._loop = false;
+ if (data.length === 0) {
+ this.emit("conclude", 1005, "");
+ this.end();
+ } else if (data.length === 1) {
+ return error(RangeError, "invalid payload length 1", true, 1002);
+ } else {
+ const code = data.readUInt16BE(0);
+ if (!isValidStatusCode(code)) {
+ return error(RangeError, `invalid status code ${code}`, true, 1002);
+ }
+ const buf = data.slice(2);
+ if (!isValidUTF8(buf)) {
+ return error(Error, "invalid UTF-8 sequence", true, 1007);
+ }
+ this.emit("conclude", code, buf.toString());
+ this.end();
+ }
+ } else if (this._opcode === 9) {
+ this.emit("ping", data);
+ } else {
+ this.emit("pong", data);
+ }
+ this._state = GET_INFO;
+ }
+ };
+ module2.exports = Receiver;
+ function error(ErrorCtor, message, prefix, statusCode) {
+ const err = new ErrorCtor(
+ prefix ? `Invalid WebSocket frame: ${message}` : message
+ );
+ Error.captureStackTrace(err, error);
+ err[kStatusCode] = statusCode;
+ return err;
+ }
+ }
+});
+
+// node_modules/ws/lib/sender.js
+var require_sender = __commonJS({
+ "node_modules/ws/lib/sender.js"(exports2, module2) {
+ "use strict";
+ var { randomFillSync } = require("crypto");
+ var PerMessageDeflate = require_permessage_deflate();
+ var { EMPTY_BUFFER } = require_constants();
+ var { isValidStatusCode } = require_validation();
+ var { mask: applyMask, toBuffer } = require_buffer_util();
+ var mask = Buffer.alloc(4);
+ var Sender = class _Sender {
+ /**
+ * Creates a Sender instance.
+ *
+ * @param {net.Socket} socket The connection socket
+ * @param {Object} [extensions] An object containing the negotiated extensions
+ */
+ constructor(socket, extensions) {
+ this._extensions = extensions || {};
+ this._socket = socket;
+ this._firstFragment = true;
+ this._compress = false;
+ this._bufferedBytes = 0;
+ this._deflating = false;
+ this._queue = [];
+ }
+ /**
+ * Frames a piece of data according to the HyBi WebSocket protocol.
+ *
+ * @param {Buffer} data The data to frame
+ * @param {Object} options Options object
+ * @param {Number} options.opcode The opcode
+ * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be
+ * modified
+ * @param {Boolean} [options.fin=false] Specifies whether or not to set the
+ * FIN bit
+ * @param {Boolean} [options.mask=false] Specifies whether or not to mask
+ * `data`
+ * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the
+ * RSV1 bit
+ * @return {Buffer[]} The framed data as a list of `Buffer` instances
+ * @public
+ */
+ static frame(data, options) {
+ const merge = options.mask && options.readOnly;
+ let offset = options.mask ? 6 : 2;
+ let payloadLength = data.length;
+ if (data.length >= 65536) {
+ offset += 8;
+ payloadLength = 127;
+ } else if (data.length > 125) {
+ offset += 2;
+ payloadLength = 126;
+ }
+ const target = Buffer.allocUnsafe(merge ? data.length + offset : offset);
+ target[0] = options.fin ? options.opcode | 128 : options.opcode;
+ if (options.rsv1)
+ target[0] |= 64;
+ target[1] = payloadLength;
+ if (payloadLength === 126) {
+ target.writeUInt16BE(data.length, 2);
+ } else if (payloadLength === 127) {
+ target.writeUInt32BE(0, 2);
+ target.writeUInt32BE(data.length, 6);
+ }
+ if (!options.mask)
+ return [target, data];
+ randomFillSync(mask, 0, 4);
+ target[1] |= 128;
+ target[offset - 4] = mask[0];
+ target[offset - 3] = mask[1];
+ target[offset - 2] = mask[2];
+ target[offset - 1] = mask[3];
+ if (merge) {
+ applyMask(data, mask, target, offset, data.length);
+ return [target];
+ }
+ applyMask(data, mask, data, 0, data.length);
+ return [target, data];
+ }
+ /**
+ * Sends a close message to the other peer.
+ *
+ * @param {Number} [code] The status code component of the body
+ * @param {String} [data] The message component of the body
+ * @param {Boolean} [mask=false] Specifies whether or not to mask the message
+ * @param {Function} [cb] Callback
+ * @public
+ */
+ close(code, data, mask2, cb) {
+ let buf;
+ if (code === void 0) {
+ buf = EMPTY_BUFFER;
+ } else if (typeof code !== "number" || !isValidStatusCode(code)) {
+ throw new TypeError("First argument must be a valid error code number");
+ } else if (data === void 0 || data === "") {
+ buf = Buffer.allocUnsafe(2);
+ buf.writeUInt16BE(code, 0);
+ } else {
+ const length = Buffer.byteLength(data);
+ if (length > 123) {
+ throw new RangeError("The message must not be greater than 123 bytes");
+ }
+ buf = Buffer.allocUnsafe(2 + length);
+ buf.writeUInt16BE(code, 0);
+ buf.write(data, 2);
+ }
+ if (this._deflating) {
+ this.enqueue([this.doClose, buf, mask2, cb]);
+ } else {
+ this.doClose(buf, mask2, cb);
+ }
+ }
+ /**
+ * Frames and sends a close message.
+ *
+ * @param {Buffer} data The message to send
+ * @param {Boolean} [mask=false] Specifies whether or not to mask `data`
+ * @param {Function} [cb] Callback
+ * @private
+ */
+ doClose(data, mask2, cb) {
+ this.sendFrame(
+ _Sender.frame(data, {
+ fin: true,
+ rsv1: false,
+ opcode: 8,
+ mask: mask2,
+ readOnly: false
+ }),
+ cb
+ );
+ }
+ /**
+ * Sends a ping message to the other peer.
+ *
+ * @param {*} data The message to send
+ * @param {Boolean} [mask=false] Specifies whether or not to mask `data`
+ * @param {Function} [cb] Callback
+ * @public
+ */
+ ping(data, mask2, cb) {
+ const buf = toBuffer(data);
+ if (buf.length > 125) {
+ throw new RangeError("The data size must not be greater than 125 bytes");
+ }
+ if (this._deflating) {
+ this.enqueue([this.doPing, buf, mask2, toBuffer.readOnly, cb]);
+ } else {
+ this.doPing(buf, mask2, toBuffer.readOnly, cb);
+ }
+ }
+ /**
+ * Frames and sends a ping message.
+ *
+ * @param {Buffer} data The message to send
+ * @param {Boolean} [mask=false] Specifies whether or not to mask `data`
+ * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified
+ * @param {Function} [cb] Callback
+ * @private
+ */
+ doPing(data, mask2, readOnly, cb) {
+ this.sendFrame(
+ _Sender.frame(data, {
+ fin: true,
+ rsv1: false,
+ opcode: 9,
+ mask: mask2,
+ readOnly
+ }),
+ cb
+ );
+ }
+ /**
+ * Sends a pong message to the other peer.
+ *
+ * @param {*} data The message to send
+ * @param {Boolean} [mask=false] Specifies whether or not to mask `data`
+ * @param {Function} [cb] Callback
+ * @public
+ */
+ pong(data, mask2, cb) {
+ const buf = toBuffer(data);
+ if (buf.length > 125) {
+ throw new RangeError("The data size must not be greater than 125 bytes");
+ }
+ if (this._deflating) {
+ this.enqueue([this.doPong, buf, mask2, toBuffer.readOnly, cb]);
+ } else {
+ this.doPong(buf, mask2, toBuffer.readOnly, cb);
+ }
+ }
+ /**
+ * Frames and sends a pong message.
+ *
+ * @param {Buffer} data The message to send
+ * @param {Boolean} [mask=false] Specifies whether or not to mask `data`
+ * @param {Boolean} [readOnly=false] Specifies whether `data` can be modified
+ * @param {Function} [cb] Callback
+ * @private
+ */
+ doPong(data, mask2, readOnly, cb) {
+ this.sendFrame(
+ _Sender.frame(data, {
+ fin: true,
+ rsv1: false,
+ opcode: 10,
+ mask: mask2,
+ readOnly
+ }),
+ cb
+ );
+ }
+ /**
+ * Sends a data message to the other peer.
+ *
+ * @param {*} data The message to send
+ * @param {Object} options Options object
+ * @param {Boolean} [options.compress=false] Specifies whether or not to
+ * compress `data`
+ * @param {Boolean} [options.binary=false] Specifies whether `data` is binary
+ * or text
+ * @param {Boolean} [options.fin=false] Specifies whether the fragment is the
+ * last one
+ * @param {Boolean} [options.mask=false] Specifies whether or not to mask
+ * `data`
+ * @param {Function} [cb] Callback
+ * @public
+ */
+ send(data, options, cb) {
+ const buf = toBuffer(data);
+ const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
+ let opcode = options.binary ? 2 : 1;
+ let rsv1 = options.compress;
+ if (this._firstFragment) {
+ this._firstFragment = false;
+ if (rsv1 && perMessageDeflate) {
+ rsv1 = buf.length >= perMessageDeflate._threshold;
+ }
+ this._compress = rsv1;
+ } else {
+ rsv1 = false;
+ opcode = 0;
+ }
+ if (options.fin)
+ this._firstFragment = true;
+ if (perMessageDeflate) {
+ const opts = {
+ fin: options.fin,
+ rsv1,
+ opcode,
+ mask: options.mask,
+ readOnly: toBuffer.readOnly
+ };
+ if (this._deflating) {
+ this.enqueue([this.dispatch, buf, this._compress, opts, cb]);
+ } else {
+ this.dispatch(buf, this._compress, opts, cb);
+ }
+ } else {
+ this.sendFrame(
+ _Sender.frame(buf, {
+ fin: options.fin,
+ rsv1: false,
+ opcode,
+ mask: options.mask,
+ readOnly: toBuffer.readOnly
+ }),
+ cb
+ );
+ }
+ }
+ /**
+ * Dispatches a data message.
+ *
+ * @param {Buffer} data The message to send
+ * @param {Boolean} [compress=false] Specifies whether or not to compress
+ * `data`
+ * @param {Object} options Options object
+ * @param {Number} options.opcode The opcode
+ * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be
+ * modified
+ * @param {Boolean} [options.fin=false] Specifies whether or not to set the
+ * FIN bit
+ * @param {Boolean} [options.mask=false] Specifies whether or not to mask
+ * `data`
+ * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the
+ * RSV1 bit
+ * @param {Function} [cb] Callback
+ * @private
+ */
+ dispatch(data, compress, options, cb) {
+ if (!compress) {
+ this.sendFrame(_Sender.frame(data, options), cb);
+ return;
+ }
+ const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];
+ this._bufferedBytes += data.length;
+ this._deflating = true;
+ perMessageDeflate.compress(data, options.fin, (_, buf) => {
+ if (this._socket.destroyed) {
+ const err = new Error(
+ "The socket was closed while data was being compressed"
+ );
+ if (typeof cb === "function")
+ cb(err);
+ for (let i = 0; i < this._queue.length; i++) {
+ const callback = this._queue[i][4];
+ if (typeof callback === "function")
+ callback(err);
+ }
+ return;
+ }
+ this._bufferedBytes -= data.length;
+ this._deflating = false;
+ options.readOnly = false;
+ this.sendFrame(_Sender.frame(buf, options), cb);
+ this.dequeue();
+ });
+ }
+ /**
+ * Executes queued send operations.
+ *
+ * @private
+ */
+ dequeue() {
+ while (!this._deflating && this._queue.length) {
+ const params = this._queue.shift();
+ this._bufferedBytes -= params[1].length;
+ Reflect.apply(params[0], this, params.slice(1));
+ }
+ }
+ /**
+ * Enqueues a send operation.
+ *
+ * @param {Array} params Send operation parameters.
+ * @private
+ */
+ enqueue(params) {
+ this._bufferedBytes += params[1].length;
+ this._queue.push(params);
+ }
+ /**
+ * Sends a frame.
+ *
+ * @param {Buffer[]} list The frame to send
+ * @param {Function} [cb] Callback
+ * @private
+ */
+ sendFrame(list, cb) {
+ if (list.length === 2) {
+ this._socket.cork();
+ this._socket.write(list[0]);
+ this._socket.write(list[1], cb);
+ this._socket.uncork();
+ } else {
+ this._socket.write(list[0], cb);
+ }
+ }
+ };
+ module2.exports = Sender;
+ }
+});
+
+// node_modules/ws/lib/event-target.js
+var require_event_target = __commonJS({
+ "node_modules/ws/lib/event-target.js"(exports2, module2) {
+ "use strict";
+ var Event2 = class {
+ /**
+ * Create a new `Event`.
+ *
+ * @param {String} type The name of the event
+ * @param {Object} target A reference to the target to which the event was
+ * dispatched
+ */
+ constructor(type, target) {
+ this.target = target;
+ this.type = type;
+ }
+ };
+ var MessageEvent = class extends Event2 {
+ /**
+ * Create a new `MessageEvent`.
+ *
+ * @param {(String|Buffer|ArrayBuffer|Buffer[])} data The received data
+ * @param {WebSocket} target A reference to the target to which the event was
+ * dispatched
+ */
+ constructor(data, target) {
+ super("message", target);
+ this.data = data;
+ }
+ };
+ var CloseEvent = class extends Event2 {
+ /**
+ * Create a new `CloseEvent`.
+ *
+ * @param {Number} code The status code explaining why the connection is being
+ * closed
+ * @param {String} reason A human-readable string explaining why the
+ * connection is closing
+ * @param {WebSocket} target A reference to the target to which the event was
+ * dispatched
+ */
+ constructor(code, reason, target) {
+ super("close", target);
+ this.wasClean = target._closeFrameReceived && target._closeFrameSent;
+ this.reason = reason;
+ this.code = code;
+ }
+ };
+ var OpenEvent = class extends Event2 {
+ /**
+ * Create a new `OpenEvent`.
+ *
+ * @param {WebSocket} target A reference to the target to which the event was
+ * dispatched
+ */
+ constructor(target) {
+ super("open", target);
+ }
+ };
+ var ErrorEvent = class extends Event2 {
+ /**
+ * Create a new `ErrorEvent`.
+ *
+ * @param {Object} error The error that generated this event
+ * @param {WebSocket} target A reference to the target to which the event was
+ * dispatched
+ */
+ constructor(error, target) {
+ super("error", target);
+ this.message = error.message;
+ this.error = error;
+ }
+ };
+ var EventTarget = {
+ /**
+ * Register an event listener.
+ *
+ * @param {String} type A string representing the event type to listen for
+ * @param {Function} listener The listener to add
+ * @param {Object} [options] An options object specifies characteristics about
+ * the event listener
+ * @param {Boolean} [options.once=false] A `Boolean`` indicating that the
+ * listener should be invoked at most once after being added. If `true`,
+ * the listener would be automatically removed when invoked.
+ * @public
+ */
+ addEventListener(type, listener, options) {
+ if (typeof listener !== "function")
+ return;
+ function onMessage(data) {
+ listener.call(this, new MessageEvent(data, this));
+ }
+ function onClose(code, message) {
+ listener.call(this, new CloseEvent(code, message, this));
+ }
+ function onError(error) {
+ listener.call(this, new ErrorEvent(error, this));
+ }
+ function onOpen() {
+ listener.call(this, new OpenEvent(this));
+ }
+ const method = options && options.once ? "once" : "on";
+ if (type === "message") {
+ onMessage._listener = listener;
+ this[method](type, onMessage);
+ } else if (type === "close") {
+ onClose._listener = listener;
+ this[method](type, onClose);
+ } else if (type === "error") {
+ onError._listener = listener;
+ this[method](type, onError);
+ } else if (type === "open") {
+ onOpen._listener = listener;
+ this[method](type, onOpen);
+ } else {
+ this[method](type, listener);
+ }
+ },
+ /**
+ * Remove an event listener.
+ *
+ * @param {String} type A string representing the event type to remove
+ * @param {Function} listener The listener to remove
+ * @public
+ */
+ removeEventListener(type, listener) {
+ const listeners = this.listeners(type);
+ for (let i = 0; i < listeners.length; i++) {
+ if (listeners[i] === listener || listeners[i]._listener === listener) {
+ this.removeListener(type, listeners[i]);
+ }
+ }
+ }
+ };
+ module2.exports = EventTarget;
+ }
+});
+
+// node_modules/ws/lib/extension.js
+var require_extension = __commonJS({
+ "node_modules/ws/lib/extension.js"(exports2, module2) {
+ "use strict";
+ var tokenChars = [
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ // 0 - 15
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ // 16 - 31
+ 0,
+ 1,
+ 0,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 0,
+ 0,
+ 1,
+ 1,
+ 0,
+ 1,
+ 1,
+ 0,
+ // 32 - 47
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ // 48 - 63
+ 0,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ // 64 - 79
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1,
+ // 80 - 95
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ // 96 - 111
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 0,
+ 1,
+ 0,
+ 1,
+ 0
+ // 112 - 127
+ ];
+ function push(dest, name, elem) {
+ if (dest[name] === void 0)
+ dest[name] = [elem];
+ else
+ dest[name].push(elem);
+ }
+ function parse(header) {
+ const offers = /* @__PURE__ */ Object.create(null);
+ if (header === void 0 || header === "")
+ return offers;
+ let params = /* @__PURE__ */ Object.create(null);
+ let mustUnescape = false;
+ let isEscaping = false;
+ let inQuotes = false;
+ let extensionName;
+ let paramName;
+ let start = -1;
+ let end = -1;
+ let i = 0;
+ for (; i < header.length; i++) {
+ const code = header.charCodeAt(i);
+ if (extensionName === void 0) {
+ if (end === -1 && tokenChars[code] === 1) {
+ if (start === -1)
+ start = i;
+ } else if (code === 32 || code === 9) {
+ if (end === -1 && start !== -1)
+ end = i;
+ } else if (code === 59 || code === 44) {
+ if (start === -1) {
+ throw new SyntaxError(`Unexpected character at index ${i}`);
+ }
+ if (end === -1)
+ end = i;
+ const name = header.slice(start, end);
+ if (code === 44) {
+ push(offers, name, params);
+ params = /* @__PURE__ */ Object.create(null);
+ } else {
+ extensionName = name;
+ }
+ start = end = -1;
+ } else {
+ throw new SyntaxError(`Unexpected character at index ${i}`);
+ }
+ } else if (paramName === void 0) {
+ if (end === -1 && tokenChars[code] === 1) {
+ if (start === -1)
+ start = i;
+ } else if (code === 32 || code === 9) {
+ if (end === -1 && start !== -1)
+ end = i;
+ } else if (code === 59 || code === 44) {
+ if (start === -1) {
+ throw new SyntaxError(`Unexpected character at index ${i}`);
+ }
+ if (end === -1)
+ end = i;
+ push(params, header.slice(start, end), true);
+ if (code === 44) {
+ push(offers, extensionName, params);
+ params = /* @__PURE__ */ Object.create(null);
+ extensionName = void 0;
+ }
+ start = end = -1;
+ } else if (code === 61 && start !== -1 && end === -1) {
+ paramName = header.slice(start, i);
+ start = end = -1;
+ } else {
+ throw new SyntaxError(`Unexpected character at index ${i}`);
+ }
+ } else {
+ if (isEscaping) {
+ if (tokenChars[code] !== 1) {
+ throw new SyntaxError(`Unexpected character at index ${i}`);
+ }
+ if (start === -1)
+ start = i;
+ else if (!mustUnescape)
+ mustUnescape = true;
+ isEscaping = false;
+ } else if (inQuotes) {
+ if (tokenChars[code] === 1) {
+ if (start === -1)
+ start = i;
+ } else if (code === 34 && start !== -1) {
+ inQuotes = false;
+ end = i;
+ } else if (code === 92) {
+ isEscaping = true;
+ } else {
+ throw new SyntaxError(`Unexpected character at index ${i}`);
+ }
+ } else if (code === 34 && header.charCodeAt(i - 1) === 61) {
+ inQuotes = true;
+ } else if (end === -1 && tokenChars[code] === 1) {
+ if (start === -1)
+ start = i;
+ } else if (start !== -1 && (code === 32 || code === 9)) {
+ if (end === -1)
+ end = i;
+ } else if (code === 59 || code === 44) {
+ if (start === -1) {
+ throw new SyntaxError(`Unexpected character at index ${i}`);
+ }
+ if (end === -1)
+ end = i;
+ let value = header.slice(start, end);
+ if (mustUnescape) {
+ value = value.replace(/\\/g, "");
+ mustUnescape = false;
+ }
+ push(params, paramName, value);
+ if (code === 44) {
+ push(offers, extensionName, params);
+ params = /* @__PURE__ */ Object.create(null);
+ extensionName = void 0;
+ }
+ paramName = void 0;
+ start = end = -1;
+ } else {
+ throw new SyntaxError(`Unexpected character at index ${i}`);
+ }
+ }
+ }
+ if (start === -1 || inQuotes) {
+ throw new SyntaxError("Unexpected end of input");
+ }
+ if (end === -1)
+ end = i;
+ const token = header.slice(start, end);
+ if (extensionName === void 0) {
+ push(offers, token, params);
+ } else {
+ if (paramName === void 0) {
+ push(params, token, true);
+ } else if (mustUnescape) {
+ push(params, paramName, token.replace(/\\/g, ""));
+ } else {
+ push(params, paramName, token);
+ }
+ push(offers, extensionName, params);
+ }
+ return offers;
+ }
+ function format(extensions) {
+ return Object.keys(extensions).map((extension) => {
+ let configurations = extensions[extension];
+ if (!Array.isArray(configurations))
+ configurations = [configurations];
+ return configurations.map((params) => {
+ return [extension].concat(
+ Object.keys(params).map((k) => {
+ let values = params[k];
+ if (!Array.isArray(values))
+ values = [values];
+ return values.map((v) => v === true ? k : `${k}=${v}`).join("; ");
+ })
+ ).join("; ");
+ }).join(", ");
+ }).join(", ");
+ }
+ module2.exports = { format, parse };
+ }
+});
+
+// node_modules/ws/lib/websocket.js
+var require_websocket = __commonJS({
+ "node_modules/ws/lib/websocket.js"(exports2, module2) {
+ "use strict";
+ var EventEmitter = require("events");
+ var https = require("https");
+ var http = require("http");
+ var net = require("net");
+ var tls = require("tls");
+ var { randomBytes, createHash } = require("crypto");
+ var { URL: URL2 } = require("url");
+ var PerMessageDeflate = require_permessage_deflate();
+ var Receiver = require_receiver();
+ var Sender = require_sender();
+ var {
+ BINARY_TYPES,
+ EMPTY_BUFFER,
+ GUID,
+ kStatusCode,
+ kWebSocket,
+ NOOP
+ } = require_constants();
+ var { addEventListener, removeEventListener } = require_event_target();
+ var { format, parse } = require_extension();
+ var { toBuffer } = require_buffer_util();
+ var readyStates = ["CONNECTING", "OPEN", "CLOSING", "CLOSED"];
+ var protocolVersions = [8, 13];
+ var closeTimeout = 30 * 1e3;
+ var WebSocket = class _WebSocket extends EventEmitter {
+ /**
+ * Create a new `WebSocket`.
+ *
+ * @param {(String|url.URL)} address The URL to which to connect
+ * @param {(String|String[])} [protocols] The subprotocols
+ * @param {Object} [options] Connection options
+ */
+ constructor(address, protocols, options) {
+ super();
+ this._binaryType = BINARY_TYPES[0];
+ this._closeCode = 1006;
+ this._closeFrameReceived = false;
+ this._closeFrameSent = false;
+ this._closeMessage = "";
+ this._closeTimer = null;
+ this._extensions = {};
+ this._protocol = "";
+ this._readyState = _WebSocket.CONNECTING;
+ this._receiver = null;
+ this._sender = null;
+ this._socket = null;
+ if (address !== null) {
+ this._bufferedAmount = 0;
+ this._isServer = false;
+ this._redirects = 0;
+ if (Array.isArray(protocols)) {
+ protocols = protocols.join(", ");
+ } else if (typeof protocols === "object" && protocols !== null) {
+ options = protocols;
+ protocols = void 0;
+ }
+ initAsClient(this, address, protocols, options);
+ } else {
+ this._isServer = true;
+ }
+ }
+ /**
+ * This deviates from the WHATWG interface since ws doesn't support the
+ * required default "blob" type (instead we define a custom "nodebuffer"
+ * type).
+ *
+ * @type {String}
+ */
+ get binaryType() {
+ return this._binaryType;
+ }
+ set binaryType(type) {
+ if (!BINARY_TYPES.includes(type))
+ return;
+ this._binaryType = type;
+ if (this._receiver)
+ this._receiver._binaryType = type;
+ }
+ /**
+ * @type {Number}
+ */
+ get bufferedAmount() {
+ if (!this._socket)
+ return this._bufferedAmount;
+ return this._socket._writableState.length + this._sender._bufferedBytes;
+ }
+ /**
+ * @type {String}
+ */
+ get extensions() {
+ return Object.keys(this._extensions).join();
+ }
+ /**
+ * @type {String}
+ */
+ get protocol() {
+ return this._protocol;
+ }
+ /**
+ * @type {Number}
+ */
+ get readyState() {
+ return this._readyState;
+ }
+ /**
+ * @type {String}
+ */
+ get url() {
+ return this._url;
+ }
+ /**
+ * Set up the socket and the internal resources.
+ *
+ * @param {net.Socket} socket The network socket between the server and client
+ * @param {Buffer} head The first packet of the upgraded stream
+ * @param {Number} [maxPayload=0] The maximum allowed message size
+ * @private
+ */
+ setSocket(socket, head, maxPayload) {
+ const receiver = new Receiver(
+ this.binaryType,
+ this._extensions,
+ this._isServer,
+ maxPayload
+ );
+ this._sender = new Sender(socket, this._extensions);
+ this._receiver = receiver;
+ this._socket = socket;
+ receiver[kWebSocket] = this;
+ socket[kWebSocket] = this;
+ receiver.on("conclude", receiverOnConclude);
+ receiver.on("drain", receiverOnDrain);
+ receiver.on("error", receiverOnError);
+ receiver.on("message", receiverOnMessage);
+ receiver.on("ping", receiverOnPing);
+ receiver.on("pong", receiverOnPong);
+ socket.setTimeout(0);
+ socket.setNoDelay();
+ if (head.length > 0)
+ socket.unshift(head);
+ socket.on("close", socketOnClose);
+ socket.on("data", socketOnData);
+ socket.on("end", socketOnEnd);
+ socket.on("error", socketOnError);
+ this._readyState = _WebSocket.OPEN;
+ this.emit("open");
+ }
+ /**
+ * Emit the `'close'` event.
+ *
+ * @private
+ */
+ emitClose() {
+ if (!this._socket) {
+ this._readyState = _WebSocket.CLOSED;
+ this.emit("close", this._closeCode, this._closeMessage);
+ return;
+ }
+ if (this._extensions[PerMessageDeflate.extensionName]) {
+ this._extensions[PerMessageDeflate.extensionName].cleanup();
+ }
+ this._receiver.removeAllListeners();
+ this._readyState = _WebSocket.CLOSED;
+ this.emit("close", this._closeCode, this._closeMessage);
+ }
+ /**
+ * Start a closing handshake.
+ *
+ * +----------+ +-----------+ +----------+
+ * - - -|ws.close()|-->|close frame|-->|ws.close()|- - -
+ * | +----------+ +-----------+ +----------+ |
+ * +----------+ +-----------+ |
+ * CLOSING |ws.close()|<--|close frame|<--+-----+ CLOSING
+ * +----------+ +-----------+ |
+ * | | | +---+ |
+ * +------------------------+-->|fin| - - - -
+ * | +---+ | +---+
+ * - - - - -|fin|<---------------------+
+ * +---+
+ *
+ * @param {Number} [code] Status code explaining why the connection is closing
+ * @param {String} [data] A string explaining why the connection is closing
+ * @public
+ */
+ close(code, data) {
+ if (this.readyState === _WebSocket.CLOSED)
+ return;
+ if (this.readyState === _WebSocket.CONNECTING) {
+ const msg = "WebSocket was closed before the connection was established";
+ return abortHandshake(this, this._req, msg);
+ }
+ if (this.readyState === _WebSocket.CLOSING) {
+ if (this._closeFrameSent && this._closeFrameReceived)
+ this._socket.end();
+ return;
+ }
+ this._readyState = _WebSocket.CLOSING;
+ this._sender.close(code, data, !this._isServer, (err) => {
+ if (err)
+ return;
+ this._closeFrameSent = true;
+ if (this._closeFrameReceived)
+ this._socket.end();
+ });
+ this._closeTimer = setTimeout(
+ this._socket.destroy.bind(this._socket),
+ closeTimeout
+ );
+ }
+ /**
+ * Send a ping.
+ *
+ * @param {*} [data] The data to send
+ * @param {Boolean} [mask] Indicates whether or not to mask `data`
+ * @param {Function} [cb] Callback which is executed when the ping is sent
+ * @public
+ */
+ ping(data, mask, cb) {
+ if (this.readyState === _WebSocket.CONNECTING) {
+ throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");
+ }
+ if (typeof data === "function") {
+ cb = data;
+ data = mask = void 0;
+ } else if (typeof mask === "function") {
+ cb = mask;
+ mask = void 0;
+ }
+ if (typeof data === "number")
+ data = data.toString();
+ if (this.readyState !== _WebSocket.OPEN) {
+ sendAfterClose(this, data, cb);
+ return;
+ }
+ if (mask === void 0)
+ mask = !this._isServer;
+ this._sender.ping(data || EMPTY_BUFFER, mask, cb);
+ }
+ /**
+ * Send a pong.
+ *
+ * @param {*} [data] The data to send
+ * @param {Boolean} [mask] Indicates whether or not to mask `data`
+ * @param {Function} [cb] Callback which is executed when the pong is sent
+ * @public
+ */
+ pong(data, mask, cb) {
+ if (this.readyState === _WebSocket.CONNECTING) {
+ throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");
+ }
+ if (typeof data === "function") {
+ cb = data;
+ data = mask = void 0;
+ } else if (typeof mask === "function") {
+ cb = mask;
+ mask = void 0;
+ }
+ if (typeof data === "number")
+ data = data.toString();
+ if (this.readyState !== _WebSocket.OPEN) {
+ sendAfterClose(this, data, cb);
+ return;
+ }
+ if (mask === void 0)
+ mask = !this._isServer;
+ this._sender.pong(data || EMPTY_BUFFER, mask, cb);
+ }
+ /**
+ * Send a data message.
+ *
+ * @param {*} data The message to send
+ * @param {Object} [options] Options object
+ * @param {Boolean} [options.compress] Specifies whether or not to compress
+ * `data`
+ * @param {Boolean} [options.binary] Specifies whether `data` is binary or
+ * text
+ * @param {Boolean} [options.fin=true] Specifies whether the fragment is the
+ * last one
+ * @param {Boolean} [options.mask] Specifies whether or not to mask `data`
+ * @param {Function} [cb] Callback which is executed when data is written out
+ * @public
+ */
+ send(data, options, cb) {
+ if (this.readyState === _WebSocket.CONNECTING) {
+ throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");
+ }
+ if (typeof options === "function") {
+ cb = options;
+ options = {};
+ }
+ if (typeof data === "number")
+ data = data.toString();
+ if (this.readyState !== _WebSocket.OPEN) {
+ sendAfterClose(this, data, cb);
+ return;
+ }
+ const opts = {
+ binary: typeof data !== "string",
+ mask: !this._isServer,
+ compress: true,
+ fin: true,
+ ...options
+ };
+ if (!this._extensions[PerMessageDeflate.extensionName]) {
+ opts.compress = false;
+ }
+ this._sender.send(data || EMPTY_BUFFER, opts, cb);
+ }
+ /**
+ * Forcibly close the connection.
+ *
+ * @public
+ */
+ terminate() {
+ if (this.readyState === _WebSocket.CLOSED)
+ return;
+ if (this.readyState === _WebSocket.CONNECTING) {
+ const msg = "WebSocket was closed before the connection was established";
+ return abortHandshake(this, this._req, msg);
+ }
+ if (this._socket) {
+ this._readyState = _WebSocket.CLOSING;
+ this._socket.destroy();
+ }
+ }
+ };
+ readyStates.forEach((readyState, i) => {
+ const descriptor = { enumerable: true, value: i };
+ Object.defineProperty(WebSocket.prototype, readyState, descriptor);
+ Object.defineProperty(WebSocket, readyState, descriptor);
+ });
+ [
+ "binaryType",
+ "bufferedAmount",
+ "extensions",
+ "protocol",
+ "readyState",
+ "url"
+ ].forEach((property) => {
+ Object.defineProperty(WebSocket.prototype, property, { enumerable: true });
+ });
+ ["open", "error", "close", "message"].forEach((method) => {
+ Object.defineProperty(WebSocket.prototype, `on${method}`, {
+ configurable: true,
+ enumerable: true,
+ /**
+ * Return the listener of the event.
+ *
+ * @return {(Function|undefined)} The event listener or `undefined`
+ * @public
+ */
+ get() {
+ const listeners = this.listeners(method);
+ for (let i = 0; i < listeners.length; i++) {
+ if (listeners[i]._listener)
+ return listeners[i]._listener;
+ }
+ return void 0;
+ },
+ /**
+ * Add a listener for the event.
+ *
+ * @param {Function} listener The listener to add
+ * @public
+ */
+ set(listener) {
+ const listeners = this.listeners(method);
+ for (let i = 0; i < listeners.length; i++) {
+ if (listeners[i]._listener)
+ this.removeListener(method, listeners[i]);
+ }
+ this.addEventListener(method, listener);
+ }
+ });
+ });
+ WebSocket.prototype.addEventListener = addEventListener;
+ WebSocket.prototype.removeEventListener = removeEventListener;
+ module2.exports = WebSocket;
+ function initAsClient(websocket, address, protocols, options) {
+ const opts = {
+ protocolVersion: protocolVersions[1],
+ maxPayload: 100 * 1024 * 1024,
+ perMessageDeflate: true,
+ followRedirects: false,
+ maxRedirects: 10,
+ ...options,
+ createConnection: void 0,
+ socketPath: void 0,
+ hostname: void 0,
+ protocol: void 0,
+ timeout: void 0,
+ method: void 0,
+ host: void 0,
+ path: void 0,
+ port: void 0
+ };
+ if (!protocolVersions.includes(opts.protocolVersion)) {
+ throw new RangeError(
+ `Unsupported protocol version: ${opts.protocolVersion} (supported versions: ${protocolVersions.join(", ")})`
+ );
+ }
+ let parsedUrl;
+ if (address instanceof URL2) {
+ parsedUrl = address;
+ websocket._url = address.href;
+ } else {
+ parsedUrl = new URL2(address);
+ websocket._url = address;
+ }
+ const isUnixSocket = parsedUrl.protocol === "ws+unix:";
+ if (!parsedUrl.host && (!isUnixSocket || !parsedUrl.pathname)) {
+ throw new Error(`Invalid URL: ${websocket.url}`);
+ }
+ const isSecure = parsedUrl.protocol === "wss:" || parsedUrl.protocol === "https:";
+ const defaultPort = isSecure ? 443 : 80;
+ const key = randomBytes(16).toString("base64");
+ const get = isSecure ? https.get : http.get;
+ let perMessageDeflate;
+ opts.createConnection = isSecure ? tlsConnect : netConnect;
+ opts.defaultPort = opts.defaultPort || defaultPort;
+ opts.port = parsedUrl.port || defaultPort;
+ opts.host = parsedUrl.hostname.startsWith("[") ? parsedUrl.hostname.slice(1, -1) : parsedUrl.hostname;
+ opts.headers = {
+ "Sec-WebSocket-Version": opts.protocolVersion,
+ "Sec-WebSocket-Key": key,
+ Connection: "Upgrade",
+ Upgrade: "websocket",
+ ...opts.headers
+ };
+ opts.path = parsedUrl.pathname + parsedUrl.search;
+ opts.timeout = opts.handshakeTimeout;
+ if (opts.perMessageDeflate) {
+ perMessageDeflate = new PerMessageDeflate(
+ opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},
+ false,
+ opts.maxPayload
+ );
+ opts.headers["Sec-WebSocket-Extensions"] = format({
+ [PerMessageDeflate.extensionName]: perMessageDeflate.offer()
+ });
+ }
+ if (protocols) {
+ opts.headers["Sec-WebSocket-Protocol"] = protocols;
+ }
+ if (opts.origin) {
+ if (opts.protocolVersion < 13) {
+ opts.headers["Sec-WebSocket-Origin"] = opts.origin;
+ } else {
+ opts.headers.Origin = opts.origin;
+ }
+ }
+ if (parsedUrl.username || parsedUrl.password) {
+ opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;
+ }
+ if (isUnixSocket) {
+ const parts = opts.path.split(":");
+ opts.socketPath = parts[0];
+ opts.path = parts[1];
+ }
+ let req = websocket._req = get(opts);
+ if (opts.timeout) {
+ req.on("timeout", () => {
+ abortHandshake(websocket, req, "Opening handshake has timed out");
+ });
+ }
+ req.on("error", (err) => {
+ if (req === null || req.aborted)
+ return;
+ req = websocket._req = null;
+ websocket._readyState = WebSocket.CLOSING;
+ websocket.emit("error", err);
+ websocket.emitClose();
+ });
+ req.on("response", (res) => {
+ const location = res.headers.location;
+ const statusCode = res.statusCode;
+ if (location && opts.followRedirects && statusCode >= 300 && statusCode < 400) {
+ if (++websocket._redirects > opts.maxRedirects) {
+ abortHandshake(websocket, req, "Maximum redirects exceeded");
+ return;
+ }
+ req.abort();
+ const addr = new URL2(location, address);
+ initAsClient(websocket, addr, protocols, options);
+ } else if (!websocket.emit("unexpected-response", req, res)) {
+ abortHandshake(
+ websocket,
+ req,
+ `Unexpected server response: ${res.statusCode}`
+ );
+ }
+ });
+ req.on("upgrade", (res, socket, head) => {
+ websocket.emit("upgrade", res);
+ if (websocket.readyState !== WebSocket.CONNECTING)
+ return;
+ req = websocket._req = null;
+ const digest = createHash("sha1").update(key + GUID).digest("base64");
+ if (res.headers["sec-websocket-accept"] !== digest) {
+ abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
+ return;
+ }
+ const serverProt = res.headers["sec-websocket-protocol"];
+ const protList = (protocols || "").split(/, */);
+ let protError;
+ if (!protocols && serverProt) {
+ protError = "Server sent a subprotocol but none was requested";
+ } else if (protocols && !serverProt) {
+ protError = "Server sent no subprotocol";
+ } else if (serverProt && !protList.includes(serverProt)) {
+ protError = "Server sent an invalid subprotocol";
+ }
+ if (protError) {
+ abortHandshake(websocket, socket, protError);
+ return;
+ }
+ if (serverProt)
+ websocket._protocol = serverProt;
+ if (perMessageDeflate) {
+ try {
+ const extensions = parse(res.headers["sec-websocket-extensions"]);
+ if (extensions[PerMessageDeflate.extensionName]) {
+ perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);
+ websocket._extensions[PerMessageDeflate.extensionName] = perMessageDeflate;
+ }
+ } catch (err) {
+ abortHandshake(
+ websocket,
+ socket,
+ "Invalid Sec-WebSocket-Extensions header"
+ );
+ return;
+ }
+ }
+ websocket.setSocket(socket, head, opts.maxPayload);
+ });
+ }
+ function netConnect(options) {
+ options.path = options.socketPath;
+ return net.connect(options);
+ }
+ function tlsConnect(options) {
+ options.path = void 0;
+ if (!options.servername && options.servername !== "") {
+ options.servername = net.isIP(options.host) ? "" : options.host;
+ }
+ return tls.connect(options);
+ }
+ function abortHandshake(websocket, stream, message) {
+ websocket._readyState = WebSocket.CLOSING;
+ const err = new Error(message);
+ Error.captureStackTrace(err, abortHandshake);
+ if (stream.setHeader) {
+ stream.abort();
+ if (stream.socket && !stream.socket.destroyed) {
+ stream.socket.destroy();
+ }
+ stream.once("abort", websocket.emitClose.bind(websocket));
+ websocket.emit("error", err);
+ } else {
+ stream.destroy(err);
+ stream.once("error", websocket.emit.bind(websocket, "error"));
+ stream.once("close", websocket.emitClose.bind(websocket));
+ }
+ }
+ function sendAfterClose(websocket, data, cb) {
+ if (data) {
+ const length = toBuffer(data).length;
+ if (websocket._socket)
+ websocket._sender._bufferedBytes += length;
+ else
+ websocket._bufferedAmount += length;
+ }
+ if (cb) {
+ const err = new Error(
+ `WebSocket is not open: readyState ${websocket.readyState} (${readyStates[websocket.readyState]})`
+ );
+ cb(err);
+ }
+ }
+ function receiverOnConclude(code, reason) {
+ const websocket = this[kWebSocket];
+ websocket._socket.removeListener("data", socketOnData);
+ websocket._socket.resume();
+ websocket._closeFrameReceived = true;
+ websocket._closeMessage = reason;
+ websocket._closeCode = code;
+ if (code === 1005)
+ websocket.close();
+ else
+ websocket.close(code, reason);
+ }
+ function receiverOnDrain() {
+ this[kWebSocket]._socket.resume();
+ }
+ function receiverOnError(err) {
+ const websocket = this[kWebSocket];
+ websocket._socket.removeListener("data", socketOnData);
+ websocket._readyState = WebSocket.CLOSING;
+ websocket._closeCode = err[kStatusCode];
+ websocket.emit("error", err);
+ websocket._socket.destroy();
+ }
+ function receiverOnFinish() {
+ this[kWebSocket].emitClose();
+ }
+ function receiverOnMessage(data) {
+ this[kWebSocket].emit("message", data);
+ }
+ function receiverOnPing(data) {
+ const websocket = this[kWebSocket];
+ websocket.pong(data, !websocket._isServer, NOOP);
+ websocket.emit("ping", data);
+ }
+ function receiverOnPong(data) {
+ this[kWebSocket].emit("pong", data);
+ }
+ function socketOnClose() {
+ const websocket = this[kWebSocket];
+ this.removeListener("close", socketOnClose);
+ this.removeListener("end", socketOnEnd);
+ websocket._readyState = WebSocket.CLOSING;
+ websocket._socket.read();
+ websocket._receiver.end();
+ this.removeListener("data", socketOnData);
+ this[kWebSocket] = void 0;
+ clearTimeout(websocket._closeTimer);
+ if (websocket._receiver._writableState.finished || websocket._receiver._writableState.errorEmitted) {
+ websocket.emitClose();
+ } else {
+ websocket._receiver.on("error", receiverOnFinish);
+ websocket._receiver.on("finish", receiverOnFinish);
+ }
+ }
+ function socketOnData(chunk) {
+ if (!this[kWebSocket]._receiver.write(chunk)) {
+ this.pause();
+ }
+ }
+ function socketOnEnd() {
+ const websocket = this[kWebSocket];
+ websocket._readyState = WebSocket.CLOSING;
+ websocket._receiver.end();
+ this.end();
+ }
+ function socketOnError() {
+ const websocket = this[kWebSocket];
+ this.removeListener("error", socketOnError);
+ this.on("error", NOOP);
+ if (websocket) {
+ websocket._readyState = WebSocket.CLOSING;
+ this.destroy();
+ }
+ }
+ }
+});
+
+// node_modules/ws/lib/stream.js
+var require_stream = __commonJS({
+ "node_modules/ws/lib/stream.js"(exports2, module2) {
+ "use strict";
+ var { Duplex } = require("stream");
+ function emitClose(stream) {
+ stream.emit("close");
+ }
+ function duplexOnEnd() {
+ if (!this.destroyed && this._writableState.finished) {
+ this.destroy();
+ }
+ }
+ function duplexOnError(err) {
+ this.removeListener("error", duplexOnError);
+ this.destroy();
+ if (this.listenerCount("error") === 0) {
+ this.emit("error", err);
+ }
+ }
+ function createWebSocketStream(ws, options) {
+ let resumeOnReceiverDrain = true;
+ function receiverOnDrain() {
+ if (resumeOnReceiverDrain)
+ ws._socket.resume();
+ }
+ if (ws.readyState === ws.CONNECTING) {
+ ws.once("open", function open() {
+ ws._receiver.removeAllListeners("drain");
+ ws._receiver.on("drain", receiverOnDrain);
+ });
+ } else {
+ ws._receiver.removeAllListeners("drain");
+ ws._receiver.on("drain", receiverOnDrain);
+ }
+ const duplex = new Duplex({
+ ...options,
+ autoDestroy: false,
+ emitClose: false,
+ objectMode: false,
+ writableObjectMode: false
+ });
+ ws.on("message", function message(msg) {
+ if (!duplex.push(msg)) {
+ resumeOnReceiverDrain = false;
+ ws._socket.pause();
+ }
+ });
+ ws.once("error", function error(err) {
+ if (duplex.destroyed)
+ return;
+ duplex.destroy(err);
+ });
+ ws.once("close", function close() {
+ if (duplex.destroyed)
+ return;
+ duplex.push(null);
+ });
+ duplex._destroy = function(err, callback) {
+ if (ws.readyState === ws.CLOSED) {
+ callback(err);
+ process.nextTick(emitClose, duplex);
+ return;
+ }
+ let called = false;
+ ws.once("error", function error(err2) {
+ called = true;
+ callback(err2);
+ });
+ ws.once("close", function close() {
+ if (!called)
+ callback(err);
+ process.nextTick(emitClose, duplex);
+ });
+ ws.terminate();
+ };
+ duplex._final = function(callback) {
+ if (ws.readyState === ws.CONNECTING) {
+ ws.once("open", function open() {
+ duplex._final(callback);
+ });
+ return;
+ }
+ if (ws._socket === null)
+ return;
+ if (ws._socket._writableState.finished) {
+ callback();
+ if (duplex._readableState.endEmitted)
+ duplex.destroy();
+ } else {
+ ws._socket.once("finish", function finish() {
+ callback();
+ });
+ ws.close();
+ }
+ };
+ duplex._read = function() {
+ if (ws.readyState === ws.OPEN && !resumeOnReceiverDrain) {
+ resumeOnReceiverDrain = true;
+ if (!ws._receiver._writableState.needDrain)
+ ws._socket.resume();
+ }
+ };
+ duplex._write = function(chunk, encoding, callback) {
+ if (ws.readyState === ws.CONNECTING) {
+ ws.once("open", function open() {
+ duplex._write(chunk, encoding, callback);
+ });
+ return;
+ }
+ ws.send(chunk, callback);
+ };
+ duplex.on("end", duplexOnEnd);
+ duplex.on("error", duplexOnError);
+ return duplex;
+ }
+ module2.exports = createWebSocketStream;
+ }
+});
+
+// node_modules/ws/lib/websocket-server.js
+var require_websocket_server = __commonJS({
+ "node_modules/ws/lib/websocket-server.js"(exports2, module2) {
+ "use strict";
+ var EventEmitter = require("events");
+ var { createHash } = require("crypto");
+ var { createServer, STATUS_CODES } = require("http");
+ var PerMessageDeflate = require_permessage_deflate();
+ var WebSocket = require_websocket();
+ var { format, parse } = require_extension();
+ var { GUID, kWebSocket } = require_constants();
+ var keyRegex = /^[+/0-9A-Za-z]{22}==$/;
+ var WebSocketServer = class extends EventEmitter {
+ /**
+ * Create a `WebSocketServer` instance.
+ *
+ * @param {Object} options Configuration options
+ * @param {Number} [options.backlog=511] The maximum length of the queue of
+ * pending connections
+ * @param {Boolean} [options.clientTracking=true] Specifies whether or not to
+ * track clients
+ * @param {Function} [options.handleProtocols] A hook to handle protocols
+ * @param {String} [options.host] The hostname where to bind the server
+ * @param {Number} [options.maxPayload=104857600] The maximum allowed message
+ * size
+ * @param {Boolean} [options.noServer=false] Enable no server mode
+ * @param {String} [options.path] Accept only connections matching this path
+ * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable
+ * permessage-deflate
+ * @param {Number} [options.port] The port where to bind the server
+ * @param {http.Server} [options.server] A pre-created HTTP/S server to use
+ * @param {Function} [options.verifyClient] A hook to reject connections
+ * @param {Function} [callback] A listener for the `listening` event
+ */
+ constructor(options, callback) {
+ super();
+ options = {
+ maxPayload: 100 * 1024 * 1024,
+ perMessageDeflate: false,
+ handleProtocols: null,
+ clientTracking: true,
+ verifyClient: null,
+ noServer: false,
+ backlog: null,
+ // use default (511 as implemented in net.js)
+ server: null,
+ host: null,
+ path: null,
+ port: null,
+ ...options
+ };
+ if (options.port == null && !options.server && !options.noServer) {
+ throw new TypeError(
+ 'One of the "port", "server", or "noServer" options must be specified'
+ );
+ }
+ if (options.port != null) {
+ this._server = createServer((req, res) => {
+ const body = STATUS_CODES[426];
+ res.writeHead(426, {
+ "Content-Length": body.length,
+ "Content-Type": "text/plain"
+ });
+ res.end(body);
+ });
+ this._server.listen(
+ options.port,
+ options.host,
+ options.backlog,
+ callback
+ );
+ } else if (options.server) {
+ this._server = options.server;
+ }
+ if (this._server) {
+ const emitConnection = this.emit.bind(this, "connection");
+ this._removeListeners = addListeners(this._server, {
+ listening: this.emit.bind(this, "listening"),
+ error: this.emit.bind(this, "error"),
+ upgrade: (req, socket, head) => {
+ this.handleUpgrade(req, socket, head, emitConnection);
+ }
+ });
+ }
+ if (options.perMessageDeflate === true)
+ options.perMessageDeflate = {};
+ if (options.clientTracking)
+ this.clients = /* @__PURE__ */ new Set();
+ this.options = options;
+ }
+ /**
+ * Returns the bound address, the address family name, and port of the server
+ * as reported by the operating system if listening on an IP socket.
+ * If the server is listening on a pipe or UNIX domain socket, the name is
+ * returned as a string.
+ *
+ * @return {(Object|String|null)} The address of the server
+ * @public
+ */
+ address() {
+ if (this.options.noServer) {
+ throw new Error('The server is operating in "noServer" mode');
+ }
+ if (!this._server)
+ return null;
+ return this._server.address();
+ }
+ /**
+ * Close the server.
+ *
+ * @param {Function} [cb] Callback
+ * @public
+ */
+ close(cb) {
+ if (cb)
+ this.once("close", cb);
+ if (this.clients) {
+ for (const client of this.clients)
+ client.terminate();
+ }
+ const server = this._server;
+ if (server) {
+ this._removeListeners();
+ this._removeListeners = this._server = null;
+ if (this.options.port != null) {
+ server.close(() => this.emit("close"));
+ return;
+ }
+ }
+ process.nextTick(emitClose, this);
+ }
+ /**
+ * See if a given request should be handled by this server instance.
+ *
+ * @param {http.IncomingMessage} req Request object to inspect
+ * @return {Boolean} `true` if the request is valid, else `false`
+ * @public
+ */
+ shouldHandle(req) {
+ if (this.options.path) {
+ const index = req.url.indexOf("?");
+ const pathname = index !== -1 ? req.url.slice(0, index) : req.url;
+ if (pathname !== this.options.path)
+ return false;
+ }
+ return true;
+ }
+ /**
+ * Handle a HTTP Upgrade request.
+ *
+ * @param {http.IncomingMessage} req The request object
+ * @param {net.Socket} socket The network socket between the server and client
+ * @param {Buffer} head The first packet of the upgraded stream
+ * @param {Function} cb Callback
+ * @public
+ */
+ handleUpgrade(req, socket, head, cb) {
+ socket.on("error", socketOnError);
+ const key = req.headers["sec-websocket-key"] !== void 0 ? req.headers["sec-websocket-key"].trim() : false;
+ const version = +req.headers["sec-websocket-version"];
+ const extensions = {};
+ if (req.method !== "GET" || req.headers.upgrade.toLowerCase() !== "websocket" || !key || !keyRegex.test(key) || version !== 8 && version !== 13 || !this.shouldHandle(req)) {
+ return abortHandshake(socket, 400);
+ }
+ if (this.options.perMessageDeflate) {
+ const perMessageDeflate = new PerMessageDeflate(
+ this.options.perMessageDeflate,
+ true,
+ this.options.maxPayload
+ );
+ try {
+ const offers = parse(req.headers["sec-websocket-extensions"]);
+ if (offers[PerMessageDeflate.extensionName]) {
+ perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);
+ extensions[PerMessageDeflate.extensionName] = perMessageDeflate;
+ }
+ } catch (err) {
+ return abortHandshake(socket, 400);
+ }
+ }
+ if (this.options.verifyClient) {
+ const info = {
+ origin: req.headers[`${version === 8 ? "sec-websocket-origin" : "origin"}`],
+ secure: !!(req.socket.authorized || req.socket.encrypted),
+ req
+ };
+ if (this.options.verifyClient.length === 2) {
+ this.options.verifyClient(info, (verified, code, message, headers) => {
+ if (!verified) {
+ return abortHandshake(socket, code || 401, message, headers);
+ }
+ this.completeUpgrade(key, extensions, req, socket, head, cb);
+ });
+ return;
+ }
+ if (!this.options.verifyClient(info))
+ return abortHandshake(socket, 401);
+ }
+ this.completeUpgrade(key, extensions, req, socket, head, cb);
+ }
+ /**
+ * Upgrade the connection to WebSocket.
+ *
+ * @param {String} key The value of the `Sec-WebSocket-Key` header
+ * @param {Object} extensions The accepted extensions
+ * @param {http.IncomingMessage} req The request object
+ * @param {net.Socket} socket The network socket between the server and client
+ * @param {Buffer} head The first packet of the upgraded stream
+ * @param {Function} cb Callback
+ * @throws {Error} If called more than once with the same socket
+ * @private
+ */
+ completeUpgrade(key, extensions, req, socket, head, cb) {
+ if (!socket.readable || !socket.writable)
+ return socket.destroy();
+ if (socket[kWebSocket]) {
+ throw new Error(
+ "server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration"
+ );
+ }
+ const digest = createHash("sha1").update(key + GUID).digest("base64");
+ const headers = [
+ "HTTP/1.1 101 Switching Protocols",
+ "Upgrade: websocket",
+ "Connection: Upgrade",
+ `Sec-WebSocket-Accept: ${digest}`
+ ];
+ const ws = new WebSocket(null);
+ let protocol = req.headers["sec-websocket-protocol"];
+ if (protocol) {
+ protocol = protocol.split(",").map(trim);
+ if (this.options.handleProtocols) {
+ protocol = this.options.handleProtocols(protocol, req);
+ } else {
+ protocol = protocol[0];
+ }
+ if (protocol) {
+ headers.push(`Sec-WebSocket-Protocol: ${protocol}`);
+ ws._protocol = protocol;
+ }
+ }
+ if (extensions[PerMessageDeflate.extensionName]) {
+ const params = extensions[PerMessageDeflate.extensionName].params;
+ const value = format({
+ [PerMessageDeflate.extensionName]: [params]
+ });
+ headers.push(`Sec-WebSocket-Extensions: ${value}`);
+ ws._extensions = extensions;
+ }
+ this.emit("headers", headers, req);
+ socket.write(headers.concat("\r\n").join("\r\n"));
+ socket.removeListener("error", socketOnError);
+ ws.setSocket(socket, head, this.options.maxPayload);
+ if (this.clients) {
+ this.clients.add(ws);
+ ws.on("close", () => this.clients.delete(ws));
+ }
+ cb(ws, req);
+ }
+ };
+ module2.exports = WebSocketServer;
+ function addListeners(server, map) {
+ for (const event of Object.keys(map))
+ server.on(event, map[event]);
+ return function removeListeners() {
+ for (const event of Object.keys(map)) {
+ server.removeListener(event, map[event]);
+ }
+ };
+ }
+ function emitClose(server) {
+ server.emit("close");
+ }
+ function socketOnError() {
+ this.destroy();
+ }
+ function abortHandshake(socket, code, message, headers) {
+ if (socket.writable) {
+ message = message || STATUS_CODES[code];
+ headers = {
+ Connection: "close",
+ "Content-Type": "text/html",
+ "Content-Length": Buffer.byteLength(message),
+ ...headers
+ };
+ socket.write(
+ `HTTP/1.1 ${code} ${STATUS_CODES[code]}\r
+` + Object.keys(headers).map((h) => `${h}: ${headers[h]}`).join("\r\n") + "\r\n\r\n" + message
+ );
+ }
+ socket.removeListener("error", socketOnError);
+ socket.destroy();
+ }
+ function trim(str) {
+ return str.trim();
+ }
+ }
+});
+
+// node_modules/ws/index.js
+var require_ws = __commonJS({
+ "node_modules/ws/index.js"(exports2, module2) {
+ "use strict";
+ var WebSocket = require_websocket();
+ WebSocket.createWebSocketStream = require_stream();
+ WebSocket.Server = require_websocket_server();
+ WebSocket.Receiver = require_receiver();
+ WebSocket.Sender = require_sender();
+ module2.exports = WebSocket;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/ws.js
+var require_ws2 = __commonJS({
+ "node_modules/@ethersproject/providers/lib/ws.js"(exports2) {
+ "use strict";
+ var __importDefault13 = exports2 && exports2.__importDefault || function(mod) {
+ return mod && mod.__esModule ? mod : { "default": mod };
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.WebSocket = void 0;
+ var ws_1 = __importDefault13(require_ws());
+ exports2.WebSocket = ws_1.default;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/websocket-provider.js
+var require_websocket_provider = __commonJS({
+ "node_modules/@ethersproject/providers/lib/websocket-provider.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.WebSocketProvider = void 0;
+ var bignumber_1 = require_lib7();
+ var properties_1 = require_lib12();
+ var json_rpc_provider_1 = require_json_rpc_provider();
+ var ws_1 = require_ws2();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ var NextId = 1;
+ var WebSocketProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(WebSocketProvider2, _super);
+ function WebSocketProvider2(url, network) {
+ var _this = this;
+ if (network === "any") {
+ logger.throwError("WebSocketProvider does not support 'any' network yet", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "network:any"
+ });
+ }
+ if (typeof url === "string") {
+ _this = _super.call(this, url, network) || this;
+ } else {
+ _this = _super.call(this, "_websocket", network) || this;
+ }
+ _this._pollingInterval = -1;
+ _this._wsReady = false;
+ if (typeof url === "string") {
+ (0, properties_1.defineReadOnly)(_this, "_websocket", new ws_1.WebSocket(_this.connection.url));
+ } else {
+ (0, properties_1.defineReadOnly)(_this, "_websocket", url);
+ }
+ (0, properties_1.defineReadOnly)(_this, "_requests", {});
+ (0, properties_1.defineReadOnly)(_this, "_subs", {});
+ (0, properties_1.defineReadOnly)(_this, "_subIds", {});
+ (0, properties_1.defineReadOnly)(_this, "_detectNetwork", _super.prototype.detectNetwork.call(_this));
+ _this.websocket.onopen = function() {
+ _this._wsReady = true;
+ Object.keys(_this._requests).forEach(function(id) {
+ _this.websocket.send(_this._requests[id].payload);
+ });
+ };
+ _this.websocket.onmessage = function(messageEvent) {
+ var data = messageEvent.data;
+ var result = JSON.parse(data);
+ if (result.id != null) {
+ var id = String(result.id);
+ var request = _this._requests[id];
+ delete _this._requests[id];
+ if (result.result !== void 0) {
+ request.callback(null, result.result);
+ _this.emit("debug", {
+ action: "response",
+ request: JSON.parse(request.payload),
+ response: result.result,
+ provider: _this
+ });
+ } else {
+ var error = null;
+ if (result.error) {
+ error = new Error(result.error.message || "unknown error");
+ (0, properties_1.defineReadOnly)(error, "code", result.error.code || null);
+ (0, properties_1.defineReadOnly)(error, "response", data);
+ } else {
+ error = new Error("unknown error");
+ }
+ request.callback(error, void 0);
+ _this.emit("debug", {
+ action: "response",
+ error,
+ request: JSON.parse(request.payload),
+ provider: _this
+ });
+ }
+ } else if (result.method === "eth_subscription") {
+ var sub = _this._subs[result.params.subscription];
+ if (sub) {
+ sub.processFunc(result.params.result);
+ }
+ } else {
+ console.warn("this should not happen");
+ }
+ };
+ var fauxPoll = setInterval(function() {
+ _this.emit("poll");
+ }, 1e3);
+ if (fauxPoll.unref) {
+ fauxPoll.unref();
+ }
+ return _this;
+ }
+ Object.defineProperty(WebSocketProvider2.prototype, "websocket", {
+ // Cannot narrow the type of _websocket, as that is not backwards compatible
+ // so we add a getter and let the WebSocket be a public API.
+ get: function() {
+ return this._websocket;
+ },
+ enumerable: false,
+ configurable: true
+ });
+ WebSocketProvider2.prototype.detectNetwork = function() {
+ return this._detectNetwork;
+ };
+ Object.defineProperty(WebSocketProvider2.prototype, "pollingInterval", {
+ get: function() {
+ return 0;
+ },
+ set: function(value) {
+ logger.throwError("cannot set polling interval on WebSocketProvider", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "setPollingInterval"
+ });
+ },
+ enumerable: false,
+ configurable: true
+ });
+ WebSocketProvider2.prototype.resetEventsBlock = function(blockNumber) {
+ logger.throwError("cannot reset events block on WebSocketProvider", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "resetEventBlock"
+ });
+ };
+ WebSocketProvider2.prototype.poll = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ return __generator13(this, function(_a) {
+ return [2, null];
+ });
+ });
+ };
+ Object.defineProperty(WebSocketProvider2.prototype, "polling", {
+ set: function(value) {
+ if (!value) {
+ return;
+ }
+ logger.throwError("cannot set polling on WebSocketProvider", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "setPolling"
+ });
+ },
+ enumerable: false,
+ configurable: true
+ });
+ WebSocketProvider2.prototype.send = function(method, params) {
+ var _this = this;
+ var rid = NextId++;
+ return new Promise(function(resolve, reject) {
+ function callback(error, result) {
+ if (error) {
+ return reject(error);
+ }
+ return resolve(result);
+ }
+ var payload = JSON.stringify({
+ method,
+ params,
+ id: rid,
+ jsonrpc: "2.0"
+ });
+ _this.emit("debug", {
+ action: "request",
+ request: JSON.parse(payload),
+ provider: _this
+ });
+ _this._requests[String(rid)] = { callback, payload };
+ if (_this._wsReady) {
+ _this.websocket.send(payload);
+ }
+ });
+ };
+ WebSocketProvider2.defaultUrl = function() {
+ return "ws://localhost:8546";
+ };
+ WebSocketProvider2.prototype._subscribe = function(tag, param, processFunc) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var subIdPromise, subId;
+ var _this = this;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ subIdPromise = this._subIds[tag];
+ if (subIdPromise == null) {
+ subIdPromise = Promise.all(param).then(function(param2) {
+ return _this.send("eth_subscribe", param2);
+ });
+ this._subIds[tag] = subIdPromise;
+ }
+ return [4, subIdPromise];
+ case 1:
+ subId = _a.sent();
+ this._subs[subId] = { tag, processFunc };
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ WebSocketProvider2.prototype._startEvent = function(event) {
+ var _this = this;
+ switch (event.type) {
+ case "block":
+ this._subscribe("block", ["newHeads"], function(result) {
+ var blockNumber = bignumber_1.BigNumber.from(result.number).toNumber();
+ _this._emitted.block = blockNumber;
+ _this.emit("block", blockNumber);
+ });
+ break;
+ case "pending":
+ this._subscribe("pending", ["newPendingTransactions"], function(result) {
+ _this.emit("pending", result);
+ });
+ break;
+ case "filter":
+ this._subscribe(event.tag, ["logs", this._getFilter(event.filter)], function(result) {
+ if (result.removed == null) {
+ result.removed = false;
+ }
+ _this.emit(event.filter, _this.formatter.filterLog(result));
+ });
+ break;
+ case "tx": {
+ var emitReceipt_1 = function(event2) {
+ var hash = event2.hash;
+ _this.getTransactionReceipt(hash).then(function(receipt) {
+ if (!receipt) {
+ return;
+ }
+ _this.emit(hash, receipt);
+ });
+ };
+ emitReceipt_1(event);
+ this._subscribe("tx", ["newHeads"], function(result) {
+ _this._events.filter(function(e) {
+ return e.type === "tx";
+ }).forEach(emitReceipt_1);
+ });
+ break;
+ }
+ case "debug":
+ case "poll":
+ case "willPoll":
+ case "didPoll":
+ case "error":
+ break;
+ default:
+ console.log("unhandled:", event);
+ break;
+ }
+ };
+ WebSocketProvider2.prototype._stopEvent = function(event) {
+ var _this = this;
+ var tag = event.tag;
+ if (event.type === "tx") {
+ if (this._events.filter(function(e) {
+ return e.type === "tx";
+ }).length) {
+ return;
+ }
+ tag = "tx";
+ } else if (this.listenerCount(event.event)) {
+ return;
+ }
+ var subId = this._subIds[tag];
+ if (!subId) {
+ return;
+ }
+ delete this._subIds[tag];
+ subId.then(function(subId2) {
+ if (!_this._subs[subId2]) {
+ return;
+ }
+ delete _this._subs[subId2];
+ _this.send("eth_unsubscribe", [subId2]);
+ });
+ };
+ WebSocketProvider2.prototype.destroy = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ var _this = this;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ if (!(this.websocket.readyState === ws_1.WebSocket.CONNECTING))
+ return [3, 2];
+ return [4, new Promise(function(resolve) {
+ _this.websocket.onopen = function() {
+ resolve(true);
+ };
+ _this.websocket.onerror = function() {
+ resolve(false);
+ };
+ })];
+ case 1:
+ _a.sent();
+ _a.label = 2;
+ case 2:
+ this.websocket.close(1e3);
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ });
+ };
+ return WebSocketProvider2;
+ }(json_rpc_provider_1.JsonRpcProvider)
+ );
+ exports2.WebSocketProvider = WebSocketProvider;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/url-json-rpc-provider.js
+var require_url_json_rpc_provider = __commonJS({
+ "node_modules/@ethersproject/providers/lib/url-json-rpc-provider.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.UrlJsonRpcProvider = exports2.StaticJsonRpcProvider = void 0;
+ var properties_1 = require_lib12();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ var json_rpc_provider_1 = require_json_rpc_provider();
+ var StaticJsonRpcProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(StaticJsonRpcProvider2, _super);
+ function StaticJsonRpcProvider2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ StaticJsonRpcProvider2.prototype.detectNetwork = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ var network;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ network = this.network;
+ if (!(network == null))
+ return [3, 2];
+ return [4, _super.prototype.detectNetwork.call(this)];
+ case 1:
+ network = _a.sent();
+ if (!network) {
+ logger.throwError("no network detected", logger_1.Logger.errors.UNKNOWN_ERROR, {});
+ }
+ if (this._network == null) {
+ (0, properties_1.defineReadOnly)(this, "_network", network);
+ this.emit("network", network, null);
+ }
+ _a.label = 2;
+ case 2:
+ return [2, network];
+ }
+ });
+ });
+ };
+ return StaticJsonRpcProvider2;
+ }(json_rpc_provider_1.JsonRpcProvider)
+ );
+ exports2.StaticJsonRpcProvider = StaticJsonRpcProvider;
+ var UrlJsonRpcProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(UrlJsonRpcProvider2, _super);
+ function UrlJsonRpcProvider2(network, apiKey) {
+ var _newTarget = this.constructor;
+ var _this = this;
+ logger.checkAbstract(_newTarget, UrlJsonRpcProvider2);
+ network = (0, properties_1.getStatic)(_newTarget, "getNetwork")(network);
+ apiKey = (0, properties_1.getStatic)(_newTarget, "getApiKey")(apiKey);
+ var connection = (0, properties_1.getStatic)(_newTarget, "getUrl")(network, apiKey);
+ _this = _super.call(this, connection, network) || this;
+ if (typeof apiKey === "string") {
+ (0, properties_1.defineReadOnly)(_this, "apiKey", apiKey);
+ } else if (apiKey != null) {
+ Object.keys(apiKey).forEach(function(key) {
+ (0, properties_1.defineReadOnly)(_this, key, apiKey[key]);
+ });
+ }
+ return _this;
+ }
+ UrlJsonRpcProvider2.prototype._startPending = function() {
+ logger.warn("WARNING: API provider does not support pending filters");
+ };
+ UrlJsonRpcProvider2.prototype.isCommunityResource = function() {
+ return false;
+ };
+ UrlJsonRpcProvider2.prototype.getSigner = function(address) {
+ return logger.throwError("API provider does not support signing", logger_1.Logger.errors.UNSUPPORTED_OPERATION, { operation: "getSigner" });
+ };
+ UrlJsonRpcProvider2.prototype.listAccounts = function() {
+ return Promise.resolve([]);
+ };
+ UrlJsonRpcProvider2.getApiKey = function(apiKey) {
+ return apiKey;
+ };
+ UrlJsonRpcProvider2.getUrl = function(network, apiKey) {
+ return logger.throwError("not implemented; sub-classes must override getUrl", logger_1.Logger.errors.NOT_IMPLEMENTED, {
+ operation: "getUrl"
+ });
+ };
+ return UrlJsonRpcProvider2;
+ }(StaticJsonRpcProvider)
+ );
+ exports2.UrlJsonRpcProvider = UrlJsonRpcProvider;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/alchemy-provider.js
+var require_alchemy_provider = __commonJS({
+ "node_modules/@ethersproject/providers/lib/alchemy-provider.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.AlchemyProvider = exports2.AlchemyWebSocketProvider = void 0;
+ var properties_1 = require_lib12();
+ var formatter_1 = require_formatter();
+ var websocket_provider_1 = require_websocket_provider();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ var url_json_rpc_provider_1 = require_url_json_rpc_provider();
+ var defaultApiKey = "_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";
+ var AlchemyWebSocketProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(AlchemyWebSocketProvider2, _super);
+ function AlchemyWebSocketProvider2(network, apiKey) {
+ var _this = this;
+ var provider = new AlchemyProvider(network, apiKey);
+ var url = provider.connection.url.replace(/^http/i, "ws").replace(".alchemyapi.", ".ws.alchemyapi.");
+ _this = _super.call(this, url, provider.network) || this;
+ (0, properties_1.defineReadOnly)(_this, "apiKey", provider.apiKey);
+ return _this;
+ }
+ AlchemyWebSocketProvider2.prototype.isCommunityResource = function() {
+ return this.apiKey === defaultApiKey;
+ };
+ return AlchemyWebSocketProvider2;
+ }(websocket_provider_1.WebSocketProvider)
+ );
+ exports2.AlchemyWebSocketProvider = AlchemyWebSocketProvider;
+ var AlchemyProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(AlchemyProvider2, _super);
+ function AlchemyProvider2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ AlchemyProvider2.getWebSocketProvider = function(network, apiKey) {
+ return new AlchemyWebSocketProvider(network, apiKey);
+ };
+ AlchemyProvider2.getApiKey = function(apiKey) {
+ if (apiKey == null) {
+ return defaultApiKey;
+ }
+ if (apiKey && typeof apiKey !== "string") {
+ logger.throwArgumentError("invalid apiKey", "apiKey", apiKey);
+ }
+ return apiKey;
+ };
+ AlchemyProvider2.getUrl = function(network, apiKey) {
+ var host = null;
+ switch (network.name) {
+ case "homestead":
+ host = "eth-mainnet.alchemyapi.io/v2/";
+ break;
+ case "goerli":
+ host = "eth-goerli.g.alchemy.com/v2/";
+ break;
+ case "matic":
+ host = "polygon-mainnet.g.alchemy.com/v2/";
+ break;
+ case "maticmum":
+ host = "polygon-mumbai.g.alchemy.com/v2/";
+ break;
+ case "arbitrum":
+ host = "arb-mainnet.g.alchemy.com/v2/";
+ break;
+ case "arbitrum-goerli":
+ host = "arb-goerli.g.alchemy.com/v2/";
+ break;
+ case "optimism":
+ host = "opt-mainnet.g.alchemy.com/v2/";
+ break;
+ case "optimism-goerli":
+ host = "opt-goerli.g.alchemy.com/v2/";
+ break;
+ default:
+ logger.throwArgumentError("unsupported network", "network", arguments[0]);
+ }
+ return {
+ allowGzip: true,
+ url: "https://" + host + apiKey,
+ throttleCallback: function(attempt, url) {
+ if (apiKey === defaultApiKey) {
+ (0, formatter_1.showThrottleMessage)();
+ }
+ return Promise.resolve(true);
+ }
+ };
+ };
+ AlchemyProvider2.prototype.isCommunityResource = function() {
+ return this.apiKey === defaultApiKey;
+ };
+ return AlchemyProvider2;
+ }(url_json_rpc_provider_1.UrlJsonRpcProvider)
+ );
+ exports2.AlchemyProvider = AlchemyProvider;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/ankr-provider.js
+var require_ankr_provider = __commonJS({
+ "node_modules/@ethersproject/providers/lib/ankr-provider.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.AnkrProvider = void 0;
+ var formatter_1 = require_formatter();
+ var url_json_rpc_provider_1 = require_url_json_rpc_provider();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ var defaultApiKey = "9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";
+ function getHost(name) {
+ switch (name) {
+ case "homestead":
+ return "rpc.ankr.com/eth/";
+ case "ropsten":
+ return "rpc.ankr.com/eth_ropsten/";
+ case "rinkeby":
+ return "rpc.ankr.com/eth_rinkeby/";
+ case "goerli":
+ return "rpc.ankr.com/eth_goerli/";
+ case "matic":
+ return "rpc.ankr.com/polygon/";
+ case "arbitrum":
+ return "rpc.ankr.com/arbitrum/";
+ }
+ return logger.throwArgumentError("unsupported network", "name", name);
+ }
+ var AnkrProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(AnkrProvider2, _super);
+ function AnkrProvider2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ AnkrProvider2.prototype.isCommunityResource = function() {
+ return this.apiKey === defaultApiKey;
+ };
+ AnkrProvider2.getApiKey = function(apiKey) {
+ if (apiKey == null) {
+ return defaultApiKey;
+ }
+ return apiKey;
+ };
+ AnkrProvider2.getUrl = function(network, apiKey) {
+ if (apiKey == null) {
+ apiKey = defaultApiKey;
+ }
+ var connection = {
+ allowGzip: true,
+ url: "https://" + getHost(network.name) + apiKey,
+ throttleCallback: function(attempt, url) {
+ if (apiKey.apiKey === defaultApiKey) {
+ (0, formatter_1.showThrottleMessage)();
+ }
+ return Promise.resolve(true);
+ }
+ };
+ if (apiKey.projectSecret != null) {
+ connection.user = "";
+ connection.password = apiKey.projectSecret;
+ }
+ return connection;
+ };
+ return AnkrProvider2;
+ }(url_json_rpc_provider_1.UrlJsonRpcProvider)
+ );
+ exports2.AnkrProvider = AnkrProvider;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/cloudflare-provider.js
+var require_cloudflare_provider = __commonJS({
+ "node_modules/@ethersproject/providers/lib/cloudflare-provider.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.CloudflareProvider = void 0;
+ var url_json_rpc_provider_1 = require_url_json_rpc_provider();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ var CloudflareProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(CloudflareProvider2, _super);
+ function CloudflareProvider2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ CloudflareProvider2.getApiKey = function(apiKey) {
+ if (apiKey != null) {
+ logger.throwArgumentError("apiKey not supported for cloudflare", "apiKey", apiKey);
+ }
+ return null;
+ };
+ CloudflareProvider2.getUrl = function(network, apiKey) {
+ var host = null;
+ switch (network.name) {
+ case "homestead":
+ host = "https://cloudflare-eth.com/";
+ break;
+ default:
+ logger.throwArgumentError("unsupported network", "network", arguments[0]);
+ }
+ return host;
+ };
+ CloudflareProvider2.prototype.perform = function(method, params) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var block;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ if (!(method === "getBlockNumber"))
+ return [3, 2];
+ return [4, _super.prototype.perform.call(this, "getBlock", { blockTag: "latest" })];
+ case 1:
+ block = _a.sent();
+ return [2, block.number];
+ case 2:
+ return [2, _super.prototype.perform.call(this, method, params)];
+ }
+ });
+ });
+ };
+ return CloudflareProvider2;
+ }(url_json_rpc_provider_1.UrlJsonRpcProvider)
+ );
+ exports2.CloudflareProvider = CloudflareProvider;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/etherscan-provider.js
+var require_etherscan_provider = __commonJS({
+ "node_modules/@ethersproject/providers/lib/etherscan-provider.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.EtherscanProvider = void 0;
+ var bytes_1 = require_lib6();
+ var properties_1 = require_lib12();
+ var transactions_1 = require_lib14();
+ var web_1 = require_lib32();
+ var formatter_1 = require_formatter();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ var base_provider_1 = require_base_provider();
+ function getTransactionPostData(transaction) {
+ var result = {};
+ for (var key in transaction) {
+ if (transaction[key] == null) {
+ continue;
+ }
+ var value = transaction[key];
+ if (key === "type" && value === 0) {
+ continue;
+ }
+ if ({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true }[key]) {
+ value = (0, bytes_1.hexValue)((0, bytes_1.hexlify)(value));
+ } else if (key === "accessList") {
+ value = "[" + (0, transactions_1.accessListify)(value).map(function(set) {
+ return '{address:"' + set.address + '",storageKeys:["' + set.storageKeys.join('","') + '"]}';
+ }).join(",") + "]";
+ } else {
+ value = (0, bytes_1.hexlify)(value);
+ }
+ result[key] = value;
+ }
+ return result;
+ }
+ function getResult(result) {
+ if (result.status == 0 && (result.message === "No records found" || result.message === "No transactions found")) {
+ return result.result;
+ }
+ if (result.status != 1 || typeof result.message !== "string" || !result.message.match(/^OK/)) {
+ var error = new Error("invalid response");
+ error.result = JSON.stringify(result);
+ if ((result.result || "").toLowerCase().indexOf("rate limit") >= 0) {
+ error.throttleRetry = true;
+ }
+ throw error;
+ }
+ return result.result;
+ }
+ function getJsonResult(result) {
+ if (result && result.status == 0 && result.message == "NOTOK" && (result.result || "").toLowerCase().indexOf("rate limit") >= 0) {
+ var error = new Error("throttled response");
+ error.result = JSON.stringify(result);
+ error.throttleRetry = true;
+ throw error;
+ }
+ if (result.jsonrpc != "2.0") {
+ var error = new Error("invalid response");
+ error.result = JSON.stringify(result);
+ throw error;
+ }
+ if (result.error) {
+ var error = new Error(result.error.message || "unknown error");
+ if (result.error.code) {
+ error.code = result.error.code;
+ }
+ if (result.error.data) {
+ error.data = result.error.data;
+ }
+ throw error;
+ }
+ return result.result;
+ }
+ function checkLogTag(blockTag) {
+ if (blockTag === "pending") {
+ throw new Error("pending not supported");
+ }
+ if (blockTag === "latest") {
+ return blockTag;
+ }
+ return parseInt(blockTag.substring(2), 16);
+ }
+ function checkError(method, error, transaction) {
+ if (method === "call" && error.code === logger_1.Logger.errors.SERVER_ERROR) {
+ var e = error.error;
+ if (e && (e.message.match(/reverted/i) || e.message.match(/VM execution error/i))) {
+ var data = e.data;
+ if (data) {
+ data = "0x" + data.replace(/^.*0x/i, "");
+ }
+ if ((0, bytes_1.isHexString)(data)) {
+ return data;
+ }
+ logger.throwError("missing revert data in call exception", logger_1.Logger.errors.CALL_EXCEPTION, {
+ error,
+ data: "0x"
+ });
+ }
+ }
+ var message = error.message;
+ if (error.code === logger_1.Logger.errors.SERVER_ERROR) {
+ if (error.error && typeof error.error.message === "string") {
+ message = error.error.message;
+ } else if (typeof error.body === "string") {
+ message = error.body;
+ } else if (typeof error.responseText === "string") {
+ message = error.responseText;
+ }
+ }
+ message = (message || "").toLowerCase();
+ if (message.match(/insufficient funds/)) {
+ logger.throwError("insufficient funds for intrinsic transaction cost", logger_1.Logger.errors.INSUFFICIENT_FUNDS, {
+ error,
+ method,
+ transaction
+ });
+ }
+ if (message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)) {
+ logger.throwError("nonce has already been used", logger_1.Logger.errors.NONCE_EXPIRED, {
+ error,
+ method,
+ transaction
+ });
+ }
+ if (message.match(/another transaction with same nonce/)) {
+ logger.throwError("replacement fee too low", logger_1.Logger.errors.REPLACEMENT_UNDERPRICED, {
+ error,
+ method,
+ transaction
+ });
+ }
+ if (message.match(/execution failed due to an exception|execution reverted/)) {
+ logger.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", logger_1.Logger.errors.UNPREDICTABLE_GAS_LIMIT, {
+ error,
+ method,
+ transaction
+ });
+ }
+ throw error;
+ }
+ var EtherscanProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(EtherscanProvider2, _super);
+ function EtherscanProvider2(network, apiKey) {
+ var _this = _super.call(this, network) || this;
+ (0, properties_1.defineReadOnly)(_this, "baseUrl", _this.getBaseUrl());
+ (0, properties_1.defineReadOnly)(_this, "apiKey", apiKey || null);
+ return _this;
+ }
+ EtherscanProvider2.prototype.getBaseUrl = function() {
+ switch (this.network ? this.network.name : "invalid") {
+ case "homestead":
+ return "https://api.etherscan.io";
+ case "goerli":
+ return "https://api-goerli.etherscan.io";
+ case "sepolia":
+ return "https://api-sepolia.etherscan.io";
+ case "matic":
+ return "https://api.polygonscan.com";
+ case "maticmum":
+ return "https://api-testnet.polygonscan.com";
+ case "arbitrum":
+ return "https://api.arbiscan.io";
+ case "arbitrum-goerli":
+ return "https://api-goerli.arbiscan.io";
+ case "optimism":
+ return "https://api-optimistic.etherscan.io";
+ case "optimism-goerli":
+ return "https://api-goerli-optimistic.etherscan.io";
+ default:
+ }
+ return logger.throwArgumentError("unsupported network", "network", this.network.name);
+ };
+ EtherscanProvider2.prototype.getUrl = function(module3, params) {
+ var query = Object.keys(params).reduce(function(accum, key) {
+ var value = params[key];
+ if (value != null) {
+ accum += "&" + key + "=" + value;
+ }
+ return accum;
+ }, "");
+ var apiKey = this.apiKey ? "&apikey=" + this.apiKey : "";
+ return this.baseUrl + "/api?module=" + module3 + query + apiKey;
+ };
+ EtherscanProvider2.prototype.getPostUrl = function() {
+ return this.baseUrl + "/api";
+ };
+ EtherscanProvider2.prototype.getPostData = function(module3, params) {
+ params.module = module3;
+ params.apikey = this.apiKey;
+ return params;
+ };
+ EtherscanProvider2.prototype.fetch = function(module3, params, post) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var url, payload, procFunc, connection, payloadStr, result;
+ var _this = this;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ url = post ? this.getPostUrl() : this.getUrl(module3, params);
+ payload = post ? this.getPostData(module3, params) : null;
+ procFunc = module3 === "proxy" ? getJsonResult : getResult;
+ this.emit("debug", {
+ action: "request",
+ request: url,
+ provider: this
+ });
+ connection = {
+ url,
+ throttleSlotInterval: 1e3,
+ throttleCallback: function(attempt, url2) {
+ if (_this.isCommunityResource()) {
+ (0, formatter_1.showThrottleMessage)();
+ }
+ return Promise.resolve(true);
+ }
+ };
+ payloadStr = null;
+ if (payload) {
+ connection.headers = { "content-type": "application/x-www-form-urlencoded; charset=UTF-8" };
+ payloadStr = Object.keys(payload).map(function(key) {
+ return key + "=" + payload[key];
+ }).join("&");
+ }
+ return [4, (0, web_1.fetchJson)(connection, payloadStr, procFunc || getJsonResult)];
+ case 1:
+ result = _a.sent();
+ this.emit("debug", {
+ action: "response",
+ request: url,
+ response: (0, properties_1.deepCopy)(result),
+ provider: this
+ });
+ return [2, result];
+ }
+ });
+ });
+ };
+ EtherscanProvider2.prototype.detectNetwork = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ return __generator13(this, function(_a) {
+ return [2, this.network];
+ });
+ });
+ };
+ EtherscanProvider2.prototype.perform = function(method, params) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var _a, postData, error_1, postData, error_2, args, topic0, logs, blocks, i, log, block, _b;
+ return __generator13(this, function(_c) {
+ switch (_c.label) {
+ case 0:
+ _a = method;
+ switch (_a) {
+ case "getBlockNumber":
+ return [3, 1];
+ case "getGasPrice":
+ return [3, 2];
+ case "getBalance":
+ return [3, 3];
+ case "getTransactionCount":
+ return [3, 4];
+ case "getCode":
+ return [3, 5];
+ case "getStorageAt":
+ return [3, 6];
+ case "sendTransaction":
+ return [3, 7];
+ case "getBlock":
+ return [3, 8];
+ case "getTransaction":
+ return [3, 9];
+ case "getTransactionReceipt":
+ return [3, 10];
+ case "call":
+ return [3, 11];
+ case "estimateGas":
+ return [3, 15];
+ case "getLogs":
+ return [3, 19];
+ case "getEtherPrice":
+ return [3, 26];
+ }
+ return [3, 28];
+ case 1:
+ return [2, this.fetch("proxy", { action: "eth_blockNumber" })];
+ case 2:
+ return [2, this.fetch("proxy", { action: "eth_gasPrice" })];
+ case 3:
+ return [2, this.fetch("account", {
+ action: "balance",
+ address: params.address,
+ tag: params.blockTag
+ })];
+ case 4:
+ return [2, this.fetch("proxy", {
+ action: "eth_getTransactionCount",
+ address: params.address,
+ tag: params.blockTag
+ })];
+ case 5:
+ return [2, this.fetch("proxy", {
+ action: "eth_getCode",
+ address: params.address,
+ tag: params.blockTag
+ })];
+ case 6:
+ return [2, this.fetch("proxy", {
+ action: "eth_getStorageAt",
+ address: params.address,
+ position: params.position,
+ tag: params.blockTag
+ })];
+ case 7:
+ return [2, this.fetch("proxy", {
+ action: "eth_sendRawTransaction",
+ hex: params.signedTransaction
+ }, true).catch(function(error) {
+ return checkError("sendTransaction", error, params.signedTransaction);
+ })];
+ case 8:
+ if (params.blockTag) {
+ return [2, this.fetch("proxy", {
+ action: "eth_getBlockByNumber",
+ tag: params.blockTag,
+ boolean: params.includeTransactions ? "true" : "false"
+ })];
+ }
+ throw new Error("getBlock by blockHash not implemented");
+ case 9:
+ return [2, this.fetch("proxy", {
+ action: "eth_getTransactionByHash",
+ txhash: params.transactionHash
+ })];
+ case 10:
+ return [2, this.fetch("proxy", {
+ action: "eth_getTransactionReceipt",
+ txhash: params.transactionHash
+ })];
+ case 11:
+ if (params.blockTag !== "latest") {
+ throw new Error("EtherscanProvider does not support blockTag for call");
+ }
+ postData = getTransactionPostData(params.transaction);
+ postData.module = "proxy";
+ postData.action = "eth_call";
+ _c.label = 12;
+ case 12:
+ _c.trys.push([12, 14, , 15]);
+ return [4, this.fetch("proxy", postData, true)];
+ case 13:
+ return [2, _c.sent()];
+ case 14:
+ error_1 = _c.sent();
+ return [2, checkError("call", error_1, params.transaction)];
+ case 15:
+ postData = getTransactionPostData(params.transaction);
+ postData.module = "proxy";
+ postData.action = "eth_estimateGas";
+ _c.label = 16;
+ case 16:
+ _c.trys.push([16, 18, , 19]);
+ return [4, this.fetch("proxy", postData, true)];
+ case 17:
+ return [2, _c.sent()];
+ case 18:
+ error_2 = _c.sent();
+ return [2, checkError("estimateGas", error_2, params.transaction)];
+ case 19:
+ args = { action: "getLogs" };
+ if (params.filter.fromBlock) {
+ args.fromBlock = checkLogTag(params.filter.fromBlock);
+ }
+ if (params.filter.toBlock) {
+ args.toBlock = checkLogTag(params.filter.toBlock);
+ }
+ if (params.filter.address) {
+ args.address = params.filter.address;
+ }
+ if (params.filter.topics && params.filter.topics.length > 0) {
+ if (params.filter.topics.length > 1) {
+ logger.throwError("unsupported topic count", logger_1.Logger.errors.UNSUPPORTED_OPERATION, { topics: params.filter.topics });
+ }
+ if (params.filter.topics.length === 1) {
+ topic0 = params.filter.topics[0];
+ if (typeof topic0 !== "string" || topic0.length !== 66) {
+ logger.throwError("unsupported topic format", logger_1.Logger.errors.UNSUPPORTED_OPERATION, { topic0 });
+ }
+ args.topic0 = topic0;
+ }
+ }
+ return [4, this.fetch("logs", args)];
+ case 20:
+ logs = _c.sent();
+ blocks = {};
+ i = 0;
+ _c.label = 21;
+ case 21:
+ if (!(i < logs.length))
+ return [3, 25];
+ log = logs[i];
+ if (log.blockHash != null) {
+ return [3, 24];
+ }
+ if (!(blocks[log.blockNumber] == null))
+ return [3, 23];
+ return [4, this.getBlock(log.blockNumber)];
+ case 22:
+ block = _c.sent();
+ if (block) {
+ blocks[log.blockNumber] = block.hash;
+ }
+ _c.label = 23;
+ case 23:
+ log.blockHash = blocks[log.blockNumber];
+ _c.label = 24;
+ case 24:
+ i++;
+ return [3, 21];
+ case 25:
+ return [2, logs];
+ case 26:
+ if (this.network.name !== "homestead") {
+ return [2, 0];
+ }
+ _b = parseFloat;
+ return [4, this.fetch("stats", { action: "ethprice" })];
+ case 27:
+ return [2, _b.apply(void 0, [_c.sent().ethusd])];
+ case 28:
+ return [3, 29];
+ case 29:
+ return [2, _super.prototype.perform.call(this, method, params)];
+ }
+ });
+ });
+ };
+ EtherscanProvider2.prototype.getHistory = function(addressOrName, startBlock, endBlock) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var params, result;
+ var _a;
+ var _this = this;
+ return __generator13(this, function(_b) {
+ switch (_b.label) {
+ case 0:
+ _a = {
+ action: "txlist"
+ };
+ return [4, this.resolveName(addressOrName)];
+ case 1:
+ params = (_a.address = _b.sent(), _a.startblock = startBlock == null ? 0 : startBlock, _a.endblock = endBlock == null ? 99999999 : endBlock, _a.sort = "asc", _a);
+ return [4, this.fetch("account", params)];
+ case 2:
+ result = _b.sent();
+ return [2, result.map(function(tx) {
+ ["contractAddress", "to"].forEach(function(key) {
+ if (tx[key] == "") {
+ delete tx[key];
+ }
+ });
+ if (tx.creates == null && tx.contractAddress != null) {
+ tx.creates = tx.contractAddress;
+ }
+ var item = _this.formatter.transactionResponse(tx);
+ if (tx.timeStamp) {
+ item.timestamp = parseInt(tx.timeStamp);
+ }
+ return item;
+ })];
+ }
+ });
+ });
+ };
+ EtherscanProvider2.prototype.isCommunityResource = function() {
+ return this.apiKey == null;
+ };
+ return EtherscanProvider2;
+ }(base_provider_1.BaseProvider)
+ );
+ exports2.EtherscanProvider = EtherscanProvider;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/fallback-provider.js
+var require_fallback_provider = __commonJS({
+ "node_modules/@ethersproject/providers/lib/fallback-provider.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ var __generator13 = exports2 && exports2.__generator || function(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.FallbackProvider = void 0;
+ var abstract_provider_1 = require_lib20();
+ var bignumber_1 = require_lib7();
+ var bytes_1 = require_lib6();
+ var properties_1 = require_lib12();
+ var random_1 = require_lib28();
+ var web_1 = require_lib32();
+ var base_provider_1 = require_base_provider();
+ var formatter_1 = require_formatter();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ function now() {
+ return (/* @__PURE__ */ new Date()).getTime();
+ }
+ function checkNetworks(networks) {
+ var result = null;
+ for (var i = 0; i < networks.length; i++) {
+ var network = networks[i];
+ if (network == null) {
+ return null;
+ }
+ if (result) {
+ if (!(result.name === network.name && result.chainId === network.chainId && (result.ensAddress === network.ensAddress || result.ensAddress == null && network.ensAddress == null))) {
+ logger.throwArgumentError("provider mismatch", "networks", networks);
+ }
+ } else {
+ result = network;
+ }
+ }
+ return result;
+ }
+ function median(values, maxDelta) {
+ values = values.slice().sort();
+ var middle = Math.floor(values.length / 2);
+ if (values.length % 2) {
+ return values[middle];
+ }
+ var a = values[middle - 1], b = values[middle];
+ if (maxDelta != null && Math.abs(a - b) > maxDelta) {
+ return null;
+ }
+ return (a + b) / 2;
+ }
+ function serialize(value) {
+ if (value === null) {
+ return "null";
+ } else if (typeof value === "number" || typeof value === "boolean") {
+ return JSON.stringify(value);
+ } else if (typeof value === "string") {
+ return value;
+ } else if (bignumber_1.BigNumber.isBigNumber(value)) {
+ return value.toString();
+ } else if (Array.isArray(value)) {
+ return JSON.stringify(value.map(function(i) {
+ return serialize(i);
+ }));
+ } else if (typeof value === "object") {
+ var keys = Object.keys(value);
+ keys.sort();
+ return "{" + keys.map(function(key) {
+ var v = value[key];
+ if (typeof v === "function") {
+ v = "[function]";
+ } else {
+ v = serialize(v);
+ }
+ return JSON.stringify(key) + ":" + v;
+ }).join(",") + "}";
+ }
+ throw new Error("unknown value type: " + typeof value);
+ }
+ var nextRid = 1;
+ function stall(duration) {
+ var cancel = null;
+ var timer = null;
+ var promise = new Promise(function(resolve) {
+ cancel = function() {
+ if (timer) {
+ clearTimeout(timer);
+ timer = null;
+ }
+ resolve();
+ };
+ timer = setTimeout(cancel, duration);
+ });
+ var wait = function(func) {
+ promise = promise.then(func);
+ return promise;
+ };
+ function getPromise() {
+ return promise;
+ }
+ return { cancel, getPromise, wait };
+ }
+ var ForwardErrors = [
+ logger_1.Logger.errors.CALL_EXCEPTION,
+ logger_1.Logger.errors.INSUFFICIENT_FUNDS,
+ logger_1.Logger.errors.NONCE_EXPIRED,
+ logger_1.Logger.errors.REPLACEMENT_UNDERPRICED,
+ logger_1.Logger.errors.UNPREDICTABLE_GAS_LIMIT
+ ];
+ var ForwardProperties = [
+ "address",
+ "args",
+ "errorArgs",
+ "errorSignature",
+ "method",
+ "transaction"
+ ];
+ function exposeDebugConfig(config, now2) {
+ var result = {
+ weight: config.weight
+ };
+ Object.defineProperty(result, "provider", { get: function() {
+ return config.provider;
+ } });
+ if (config.start) {
+ result.start = config.start;
+ }
+ if (now2) {
+ result.duration = now2 - config.start;
+ }
+ if (config.done) {
+ if (config.error) {
+ result.error = config.error;
+ } else {
+ result.result = config.result || null;
+ }
+ }
+ return result;
+ }
+ function normalizedTally(normalize, quorum) {
+ return function(configs) {
+ var tally = {};
+ configs.forEach(function(c) {
+ var value = normalize(c.result);
+ if (!tally[value]) {
+ tally[value] = { count: 0, result: c.result };
+ }
+ tally[value].count++;
+ });
+ var keys = Object.keys(tally);
+ for (var i = 0; i < keys.length; i++) {
+ var check = tally[keys[i]];
+ if (check.count >= quorum) {
+ return check.result;
+ }
+ }
+ return void 0;
+ };
+ }
+ function getProcessFunc(provider, method, params) {
+ var normalize = serialize;
+ switch (method) {
+ case "getBlockNumber":
+ return function(configs) {
+ var values = configs.map(function(c) {
+ return c.result;
+ });
+ var blockNumber = median(configs.map(function(c) {
+ return c.result;
+ }), 2);
+ if (blockNumber == null) {
+ return void 0;
+ }
+ blockNumber = Math.ceil(blockNumber);
+ if (values.indexOf(blockNumber + 1) >= 0) {
+ blockNumber++;
+ }
+ if (blockNumber >= provider._highestBlockNumber) {
+ provider._highestBlockNumber = blockNumber;
+ }
+ return provider._highestBlockNumber;
+ };
+ case "getGasPrice":
+ return function(configs) {
+ var values = configs.map(function(c) {
+ return c.result;
+ });
+ values.sort();
+ return values[Math.floor(values.length / 2)];
+ };
+ case "getEtherPrice":
+ return function(configs) {
+ return median(configs.map(function(c) {
+ return c.result;
+ }));
+ };
+ case "getBalance":
+ case "getTransactionCount":
+ case "getCode":
+ case "getStorageAt":
+ case "call":
+ case "estimateGas":
+ case "getLogs":
+ break;
+ case "getTransaction":
+ case "getTransactionReceipt":
+ normalize = function(tx) {
+ if (tx == null) {
+ return null;
+ }
+ tx = (0, properties_1.shallowCopy)(tx);
+ tx.confirmations = -1;
+ return serialize(tx);
+ };
+ break;
+ case "getBlock":
+ if (params.includeTransactions) {
+ normalize = function(block) {
+ if (block == null) {
+ return null;
+ }
+ block = (0, properties_1.shallowCopy)(block);
+ block.transactions = block.transactions.map(function(tx) {
+ tx = (0, properties_1.shallowCopy)(tx);
+ tx.confirmations = -1;
+ return tx;
+ });
+ return serialize(block);
+ };
+ } else {
+ normalize = function(block) {
+ if (block == null) {
+ return null;
+ }
+ return serialize(block);
+ };
+ }
+ break;
+ default:
+ throw new Error("unknown method: " + method);
+ }
+ return normalizedTally(normalize, provider.quorum);
+ }
+ function waitForSync(config, blockNumber) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var provider;
+ return __generator13(this, function(_a) {
+ provider = config.provider;
+ if (provider.blockNumber != null && provider.blockNumber >= blockNumber || blockNumber === -1) {
+ return [2, provider];
+ }
+ return [2, (0, web_1.poll)(function() {
+ return new Promise(function(resolve, reject) {
+ setTimeout(function() {
+ if (provider.blockNumber >= blockNumber) {
+ return resolve(provider);
+ }
+ if (config.cancelled) {
+ return resolve(null);
+ }
+ return resolve(void 0);
+ }, 0);
+ });
+ }, { oncePoll: provider })];
+ });
+ });
+ }
+ function getRunner(config, currentBlockNumber, method, params) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var provider, _a, filter;
+ return __generator13(this, function(_b) {
+ switch (_b.label) {
+ case 0:
+ provider = config.provider;
+ _a = method;
+ switch (_a) {
+ case "getBlockNumber":
+ return [3, 1];
+ case "getGasPrice":
+ return [3, 1];
+ case "getEtherPrice":
+ return [3, 2];
+ case "getBalance":
+ return [3, 3];
+ case "getTransactionCount":
+ return [3, 3];
+ case "getCode":
+ return [3, 3];
+ case "getStorageAt":
+ return [3, 6];
+ case "getBlock":
+ return [3, 9];
+ case "call":
+ return [3, 12];
+ case "estimateGas":
+ return [3, 12];
+ case "getTransaction":
+ return [3, 15];
+ case "getTransactionReceipt":
+ return [3, 15];
+ case "getLogs":
+ return [3, 16];
+ }
+ return [3, 19];
+ case 1:
+ return [2, provider[method]()];
+ case 2:
+ if (provider.getEtherPrice) {
+ return [2, provider.getEtherPrice()];
+ }
+ return [3, 19];
+ case 3:
+ if (!(params.blockTag && (0, bytes_1.isHexString)(params.blockTag)))
+ return [3, 5];
+ return [4, waitForSync(config, currentBlockNumber)];
+ case 4:
+ provider = _b.sent();
+ _b.label = 5;
+ case 5:
+ return [2, provider[method](params.address, params.blockTag || "latest")];
+ case 6:
+ if (!(params.blockTag && (0, bytes_1.isHexString)(params.blockTag)))
+ return [3, 8];
+ return [4, waitForSync(config, currentBlockNumber)];
+ case 7:
+ provider = _b.sent();
+ _b.label = 8;
+ case 8:
+ return [2, provider.getStorageAt(params.address, params.position, params.blockTag || "latest")];
+ case 9:
+ if (!(params.blockTag && (0, bytes_1.isHexString)(params.blockTag)))
+ return [3, 11];
+ return [4, waitForSync(config, currentBlockNumber)];
+ case 10:
+ provider = _b.sent();
+ _b.label = 11;
+ case 11:
+ return [2, provider[params.includeTransactions ? "getBlockWithTransactions" : "getBlock"](params.blockTag || params.blockHash)];
+ case 12:
+ if (!(params.blockTag && (0, bytes_1.isHexString)(params.blockTag)))
+ return [3, 14];
+ return [4, waitForSync(config, currentBlockNumber)];
+ case 13:
+ provider = _b.sent();
+ _b.label = 14;
+ case 14:
+ if (method === "call" && params.blockTag) {
+ return [2, provider[method](params.transaction, params.blockTag)];
+ }
+ return [2, provider[method](params.transaction)];
+ case 15:
+ return [2, provider[method](params.transactionHash)];
+ case 16:
+ filter = params.filter;
+ if (!(filter.fromBlock && (0, bytes_1.isHexString)(filter.fromBlock) || filter.toBlock && (0, bytes_1.isHexString)(filter.toBlock)))
+ return [3, 18];
+ return [4, waitForSync(config, currentBlockNumber)];
+ case 17:
+ provider = _b.sent();
+ _b.label = 18;
+ case 18:
+ return [2, provider.getLogs(filter)];
+ case 19:
+ return [2, logger.throwError("unknown method error", logger_1.Logger.errors.UNKNOWN_ERROR, {
+ method,
+ params
+ })];
+ }
+ });
+ });
+ }
+ var FallbackProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(FallbackProvider2, _super);
+ function FallbackProvider2(providers, quorum) {
+ var _this = this;
+ if (providers.length === 0) {
+ logger.throwArgumentError("missing providers", "providers", providers);
+ }
+ var providerConfigs = providers.map(function(configOrProvider, index) {
+ if (abstract_provider_1.Provider.isProvider(configOrProvider)) {
+ var stallTimeout = (0, formatter_1.isCommunityResource)(configOrProvider) ? 2e3 : 750;
+ var priority = 1;
+ return Object.freeze({ provider: configOrProvider, weight: 1, stallTimeout, priority });
+ }
+ var config = (0, properties_1.shallowCopy)(configOrProvider);
+ if (config.priority == null) {
+ config.priority = 1;
+ }
+ if (config.stallTimeout == null) {
+ config.stallTimeout = (0, formatter_1.isCommunityResource)(configOrProvider) ? 2e3 : 750;
+ }
+ if (config.weight == null) {
+ config.weight = 1;
+ }
+ var weight = config.weight;
+ if (weight % 1 || weight > 512 || weight < 1) {
+ logger.throwArgumentError("invalid weight; must be integer in [1, 512]", "providers[" + index + "].weight", weight);
+ }
+ return Object.freeze(config);
+ });
+ var total = providerConfigs.reduce(function(accum, c) {
+ return accum + c.weight;
+ }, 0);
+ if (quorum == null) {
+ quorum = total / 2;
+ } else if (quorum > total) {
+ logger.throwArgumentError("quorum will always fail; larger than total weight", "quorum", quorum);
+ }
+ var networkOrReady = checkNetworks(providerConfigs.map(function(c) {
+ return c.provider.network;
+ }));
+ if (networkOrReady == null) {
+ networkOrReady = new Promise(function(resolve, reject) {
+ setTimeout(function() {
+ _this.detectNetwork().then(resolve, reject);
+ }, 0);
+ });
+ }
+ _this = _super.call(this, networkOrReady) || this;
+ (0, properties_1.defineReadOnly)(_this, "providerConfigs", Object.freeze(providerConfigs));
+ (0, properties_1.defineReadOnly)(_this, "quorum", quorum);
+ _this._highestBlockNumber = -1;
+ return _this;
+ }
+ FallbackProvider2.prototype.detectNetwork = function() {
+ return __awaiter13(this, void 0, void 0, function() {
+ var networks;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ return [4, Promise.all(this.providerConfigs.map(function(c) {
+ return c.provider.getNetwork();
+ }))];
+ case 1:
+ networks = _a.sent();
+ return [2, checkNetworks(networks)];
+ }
+ });
+ });
+ };
+ FallbackProvider2.prototype.perform = function(method, params) {
+ return __awaiter13(this, void 0, void 0, function() {
+ var results, i_1, result, processFunc, configs, currentBlockNumber, i, first, _loop_1, this_1, state_1;
+ var _this = this;
+ return __generator13(this, function(_a) {
+ switch (_a.label) {
+ case 0:
+ if (!(method === "sendTransaction"))
+ return [3, 2];
+ return [4, Promise.all(this.providerConfigs.map(function(c) {
+ return c.provider.sendTransaction(params.signedTransaction).then(function(result2) {
+ return result2.hash;
+ }, function(error) {
+ return error;
+ });
+ }))];
+ case 1:
+ results = _a.sent();
+ for (i_1 = 0; i_1 < results.length; i_1++) {
+ result = results[i_1];
+ if (typeof result === "string") {
+ return [2, result];
+ }
+ }
+ throw results[0];
+ case 2:
+ if (!(this._highestBlockNumber === -1 && method !== "getBlockNumber"))
+ return [3, 4];
+ return [4, this.getBlockNumber()];
+ case 3:
+ _a.sent();
+ _a.label = 4;
+ case 4:
+ processFunc = getProcessFunc(this, method, params);
+ configs = (0, random_1.shuffled)(this.providerConfigs.map(properties_1.shallowCopy));
+ configs.sort(function(a, b) {
+ return a.priority - b.priority;
+ });
+ currentBlockNumber = this._highestBlockNumber;
+ i = 0;
+ first = true;
+ _loop_1 = function() {
+ var t0, inflightWeight, _loop_2, waiting, results2, result2, errors;
+ return __generator13(this, function(_b) {
+ switch (_b.label) {
+ case 0:
+ t0 = now();
+ inflightWeight = configs.filter(function(c) {
+ return c.runner && t0 - c.start < c.stallTimeout;
+ }).reduce(function(accum, c) {
+ return accum + c.weight;
+ }, 0);
+ _loop_2 = function() {
+ var config = configs[i++];
+ var rid = nextRid++;
+ config.start = now();
+ config.staller = stall(config.stallTimeout);
+ config.staller.wait(function() {
+ config.staller = null;
+ });
+ config.runner = getRunner(config, currentBlockNumber, method, params).then(function(result3) {
+ config.done = true;
+ config.result = result3;
+ if (_this.listenerCount("debug")) {
+ _this.emit("debug", {
+ action: "request",
+ rid,
+ backend: exposeDebugConfig(config, now()),
+ request: { method, params: (0, properties_1.deepCopy)(params) },
+ provider: _this
+ });
+ }
+ }, function(error) {
+ config.done = true;
+ config.error = error;
+ if (_this.listenerCount("debug")) {
+ _this.emit("debug", {
+ action: "request",
+ rid,
+ backend: exposeDebugConfig(config, now()),
+ request: { method, params: (0, properties_1.deepCopy)(params) },
+ provider: _this
+ });
+ }
+ });
+ if (this_1.listenerCount("debug")) {
+ this_1.emit("debug", {
+ action: "request",
+ rid,
+ backend: exposeDebugConfig(config, null),
+ request: { method, params: (0, properties_1.deepCopy)(params) },
+ provider: this_1
+ });
+ }
+ inflightWeight += config.weight;
+ };
+ while (inflightWeight < this_1.quorum && i < configs.length) {
+ _loop_2();
+ }
+ waiting = [];
+ configs.forEach(function(c) {
+ if (c.done || !c.runner) {
+ return;
+ }
+ waiting.push(c.runner);
+ if (c.staller) {
+ waiting.push(c.staller.getPromise());
+ }
+ });
+ if (!waiting.length)
+ return [3, 2];
+ return [4, Promise.race(waiting)];
+ case 1:
+ _b.sent();
+ _b.label = 2;
+ case 2:
+ results2 = configs.filter(function(c) {
+ return c.done && c.error == null;
+ });
+ if (!(results2.length >= this_1.quorum))
+ return [3, 5];
+ result2 = processFunc(results2);
+ if (result2 !== void 0) {
+ configs.forEach(function(c) {
+ if (c.staller) {
+ c.staller.cancel();
+ }
+ c.cancelled = true;
+ });
+ return [2, { value: result2 }];
+ }
+ if (!!first)
+ return [3, 4];
+ return [4, stall(100).getPromise()];
+ case 3:
+ _b.sent();
+ _b.label = 4;
+ case 4:
+ first = false;
+ _b.label = 5;
+ case 5:
+ errors = configs.reduce(function(accum, c) {
+ if (!c.done || c.error == null) {
+ return accum;
+ }
+ var code = c.error.code;
+ if (ForwardErrors.indexOf(code) >= 0) {
+ if (!accum[code]) {
+ accum[code] = { error: c.error, weight: 0 };
+ }
+ accum[code].weight += c.weight;
+ }
+ return accum;
+ }, {});
+ Object.keys(errors).forEach(function(errorCode) {
+ var tally = errors[errorCode];
+ if (tally.weight < _this.quorum) {
+ return;
+ }
+ configs.forEach(function(c) {
+ if (c.staller) {
+ c.staller.cancel();
+ }
+ c.cancelled = true;
+ });
+ var e = tally.error;
+ var props = {};
+ ForwardProperties.forEach(function(name) {
+ if (e[name] == null) {
+ return;
+ }
+ props[name] = e[name];
+ });
+ logger.throwError(e.reason || e.message, errorCode, props);
+ });
+ if (configs.filter(function(c) {
+ return !c.done;
+ }).length === 0) {
+ return [2, "break"];
+ }
+ return [
+ 2
+ /*return*/
+ ];
+ }
+ });
+ };
+ this_1 = this;
+ _a.label = 5;
+ case 5:
+ if (false)
+ return [3, 7];
+ return [5, _loop_1()];
+ case 6:
+ state_1 = _a.sent();
+ if (typeof state_1 === "object")
+ return [2, state_1.value];
+ if (state_1 === "break")
+ return [3, 7];
+ return [3, 5];
+ case 7:
+ configs.forEach(function(c) {
+ if (c.staller) {
+ c.staller.cancel();
+ }
+ c.cancelled = true;
+ });
+ return [2, logger.throwError("failed to meet quorum", logger_1.Logger.errors.SERVER_ERROR, {
+ method,
+ params,
+ //results: configs.map((c) => c.result),
+ //errors: configs.map((c) => c.error),
+ results: configs.map(function(c) {
+ return exposeDebugConfig(c);
+ }),
+ provider: this
+ })];
+ }
+ });
+ });
+ };
+ return FallbackProvider2;
+ }(base_provider_1.BaseProvider)
+ );
+ exports2.FallbackProvider = FallbackProvider;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/ipc-provider.js
+var require_ipc_provider = __commonJS({
+ "node_modules/@ethersproject/providers/lib/ipc-provider.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.IpcProvider = void 0;
+ var net_1 = require("net");
+ var properties_1 = require_lib12();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ var json_rpc_provider_1 = require_json_rpc_provider();
+ var IpcProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(IpcProvider2, _super);
+ function IpcProvider2(path, network) {
+ var _this = this;
+ if (path == null) {
+ logger.throwError("missing path", logger_1.Logger.errors.MISSING_ARGUMENT, { arg: "path" });
+ }
+ _this = _super.call(this, "ipc://" + path, network) || this;
+ (0, properties_1.defineReadOnly)(_this, "path", path);
+ return _this;
+ }
+ IpcProvider2.prototype.send = function(method, params) {
+ var _this = this;
+ var payload = JSON.stringify({
+ method,
+ params,
+ id: 42,
+ jsonrpc: "2.0"
+ });
+ return new Promise(function(resolve, reject) {
+ var response = Buffer.alloc(0);
+ var stream = (0, net_1.connect)(_this.path);
+ stream.on("data", function(data) {
+ response = Buffer.concat([response, data]);
+ });
+ stream.on("end", function() {
+ try {
+ resolve(JSON.parse(response.toString()).result);
+ stream.destroy();
+ } catch (error) {
+ reject(error);
+ stream.destroy();
+ }
+ });
+ stream.on("error", function(error) {
+ reject(error);
+ stream.destroy();
+ });
+ stream.write(payload);
+ stream.end();
+ });
+ };
+ return IpcProvider2;
+ }(json_rpc_provider_1.JsonRpcProvider)
+ );
+ exports2.IpcProvider = IpcProvider;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/infura-provider.js
+var require_infura_provider = __commonJS({
+ "node_modules/@ethersproject/providers/lib/infura-provider.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.InfuraProvider = exports2.InfuraWebSocketProvider = void 0;
+ var properties_1 = require_lib12();
+ var websocket_provider_1 = require_websocket_provider();
+ var formatter_1 = require_formatter();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ var url_json_rpc_provider_1 = require_url_json_rpc_provider();
+ var defaultProjectId = "84842078b09946638c03157f83405213";
+ var InfuraWebSocketProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(InfuraWebSocketProvider2, _super);
+ function InfuraWebSocketProvider2(network, apiKey) {
+ var _this = this;
+ var provider = new InfuraProvider(network, apiKey);
+ var connection = provider.connection;
+ if (connection.password) {
+ logger.throwError("INFURA WebSocket project secrets unsupported", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
+ operation: "InfuraProvider.getWebSocketProvider()"
+ });
+ }
+ var url = connection.url.replace(/^http/i, "ws").replace("/v3/", "/ws/v3/");
+ _this = _super.call(this, url, network) || this;
+ (0, properties_1.defineReadOnly)(_this, "apiKey", provider.projectId);
+ (0, properties_1.defineReadOnly)(_this, "projectId", provider.projectId);
+ (0, properties_1.defineReadOnly)(_this, "projectSecret", provider.projectSecret);
+ return _this;
+ }
+ InfuraWebSocketProvider2.prototype.isCommunityResource = function() {
+ return this.projectId === defaultProjectId;
+ };
+ return InfuraWebSocketProvider2;
+ }(websocket_provider_1.WebSocketProvider)
+ );
+ exports2.InfuraWebSocketProvider = InfuraWebSocketProvider;
+ var InfuraProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(InfuraProvider2, _super);
+ function InfuraProvider2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ InfuraProvider2.getWebSocketProvider = function(network, apiKey) {
+ return new InfuraWebSocketProvider(network, apiKey);
+ };
+ InfuraProvider2.getApiKey = function(apiKey) {
+ var apiKeyObj = {
+ apiKey: defaultProjectId,
+ projectId: defaultProjectId,
+ projectSecret: null
+ };
+ if (apiKey == null) {
+ return apiKeyObj;
+ }
+ if (typeof apiKey === "string") {
+ apiKeyObj.projectId = apiKey;
+ } else if (apiKey.projectSecret != null) {
+ logger.assertArgument(typeof apiKey.projectId === "string", "projectSecret requires a projectId", "projectId", apiKey.projectId);
+ logger.assertArgument(typeof apiKey.projectSecret === "string", "invalid projectSecret", "projectSecret", "[REDACTED]");
+ apiKeyObj.projectId = apiKey.projectId;
+ apiKeyObj.projectSecret = apiKey.projectSecret;
+ } else if (apiKey.projectId) {
+ apiKeyObj.projectId = apiKey.projectId;
+ }
+ apiKeyObj.apiKey = apiKeyObj.projectId;
+ return apiKeyObj;
+ };
+ InfuraProvider2.getUrl = function(network, apiKey) {
+ var host = null;
+ switch (network ? network.name : "unknown") {
+ case "homestead":
+ host = "mainnet.infura.io";
+ break;
+ case "goerli":
+ host = "goerli.infura.io";
+ break;
+ case "sepolia":
+ host = "sepolia.infura.io";
+ break;
+ case "matic":
+ host = "polygon-mainnet.infura.io";
+ break;
+ case "maticmum":
+ host = "polygon-mumbai.infura.io";
+ break;
+ case "optimism":
+ host = "optimism-mainnet.infura.io";
+ break;
+ case "optimism-goerli":
+ host = "optimism-goerli.infura.io";
+ break;
+ case "arbitrum":
+ host = "arbitrum-mainnet.infura.io";
+ break;
+ case "arbitrum-goerli":
+ host = "arbitrum-goerli.infura.io";
+ break;
+ default:
+ logger.throwError("unsupported network", logger_1.Logger.errors.INVALID_ARGUMENT, {
+ argument: "network",
+ value: network
+ });
+ }
+ var connection = {
+ allowGzip: true,
+ url: "https://" + host + "/v3/" + apiKey.projectId,
+ throttleCallback: function(attempt, url) {
+ if (apiKey.projectId === defaultProjectId) {
+ (0, formatter_1.showThrottleMessage)();
+ }
+ return Promise.resolve(true);
+ }
+ };
+ if (apiKey.projectSecret != null) {
+ connection.user = "";
+ connection.password = apiKey.projectSecret;
+ }
+ return connection;
+ };
+ InfuraProvider2.prototype.isCommunityResource = function() {
+ return this.projectId === defaultProjectId;
+ };
+ return InfuraProvider2;
+ }(url_json_rpc_provider_1.UrlJsonRpcProvider)
+ );
+ exports2.InfuraProvider = InfuraProvider;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/json-rpc-batch-provider.js
+var require_json_rpc_batch_provider = __commonJS({
+ "node_modules/@ethersproject/providers/lib/json-rpc-batch-provider.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.JsonRpcBatchProvider = void 0;
+ var properties_1 = require_lib12();
+ var web_1 = require_lib32();
+ var json_rpc_provider_1 = require_json_rpc_provider();
+ var JsonRpcBatchProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(JsonRpcBatchProvider2, _super);
+ function JsonRpcBatchProvider2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ JsonRpcBatchProvider2.prototype.send = function(method, params) {
+ var _this = this;
+ var request = {
+ method,
+ params,
+ id: this._nextId++,
+ jsonrpc: "2.0"
+ };
+ if (this._pendingBatch == null) {
+ this._pendingBatch = [];
+ }
+ var inflightRequest = { request, resolve: null, reject: null };
+ var promise = new Promise(function(resolve, reject) {
+ inflightRequest.resolve = resolve;
+ inflightRequest.reject = reject;
+ });
+ this._pendingBatch.push(inflightRequest);
+ if (!this._pendingBatchAggregator) {
+ this._pendingBatchAggregator = setTimeout(function() {
+ var batch = _this._pendingBatch;
+ _this._pendingBatch = null;
+ _this._pendingBatchAggregator = null;
+ var request2 = batch.map(function(inflight) {
+ return inflight.request;
+ });
+ _this.emit("debug", {
+ action: "requestBatch",
+ request: (0, properties_1.deepCopy)(request2),
+ provider: _this
+ });
+ return (0, web_1.fetchJson)(_this.connection, JSON.stringify(request2)).then(function(result) {
+ _this.emit("debug", {
+ action: "response",
+ request: request2,
+ response: result,
+ provider: _this
+ });
+ batch.forEach(function(inflightRequest2, index) {
+ var payload = result[index];
+ if (payload.error) {
+ var error = new Error(payload.error.message);
+ error.code = payload.error.code;
+ error.data = payload.error.data;
+ inflightRequest2.reject(error);
+ } else {
+ inflightRequest2.resolve(payload.result);
+ }
+ });
+ }, function(error) {
+ _this.emit("debug", {
+ action: "response",
+ error,
+ request: request2,
+ provider: _this
+ });
+ batch.forEach(function(inflightRequest2) {
+ inflightRequest2.reject(error);
+ });
+ });
+ }, 10);
+ }
+ return promise;
+ };
+ return JsonRpcBatchProvider2;
+ }(json_rpc_provider_1.JsonRpcProvider)
+ );
+ exports2.JsonRpcBatchProvider = JsonRpcBatchProvider;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/nodesmith-provider.js
+var require_nodesmith_provider = __commonJS({
+ "node_modules/@ethersproject/providers/lib/nodesmith-provider.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.NodesmithProvider = void 0;
+ var url_json_rpc_provider_1 = require_url_json_rpc_provider();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ var defaultApiKey = "ETHERS_JS_SHARED";
+ var NodesmithProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(NodesmithProvider2, _super);
+ function NodesmithProvider2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ NodesmithProvider2.getApiKey = function(apiKey) {
+ if (apiKey && typeof apiKey !== "string") {
+ logger.throwArgumentError("invalid apiKey", "apiKey", apiKey);
+ }
+ return apiKey || defaultApiKey;
+ };
+ NodesmithProvider2.getUrl = function(network, apiKey) {
+ logger.warn("NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.");
+ var host = null;
+ switch (network.name) {
+ case "homestead":
+ host = "https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc";
+ break;
+ case "ropsten":
+ host = "https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc";
+ break;
+ case "rinkeby":
+ host = "https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc";
+ break;
+ case "goerli":
+ host = "https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc";
+ break;
+ case "kovan":
+ host = "https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc";
+ break;
+ default:
+ logger.throwArgumentError("unsupported network", "network", arguments[0]);
+ }
+ return host + "?apiKey=" + apiKey;
+ };
+ return NodesmithProvider2;
+ }(url_json_rpc_provider_1.UrlJsonRpcProvider)
+ );
+ exports2.NodesmithProvider = NodesmithProvider;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/pocket-provider.js
+var require_pocket_provider = __commonJS({
+ "node_modules/@ethersproject/providers/lib/pocket-provider.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.PocketProvider = void 0;
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ var url_json_rpc_provider_1 = require_url_json_rpc_provider();
+ var defaultApplicationId = "62e1ad51b37b8e00394bda3b";
+ var PocketProvider = (
+ /** @class */
+ function(_super) {
+ __extends13(PocketProvider2, _super);
+ function PocketProvider2() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ PocketProvider2.getApiKey = function(apiKey) {
+ var apiKeyObj = {
+ applicationId: null,
+ loadBalancer: true,
+ applicationSecretKey: null
+ };
+ if (apiKey == null) {
+ apiKeyObj.applicationId = defaultApplicationId;
+ } else if (typeof apiKey === "string") {
+ apiKeyObj.applicationId = apiKey;
+ } else if (apiKey.applicationSecretKey != null) {
+ apiKeyObj.applicationId = apiKey.applicationId;
+ apiKeyObj.applicationSecretKey = apiKey.applicationSecretKey;
+ } else if (apiKey.applicationId) {
+ apiKeyObj.applicationId = apiKey.applicationId;
+ } else {
+ logger.throwArgumentError("unsupported PocketProvider apiKey", "apiKey", apiKey);
+ }
+ return apiKeyObj;
+ };
+ PocketProvider2.getUrl = function(network, apiKey) {
+ var host = null;
+ switch (network ? network.name : "unknown") {
+ case "goerli":
+ host = "eth-goerli.gateway.pokt.network";
+ break;
+ case "homestead":
+ host = "eth-mainnet.gateway.pokt.network";
+ break;
+ case "kovan":
+ host = "poa-kovan.gateway.pokt.network";
+ break;
+ case "matic":
+ host = "poly-mainnet.gateway.pokt.network";
+ break;
+ case "maticmum":
+ host = "polygon-mumbai-rpc.gateway.pokt.network";
+ break;
+ case "rinkeby":
+ host = "eth-rinkeby.gateway.pokt.network";
+ break;
+ case "ropsten":
+ host = "eth-ropsten.gateway.pokt.network";
+ break;
+ default:
+ logger.throwError("unsupported network", logger_1.Logger.errors.INVALID_ARGUMENT, {
+ argument: "network",
+ value: network
+ });
+ }
+ var url = "https://" + host + "/v1/lb/" + apiKey.applicationId;
+ var connection = { headers: {}, url };
+ if (apiKey.applicationSecretKey != null) {
+ connection.user = "";
+ connection.password = apiKey.applicationSecretKey;
+ }
+ return connection;
+ };
+ PocketProvider2.prototype.isCommunityResource = function() {
+ return this.applicationId === defaultApplicationId;
+ };
+ return PocketProvider2;
+ }(url_json_rpc_provider_1.UrlJsonRpcProvider)
+ );
+ exports2.PocketProvider = PocketProvider;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/web3-provider.js
+var require_web3_provider = __commonJS({
+ "node_modules/@ethersproject/providers/lib/web3-provider.js"(exports2) {
+ "use strict";
+ var __extends13 = exports2 && exports2.__extends || /* @__PURE__ */ function() {
+ var extendStatics13 = function(d, b) {
+ extendStatics13 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (Object.prototype.hasOwnProperty.call(b2, p))
+ d2[p] = b2[p];
+ };
+ return extendStatics13(d, b);
+ };
+ return function(d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics13(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ }();
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.Web3Provider = void 0;
+ var properties_1 = require_lib12();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ var json_rpc_provider_1 = require_json_rpc_provider();
+ var _nextId = 1;
+ function buildWeb3LegacyFetcher(provider, sendFunc) {
+ var fetcher = "Web3LegacyFetcher";
+ return function(method, params) {
+ var _this = this;
+ var request = {
+ method,
+ params,
+ id: _nextId++,
+ jsonrpc: "2.0"
+ };
+ return new Promise(function(resolve, reject) {
+ _this.emit("debug", {
+ action: "request",
+ fetcher,
+ request: (0, properties_1.deepCopy)(request),
+ provider: _this
+ });
+ sendFunc(request, function(error, response) {
+ if (error) {
+ _this.emit("debug", {
+ action: "response",
+ fetcher,
+ error,
+ request,
+ provider: _this
+ });
+ return reject(error);
+ }
+ _this.emit("debug", {
+ action: "response",
+ fetcher,
+ request,
+ response,
+ provider: _this
+ });
+ if (response.error) {
+ var error_1 = new Error(response.error.message);
+ error_1.code = response.error.code;
+ error_1.data = response.error.data;
+ return reject(error_1);
+ }
+ resolve(response.result);
+ });
+ });
+ };
+ }
+ function buildEip1193Fetcher(provider) {
+ return function(method, params) {
+ var _this = this;
+ if (params == null) {
+ params = [];
+ }
+ var request = { method, params };
+ this.emit("debug", {
+ action: "request",
+ fetcher: "Eip1193Fetcher",
+ request: (0, properties_1.deepCopy)(request),
+ provider: this
+ });
+ return provider.request(request).then(function(response) {
+ _this.emit("debug", {
+ action: "response",
+ fetcher: "Eip1193Fetcher",
+ request,
+ response,
+ provider: _this
+ });
+ return response;
+ }, function(error) {
+ _this.emit("debug", {
+ action: "response",
+ fetcher: "Eip1193Fetcher",
+ request,
+ error,
+ provider: _this
+ });
+ throw error;
+ });
+ };
+ }
+ var Web3Provider = (
+ /** @class */
+ function(_super) {
+ __extends13(Web3Provider2, _super);
+ function Web3Provider2(provider, network) {
+ var _this = this;
+ if (provider == null) {
+ logger.throwArgumentError("missing provider", "provider", provider);
+ }
+ var path = null;
+ var jsonRpcFetchFunc = null;
+ var subprovider = null;
+ if (typeof provider === "function") {
+ path = "unknown:";
+ jsonRpcFetchFunc = provider;
+ } else {
+ path = provider.host || provider.path || "";
+ if (!path && provider.isMetaMask) {
+ path = "metamask";
+ }
+ subprovider = provider;
+ if (provider.request) {
+ if (path === "") {
+ path = "eip-1193:";
+ }
+ jsonRpcFetchFunc = buildEip1193Fetcher(provider);
+ } else if (provider.sendAsync) {
+ jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.sendAsync.bind(provider));
+ } else if (provider.send) {
+ jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.send.bind(provider));
+ } else {
+ logger.throwArgumentError("unsupported provider", "provider", provider);
+ }
+ if (!path) {
+ path = "unknown:";
+ }
+ }
+ _this = _super.call(this, path, network) || this;
+ (0, properties_1.defineReadOnly)(_this, "jsonRpcFetchFunc", jsonRpcFetchFunc);
+ (0, properties_1.defineReadOnly)(_this, "provider", subprovider);
+ return _this;
+ }
+ Web3Provider2.prototype.send = function(method, params) {
+ return this.jsonRpcFetchFunc(method, params);
+ };
+ return Web3Provider2;
+ }(json_rpc_provider_1.JsonRpcProvider)
+ );
+ exports2.Web3Provider = Web3Provider;
+ }
+});
+
+// node_modules/@ethersproject/providers/lib/index.js
+var require_lib33 = __commonJS({
+ "node_modules/@ethersproject/providers/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.Formatter = exports2.showThrottleMessage = exports2.isCommunityResourcable = exports2.isCommunityResource = exports2.getNetwork = exports2.getDefaultProvider = exports2.JsonRpcSigner = exports2.IpcProvider = exports2.WebSocketProvider = exports2.Web3Provider = exports2.StaticJsonRpcProvider = exports2.PocketProvider = exports2.NodesmithProvider = exports2.JsonRpcBatchProvider = exports2.JsonRpcProvider = exports2.InfuraWebSocketProvider = exports2.InfuraProvider = exports2.EtherscanProvider = exports2.CloudflareProvider = exports2.AnkrProvider = exports2.AlchemyWebSocketProvider = exports2.AlchemyProvider = exports2.FallbackProvider = exports2.UrlJsonRpcProvider = exports2.Resolver = exports2.BaseProvider = exports2.Provider = void 0;
+ var abstract_provider_1 = require_lib20();
+ Object.defineProperty(exports2, "Provider", { enumerable: true, get: function() {
+ return abstract_provider_1.Provider;
+ } });
+ var networks_1 = require_lib31();
+ Object.defineProperty(exports2, "getNetwork", { enumerable: true, get: function() {
+ return networks_1.getNetwork;
+ } });
+ var base_provider_1 = require_base_provider();
+ Object.defineProperty(exports2, "BaseProvider", { enumerable: true, get: function() {
+ return base_provider_1.BaseProvider;
+ } });
+ Object.defineProperty(exports2, "Resolver", { enumerable: true, get: function() {
+ return base_provider_1.Resolver;
+ } });
+ var alchemy_provider_1 = require_alchemy_provider();
+ Object.defineProperty(exports2, "AlchemyProvider", { enumerable: true, get: function() {
+ return alchemy_provider_1.AlchemyProvider;
+ } });
+ Object.defineProperty(exports2, "AlchemyWebSocketProvider", { enumerable: true, get: function() {
+ return alchemy_provider_1.AlchemyWebSocketProvider;
+ } });
+ var ankr_provider_1 = require_ankr_provider();
+ Object.defineProperty(exports2, "AnkrProvider", { enumerable: true, get: function() {
+ return ankr_provider_1.AnkrProvider;
+ } });
+ var cloudflare_provider_1 = require_cloudflare_provider();
+ Object.defineProperty(exports2, "CloudflareProvider", { enumerable: true, get: function() {
+ return cloudflare_provider_1.CloudflareProvider;
+ } });
+ var etherscan_provider_1 = require_etherscan_provider();
+ Object.defineProperty(exports2, "EtherscanProvider", { enumerable: true, get: function() {
+ return etherscan_provider_1.EtherscanProvider;
+ } });
+ var fallback_provider_1 = require_fallback_provider();
+ Object.defineProperty(exports2, "FallbackProvider", { enumerable: true, get: function() {
+ return fallback_provider_1.FallbackProvider;
+ } });
+ var ipc_provider_1 = require_ipc_provider();
+ Object.defineProperty(exports2, "IpcProvider", { enumerable: true, get: function() {
+ return ipc_provider_1.IpcProvider;
+ } });
+ var infura_provider_1 = require_infura_provider();
+ Object.defineProperty(exports2, "InfuraProvider", { enumerable: true, get: function() {
+ return infura_provider_1.InfuraProvider;
+ } });
+ Object.defineProperty(exports2, "InfuraWebSocketProvider", { enumerable: true, get: function() {
+ return infura_provider_1.InfuraWebSocketProvider;
+ } });
+ var json_rpc_provider_1 = require_json_rpc_provider();
+ Object.defineProperty(exports2, "JsonRpcProvider", { enumerable: true, get: function() {
+ return json_rpc_provider_1.JsonRpcProvider;
+ } });
+ Object.defineProperty(exports2, "JsonRpcSigner", { enumerable: true, get: function() {
+ return json_rpc_provider_1.JsonRpcSigner;
+ } });
+ var json_rpc_batch_provider_1 = require_json_rpc_batch_provider();
+ Object.defineProperty(exports2, "JsonRpcBatchProvider", { enumerable: true, get: function() {
+ return json_rpc_batch_provider_1.JsonRpcBatchProvider;
+ } });
+ var nodesmith_provider_1 = require_nodesmith_provider();
+ Object.defineProperty(exports2, "NodesmithProvider", { enumerable: true, get: function() {
+ return nodesmith_provider_1.NodesmithProvider;
+ } });
+ var pocket_provider_1 = require_pocket_provider();
+ Object.defineProperty(exports2, "PocketProvider", { enumerable: true, get: function() {
+ return pocket_provider_1.PocketProvider;
+ } });
+ var url_json_rpc_provider_1 = require_url_json_rpc_provider();
+ Object.defineProperty(exports2, "StaticJsonRpcProvider", { enumerable: true, get: function() {
+ return url_json_rpc_provider_1.StaticJsonRpcProvider;
+ } });
+ Object.defineProperty(exports2, "UrlJsonRpcProvider", { enumerable: true, get: function() {
+ return url_json_rpc_provider_1.UrlJsonRpcProvider;
+ } });
+ var web3_provider_1 = require_web3_provider();
+ Object.defineProperty(exports2, "Web3Provider", { enumerable: true, get: function() {
+ return web3_provider_1.Web3Provider;
+ } });
+ var websocket_provider_1 = require_websocket_provider();
+ Object.defineProperty(exports2, "WebSocketProvider", { enumerable: true, get: function() {
+ return websocket_provider_1.WebSocketProvider;
+ } });
+ var formatter_1 = require_formatter();
+ Object.defineProperty(exports2, "Formatter", { enumerable: true, get: function() {
+ return formatter_1.Formatter;
+ } });
+ Object.defineProperty(exports2, "isCommunityResourcable", { enumerable: true, get: function() {
+ return formatter_1.isCommunityResourcable;
+ } });
+ Object.defineProperty(exports2, "isCommunityResource", { enumerable: true, get: function() {
+ return formatter_1.isCommunityResource;
+ } });
+ Object.defineProperty(exports2, "showThrottleMessage", { enumerable: true, get: function() {
+ return formatter_1.showThrottleMessage;
+ } });
+ var logger_1 = require_lib5();
+ var _version_1 = require_version22();
+ var logger = new logger_1.Logger(_version_1.version);
+ function getDefaultProvider(network, options) {
+ if (network == null) {
+ network = "homestead";
+ }
+ if (typeof network === "string") {
+ var match = network.match(/^(ws|http)s?:/i);
+ if (match) {
+ switch (match[1].toLowerCase()) {
+ case "http":
+ case "https":
+ return new json_rpc_provider_1.JsonRpcProvider(network);
+ case "ws":
+ case "wss":
+ return new websocket_provider_1.WebSocketProvider(network);
+ default:
+ logger.throwArgumentError("unsupported URL scheme", "network", network);
+ }
+ }
+ }
+ var n = (0, networks_1.getNetwork)(network);
+ if (!n || !n._defaultProvider) {
+ logger.throwError("unsupported getDefaultProvider network", logger_1.Logger.errors.NETWORK_ERROR, {
+ operation: "getDefaultProvider",
+ network
+ });
+ }
+ return n._defaultProvider({
+ FallbackProvider: fallback_provider_1.FallbackProvider,
+ AlchemyProvider: alchemy_provider_1.AlchemyProvider,
+ AnkrProvider: ankr_provider_1.AnkrProvider,
+ CloudflareProvider: cloudflare_provider_1.CloudflareProvider,
+ EtherscanProvider: etherscan_provider_1.EtherscanProvider,
+ InfuraProvider: infura_provider_1.InfuraProvider,
+ JsonRpcProvider: json_rpc_provider_1.JsonRpcProvider,
+ NodesmithProvider: nodesmith_provider_1.NodesmithProvider,
+ PocketProvider: pocket_provider_1.PocketProvider,
+ Web3Provider: web3_provider_1.Web3Provider,
+ IpcProvider: ipc_provider_1.IpcProvider
+ }, options);
+ }
+ exports2.getDefaultProvider = getDefaultProvider;
+ }
+});
+
+// node_modules/@ethersproject/solidity/lib/_version.js
+var require_version23 = __commonJS({
+ "node_modules/@ethersproject/solidity/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "solidity/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/solidity/lib/index.js
+var require_lib34 = __commonJS({
+ "node_modules/@ethersproject/solidity/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.sha256 = exports2.keccak256 = exports2.pack = void 0;
+ var bignumber_1 = require_lib7();
+ var bytes_1 = require_lib6();
+ var keccak256_1 = require_lib8();
+ var sha2_1 = require_lib25();
+ var strings_1 = require_lib15();
+ var regexBytes = new RegExp("^bytes([0-9]+)$");
+ var regexNumber = new RegExp("^(u?int)([0-9]*)$");
+ var regexArray = new RegExp("^(.*)\\[([0-9]*)\\]$");
+ var Zeros = "0000000000000000000000000000000000000000000000000000000000000000";
+ var logger_1 = require_lib5();
+ var _version_1 = require_version23();
+ var logger = new logger_1.Logger(_version_1.version);
+ function _pack(type, value, isArray) {
+ switch (type) {
+ case "address":
+ if (isArray) {
+ return (0, bytes_1.zeroPad)(value, 32);
+ }
+ return (0, bytes_1.arrayify)(value);
+ case "string":
+ return (0, strings_1.toUtf8Bytes)(value);
+ case "bytes":
+ return (0, bytes_1.arrayify)(value);
+ case "bool":
+ value = value ? "0x01" : "0x00";
+ if (isArray) {
+ return (0, bytes_1.zeroPad)(value, 32);
+ }
+ return (0, bytes_1.arrayify)(value);
+ }
+ var match = type.match(regexNumber);
+ if (match) {
+ var size = parseInt(match[2] || "256");
+ if (match[2] && String(size) !== match[2] || size % 8 !== 0 || size === 0 || size > 256) {
+ logger.throwArgumentError("invalid number type", "type", type);
+ }
+ if (isArray) {
+ size = 256;
+ }
+ value = bignumber_1.BigNumber.from(value).toTwos(size);
+ return (0, bytes_1.zeroPad)(value, size / 8);
+ }
+ match = type.match(regexBytes);
+ if (match) {
+ var size = parseInt(match[1]);
+ if (String(size) !== match[1] || size === 0 || size > 32) {
+ logger.throwArgumentError("invalid bytes type", "type", type);
+ }
+ if ((0, bytes_1.arrayify)(value).byteLength !== size) {
+ logger.throwArgumentError("invalid value for " + type, "value", value);
+ }
+ if (isArray) {
+ return (0, bytes_1.arrayify)((value + Zeros).substring(0, 66));
+ }
+ return value;
+ }
+ match = type.match(regexArray);
+ if (match && Array.isArray(value)) {
+ var baseType_1 = match[1];
+ var count = parseInt(match[2] || String(value.length));
+ if (count != value.length) {
+ logger.throwArgumentError("invalid array length for " + type, "value", value);
+ }
+ var result_1 = [];
+ value.forEach(function(value2) {
+ result_1.push(_pack(baseType_1, value2, true));
+ });
+ return (0, bytes_1.concat)(result_1);
+ }
+ return logger.throwArgumentError("invalid type", "type", type);
+ }
+ function pack(types, values) {
+ if (types.length != values.length) {
+ logger.throwArgumentError("wrong number of values; expected ${ types.length }", "values", values);
+ }
+ var tight = [];
+ types.forEach(function(type, index) {
+ tight.push(_pack(type, values[index]));
+ });
+ return (0, bytes_1.hexlify)((0, bytes_1.concat)(tight));
+ }
+ exports2.pack = pack;
+ function keccak256(types, values) {
+ return (0, keccak256_1.keccak256)(pack(types, values));
+ }
+ exports2.keccak256 = keccak256;
+ function sha256(types, values) {
+ return (0, sha2_1.sha256)(pack(types, values));
+ }
+ exports2.sha256 = sha256;
+ }
+});
+
+// node_modules/@ethersproject/units/lib/_version.js
+var require_version24 = __commonJS({
+ "node_modules/@ethersproject/units/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "units/5.7.0";
+ }
+});
+
+// node_modules/@ethersproject/units/lib/index.js
+var require_lib35 = __commonJS({
+ "node_modules/@ethersproject/units/lib/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.parseEther = exports2.formatEther = exports2.parseUnits = exports2.formatUnits = exports2.commify = void 0;
+ var bignumber_1 = require_lib7();
+ var logger_1 = require_lib5();
+ var _version_1 = require_version24();
+ var logger = new logger_1.Logger(_version_1.version);
+ var names = [
+ "wei",
+ "kwei",
+ "mwei",
+ "gwei",
+ "szabo",
+ "finney",
+ "ether"
+ ];
+ function commify(value) {
+ var comps = String(value).split(".");
+ if (comps.length > 2 || !comps[0].match(/^-?[0-9]*$/) || comps[1] && !comps[1].match(/^[0-9]*$/) || value === "." || value === "-.") {
+ logger.throwArgumentError("invalid value", "value", value);
+ }
+ var whole = comps[0];
+ var negative = "";
+ if (whole.substring(0, 1) === "-") {
+ negative = "-";
+ whole = whole.substring(1);
+ }
+ while (whole.substring(0, 1) === "0") {
+ whole = whole.substring(1);
+ }
+ if (whole === "") {
+ whole = "0";
+ }
+ var suffix = "";
+ if (comps.length === 2) {
+ suffix = "." + (comps[1] || "0");
+ }
+ while (suffix.length > 2 && suffix[suffix.length - 1] === "0") {
+ suffix = suffix.substring(0, suffix.length - 1);
+ }
+ var formatted = [];
+ while (whole.length) {
+ if (whole.length <= 3) {
+ formatted.unshift(whole);
+ break;
+ } else {
+ var index = whole.length - 3;
+ formatted.unshift(whole.substring(index));
+ whole = whole.substring(0, index);
+ }
+ }
+ return negative + formatted.join(",") + suffix;
+ }
+ exports2.commify = commify;
+ function formatUnits(value, unitName) {
+ if (typeof unitName === "string") {
+ var index = names.indexOf(unitName);
+ if (index !== -1) {
+ unitName = 3 * index;
+ }
+ }
+ return (0, bignumber_1.formatFixed)(value, unitName != null ? unitName : 18);
+ }
+ exports2.formatUnits = formatUnits;
+ function parseUnits(value, unitName) {
+ if (typeof value !== "string") {
+ logger.throwArgumentError("value must be a string", "value", value);
+ }
+ if (typeof unitName === "string") {
+ var index = names.indexOf(unitName);
+ if (index !== -1) {
+ unitName = 3 * index;
+ }
+ }
+ return (0, bignumber_1.parseFixed)(value, unitName != null ? unitName : 18);
+ }
+ exports2.parseUnits = parseUnits;
+ function formatEther(wei) {
+ return formatUnits(wei, 18);
+ }
+ exports2.formatEther = formatEther;
+ function parseEther(ether) {
+ return parseUnits(ether, 18);
+ }
+ exports2.parseEther = parseEther;
+ }
+});
+
+// node_modules/ethers/lib/utils.js
+var require_utils8 = __commonJS({
+ "node_modules/ethers/lib/utils.js"(exports2) {
+ "use strict";
+ var __createBinding13 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() {
+ return m[k];
+ } });
+ } : function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+ });
+ var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+ } : function(o, v) {
+ o["default"] = v;
+ });
+ var __importStar13 = exports2 && exports2.__importStar || function(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
+ __createBinding13(result, mod, k);
+ }
+ __setModuleDefault(result, mod);
+ return result;
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.formatBytes32String = exports2.Utf8ErrorFuncs = exports2.toUtf8String = exports2.toUtf8CodePoints = exports2.toUtf8Bytes = exports2._toEscapedUtf8String = exports2.nameprep = exports2.hexDataSlice = exports2.hexDataLength = exports2.hexZeroPad = exports2.hexValue = exports2.hexStripZeros = exports2.hexConcat = exports2.isHexString = exports2.hexlify = exports2.base64 = exports2.base58 = exports2.TransactionDescription = exports2.LogDescription = exports2.Interface = exports2.SigningKey = exports2.HDNode = exports2.defaultPath = exports2.isBytesLike = exports2.isBytes = exports2.zeroPad = exports2.stripZeros = exports2.concat = exports2.arrayify = exports2.shallowCopy = exports2.resolveProperties = exports2.getStatic = exports2.defineReadOnly = exports2.deepCopy = exports2.checkProperties = exports2.poll = exports2.fetchJson = exports2._fetchData = exports2.RLP = exports2.Logger = exports2.checkResultErrors = exports2.FormatTypes = exports2.ParamType = exports2.FunctionFragment = exports2.EventFragment = exports2.ErrorFragment = exports2.ConstructorFragment = exports2.Fragment = exports2.defaultAbiCoder = exports2.AbiCoder = void 0;
+ exports2.Indexed = exports2.Utf8ErrorReason = exports2.UnicodeNormalizationForm = exports2.SupportedAlgorithm = exports2.mnemonicToSeed = exports2.isValidMnemonic = exports2.entropyToMnemonic = exports2.mnemonicToEntropy = exports2.getAccountPath = exports2.verifyTypedData = exports2.verifyMessage = exports2.recoverPublicKey = exports2.computePublicKey = exports2.recoverAddress = exports2.computeAddress = exports2.getJsonWalletAddress = exports2.TransactionTypes = exports2.serializeTransaction = exports2.parseTransaction = exports2.accessListify = exports2.joinSignature = exports2.splitSignature = exports2.soliditySha256 = exports2.solidityKeccak256 = exports2.solidityPack = exports2.shuffled = exports2.randomBytes = exports2.sha512 = exports2.sha256 = exports2.ripemd160 = exports2.keccak256 = exports2.computeHmac = exports2.commify = exports2.parseUnits = exports2.formatUnits = exports2.parseEther = exports2.formatEther = exports2.isAddress = exports2.getCreate2Address = exports2.getContractAddress = exports2.getIcapAddress = exports2.getAddress = exports2._TypedDataEncoder = exports2.id = exports2.isValidName = exports2.namehash = exports2.hashMessage = exports2.dnsEncode = exports2.parseBytes32String = void 0;
+ var abi_1 = require_lib19();
+ Object.defineProperty(exports2, "AbiCoder", { enumerable: true, get: function() {
+ return abi_1.AbiCoder;
+ } });
+ Object.defineProperty(exports2, "checkResultErrors", { enumerable: true, get: function() {
+ return abi_1.checkResultErrors;
+ } });
+ Object.defineProperty(exports2, "ConstructorFragment", { enumerable: true, get: function() {
+ return abi_1.ConstructorFragment;
+ } });
+ Object.defineProperty(exports2, "defaultAbiCoder", { enumerable: true, get: function() {
+ return abi_1.defaultAbiCoder;
+ } });
+ Object.defineProperty(exports2, "ErrorFragment", { enumerable: true, get: function() {
+ return abi_1.ErrorFragment;
+ } });
+ Object.defineProperty(exports2, "EventFragment", { enumerable: true, get: function() {
+ return abi_1.EventFragment;
+ } });
+ Object.defineProperty(exports2, "FormatTypes", { enumerable: true, get: function() {
+ return abi_1.FormatTypes;
+ } });
+ Object.defineProperty(exports2, "Fragment", { enumerable: true, get: function() {
+ return abi_1.Fragment;
+ } });
+ Object.defineProperty(exports2, "FunctionFragment", { enumerable: true, get: function() {
+ return abi_1.FunctionFragment;
+ } });
+ Object.defineProperty(exports2, "Indexed", { enumerable: true, get: function() {
+ return abi_1.Indexed;
+ } });
+ Object.defineProperty(exports2, "Interface", { enumerable: true, get: function() {
+ return abi_1.Interface;
+ } });
+ Object.defineProperty(exports2, "LogDescription", { enumerable: true, get: function() {
+ return abi_1.LogDescription;
+ } });
+ Object.defineProperty(exports2, "ParamType", { enumerable: true, get: function() {
+ return abi_1.ParamType;
+ } });
+ Object.defineProperty(exports2, "TransactionDescription", { enumerable: true, get: function() {
+ return abi_1.TransactionDescription;
+ } });
+ var address_1 = require_lib10();
+ Object.defineProperty(exports2, "getAddress", { enumerable: true, get: function() {
+ return address_1.getAddress;
+ } });
+ Object.defineProperty(exports2, "getCreate2Address", { enumerable: true, get: function() {
+ return address_1.getCreate2Address;
+ } });
+ Object.defineProperty(exports2, "getContractAddress", { enumerable: true, get: function() {
+ return address_1.getContractAddress;
+ } });
+ Object.defineProperty(exports2, "getIcapAddress", { enumerable: true, get: function() {
+ return address_1.getIcapAddress;
+ } });
+ Object.defineProperty(exports2, "isAddress", { enumerable: true, get: function() {
+ return address_1.isAddress;
+ } });
+ var base64 = __importStar13(require_lib16());
+ exports2.base64 = base64;
+ var basex_1 = require_lib23();
+ Object.defineProperty(exports2, "base58", { enumerable: true, get: function() {
+ return basex_1.Base58;
+ } });
+ var bytes_1 = require_lib6();
+ Object.defineProperty(exports2, "arrayify", { enumerable: true, get: function() {
+ return bytes_1.arrayify;
+ } });
+ Object.defineProperty(exports2, "concat", { enumerable: true, get: function() {
+ return bytes_1.concat;
+ } });
+ Object.defineProperty(exports2, "hexConcat", { enumerable: true, get: function() {
+ return bytes_1.hexConcat;
+ } });
+ Object.defineProperty(exports2, "hexDataSlice", { enumerable: true, get: function() {
+ return bytes_1.hexDataSlice;
+ } });
+ Object.defineProperty(exports2, "hexDataLength", { enumerable: true, get: function() {
+ return bytes_1.hexDataLength;
+ } });
+ Object.defineProperty(exports2, "hexlify", { enumerable: true, get: function() {
+ return bytes_1.hexlify;
+ } });
+ Object.defineProperty(exports2, "hexStripZeros", { enumerable: true, get: function() {
+ return bytes_1.hexStripZeros;
+ } });
+ Object.defineProperty(exports2, "hexValue", { enumerable: true, get: function() {
+ return bytes_1.hexValue;
+ } });
+ Object.defineProperty(exports2, "hexZeroPad", { enumerable: true, get: function() {
+ return bytes_1.hexZeroPad;
+ } });
+ Object.defineProperty(exports2, "isBytes", { enumerable: true, get: function() {
+ return bytes_1.isBytes;
+ } });
+ Object.defineProperty(exports2, "isBytesLike", { enumerable: true, get: function() {
+ return bytes_1.isBytesLike;
+ } });
+ Object.defineProperty(exports2, "isHexString", { enumerable: true, get: function() {
+ return bytes_1.isHexString;
+ } });
+ Object.defineProperty(exports2, "joinSignature", { enumerable: true, get: function() {
+ return bytes_1.joinSignature;
+ } });
+ Object.defineProperty(exports2, "zeroPad", { enumerable: true, get: function() {
+ return bytes_1.zeroPad;
+ } });
+ Object.defineProperty(exports2, "splitSignature", { enumerable: true, get: function() {
+ return bytes_1.splitSignature;
+ } });
+ Object.defineProperty(exports2, "stripZeros", { enumerable: true, get: function() {
+ return bytes_1.stripZeros;
+ } });
+ var hash_1 = require_lib18();
+ Object.defineProperty(exports2, "_TypedDataEncoder", { enumerable: true, get: function() {
+ return hash_1._TypedDataEncoder;
+ } });
+ Object.defineProperty(exports2, "dnsEncode", { enumerable: true, get: function() {
+ return hash_1.dnsEncode;
+ } });
+ Object.defineProperty(exports2, "hashMessage", { enumerable: true, get: function() {
+ return hash_1.hashMessage;
+ } });
+ Object.defineProperty(exports2, "id", { enumerable: true, get: function() {
+ return hash_1.id;
+ } });
+ Object.defineProperty(exports2, "isValidName", { enumerable: true, get: function() {
+ return hash_1.isValidName;
+ } });
+ Object.defineProperty(exports2, "namehash", { enumerable: true, get: function() {
+ return hash_1.namehash;
+ } });
+ var hdnode_1 = require_lib27();
+ Object.defineProperty(exports2, "defaultPath", { enumerable: true, get: function() {
+ return hdnode_1.defaultPath;
+ } });
+ Object.defineProperty(exports2, "entropyToMnemonic", { enumerable: true, get: function() {
+ return hdnode_1.entropyToMnemonic;
+ } });
+ Object.defineProperty(exports2, "getAccountPath", { enumerable: true, get: function() {
+ return hdnode_1.getAccountPath;
+ } });
+ Object.defineProperty(exports2, "HDNode", { enumerable: true, get: function() {
+ return hdnode_1.HDNode;
+ } });
+ Object.defineProperty(exports2, "isValidMnemonic", { enumerable: true, get: function() {
+ return hdnode_1.isValidMnemonic;
+ } });
+ Object.defineProperty(exports2, "mnemonicToEntropy", { enumerable: true, get: function() {
+ return hdnode_1.mnemonicToEntropy;
+ } });
+ Object.defineProperty(exports2, "mnemonicToSeed", { enumerable: true, get: function() {
+ return hdnode_1.mnemonicToSeed;
+ } });
+ var json_wallets_1 = require_lib29();
+ Object.defineProperty(exports2, "getJsonWalletAddress", { enumerable: true, get: function() {
+ return json_wallets_1.getJsonWalletAddress;
+ } });
+ var keccak256_1 = require_lib8();
+ Object.defineProperty(exports2, "keccak256", { enumerable: true, get: function() {
+ return keccak256_1.keccak256;
+ } });
+ var logger_1 = require_lib5();
+ Object.defineProperty(exports2, "Logger", { enumerable: true, get: function() {
+ return logger_1.Logger;
+ } });
+ var sha2_1 = require_lib25();
+ Object.defineProperty(exports2, "computeHmac", { enumerable: true, get: function() {
+ return sha2_1.computeHmac;
+ } });
+ Object.defineProperty(exports2, "ripemd160", { enumerable: true, get: function() {
+ return sha2_1.ripemd160;
+ } });
+ Object.defineProperty(exports2, "sha256", { enumerable: true, get: function() {
+ return sha2_1.sha256;
+ } });
+ Object.defineProperty(exports2, "sha512", { enumerable: true, get: function() {
+ return sha2_1.sha512;
+ } });
+ var solidity_1 = require_lib34();
+ Object.defineProperty(exports2, "solidityKeccak256", { enumerable: true, get: function() {
+ return solidity_1.keccak256;
+ } });
+ Object.defineProperty(exports2, "solidityPack", { enumerable: true, get: function() {
+ return solidity_1.pack;
+ } });
+ Object.defineProperty(exports2, "soliditySha256", { enumerable: true, get: function() {
+ return solidity_1.sha256;
+ } });
+ var random_1 = require_lib28();
+ Object.defineProperty(exports2, "randomBytes", { enumerable: true, get: function() {
+ return random_1.randomBytes;
+ } });
+ Object.defineProperty(exports2, "shuffled", { enumerable: true, get: function() {
+ return random_1.shuffled;
+ } });
+ var properties_1 = require_lib12();
+ Object.defineProperty(exports2, "checkProperties", { enumerable: true, get: function() {
+ return properties_1.checkProperties;
+ } });
+ Object.defineProperty(exports2, "deepCopy", { enumerable: true, get: function() {
+ return properties_1.deepCopy;
+ } });
+ Object.defineProperty(exports2, "defineReadOnly", { enumerable: true, get: function() {
+ return properties_1.defineReadOnly;
+ } });
+ Object.defineProperty(exports2, "getStatic", { enumerable: true, get: function() {
+ return properties_1.getStatic;
+ } });
+ Object.defineProperty(exports2, "resolveProperties", { enumerable: true, get: function() {
+ return properties_1.resolveProperties;
+ } });
+ Object.defineProperty(exports2, "shallowCopy", { enumerable: true, get: function() {
+ return properties_1.shallowCopy;
+ } });
+ var RLP = __importStar13(require_lib9());
+ exports2.RLP = RLP;
+ var signing_key_1 = require_lib13();
+ Object.defineProperty(exports2, "computePublicKey", { enumerable: true, get: function() {
+ return signing_key_1.computePublicKey;
+ } });
+ Object.defineProperty(exports2, "recoverPublicKey", { enumerable: true, get: function() {
+ return signing_key_1.recoverPublicKey;
+ } });
+ Object.defineProperty(exports2, "SigningKey", { enumerable: true, get: function() {
+ return signing_key_1.SigningKey;
+ } });
+ var strings_1 = require_lib15();
+ Object.defineProperty(exports2, "formatBytes32String", { enumerable: true, get: function() {
+ return strings_1.formatBytes32String;
+ } });
+ Object.defineProperty(exports2, "nameprep", { enumerable: true, get: function() {
+ return strings_1.nameprep;
+ } });
+ Object.defineProperty(exports2, "parseBytes32String", { enumerable: true, get: function() {
+ return strings_1.parseBytes32String;
+ } });
+ Object.defineProperty(exports2, "_toEscapedUtf8String", { enumerable: true, get: function() {
+ return strings_1._toEscapedUtf8String;
+ } });
+ Object.defineProperty(exports2, "toUtf8Bytes", { enumerable: true, get: function() {
+ return strings_1.toUtf8Bytes;
+ } });
+ Object.defineProperty(exports2, "toUtf8CodePoints", { enumerable: true, get: function() {
+ return strings_1.toUtf8CodePoints;
+ } });
+ Object.defineProperty(exports2, "toUtf8String", { enumerable: true, get: function() {
+ return strings_1.toUtf8String;
+ } });
+ Object.defineProperty(exports2, "Utf8ErrorFuncs", { enumerable: true, get: function() {
+ return strings_1.Utf8ErrorFuncs;
+ } });
+ var transactions_1 = require_lib14();
+ Object.defineProperty(exports2, "accessListify", { enumerable: true, get: function() {
+ return transactions_1.accessListify;
+ } });
+ Object.defineProperty(exports2, "computeAddress", { enumerable: true, get: function() {
+ return transactions_1.computeAddress;
+ } });
+ Object.defineProperty(exports2, "parseTransaction", { enumerable: true, get: function() {
+ return transactions_1.parse;
+ } });
+ Object.defineProperty(exports2, "recoverAddress", { enumerable: true, get: function() {
+ return transactions_1.recoverAddress;
+ } });
+ Object.defineProperty(exports2, "serializeTransaction", { enumerable: true, get: function() {
+ return transactions_1.serialize;
+ } });
+ Object.defineProperty(exports2, "TransactionTypes", { enumerable: true, get: function() {
+ return transactions_1.TransactionTypes;
+ } });
+ var units_1 = require_lib35();
+ Object.defineProperty(exports2, "commify", { enumerable: true, get: function() {
+ return units_1.commify;
+ } });
+ Object.defineProperty(exports2, "formatEther", { enumerable: true, get: function() {
+ return units_1.formatEther;
+ } });
+ Object.defineProperty(exports2, "parseEther", { enumerable: true, get: function() {
+ return units_1.parseEther;
+ } });
+ Object.defineProperty(exports2, "formatUnits", { enumerable: true, get: function() {
+ return units_1.formatUnits;
+ } });
+ Object.defineProperty(exports2, "parseUnits", { enumerable: true, get: function() {
+ return units_1.parseUnits;
+ } });
+ var wallet_1 = require_lib30();
+ Object.defineProperty(exports2, "verifyMessage", { enumerable: true, get: function() {
+ return wallet_1.verifyMessage;
+ } });
+ Object.defineProperty(exports2, "verifyTypedData", { enumerable: true, get: function() {
+ return wallet_1.verifyTypedData;
+ } });
+ var web_1 = require_lib32();
+ Object.defineProperty(exports2, "_fetchData", { enumerable: true, get: function() {
+ return web_1._fetchData;
+ } });
+ Object.defineProperty(exports2, "fetchJson", { enumerable: true, get: function() {
+ return web_1.fetchJson;
+ } });
+ Object.defineProperty(exports2, "poll", { enumerable: true, get: function() {
+ return web_1.poll;
+ } });
+ var sha2_2 = require_lib25();
+ Object.defineProperty(exports2, "SupportedAlgorithm", { enumerable: true, get: function() {
+ return sha2_2.SupportedAlgorithm;
+ } });
+ var strings_2 = require_lib15();
+ Object.defineProperty(exports2, "UnicodeNormalizationForm", { enumerable: true, get: function() {
+ return strings_2.UnicodeNormalizationForm;
+ } });
+ Object.defineProperty(exports2, "Utf8ErrorReason", { enumerable: true, get: function() {
+ return strings_2.Utf8ErrorReason;
+ } });
+ }
+});
+
+// node_modules/ethers/lib/_version.js
+var require_version25 = __commonJS({
+ "node_modules/ethers/lib/_version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "ethers/5.7.2";
+ }
+});
+
+// node_modules/ethers/lib/ethers.js
+var require_ethers = __commonJS({
+ "node_modules/ethers/lib/ethers.js"(exports2) {
+ "use strict";
+ var __createBinding13 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() {
+ return m[k];
+ } });
+ } : function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+ });
+ var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+ } : function(o, v) {
+ o["default"] = v;
+ });
+ var __importStar13 = exports2 && exports2.__importStar || function(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
+ __createBinding13(result, mod, k);
+ }
+ __setModuleDefault(result, mod);
+ return result;
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.Wordlist = exports2.version = exports2.wordlists = exports2.utils = exports2.logger = exports2.errors = exports2.constants = exports2.FixedNumber = exports2.BigNumber = exports2.ContractFactory = exports2.Contract = exports2.BaseContract = exports2.providers = exports2.getDefaultProvider = exports2.VoidSigner = exports2.Wallet = exports2.Signer = void 0;
+ var contracts_1 = require_lib22();
+ Object.defineProperty(exports2, "BaseContract", { enumerable: true, get: function() {
+ return contracts_1.BaseContract;
+ } });
+ Object.defineProperty(exports2, "Contract", { enumerable: true, get: function() {
+ return contracts_1.Contract;
+ } });
+ Object.defineProperty(exports2, "ContractFactory", { enumerable: true, get: function() {
+ return contracts_1.ContractFactory;
+ } });
+ var bignumber_1 = require_lib7();
+ Object.defineProperty(exports2, "BigNumber", { enumerable: true, get: function() {
+ return bignumber_1.BigNumber;
+ } });
+ Object.defineProperty(exports2, "FixedNumber", { enumerable: true, get: function() {
+ return bignumber_1.FixedNumber;
+ } });
+ var abstract_signer_1 = require_lib21();
+ Object.defineProperty(exports2, "Signer", { enumerable: true, get: function() {
+ return abstract_signer_1.Signer;
+ } });
+ Object.defineProperty(exports2, "VoidSigner", { enumerable: true, get: function() {
+ return abstract_signer_1.VoidSigner;
+ } });
+ var wallet_1 = require_lib30();
+ Object.defineProperty(exports2, "Wallet", { enumerable: true, get: function() {
+ return wallet_1.Wallet;
+ } });
+ var constants = __importStar13(require_lib11());
+ exports2.constants = constants;
+ var providers = __importStar13(require_lib33());
+ exports2.providers = providers;
+ var providers_1 = require_lib33();
+ Object.defineProperty(exports2, "getDefaultProvider", { enumerable: true, get: function() {
+ return providers_1.getDefaultProvider;
+ } });
+ var wordlists_1 = require_lib26();
+ Object.defineProperty(exports2, "Wordlist", { enumerable: true, get: function() {
+ return wordlists_1.Wordlist;
+ } });
+ Object.defineProperty(exports2, "wordlists", { enumerable: true, get: function() {
+ return wordlists_1.wordlists;
+ } });
+ var utils = __importStar13(require_utils8());
+ exports2.utils = utils;
+ var logger_1 = require_lib5();
+ Object.defineProperty(exports2, "errors", { enumerable: true, get: function() {
+ return logger_1.ErrorCode;
+ } });
+ var _version_1 = require_version25();
+ Object.defineProperty(exports2, "version", { enumerable: true, get: function() {
+ return _version_1.version;
+ } });
+ var logger = new logger_1.Logger(_version_1.version);
+ exports2.logger = logger;
+ }
+});
+
+// node_modules/ethers/lib/index.js
+var require_lib36 = __commonJS({
+ "node_modules/ethers/lib/index.js"(exports2) {
+ "use strict";
+ var __createBinding13 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ Object.defineProperty(o, k2, { enumerable: true, get: function() {
+ return m[k];
+ } });
+ } : function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+ });
+ var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+ } : function(o, v) {
+ o["default"] = v;
+ });
+ var __importStar13 = exports2 && exports2.__importStar || function(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
+ __createBinding13(result, mod, k);
+ }
+ __setModuleDefault(result, mod);
+ return result;
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.Wordlist = exports2.version = exports2.wordlists = exports2.utils = exports2.logger = exports2.errors = exports2.constants = exports2.FixedNumber = exports2.BigNumber = exports2.ContractFactory = exports2.Contract = exports2.BaseContract = exports2.providers = exports2.getDefaultProvider = exports2.VoidSigner = exports2.Wallet = exports2.Signer = exports2.ethers = void 0;
+ var ethers2 = __importStar13(require_ethers());
+ exports2.ethers = ethers2;
+ try {
+ anyGlobal = window;
+ if (anyGlobal._ethers == null) {
+ anyGlobal._ethers = ethers2;
+ }
+ } catch (error) {
+ }
+ var anyGlobal;
+ var ethers_1 = require_ethers();
+ Object.defineProperty(exports2, "Signer", { enumerable: true, get: function() {
+ return ethers_1.Signer;
+ } });
+ Object.defineProperty(exports2, "Wallet", { enumerable: true, get: function() {
+ return ethers_1.Wallet;
+ } });
+ Object.defineProperty(exports2, "VoidSigner", { enumerable: true, get: function() {
+ return ethers_1.VoidSigner;
+ } });
+ Object.defineProperty(exports2, "getDefaultProvider", { enumerable: true, get: function() {
+ return ethers_1.getDefaultProvider;
+ } });
+ Object.defineProperty(exports2, "providers", { enumerable: true, get: function() {
+ return ethers_1.providers;
+ } });
+ Object.defineProperty(exports2, "BaseContract", { enumerable: true, get: function() {
+ return ethers_1.BaseContract;
+ } });
+ Object.defineProperty(exports2, "Contract", { enumerable: true, get: function() {
+ return ethers_1.Contract;
+ } });
+ Object.defineProperty(exports2, "ContractFactory", { enumerable: true, get: function() {
+ return ethers_1.ContractFactory;
+ } });
+ Object.defineProperty(exports2, "BigNumber", { enumerable: true, get: function() {
+ return ethers_1.BigNumber;
+ } });
+ Object.defineProperty(exports2, "FixedNumber", { enumerable: true, get: function() {
+ return ethers_1.FixedNumber;
+ } });
+ Object.defineProperty(exports2, "constants", { enumerable: true, get: function() {
+ return ethers_1.constants;
+ } });
+ Object.defineProperty(exports2, "errors", { enumerable: true, get: function() {
+ return ethers_1.errors;
+ } });
+ Object.defineProperty(exports2, "logger", { enumerable: true, get: function() {
+ return ethers_1.logger;
+ } });
+ Object.defineProperty(exports2, "utils", { enumerable: true, get: function() {
+ return ethers_1.utils;
+ } });
+ Object.defineProperty(exports2, "wordlists", { enumerable: true, get: function() {
+ return ethers_1.wordlists;
+ } });
+ Object.defineProperty(exports2, "version", { enumerable: true, get: function() {
+ return ethers_1.version;
+ } });
+ Object.defineProperty(exports2, "Wordlist", { enumerable: true, get: function() {
+ return ethers_1.Wordlist;
+ } });
+ }
+});
+
+// node_modules/apg-js/src/apg-lib/identifiers.js
+var require_identifiers = __commonJS({
+ "node_modules/apg-js/src/apg-lib/identifiers.js"(exports2, module2) {
+ module2.exports = {
+ // Identifies the operator type. Used by the generator
+ // to indicate operator types in the grammar object.
+ // Used by the [parser](./parser.html) when interpreting the grammar object.
+ /* the original ABNF operators */
+ ALT: 1,
+ CAT: 2,
+ REP: 3,
+ RNM: 4,
+ TRG: 5,
+ TBS: 6,
+ TLS: 7,
+ /* the super set, SABNF operators */
+ UDT: 11,
+ AND: 12,
+ NOT: 13,
+ BKR: 14,
+ BKA: 15,
+ BKN: 16,
+ ABG: 17,
+ AEN: 18,
+ // Used by the parser and the user's `RNM` and `UDT` callback functions.
+ // Identifies the parser state as it traverses the parse tree nodes.
+ // - *ACTIVE* - indicates the downward direction through the parse tree node.
+ // - *MATCH* - indicates the upward direction and a phrase, of length \> 0, has been successfully matched
+ // - *EMPTY* - indicates the upward direction and a phrase, of length = 0, has been successfully matched
+ // - *NOMATCH* - indicates the upward direction and the parser failed to match any phrase at all
+ ACTIVE: 100,
+ MATCH: 101,
+ EMPTY: 102,
+ NOMATCH: 103,
+ // Used by [`AST` translator](./ast.html) (semantic analysis) and the user's callback functions
+ // to indicate the direction of flow through the `AST` nodes.
+ // - *SEM_PRE* - indicates the downward (pre-branch) direction through the `AST` node.
+ // - *SEM_POST* - indicates the upward (post-branch) direction through the `AST` node.
+ SEM_PRE: 200,
+ SEM_POST: 201,
+ // Used by the user's callback functions to indicate to the `AST` translator (semantic analysis) how to proceed.
+ // - *SEM_OK* - normal return value
+ // - *SEM_SKIP* - if a callback function returns this value from the SEM_PRE state,
+ // the translator will skip processing all `AST` nodes in the branch below the current node.
+ // Ignored if returned from the SEM_POST state.
+ SEM_OK: 300,
+ SEM_SKIP: 301,
+ // Used in attribute generation to distinguish the necessary attribute categories.
+ // - *ATTR_N* - non-recursive
+ // - *ATTR_R* - recursive
+ // - *ATTR_MR* - belongs to a mutually-recursive set
+ ATTR_N: 400,
+ ATTR_R: 401,
+ ATTR_MR: 402,
+ // Look around values indicate whether the parser is in look ahead or look behind mode.
+ // Used by the tracing facility to indicate the look around mode in the trace records display.
+ // - *LOOKAROUND_NONE* - the parser is in normal parsing mode
+ // - *LOOKAROUND_AHEAD* - the parse is in look-ahead mode, phrase matching for operator `AND(&)` or `NOT(!)`
+ // - *LOOKAROUND_BEHIND* - the parse is in look-behind mode, phrase matching for operator `BKA(&&)` or `BKN(!!)`
+ LOOKAROUND_NONE: 500,
+ LOOKAROUND_AHEAD: 501,
+ LOOKAROUND_BEHIND: 502,
+ // Back reference rule mode indicators
+ // - *BKR_MODE_UM* - the back reference is using universal mode
+ // - *BKR_MODE_PM* - the back reference is using parent frame mode
+ // - *BKR_MODE_CS* - the back reference is using case-sensitive phrase matching
+ // - *BKR_MODE_CI* - the back reference is using case-insensitive phrase matching
+ BKR_MODE_UM: 601,
+ BKR_MODE_PM: 602,
+ BKR_MODE_CS: 603,
+ BKR_MODE_CI: 604
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-lib/style.js
+var require_style = __commonJS({
+ "node_modules/apg-js/src/apg-lib/style.js"(exports2, module2) {
+ module2.exports = {
+ // Generated by apglib/style.js
+ CLASS_MONOSPACE: "apg-mono",
+ CLASS_ACTIVE: "apg-active",
+ CLASS_EMPTY: "apg-empty",
+ CLASS_MATCH: "apg-match",
+ CLASS_NOMATCH: "apg-nomatch",
+ CLASS_LOOKAHEAD: "apg-lh-match",
+ CLASS_LOOKBEHIND: "apg-lb-match",
+ CLASS_REMAINDER: "apg-remainder",
+ CLASS_CTRLCHAR: "apg-ctrl-char",
+ CLASS_LINEEND: "apg-line-end",
+ CLASS_ERROR: "apg-error",
+ CLASS_PHRASE: "apg-phrase",
+ CLASS_EMPTYPHRASE: "apg-empty-phrase",
+ CLASS_STATE: "apg-state",
+ CLASS_STATS: "apg-stats",
+ CLASS_TRACE: "apg-trace",
+ CLASS_GRAMMAR: "apg-grammar",
+ CLASS_RULES: "apg-rules",
+ CLASS_RULESLINK: "apg-rules-link",
+ CLASS_ATTRIBUTES: "apg-attrs"
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-conv-api/transformers.js
+var require_transformers = __commonJS({
+ "node_modules/apg-js/src/apg-conv-api/transformers.js"(exports2) {
+ "use strict;";
+ var { Buffer: Buffer2 } = require("buffer");
+ var NON_SHORTEST = 4294967292;
+ var TRAILING = 4294967293;
+ var RANGE = 4294967294;
+ var ILL_FORMED = 4294967295;
+ var mask = [0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023];
+ var ascii = [
+ "00",
+ "01",
+ "02",
+ "03",
+ "04",
+ "05",
+ "06",
+ "07",
+ "08",
+ "09",
+ "0A",
+ "0B",
+ "0C",
+ "0D",
+ "0E",
+ "0F",
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "1A",
+ "1B",
+ "1C",
+ "1D",
+ "1E",
+ "1F",
+ "20",
+ "21",
+ "22",
+ "23",
+ "24",
+ "25",
+ "26",
+ "27",
+ "28",
+ "29",
+ "2A",
+ "2B",
+ "2C",
+ "2D",
+ "2E",
+ "2F",
+ "30",
+ "31",
+ "32",
+ "33",
+ "34",
+ "35",
+ "36",
+ "37",
+ "38",
+ "39",
+ "3A",
+ "3B",
+ "3C",
+ "3D",
+ "3E",
+ "3F",
+ "40",
+ "41",
+ "42",
+ "43",
+ "44",
+ "45",
+ "46",
+ "47",
+ "48",
+ "49",
+ "4A",
+ "4B",
+ "4C",
+ "4D",
+ "4E",
+ "4F",
+ "50",
+ "51",
+ "52",
+ "53",
+ "54",
+ "55",
+ "56",
+ "57",
+ "58",
+ "59",
+ "5A",
+ "5B",
+ "5C",
+ "5D",
+ "5E",
+ "5F",
+ "60",
+ "61",
+ "62",
+ "63",
+ "64",
+ "65",
+ "66",
+ "67",
+ "68",
+ "69",
+ "6A",
+ "6B",
+ "6C",
+ "6D",
+ "6E",
+ "6F",
+ "70",
+ "71",
+ "72",
+ "73",
+ "74",
+ "75",
+ "76",
+ "77",
+ "78",
+ "79",
+ "7A",
+ "7B",
+ "7C",
+ "7D",
+ "7E",
+ "7F",
+ "80",
+ "81",
+ "82",
+ "83",
+ "84",
+ "85",
+ "86",
+ "87",
+ "88",
+ "89",
+ "8A",
+ "8B",
+ "8C",
+ "8D",
+ "8E",
+ "8F",
+ "90",
+ "91",
+ "92",
+ "93",
+ "94",
+ "95",
+ "96",
+ "97",
+ "98",
+ "99",
+ "9A",
+ "9B",
+ "9C",
+ "9D",
+ "9E",
+ "9F",
+ "A0",
+ "A1",
+ "A2",
+ "A3",
+ "A4",
+ "A5",
+ "A6",
+ "A7",
+ "A8",
+ "A9",
+ "AA",
+ "AB",
+ "AC",
+ "AD",
+ "AE",
+ "AF",
+ "B0",
+ "B1",
+ "B2",
+ "B3",
+ "B4",
+ "B5",
+ "B6",
+ "B7",
+ "B8",
+ "B9",
+ "BA",
+ "BB",
+ "BC",
+ "BD",
+ "BE",
+ "BF",
+ "C0",
+ "C1",
+ "C2",
+ "C3",
+ "C4",
+ "C5",
+ "C6",
+ "C7",
+ "C8",
+ "C9",
+ "CA",
+ "CB",
+ "CC",
+ "CD",
+ "CE",
+ "CF",
+ "D0",
+ "D1",
+ "D2",
+ "D3",
+ "D4",
+ "D5",
+ "D6",
+ "D7",
+ "D8",
+ "D9",
+ "DA",
+ "DB",
+ "DC",
+ "DD",
+ "DE",
+ "DF",
+ "E0",
+ "E1",
+ "E2",
+ "E3",
+ "E4",
+ "E5",
+ "E6",
+ "E7",
+ "E8",
+ "E9",
+ "EA",
+ "EB",
+ "EC",
+ "ED",
+ "EE",
+ "EF",
+ "F0",
+ "F1",
+ "F2",
+ "F3",
+ "F4",
+ "F5",
+ "F6",
+ "F7",
+ "F8",
+ "F9",
+ "FA",
+ "FB",
+ "FC",
+ "FD",
+ "FE",
+ "FF"
+ ];
+ var base64chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".split("");
+ var base64codes = [];
+ base64chars.forEach((char) => {
+ base64codes.push(char.charCodeAt(0));
+ });
+ exports2.utf8 = {
+ encode(chars) {
+ const bytes = [];
+ chars.forEach((char) => {
+ if (char >= 0 && char <= 127) {
+ bytes.push(char);
+ } else if (char <= 2047) {
+ bytes.push(192 + (char >> 6 & mask[5]));
+ bytes.push(128 + (char & mask[6]));
+ } else if (char < 55296 || char > 57343 && char <= 65535) {
+ bytes.push(224 + (char >> 12 & mask[4]));
+ bytes.push(128 + (char >> 6 & mask[6]));
+ bytes.push(128 + (char & mask[6]));
+ } else if (char >= 65536 && char <= 1114111) {
+ const u = char >> 16 & mask[5];
+ bytes.push(240 + (u >> 2));
+ bytes.push(128 + ((u & mask[2]) << 4) + (char >> 12 & mask[4]));
+ bytes.push(128 + (char >> 6 & mask[6]));
+ bytes.push(128 + (char & mask[6]));
+ } else {
+ throw new RangeError(`utf8.encode: character out of range: char: ${char}`);
+ }
+ });
+ return Buffer2.from(bytes);
+ },
+ decode(buf, bom) {
+ function bytes2(b12, b2) {
+ if ((b2 & 192) !== 128) {
+ return TRAILING;
+ }
+ const x = ((b12 & mask[5]) << 6) + (b2 & mask[6]);
+ if (x < 128) {
+ return NON_SHORTEST;
+ }
+ return x;
+ }
+ function bytes3(b12, b2, b3) {
+ if ((b3 & 192) !== 128 || (b2 & 192) !== 128) {
+ return TRAILING;
+ }
+ const x = ((b12 & mask[4]) << 12) + ((b2 & mask[6]) << 6) + (b3 & mask[6]);
+ if (x < 2048) {
+ return NON_SHORTEST;
+ }
+ if (x >= 55296 && x <= 57343) {
+ return RANGE;
+ }
+ return x;
+ }
+ function bytes4(b12, b2, b3, b4) {
+ if ((b4 & 192) !== 128 || (b3 & 192) !== 128 || (b2 & 192) !== 128) {
+ return TRAILING;
+ }
+ const x = (((b12 & mask[3]) << 2) + (b2 >> 4 & mask[2]) << 16) + ((b2 & mask[4]) << 12) + ((b3 & mask[6]) << 6) + (b4 & mask[6]);
+ if (x < 65536) {
+ return NON_SHORTEST;
+ }
+ if (x > 1114111) {
+ return RANGE;
+ }
+ return x;
+ }
+ let c;
+ let b1;
+ let i1;
+ let i2;
+ let i3;
+ let inc;
+ const len = buf.length;
+ let i = bom ? 3 : 0;
+ const chars = [];
+ while (i < len) {
+ b1 = buf[i];
+ c = ILL_FORMED;
+ const TRUE = true;
+ while (TRUE) {
+ if (b1 >= 0 && b1 <= 127) {
+ c = b1;
+ inc = 1;
+ break;
+ }
+ i1 = i + 1;
+ if (i1 < len && b1 >= 194 && b1 <= 223) {
+ c = bytes2(b1, buf[i1]);
+ inc = 2;
+ break;
+ }
+ i2 = i + 2;
+ if (i2 < len && b1 >= 224 && b1 <= 239) {
+ c = bytes3(b1, buf[i1], buf[i2]);
+ inc = 3;
+ break;
+ }
+ i3 = i + 3;
+ if (i3 < len && b1 >= 240 && b1 <= 244) {
+ c = bytes4(b1, buf[i1], buf[i2], buf[i3]);
+ inc = 4;
+ break;
+ }
+ break;
+ }
+ if (c > 1114111) {
+ const at = `byte[${i}]`;
+ if (c === ILL_FORMED) {
+ throw new RangeError(`utf8.decode: ill-formed UTF8 byte sequence found at: ${at}`);
+ }
+ if (c === TRAILING) {
+ throw new RangeError(`utf8.decode: illegal trailing byte found at: ${at}`);
+ }
+ if (c === RANGE) {
+ throw new RangeError(`utf8.decode: code point out of range found at: ${at}`);
+ }
+ if (c === NON_SHORTEST) {
+ throw new RangeError(`utf8.decode: non-shortest form found at: ${at}`);
+ }
+ throw new RangeError(`utf8.decode: unrecognized error found at: ${at}`);
+ }
+ chars.push(c);
+ i += inc;
+ }
+ return chars;
+ }
+ };
+ exports2.utf16be = {
+ encode(chars) {
+ const bytes = [];
+ let char;
+ let h;
+ let l;
+ for (let i = 0; i < chars.length; i += 1) {
+ char = chars[i];
+ if (char >= 0 && char <= 55295 || char >= 57344 && char <= 65535) {
+ bytes.push(char >> 8 & mask[8]);
+ bytes.push(char & mask[8]);
+ } else if (char >= 65536 && char <= 1114111) {
+ l = char - 65536;
+ h = 55296 + (l >> 10);
+ l = 56320 + (l & mask[10]);
+ bytes.push(h >> 8 & mask[8]);
+ bytes.push(h & mask[8]);
+ bytes.push(l >> 8 & mask[8]);
+ bytes.push(l & mask[8]);
+ } else {
+ throw new RangeError(`utf16be.encode: UTF16BE value out of range: char[${i}]: ${char}`);
+ }
+ }
+ return Buffer2.from(bytes);
+ },
+ decode(buf, bom) {
+ if (buf.length % 2 > 0) {
+ throw new RangeError(`utf16be.decode: data length must be even multiple of 2: length: ${buf.length}`);
+ }
+ const chars = [];
+ const len = buf.length;
+ let i = bom ? 2 : 0;
+ let j = 0;
+ let c;
+ let inc;
+ let i1;
+ let i3;
+ let high;
+ let low;
+ while (i < len) {
+ const TRUE = true;
+ while (TRUE) {
+ i1 = i + 1;
+ if (i1 < len) {
+ high = (buf[i] << 8) + buf[i1];
+ if (high < 55296 || high > 57343) {
+ c = high;
+ inc = 2;
+ break;
+ }
+ i3 = i + 3;
+ if (i3 < len) {
+ low = (buf[i + 2] << 8) + buf[i3];
+ if (high <= 56319 && low >= 56320 && low <= 57343) {
+ c = 65536 + (high - 55296 << 10) + (low - 56320);
+ inc = 4;
+ break;
+ }
+ }
+ }
+ throw new RangeError(`utf16be.decode: ill-formed UTF16BE byte sequence found: byte[${i}]`);
+ }
+ chars[j++] = c;
+ i += inc;
+ }
+ return chars;
+ }
+ };
+ exports2.utf16le = {
+ encode(chars) {
+ const bytes = [];
+ let char;
+ let h;
+ let l;
+ for (let i = 0; i < chars.length; i += 1) {
+ char = chars[i];
+ if (char >= 0 && char <= 55295 || char >= 57344 && char <= 65535) {
+ bytes.push(char & mask[8]);
+ bytes.push(char >> 8 & mask[8]);
+ } else if (char >= 65536 && char <= 1114111) {
+ l = char - 65536;
+ h = 55296 + (l >> 10);
+ l = 56320 + (l & mask[10]);
+ bytes.push(h & mask[8]);
+ bytes.push(h >> 8 & mask[8]);
+ bytes.push(l & mask[8]);
+ bytes.push(l >> 8 & mask[8]);
+ } else {
+ throw new RangeError(`utf16le.encode: UTF16LE value out of range: char[${i}]: ${char}`);
+ }
+ }
+ return Buffer2.from(bytes);
+ },
+ decode(buf, bom) {
+ if (buf.length % 2 > 0) {
+ throw new RangeError(`utf16le.decode: data length must be even multiple of 2: length: ${buf.length}`);
+ }
+ const chars = [];
+ const len = buf.length;
+ let i = bom ? 2 : 0;
+ let j = 0;
+ let c;
+ let inc;
+ let i1;
+ let i3;
+ let high;
+ let low;
+ while (i < len) {
+ const TRUE = true;
+ while (TRUE) {
+ i1 = i + 1;
+ if (i1 < len) {
+ high = (buf[i1] << 8) + buf[i];
+ if (high < 55296 || high > 57343) {
+ c = high;
+ inc = 2;
+ break;
+ }
+ i3 = i + 3;
+ if (i3 < len) {
+ low = (buf[i3] << 8) + buf[i + 2];
+ if (high <= 56319 && low >= 56320 && low <= 57343) {
+ c = 65536 + (high - 55296 << 10) + (low - 56320);
+ inc = 4;
+ break;
+ }
+ }
+ }
+ throw new RangeError(`utf16le.decode: ill-formed UTF16LE byte sequence found: byte[${i}]`);
+ }
+ chars[j++] = c;
+ i += inc;
+ }
+ return chars;
+ }
+ };
+ exports2.utf32be = {
+ encode(chars) {
+ const buf = Buffer2.alloc(chars.length * 4);
+ let i = 0;
+ chars.forEach((char) => {
+ if (char >= 55296 && char <= 57343 || char > 1114111) {
+ throw new RangeError(`utf32be.encode: UTF32BE character code out of range: char[${i / 4}]: ${char}`);
+ }
+ buf[i++] = char >> 24 & mask[8];
+ buf[i++] = char >> 16 & mask[8];
+ buf[i++] = char >> 8 & mask[8];
+ buf[i++] = char & mask[8];
+ });
+ return buf;
+ },
+ decode(buf, bom) {
+ if (buf.length % 4 > 0) {
+ throw new RangeError(`utf32be.decode: UTF32BE byte length must be even multiple of 4: length: ${buf.length}`);
+ }
+ const chars = [];
+ let i = bom ? 4 : 0;
+ for (; i < buf.length; i += 4) {
+ const char = (buf[i] << 24) + (buf[i + 1] << 16) + (buf[i + 2] << 8) + buf[i + 3];
+ if (char >= 55296 && char <= 57343 || char > 1114111) {
+ throw new RangeError(`utf32be.decode: UTF32BE character code out of range: char[${i / 4}]: ${char}`);
+ }
+ chars.push(char);
+ }
+ return chars;
+ }
+ };
+ exports2.utf32le = {
+ encode(chars) {
+ const buf = Buffer2.alloc(chars.length * 4);
+ let i = 0;
+ chars.forEach((char) => {
+ if (char >= 55296 && char <= 57343 || char > 1114111) {
+ throw new RangeError(`utf32le.encode: UTF32LE character code out of range: char[${i / 4}]: ${char}`);
+ }
+ buf[i++] = char & mask[8];
+ buf[i++] = char >> 8 & mask[8];
+ buf[i++] = char >> 16 & mask[8];
+ buf[i++] = char >> 24 & mask[8];
+ });
+ return buf;
+ },
+ decode(buf, bom) {
+ if (buf.length % 4 > 0) {
+ throw new RangeError(`utf32be.decode: UTF32LE byte length must be even multiple of 4: length: ${buf.length}`);
+ }
+ const chars = [];
+ let i = bom ? 4 : 0;
+ for (; i < buf.length; i += 4) {
+ const char = (buf[i + 3] << 24) + (buf[i + 2] << 16) + (buf[i + 1] << 8) + buf[i];
+ if (char >= 55296 && char <= 57343 || char > 1114111) {
+ throw new RangeError(`utf32le.encode: UTF32LE character code out of range: char[${i / 4}]: ${char}`);
+ }
+ chars.push(char);
+ }
+ return chars;
+ }
+ };
+ exports2.uint7 = {
+ encode(chars) {
+ const buf = Buffer2.alloc(chars.length);
+ for (let i = 0; i < chars.length; i += 1) {
+ if (chars[i] > 127) {
+ throw new RangeError(`uint7.encode: UINT7 character code out of range: char[${i}]: ${chars[i]}`);
+ }
+ buf[i] = chars[i];
+ }
+ return buf;
+ },
+ decode(buf) {
+ const chars = [];
+ for (let i = 0; i < buf.length; i += 1) {
+ if (buf[i] > 127) {
+ throw new RangeError(`uint7.decode: UINT7 character code out of range: byte[${i}]: ${buf[i]}`);
+ }
+ chars[i] = buf[i];
+ }
+ return chars;
+ }
+ };
+ exports2.uint8 = {
+ encode(chars) {
+ const buf = Buffer2.alloc(chars.length);
+ for (let i = 0; i < chars.length; i += 1) {
+ if (chars[i] > 255) {
+ throw new RangeError(`uint8.encode: UINT8 character code out of range: char[${i}]: ${chars[i]}`);
+ }
+ buf[i] = chars[i];
+ }
+ return buf;
+ },
+ decode(buf) {
+ const chars = [];
+ for (let i = 0; i < buf.length; i += 1) {
+ chars[i] = buf[i];
+ }
+ return chars;
+ }
+ };
+ exports2.uint16be = {
+ encode(chars) {
+ const buf = Buffer2.alloc(chars.length * 2);
+ let i = 0;
+ chars.forEach((char) => {
+ if (char > 65535) {
+ throw new RangeError(`uint16be.encode: UINT16BE character code out of range: char[${i / 2}]: ${char}`);
+ }
+ buf[i++] = char >> 8 & mask[8];
+ buf[i++] = char & mask[8];
+ });
+ return buf;
+ },
+ decode(buf) {
+ if (buf.length % 2 > 0) {
+ throw new RangeError(`uint16be.decode: UINT16BE byte length must be even multiple of 2: length: ${buf.length}`);
+ }
+ const chars = [];
+ for (let i = 0; i < buf.length; i += 2) {
+ chars.push((buf[i] << 8) + buf[i + 1]);
+ }
+ return chars;
+ }
+ };
+ exports2.uint16le = {
+ encode(chars) {
+ const buf = Buffer2.alloc(chars.length * 2);
+ let i = 0;
+ chars.forEach((char) => {
+ if (char > 65535) {
+ throw new RangeError(`uint16le.encode: UINT16LE character code out of range: char[${i / 2}]: ${char}`);
+ }
+ buf[i++] = char & mask[8];
+ buf[i++] = char >> 8 & mask[8];
+ });
+ return buf;
+ },
+ decode(buf) {
+ if (buf.length % 2 > 0) {
+ throw new RangeError(`uint16le.decode: UINT16LE byte length must be even multiple of 2: length: ${buf.length}`);
+ }
+ const chars = [];
+ for (let i = 0; i < buf.length; i += 2) {
+ chars.push((buf[i + 1] << 8) + buf[i]);
+ }
+ return chars;
+ }
+ };
+ exports2.uint32be = {
+ encode(chars) {
+ const buf = Buffer2.alloc(chars.length * 4);
+ let i = 0;
+ chars.forEach((char) => {
+ buf[i++] = char >> 24 & mask[8];
+ buf[i++] = char >> 16 & mask[8];
+ buf[i++] = char >> 8 & mask[8];
+ buf[i++] = char & mask[8];
+ });
+ return buf;
+ },
+ decode(buf) {
+ if (buf.length % 4 > 0) {
+ throw new RangeError(`uint32be.decode: UINT32BE byte length must be even multiple of 4: length: ${buf.length}`);
+ }
+ const chars = [];
+ for (let i = 0; i < buf.length; i += 4) {
+ chars.push((buf[i] << 24) + (buf[i + 1] << 16) + (buf[i + 2] << 8) + buf[i + 3]);
+ }
+ return chars;
+ }
+ };
+ exports2.uint32le = {
+ encode(chars) {
+ const buf = Buffer2.alloc(chars.length * 4);
+ let i = 0;
+ chars.forEach((char) => {
+ buf[i++] = char & mask[8];
+ buf[i++] = char >> 8 & mask[8];
+ buf[i++] = char >> 16 & mask[8];
+ buf[i++] = char >> 24 & mask[8];
+ });
+ return buf;
+ },
+ decode(buf) {
+ if (buf.length % 4 > 0) {
+ throw new RangeError(`uint32le.decode: UINT32LE byte length must be even multiple of 4: length: ${buf.length}`);
+ }
+ const chars = [];
+ for (let i = 0; i < buf.length; i += 4) {
+ chars.push((buf[i + 3] << 24) + (buf[i + 2] << 16) + (buf[i + 1] << 8) + buf[i]);
+ }
+ return chars;
+ }
+ };
+ exports2.string = {
+ encode(chars) {
+ return exports2.utf16le.encode(chars).toString("utf16le");
+ },
+ decode(str) {
+ return exports2.utf16le.decode(Buffer2.from(str, "utf16le"), 0);
+ }
+ };
+ exports2.escaped = {
+ // Encodes an Array of 32-bit integers into ESCAPED format.
+ encode(chars) {
+ const bytes = [];
+ for (let i = 0; i < chars.length; i += 1) {
+ const char = chars[i];
+ if (char === 96) {
+ bytes.push(char);
+ bytes.push(char);
+ } else if (char === 10) {
+ bytes.push(char);
+ } else if (char >= 32 && char <= 126) {
+ bytes.push(char);
+ } else {
+ let str = "";
+ if (char >= 0 && char <= 31) {
+ str += `\`x${ascii[char]}`;
+ } else if (char >= 127 && char <= 255) {
+ str += `\`x${ascii[char]}`;
+ } else if (char >= 256 && char <= 65535) {
+ str += `\`u${ascii[char >> 8 & mask[8]]}${ascii[char & mask[8]]}`;
+ } else if (char >= 65536 && char <= 4294967295) {
+ str += "`u{";
+ const digit = char >> 24 & mask[8];
+ if (digit > 0) {
+ str += ascii[digit];
+ }
+ str += `${ascii[char >> 16 & mask[8]] + ascii[char >> 8 & mask[8]] + ascii[char & mask[8]]}}`;
+ } else {
+ throw new Error("escape.encode(char): char > 0xffffffff not allowed");
+ }
+ const buf = Buffer2.from(str);
+ buf.forEach((b) => {
+ bytes.push(b);
+ });
+ }
+ }
+ return Buffer2.from(bytes);
+ },
+ // Decodes ESCAPED format from a Buffer of bytes to an Array of 32-bit integers.
+ decode(buf) {
+ function isHex(hex) {
+ if (hex >= 48 && hex <= 57 || hex >= 65 && hex <= 70 || hex >= 97 && hex <= 102) {
+ return true;
+ }
+ return false;
+ }
+ function getx(i2, len2, bufArg) {
+ const ret2 = { char: null, nexti: i2 + 2, error: true };
+ if (i2 + 1 < len2) {
+ if (isHex(bufArg[i2]) && isHex(bufArg[i2 + 1])) {
+ const str = String.fromCodePoint(bufArg[i2], bufArg[i2 + 1]);
+ ret2.char = parseInt(str, 16);
+ if (!Number.isNaN(ret2.char)) {
+ ret2.error = false;
+ }
+ }
+ }
+ return ret2;
+ }
+ function getu(i2, len2, bufArg) {
+ const ret2 = { char: null, nexti: i2 + 4, error: true };
+ if (i2 + 3 < len2) {
+ if (isHex(bufArg[i2]) && isHex(bufArg[i2 + 1]) && isHex(bufArg[i2 + 2]) && isHex(bufArg[i2 + 3])) {
+ const str = String.fromCodePoint(bufArg[i2], bufArg[i2 + 1], bufArg[i2 + 2], bufArg[i2 + 3]);
+ ret2.char = parseInt(str, 16);
+ if (!Number.isNaN(ret2.char)) {
+ ret2.error = false;
+ }
+ }
+ }
+ return ret2;
+ }
+ function getU(i2, len2, bufArg) {
+ const ret2 = { char: null, nexti: i2 + 4, error: true };
+ let str = "";
+ while (i2 < len2 && isHex(bufArg[i2])) {
+ str += String.fromCodePoint(bufArg[i2]);
+ i2 += 1;
+ }
+ ret2.char = parseInt(str, 16);
+ if (bufArg[i2] === 125 && !Number.isNaN(ret2.char)) {
+ ret2.error = false;
+ }
+ ret2.nexti = i2 + 1;
+ return ret2;
+ }
+ const chars = [];
+ const len = buf.length;
+ let i1;
+ let ret;
+ let error;
+ let i = 0;
+ while (i < len) {
+ const TRUE = true;
+ while (TRUE) {
+ error = true;
+ if (buf[i] !== 96) {
+ chars.push(buf[i]);
+ i += 1;
+ error = false;
+ break;
+ }
+ i1 = i + 1;
+ if (i1 >= len) {
+ break;
+ }
+ if (buf[i1] === 96) {
+ chars.push(96);
+ i += 2;
+ error = false;
+ break;
+ }
+ if (buf[i1] === 120) {
+ ret = getx(i1 + 1, len, buf);
+ if (ret.error) {
+ break;
+ }
+ chars.push(ret.char);
+ i = ret.nexti;
+ error = false;
+ break;
+ }
+ if (buf[i1] === 117) {
+ if (buf[i1 + 1] === 123) {
+ ret = getU(i1 + 2, len, buf);
+ if (ret.error) {
+ break;
+ }
+ chars.push(ret.char);
+ i = ret.nexti;
+ error = false;
+ break;
+ }
+ ret = getu(i1 + 1, len, buf);
+ if (ret.error) {
+ break;
+ }
+ chars.push(ret.char);
+ i = ret.nexti;
+ error = false;
+ break;
+ }
+ break;
+ }
+ if (error) {
+ throw new Error(`escaped.decode: ill-formed escape sequence at buf[${i}]`);
+ }
+ }
+ return chars;
+ }
+ };
+ var CR = 13;
+ var LF = 10;
+ exports2.lineEnds = {
+ crlf(chars) {
+ const lfchars = [];
+ let i = 0;
+ while (i < chars.length) {
+ switch (chars[i]) {
+ case CR:
+ if (i + 1 < chars.length && chars[i + 1] === LF) {
+ i += 2;
+ } else {
+ i += 1;
+ }
+ lfchars.push(CR);
+ lfchars.push(LF);
+ break;
+ case LF:
+ lfchars.push(CR);
+ lfchars.push(LF);
+ i += 1;
+ break;
+ default:
+ lfchars.push(chars[i]);
+ i += 1;
+ break;
+ }
+ }
+ if (lfchars.length > 0 && lfchars[lfchars.length - 1] !== LF) {
+ lfchars.push(CR);
+ lfchars.push(LF);
+ }
+ return lfchars;
+ },
+ lf(chars) {
+ const lfchars = [];
+ let i = 0;
+ while (i < chars.length) {
+ switch (chars[i]) {
+ case CR:
+ if (i + 1 < chars.length && chars[i + 1] === LF) {
+ i += 2;
+ } else {
+ i += 1;
+ }
+ lfchars.push(LF);
+ break;
+ case LF:
+ lfchars.push(LF);
+ i += 1;
+ break;
+ default:
+ lfchars.push(chars[i]);
+ i += 1;
+ break;
+ }
+ }
+ if (lfchars.length > 0 && lfchars[lfchars.length - 1] !== LF) {
+ lfchars.push(LF);
+ }
+ return lfchars;
+ }
+ };
+ exports2.base64 = {
+ encode(buf) {
+ if (buf.length === 0) {
+ return Buffer2.alloc(0);
+ }
+ let i;
+ let j;
+ let n;
+ let tail = buf.length % 3;
+ tail = tail > 0 ? 3 - tail : 0;
+ let units = (buf.length + tail) / 3;
+ const base64 = Buffer2.alloc(units * 4);
+ if (tail > 0) {
+ units -= 1;
+ }
+ i = 0;
+ j = 0;
+ for (let u = 0; u < units; u += 1) {
+ n = buf[i++] << 16;
+ n += buf[i++] << 8;
+ n += buf[i++];
+ base64[j++] = base64codes[n >> 18 & mask[6]];
+ base64[j++] = base64codes[n >> 12 & mask[6]];
+ base64[j++] = base64codes[n >> 6 & mask[6]];
+ base64[j++] = base64codes[n & mask[6]];
+ }
+ if (tail === 0) {
+ return base64;
+ }
+ if (tail === 1) {
+ n = buf[i++] << 16;
+ n += buf[i] << 8;
+ base64[j++] = base64codes[n >> 18 & mask[6]];
+ base64[j++] = base64codes[n >> 12 & mask[6]];
+ base64[j++] = base64codes[n >> 6 & mask[6]];
+ base64[j] = base64codes[64];
+ return base64;
+ }
+ if (tail === 2) {
+ n = buf[i] << 16;
+ base64[j++] = base64codes[n >> 18 & mask[6]];
+ base64[j++] = base64codes[n >> 12 & mask[6]];
+ base64[j++] = base64codes[64];
+ base64[j] = base64codes[64];
+ return base64;
+ }
+ return void 0;
+ },
+ decode(codes) {
+ function validate(buf2) {
+ const chars = [];
+ let tail2 = 0;
+ for (let i2 = 0; i2 < buf2.length; i2 += 1) {
+ const char = buf2[i2];
+ const TRUE = true;
+ while (TRUE) {
+ if (char === 32 || char === 9 || char === 10 || char === 13) {
+ break;
+ }
+ if (char >= 65 && char <= 90) {
+ chars.push(char - 65);
+ break;
+ }
+ if (char >= 97 && char <= 122) {
+ chars.push(char - 71);
+ break;
+ }
+ if (char >= 48 && char <= 57) {
+ chars.push(char + 4);
+ break;
+ }
+ if (char === 43) {
+ chars.push(62);
+ break;
+ }
+ if (char === 47) {
+ chars.push(63);
+ break;
+ }
+ if (char === 61) {
+ chars.push(64);
+ tail2 += 1;
+ break;
+ }
+ throw new RangeError(`base64.decode: invalid character buf[${i2}]: ${char}`);
+ }
+ }
+ if (chars.length % 4 > 0) {
+ throw new RangeError(`base64.decode: string length not integral multiple of 4: ${chars.length}`);
+ }
+ switch (tail2) {
+ case 0:
+ break;
+ case 1:
+ if (chars[chars.length - 1] !== 64) {
+ throw new RangeError("base64.decode: one tail character found: not last character");
+ }
+ break;
+ case 2:
+ if (chars[chars.length - 1] !== 64 || chars[chars.length - 2] !== 64) {
+ throw new RangeError("base64.decode: two tail characters found: not last characters");
+ }
+ break;
+ default:
+ throw new RangeError(`base64.decode: more than two tail characters found: ${tail2}`);
+ }
+ return { tail: tail2, buf: Buffer2.from(chars) };
+ }
+ if (codes.length === 0) {
+ return Buffer2.alloc(0);
+ }
+ const val = validate(codes);
+ const { tail } = val;
+ const base64 = val.buf;
+ let i;
+ let j;
+ let n;
+ let units = base64.length / 4;
+ const buf = Buffer2.alloc(units * 3 - tail);
+ if (tail > 0) {
+ units -= 1;
+ }
+ j = 0;
+ i = 0;
+ for (let u = 0; u < units; u += 1) {
+ n = base64[i++] << 18;
+ n += base64[i++] << 12;
+ n += base64[i++] << 6;
+ n += base64[i++];
+ buf[j++] = n >> 16 & mask[8];
+ buf[j++] = n >> 8 & mask[8];
+ buf[j++] = n & mask[8];
+ }
+ if (tail === 1) {
+ n = base64[i++] << 18;
+ n += base64[i++] << 12;
+ n += base64[i] << 6;
+ buf[j++] = n >> 16 & mask[8];
+ buf[j] = n >> 8 & mask[8];
+ }
+ if (tail === 2) {
+ n = base64[i++] << 18;
+ n += base64[i++] << 12;
+ buf[j] = n >> 16 & mask[8];
+ }
+ return buf;
+ },
+ // Converts a base 64 Buffer of bytes to a JavaScript string with line breaks.
+ toString(buf) {
+ if (buf.length % 4 > 0) {
+ throw new RangeError(`base64.toString: input buffer length not multiple of 4: ${buf.length}`);
+ }
+ let str = "";
+ let lineLen = 0;
+ function buildLine(c1, c2, c3, c4) {
+ switch (lineLen) {
+ case 76:
+ str += `\r
+${c1}${c2}${c3}${c4}`;
+ lineLen = 4;
+ break;
+ case 75:
+ str += `${c1}\r
+${c2}${c3}${c4}`;
+ lineLen = 3;
+ break;
+ case 74:
+ str += `${c1 + c2}\r
+${c3}${c4}`;
+ lineLen = 2;
+ break;
+ case 73:
+ str += `${c1 + c2 + c3}\r
+${c4}`;
+ lineLen = 1;
+ break;
+ default:
+ str += c1 + c2 + c3 + c4;
+ lineLen += 4;
+ break;
+ }
+ }
+ function validate(c) {
+ if (c >= 65 && c <= 90) {
+ return true;
+ }
+ if (c >= 97 && c <= 122) {
+ return true;
+ }
+ if (c >= 48 && c <= 57) {
+ return true;
+ }
+ if (c === 43) {
+ return true;
+ }
+ if (c === 47) {
+ return true;
+ }
+ if (c === 61) {
+ return true;
+ }
+ return false;
+ }
+ for (let i = 0; i < buf.length; i += 4) {
+ for (let j = i; j < i + 4; j += 1) {
+ if (!validate(buf[j])) {
+ throw new RangeError(`base64.toString: buf[${j}]: ${buf[j]} : not valid base64 character code`);
+ }
+ }
+ buildLine(
+ String.fromCharCode(buf[i]),
+ String.fromCharCode(buf[i + 1]),
+ String.fromCharCode(buf[i + 2]),
+ String.fromCharCode(buf[i + 3])
+ );
+ }
+ return str;
+ }
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-conv-api/converter.js
+var require_converter = __commonJS({
+ "node_modules/apg-js/src/apg-conv-api/converter.js"(exports2) {
+ "use strict;";
+ var { Buffer: Buffer2 } = require("buffer");
+ var trans = require_transformers();
+ var UTF8 = "UTF8";
+ var UTF16 = "UTF16";
+ var UTF16BE = "UTF16BE";
+ var UTF16LE = "UTF16LE";
+ var UTF32 = "UTF32";
+ var UTF32BE = "UTF32BE";
+ var UTF32LE = "UTF32LE";
+ var UINT7 = "UINT7";
+ var ASCII = "ASCII";
+ var BINARY = "BINARY";
+ var UINT8 = "UINT8";
+ var UINT16 = "UINT16";
+ var UINT16LE = "UINT16LE";
+ var UINT16BE = "UINT16BE";
+ var UINT32 = "UINT32";
+ var UINT32LE = "UINT32LE";
+ var UINT32BE = "UINT32BE";
+ var ESCAPED = "ESCAPED";
+ var STRING = "STRING";
+ var bom8 = function bom82(src) {
+ src.type = UTF8;
+ const buf = src.data;
+ src.bom = 0;
+ if (buf.length >= 3) {
+ if (buf[0] === 239 && buf[1] === 187 && buf[2] === 191) {
+ src.bom = 3;
+ }
+ }
+ };
+ var bom16 = function bom162(src) {
+ const buf = src.data;
+ src.bom = 0;
+ switch (src.type) {
+ case UTF16:
+ src.type = UTF16BE;
+ if (buf.length >= 2) {
+ if (buf[0] === 254 && buf[1] === 255) {
+ src.bom = 2;
+ } else if (buf[0] === 255 && buf[1] === 254) {
+ src.type = UTF16LE;
+ src.bom = 2;
+ }
+ }
+ break;
+ case UTF16BE:
+ src.type = UTF16BE;
+ if (buf.length >= 2) {
+ if (buf[0] === 254 && buf[1] === 255) {
+ src.bom = 2;
+ } else if (buf[0] === 255 && buf[1] === 254) {
+ throw new TypeError(`src type: "${UTF16BE}" specified but BOM is for "${UTF16LE}"`);
+ }
+ }
+ break;
+ case UTF16LE:
+ src.type = UTF16LE;
+ if (buf.length >= 0) {
+ if (buf[0] === 254 && buf[1] === 255) {
+ throw new TypeError(`src type: "${UTF16LE}" specified but BOM is for "${UTF16BE}"`);
+ } else if (buf[0] === 255 && buf[1] === 254) {
+ src.bom = 2;
+ }
+ }
+ break;
+ default:
+ throw new TypeError(`UTF16 BOM: src type "${src.type}" unrecognized`);
+ }
+ };
+ var bom32 = function bom322(src) {
+ const buf = src.data;
+ src.bom = 0;
+ switch (src.type) {
+ case UTF32:
+ src.type = UTF32BE;
+ if (buf.length >= 4) {
+ if (buf[0] === 0 && buf[1] === 0 && buf[2] === 254 && buf[3] === 255) {
+ src.bom = 4;
+ }
+ if (buf[0] === 255 && buf[1] === 254 && buf[2] === 0 && buf[3] === 0) {
+ src.type = UTF32LE;
+ src.bom = 4;
+ }
+ }
+ break;
+ case UTF32BE:
+ src.type = UTF32BE;
+ if (buf.length >= 4) {
+ if (buf[0] === 0 && buf[1] === 0 && buf[2] === 254 && buf[3] === 255) {
+ src.bom = 4;
+ }
+ if (buf[0] === 255 && buf[1] === 254 && buf[2] === 0 && buf[3] === 0) {
+ throw new TypeError(`src type: ${UTF32BE} specified but BOM is for ${UTF32LE}"`);
+ }
+ }
+ break;
+ case UTF32LE:
+ src.type = UTF32LE;
+ if (buf.length >= 4) {
+ if (buf[0] === 0 && buf[1] === 0 && buf[2] === 254 && buf[3] === 255) {
+ throw new TypeError(`src type: "${UTF32LE}" specified but BOM is for "${UTF32BE}"`);
+ }
+ if (buf[0] === 255 && buf[1] === 254 && buf[2] === 0 && buf[3] === 0) {
+ src.bom = 4;
+ }
+ }
+ break;
+ default:
+ throw new TypeError(`UTF32 BOM: src type "${src.type}" unrecognized`);
+ }
+ };
+ var validateSrc = function validateSrc2(type, data) {
+ function getType(typeArg) {
+ const ret2 = {
+ type: "",
+ base64: false
+ };
+ const rx = /^(base64:)?([a-zA-Z0-9]+)$/i;
+ const result = rx.exec(typeArg);
+ if (result) {
+ if (result[2]) {
+ ret2.type = result[2].toUpperCase();
+ }
+ if (result[1]) {
+ ret2.base64 = true;
+ }
+ }
+ return ret2;
+ }
+ const ret = getType(type.toUpperCase());
+ if (ret.base64) {
+ if (ret.type === STRING) {
+ throw new TypeError(`type: "${type} "BASE64:" prefix not allowed with type ${STRING}`);
+ }
+ if (Buffer2.isBuffer(data)) {
+ ret.data = trans.base64.decode(data);
+ } else if (typeof data === "string") {
+ const buf = Buffer2.from(data, "ascii");
+ ret.data = trans.base64.decode(buf);
+ } else {
+ throw new TypeError(`type: "${type} unrecognized data type: typeof(data): ${typeof data}`);
+ }
+ } else {
+ ret.data = data;
+ }
+ switch (ret.type) {
+ case UTF8:
+ bom8(ret);
+ break;
+ case UTF16:
+ case UTF16BE:
+ case UTF16LE:
+ bom16(ret);
+ break;
+ case UTF32:
+ case UTF32BE:
+ case UTF32LE:
+ bom32(ret);
+ break;
+ case UINT16:
+ ret.type = UINT16BE;
+ break;
+ case UINT32:
+ ret.type = UINT32BE;
+ break;
+ case ASCII:
+ ret.type = UINT7;
+ break;
+ case BINARY:
+ ret.type = UINT8;
+ break;
+ case UINT7:
+ case UINT8:
+ case UINT16LE:
+ case UINT16BE:
+ case UINT32LE:
+ case UINT32BE:
+ case STRING:
+ case ESCAPED:
+ break;
+ default:
+ throw new TypeError(`type: "${type}" not recognized`);
+ }
+ if (ret.type === STRING) {
+ if (typeof ret.data !== "string") {
+ throw new TypeError(`type: "${type}" but data is not a string`);
+ }
+ } else if (!Buffer2.isBuffer(ret.data)) {
+ throw new TypeError(`type: "${type}" but data is not a Buffer`);
+ }
+ return ret;
+ };
+ var validateDst = function validateDst2(type, chars) {
+ function getType(typeArg) {
+ let fix;
+ let rem;
+ const ret2 = {
+ crlf: false,
+ lf: false,
+ base64: false,
+ type: ""
+ };
+ const TRUE = true;
+ while (TRUE) {
+ rem = typeArg;
+ fix = typeArg.slice(0, 5);
+ if (fix === "CRLF:") {
+ ret2.crlf = true;
+ rem = typeArg.slice(5);
+ break;
+ }
+ fix = typeArg.slice(0, 3);
+ if (fix === "LF:") {
+ ret2.lf = true;
+ rem = typeArg.slice(3);
+ break;
+ }
+ break;
+ }
+ fix = rem.split(":");
+ if (fix.length === 1) {
+ ret2.type = fix[0];
+ } else if (fix.length === 2 && fix[1] === "BASE64") {
+ ret2.base64 = true;
+ ret2.type = fix[0];
+ }
+ return ret2;
+ }
+ if (!Array.isArray(chars)) {
+ throw new TypeError(`dst chars: not array: "${typeof chars}`);
+ }
+ if (typeof type !== "string") {
+ throw new TypeError(`dst type: not string: "${typeof type}`);
+ }
+ const ret = getType(type.toUpperCase());
+ switch (ret.type) {
+ case UTF8:
+ case UTF16BE:
+ case UTF16LE:
+ case UTF32BE:
+ case UTF32LE:
+ case UINT7:
+ case UINT8:
+ case UINT16LE:
+ case UINT16BE:
+ case UINT32LE:
+ case UINT32BE:
+ case ESCAPED:
+ break;
+ case STRING:
+ if (ret.base64) {
+ throw new TypeError(`":BASE64" suffix not allowed with type ${STRING}`);
+ }
+ break;
+ case ASCII:
+ ret.type = UINT7;
+ break;
+ case BINARY:
+ ret.type = UINT8;
+ break;
+ case UTF16:
+ ret.type = UTF16BE;
+ break;
+ case UTF32:
+ ret.type = UTF32BE;
+ break;
+ case UINT16:
+ ret.type = UINT16BE;
+ break;
+ case UINT32:
+ ret.type = UINT32BE;
+ break;
+ default:
+ throw new TypeError(`dst type unrecognized: "${type}" : must have form [crlf:|lf:]type[:base64]`);
+ }
+ return ret;
+ };
+ var encode = function encode2(type, chars) {
+ switch (type) {
+ case UTF8:
+ return trans.utf8.encode(chars);
+ case UTF16BE:
+ return trans.utf16be.encode(chars);
+ case UTF16LE:
+ return trans.utf16le.encode(chars);
+ case UTF32BE:
+ return trans.utf32be.encode(chars);
+ case UTF32LE:
+ return trans.utf32le.encode(chars);
+ case UINT7:
+ return trans.uint7.encode(chars);
+ case UINT8:
+ return trans.uint8.encode(chars);
+ case UINT16BE:
+ return trans.uint16be.encode(chars);
+ case UINT16LE:
+ return trans.uint16le.encode(chars);
+ case UINT32BE:
+ return trans.uint32be.encode(chars);
+ case UINT32LE:
+ return trans.uint32le.encode(chars);
+ case STRING:
+ return trans.string.encode(chars);
+ case ESCAPED:
+ return trans.escaped.encode(chars);
+ default:
+ throw new TypeError(`encode type "${type}" not recognized`);
+ }
+ };
+ var decode = function decode2(src) {
+ switch (src.type) {
+ case UTF8:
+ return trans.utf8.decode(src.data, src.bom);
+ case UTF16LE:
+ return trans.utf16le.decode(src.data, src.bom);
+ case UTF16BE:
+ return trans.utf16be.decode(src.data, src.bom);
+ case UTF32BE:
+ return trans.utf32be.decode(src.data, src.bom);
+ case UTF32LE:
+ return trans.utf32le.decode(src.data, src.bom);
+ case UINT7:
+ return trans.uint7.decode(src.data);
+ case UINT8:
+ return trans.uint8.decode(src.data);
+ case UINT16BE:
+ return trans.uint16be.decode(src.data);
+ case UINT16LE:
+ return trans.uint16le.decode(src.data);
+ case UINT32BE:
+ return trans.uint32be.decode(src.data);
+ case UINT32LE:
+ return trans.uint32le.decode(src.data);
+ case STRING:
+ return trans.string.decode(src.data);
+ case ESCAPED:
+ return trans.escaped.decode(src.data);
+ default:
+ throw new TypeError(`decode type "${src.type}" not recognized`);
+ }
+ };
+ exports2.decode = function exportsDecode(type, data) {
+ const src = validateSrc(type, data);
+ return decode(src);
+ };
+ exports2.encode = function exportsEncode(type, chars) {
+ let c;
+ let buf;
+ const dst = validateDst(type, chars);
+ if (dst.crlf) {
+ c = trans.lineEnds.crlf(chars);
+ buf = encode(dst.type, c);
+ } else if (dst.lf) {
+ c = trans.lineEnds.lf(chars);
+ buf = encode(dst.type, c);
+ } else {
+ buf = encode(dst.type, chars);
+ }
+ if (dst.base64) {
+ buf = trans.base64.encode(buf);
+ }
+ return buf;
+ };
+ var convert = function convert2(srcType, srcData, dstType) {
+ return exports2.encode(dstType, exports2.decode(srcType, srcData));
+ };
+ exports2.convert = convert;
+ }
+});
+
+// node_modules/apg-js/src/apg-lib/emitcss.js
+var require_emitcss = __commonJS({
+ "node_modules/apg-js/src/apg-lib/emitcss.js"(exports2, module2) {
+ module2.exports = function emittcss() {
+ return "/* This file automatically generated by jsonToless() and LESS. */\n.apg-mono {\n font-family: monospace;\n}\n.apg-active {\n font-weight: bold;\n color: #000000;\n}\n.apg-match {\n font-weight: bold;\n color: #264BFF;\n}\n.apg-empty {\n font-weight: bold;\n color: #0fbd0f;\n}\n.apg-nomatch {\n font-weight: bold;\n color: #FF4000;\n}\n.apg-lh-match {\n font-weight: bold;\n color: #1A97BA;\n}\n.apg-lb-match {\n font-weight: bold;\n color: #5F1687;\n}\n.apg-remainder {\n font-weight: bold;\n color: #999999;\n}\n.apg-ctrl-char {\n font-weight: bolder;\n font-style: italic;\n font-size: 0.6em;\n}\n.apg-line-end {\n font-weight: bold;\n color: #000000;\n}\n.apg-error {\n font-weight: bold;\n color: #FF4000;\n}\n.apg-phrase {\n color: #000000;\n background-color: #8caae6;\n}\n.apg-empty-phrase {\n color: #0fbd0f;\n}\ntable.apg-state {\n font-family: monospace;\n margin-top: 5px;\n font-size: 11px;\n line-height: 130%;\n text-align: left;\n border: 1px solid black;\n border-collapse: collapse;\n}\ntable.apg-state th,\ntable.apg-state td {\n text-align: left;\n border: 1px solid black;\n border-collapse: collapse;\n}\ntable.apg-state th:nth-last-child(2),\ntable.apg-state td:nth-last-child(2) {\n text-align: right;\n}\ntable.apg-state caption {\n font-size: 125%;\n line-height: 130%;\n font-weight: bold;\n text-align: left;\n}\ntable.apg-stats {\n font-family: monospace;\n margin-top: 5px;\n font-size: 11px;\n line-height: 130%;\n text-align: right;\n border: 1px solid black;\n border-collapse: collapse;\n}\ntable.apg-stats th,\ntable.apg-stats td {\n text-align: right;\n border: 1px solid black;\n border-collapse: collapse;\n}\ntable.apg-stats caption {\n font-size: 125%;\n line-height: 130%;\n font-weight: bold;\n text-align: left;\n}\ntable.apg-trace {\n font-family: monospace;\n margin-top: 5px;\n font-size: 11px;\n line-height: 130%;\n text-align: right;\n border: 1px solid black;\n border-collapse: collapse;\n}\ntable.apg-trace caption {\n font-size: 125%;\n line-height: 130%;\n font-weight: bold;\n text-align: left;\n}\ntable.apg-trace th,\ntable.apg-trace td {\n text-align: right;\n border: 1px solid black;\n border-collapse: collapse;\n}\ntable.apg-trace th:last-child,\ntable.apg-trace th:nth-last-child(2),\ntable.apg-trace td:last-child,\ntable.apg-trace td:nth-last-child(2) {\n text-align: left;\n}\ntable.apg-grammar {\n font-family: monospace;\n margin-top: 5px;\n font-size: 11px;\n line-height: 130%;\n text-align: right;\n border: 1px solid black;\n border-collapse: collapse;\n}\ntable.apg-grammar caption {\n font-size: 125%;\n line-height: 130%;\n font-weight: bold;\n text-align: left;\n}\ntable.apg-grammar th,\ntable.apg-grammar td {\n text-align: right;\n border: 1px solid black;\n border-collapse: collapse;\n}\ntable.apg-grammar th:last-child,\ntable.apg-grammar td:last-child {\n text-align: left;\n}\ntable.apg-rules {\n font-family: monospace;\n margin-top: 5px;\n font-size: 11px;\n line-height: 130%;\n text-align: right;\n border: 1px solid black;\n border-collapse: collapse;\n}\ntable.apg-rules caption {\n font-size: 125%;\n line-height: 130%;\n font-weight: bold;\n text-align: left;\n}\ntable.apg-rules th,\ntable.apg-rules td {\n text-align: right;\n border: 1px solid black;\n border-collapse: collapse;\n}\ntable.apg-rules a {\n color: #003399 !important;\n}\ntable.apg-rules a:hover {\n color: #8caae6 !important;\n}\ntable.apg-attrs {\n font-family: monospace;\n margin-top: 5px;\n font-size: 11px;\n line-height: 130%;\n text-align: center;\n border: 1px solid black;\n border-collapse: collapse;\n}\ntable.apg-attrs caption {\n font-size: 125%;\n line-height: 130%;\n font-weight: bold;\n text-align: left;\n}\ntable.apg-attrs th,\ntable.apg-attrs td {\n text-align: center;\n border: 1px solid black;\n border-collapse: collapse;\n}\ntable.apg-attrs th:nth-child(1),\ntable.apg-attrs th:nth-child(2),\ntable.apg-attrs th:nth-child(3) {\n text-align: right;\n}\ntable.apg-attrs td:nth-child(1),\ntable.apg-attrs td:nth-child(2),\ntable.apg-attrs td:nth-child(3) {\n text-align: right;\n}\ntable.apg-attrs a {\n color: #003399 !important;\n}\ntable.apg-attrs a:hover {\n color: #8caae6 !important;\n}\n";
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-lib/utilities.js
+var require_utilities = __commonJS({
+ "node_modules/apg-js/src/apg-lib/utilities.js"(exports2) {
+ var style = require_style();
+ var converter = require_converter();
+ var emitCss = require_emitcss();
+ var id = require_identifiers();
+ var thisFileName = "utilities.js: ";
+ var getBounds = function(length, begArg, len) {
+ let end;
+ let beg = begArg;
+ const TRUE = true;
+ while (TRUE) {
+ if (length <= 0) {
+ beg = 0;
+ end = 0;
+ break;
+ }
+ if (typeof beg !== "number") {
+ beg = 0;
+ end = length;
+ break;
+ }
+ if (beg >= length) {
+ beg = length;
+ end = length;
+ break;
+ }
+ if (typeof len !== "number") {
+ end = length;
+ break;
+ }
+ end = beg + len;
+ if (end > length) {
+ end = length;
+ break;
+ }
+ break;
+ }
+ return {
+ beg,
+ end
+ };
+ };
+ exports2.htmlToPage = function(html, titleArg) {
+ let title;
+ if (typeof html !== "string") {
+ throw new Error(`${thisFileName}htmlToPage: input HTML is not a string`);
+ }
+ if (typeof titleArg !== "string") {
+ title = "htmlToPage";
+ } else {
+ title = titleArg;
+ }
+ let page = "";
+ page += "\n";
+ page += '\n';
+ page += "\n";
+ page += '\n';
+ page += `${title}
+`;
+ page += "\n";
+ page += "\n\n";
+ page += `${/* @__PURE__ */ new Date()}
+`;
+ page += html;
+ page += "\n\n";
+ return page;
+ };
+ exports2.parserResultToHtml = function(result, caption) {
+ let cap = null;
+ if (typeof caption === "string" && caption !== "") {
+ cap = caption;
+ }
+ let success;
+ let state;
+ if (result.success === true) {
+ success = `true`;
+ } else {
+ success = `false`;
+ }
+ if (result.state === id.EMPTY) {
+ state = `EMPTY`;
+ } else if (result.state === id.MATCH) {
+ state = `MATCH`;
+ } else if (result.state === id.NOMATCH) {
+ state = `NOMATCH`;
+ } else {
+ state = `unrecognized`;
+ }
+ let html = "";
+ html += `
+`;
+ if (cap) {
+ html += `${cap}
+`;
+ }
+ html += "state item | value | description |
\n";
+ html += `parser success | ${success} |
+`;
+ html += `true if the parse succeeded,
+`;
+ html += ` false otherwise`;
+ html += " NOTE: for success, entire string must be matched |
\n";
+ html += `parser state | ${state} |
+`;
+ html += `EMPTY, `;
+ html += `MATCH or
+`;
+ html += `NOMATCH |
+`;
+ html += `string length | ${result.length} | length of the input (sub)string |
+`;
+ html += `matched length | ${result.matched} | number of input string characters matched |
+`;
+ html += `max matched | ${result.maxMatched} | maximum number of input string characters matched |
+`;
+ html += `max tree depth | ${result.maxTreeDepth} | maximum depth of the parse tree reached |
+`;
+ html += `node hits | ${result.nodeHits} | number of parse tree node hits (opcode function calls) |
+`;
+ html += `input length | ${result.inputLength} | length of full input string |
+`;
+ html += `sub-string begin | ${result.subBegin} | sub-string first character index |
+`;
+ html += `sub-string end | ${result.subEnd} | sub-string end-of-string index |
+`;
+ html += `sub-string length | ${result.subLength} | sub-string length |
+`;
+ html += "
\n";
+ return html;
+ };
+ exports2.charsToString = function(chars, phraseIndex, phraseLength) {
+ let beg;
+ let end;
+ if (typeof phraseIndex === "number") {
+ if (phraseIndex >= chars.length) {
+ return "";
+ }
+ beg = phraseIndex < 0 ? 0 : phraseIndex;
+ } else {
+ beg = 0;
+ }
+ if (typeof phraseLength === "number") {
+ if (phraseLength <= 0) {
+ return "";
+ }
+ end = phraseLength > chars.length - beg ? chars.length : beg + phraseLength;
+ } else {
+ end = chars.length;
+ }
+ if (beg < end) {
+ return converter.encode("UTF16LE", chars.slice(beg, end)).toString("utf16le");
+ }
+ return "";
+ };
+ exports2.stringToChars = function(string) {
+ return converter.decode("STRING", string);
+ };
+ exports2.opcodeToString = function(type) {
+ let ret = "unknown";
+ switch (type) {
+ case id.ALT:
+ ret = "ALT";
+ break;
+ case id.CAT:
+ ret = "CAT";
+ break;
+ case id.RNM:
+ ret = "RNM";
+ break;
+ case id.UDT:
+ ret = "UDT";
+ break;
+ case id.AND:
+ ret = "AND";
+ break;
+ case id.NOT:
+ ret = "NOT";
+ break;
+ case id.REP:
+ ret = "REP";
+ break;
+ case id.TRG:
+ ret = "TRG";
+ break;
+ case id.TBS:
+ ret = "TBS";
+ break;
+ case id.TLS:
+ ret = "TLS";
+ break;
+ case id.BKR:
+ ret = "BKR";
+ break;
+ case id.BKA:
+ ret = "BKA";
+ break;
+ case id.BKN:
+ ret = "BKN";
+ break;
+ case id.ABG:
+ ret = "ABG";
+ break;
+ case id.AEN:
+ ret = "AEN";
+ break;
+ default:
+ throw new Error("unrecognized opcode");
+ }
+ return ret;
+ };
+ exports2.stateToString = function(state) {
+ let ret = "unknown";
+ switch (state) {
+ case id.ACTIVE:
+ ret = "ACTIVE";
+ break;
+ case id.MATCH:
+ ret = "MATCH";
+ break;
+ case id.EMPTY:
+ ret = "EMPTY";
+ break;
+ case id.NOMATCH:
+ ret = "NOMATCH";
+ break;
+ default:
+ throw new Error("unrecognized state");
+ }
+ return ret;
+ };
+ exports2.asciiChars = [
+ "NUL",
+ "SOH",
+ "STX",
+ "ETX",
+ "EOT",
+ "ENQ",
+ "ACK",
+ "BEL",
+ "BS",
+ "TAB",
+ "LF",
+ "VT",
+ "FF",
+ "CR",
+ "SO",
+ "SI",
+ "DLE",
+ "DC1",
+ "DC2",
+ "DC3",
+ "DC4",
+ "NAK",
+ "SYN",
+ "ETB",
+ "CAN",
+ "EM",
+ "SUB",
+ "ESC",
+ "FS",
+ "GS",
+ "RS",
+ "US",
+ " ",
+ "!",
+ """,
+ "#",
+ "$",
+ "%",
+ "&",
+ "'",
+ "(",
+ ")",
+ "*",
+ "+",
+ ",",
+ "-",
+ ".",
+ "/",
+ "0",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ ":",
+ ";",
+ "<",
+ "=",
+ ">",
+ "?",
+ "@",
+ "A",
+ "B",
+ "C",
+ "D",
+ "E",
+ "F",
+ "G",
+ "H",
+ "I",
+ "J",
+ "K",
+ "L",
+ "M",
+ "N",
+ "O",
+ "P",
+ "Q",
+ "R",
+ "S",
+ "T",
+ "U",
+ "V",
+ "W",
+ "X",
+ "Y",
+ "Z",
+ "[",
+ "\",
+ "]",
+ "^",
+ "_",
+ "`",
+ "a",
+ "b",
+ "c",
+ "d",
+ "e",
+ "f",
+ "g",
+ "h",
+ "i",
+ "j",
+ "k",
+ "l",
+ "m",
+ "n",
+ "o",
+ "p",
+ "q",
+ "r",
+ "s",
+ "t",
+ "u",
+ "v",
+ "w",
+ "x",
+ "y",
+ "z",
+ "{",
+ "|",
+ "}",
+ "~",
+ "DEL"
+ ];
+ exports2.charToHex = function(char) {
+ let ch = char.toString(16).toUpperCase();
+ switch (ch.length) {
+ case 1:
+ case 3:
+ case 7:
+ ch = `0${ch}`;
+ break;
+ case 2:
+ case 6:
+ ch = `00${ch}`;
+ break;
+ case 4:
+ break;
+ case 5:
+ ch = `000${ch}`;
+ break;
+ default:
+ throw new Error("unrecognized option");
+ }
+ return ch;
+ };
+ exports2.charsToDec = function(chars, beg, len) {
+ let ret = "";
+ if (!Array.isArray(chars)) {
+ throw new Error(`${thisFileName}charsToDec: input must be an array of integers`);
+ }
+ const bounds = getBounds(chars.length, beg, len);
+ if (bounds.end > bounds.beg) {
+ ret += chars[bounds.beg];
+ for (let i = bounds.beg + 1; i < bounds.end; i += 1) {
+ ret += `,${chars[i]}`;
+ }
+ }
+ return ret;
+ };
+ exports2.charsToHex = function(chars, beg, len) {
+ let ret = "";
+ if (!Array.isArray(chars)) {
+ throw new Error(`${thisFileName}charsToHex: input must be an array of integers`);
+ }
+ const bounds = getBounds(chars.length, beg, len);
+ if (bounds.end > bounds.beg) {
+ ret += `\\x${exports2.charToHex(chars[bounds.beg])}`;
+ for (let i = bounds.beg + 1; i < bounds.end; i += 1) {
+ ret += `,\\x${exports2.charToHex(chars[i])}`;
+ }
+ }
+ return ret;
+ };
+ exports2.charsToHtmlEntities = function(chars, beg, len) {
+ let ret = "";
+ if (!Array.isArray(chars)) {
+ throw new Error(`${thisFileName}charsToHex: input must be an array of integers`);
+ }
+ const bounds = getBounds(chars.length, beg, len);
+ if (bounds.end > bounds.beg) {
+ for (let i = bounds.beg; i < bounds.end; i += 1) {
+ ret += `${chars[i].toString(16)};`;
+ }
+ }
+ return ret;
+ };
+ function isUnicode(char) {
+ if (char >= 55296 && char <= 57343) {
+ return false;
+ }
+ if (char > 1114111) {
+ return false;
+ }
+ return true;
+ }
+ exports2.charsToUnicode = function(chars, beg, len) {
+ let ret = "";
+ if (!Array.isArray(chars)) {
+ throw new Error(`${thisFileName}charsToUnicode: input must be an array of integers`);
+ }
+ const bounds = getBounds(chars.length, beg, len);
+ if (bounds.end > bounds.beg) {
+ for (let i = bounds.beg; i < bounds.end; i += 1) {
+ if (isUnicode(chars[i])) {
+ ret += `${chars[i]};`;
+ } else {
+ ret += ` U+${exports2.charToHex(chars[i])}`;
+ }
+ }
+ }
+ return ret;
+ };
+ exports2.charsToJsUnicode = function(chars, beg, len) {
+ let ret = "";
+ if (!Array.isArray(chars)) {
+ throw new Error(`${thisFileName}charsToJsUnicode: input must be an array of integers`);
+ }
+ const bounds = getBounds(chars.length, beg, len);
+ if (bounds.end > bounds.beg) {
+ ret += `\\u${exports2.charToHex(chars[bounds.beg])}`;
+ for (let i = bounds.beg + 1; i < bounds.end; i += 1) {
+ ret += `,\\u${exports2.charToHex(chars[i])}`;
+ }
+ }
+ return ret;
+ };
+ exports2.charsToAscii = function(chars, beg, len) {
+ let ret = "";
+ if (!Array.isArray(chars)) {
+ throw new Error(`${thisFileName}charsToAscii: input must be an array of integers`);
+ }
+ const bounds = getBounds(chars.length, beg, len);
+ for (let i = bounds.beg; i < bounds.end; i += 1) {
+ const char = chars[i];
+ if (char >= 32 && char <= 126) {
+ ret += String.fromCharCode(char);
+ } else {
+ ret += `\\x${exports2.charToHex(char)}`;
+ }
+ }
+ return ret;
+ };
+ exports2.charsToAsciiHtml = function(chars, beg, len) {
+ if (!Array.isArray(chars)) {
+ throw new Error(`${thisFileName}charsToAsciiHtml: input must be an array of integers`);
+ }
+ let html = "";
+ let char;
+ const bounds = getBounds(chars.length, beg, len);
+ for (let i = bounds.beg; i < bounds.end; i += 1) {
+ char = chars[i];
+ if (char < 32 || char === 127) {
+ html += `${exports2.asciiChars[char]}`;
+ } else if (char > 127) {
+ html += `U+${exports2.charToHex(char)}`;
+ } else {
+ html += exports2.asciiChars[char];
+ }
+ }
+ return html;
+ };
+ exports2.stringToAsciiHtml = function(str) {
+ const chars = converter.decode("STRING", str);
+ return this.charsToAsciiHtml(chars);
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-lib/ast.js
+var require_ast = __commonJS({
+ "node_modules/apg-js/src/apg-lib/ast.js"(exports2, module2) {
+ module2.exports = function exportsAst() {
+ const id = require_identifiers();
+ const utils = require_utilities();
+ const thisFileName = "ast.js: ";
+ const that = this;
+ let rules = null;
+ let udts = null;
+ let chars = null;
+ let nodeCount = 0;
+ const nodesDefined = [];
+ const nodeCallbacks = [];
+ const stack = [];
+ const records = [];
+ this.callbacks = [];
+ this.astObject = "astObject";
+ this.init = function init(rulesIn, udtsIn, charsIn) {
+ stack.length = 0;
+ records.length = 0;
+ nodesDefined.length = 0;
+ nodeCount = 0;
+ rules = rulesIn;
+ udts = udtsIn;
+ chars = charsIn;
+ let i;
+ const list = [];
+ for (i = 0; i < rules.length; i += 1) {
+ list.push(rules[i].lower);
+ }
+ for (i = 0; i < udts.length; i += 1) {
+ list.push(udts[i].lower);
+ }
+ nodeCount = rules.length + udts.length;
+ for (i = 0; i < nodeCount; i += 1) {
+ nodesDefined[i] = false;
+ nodeCallbacks[i] = null;
+ }
+ for (const index in that.callbacks) {
+ const lower = index.toLowerCase();
+ i = list.indexOf(lower);
+ if (i < 0) {
+ throw new Error(`${thisFileName}init: node '${index}' not a rule or udt name`);
+ }
+ if (typeof that.callbacks[index] === "function") {
+ nodesDefined[i] = true;
+ nodeCallbacks[i] = that.callbacks[index];
+ }
+ if (that.callbacks[index] === true) {
+ nodesDefined[i] = true;
+ }
+ }
+ };
+ this.ruleDefined = function ruleDefined(index) {
+ return nodesDefined[index] !== false;
+ };
+ this.udtDefined = function udtDefined(index) {
+ return nodesDefined[rules.length + index] !== false;
+ };
+ this.down = function down(callbackIndex, name) {
+ const thisIndex = records.length;
+ stack.push(thisIndex);
+ records.push({
+ name,
+ thisIndex,
+ thatIndex: null,
+ state: id.SEM_PRE,
+ callbackIndex,
+ phraseIndex: null,
+ phraseLength: null,
+ stack: stack.length
+ });
+ return thisIndex;
+ };
+ this.up = function up(callbackIndex, name, phraseIndex, phraseLength) {
+ const thisIndex = records.length;
+ const thatIndex = stack.pop();
+ records.push({
+ name,
+ thisIndex,
+ thatIndex,
+ state: id.SEM_POST,
+ callbackIndex,
+ phraseIndex,
+ phraseLength,
+ stack: stack.length
+ });
+ records[thatIndex].thatIndex = thisIndex;
+ records[thatIndex].phraseIndex = phraseIndex;
+ records[thatIndex].phraseLength = phraseLength;
+ return thisIndex;
+ };
+ this.translate = function translate(data) {
+ let ret;
+ let callback;
+ let record;
+ for (let i = 0; i < records.length; i += 1) {
+ record = records[i];
+ callback = nodeCallbacks[record.callbackIndex];
+ if (record.state === id.SEM_PRE) {
+ if (callback !== null) {
+ ret = callback(id.SEM_PRE, chars, record.phraseIndex, record.phraseLength, data);
+ if (ret === id.SEM_SKIP) {
+ i = record.thatIndex;
+ }
+ }
+ } else if (callback !== null) {
+ callback(id.SEM_POST, chars, record.phraseIndex, record.phraseLength, data);
+ }
+ }
+ };
+ this.setLength = function setLength(length) {
+ records.length = length;
+ if (length > 0) {
+ stack.length = records[length - 1].stack;
+ } else {
+ stack.length = 0;
+ }
+ };
+ this.getLength = function getLength() {
+ return records.length;
+ };
+ function indent(n) {
+ let ret = "";
+ for (let i = 0; i < n; i += 1) {
+ ret += " ";
+ }
+ return ret;
+ }
+ this.toXml = function toSml(modeArg) {
+ let display = utils.charsToDec;
+ let caption = "decimal integer character codes";
+ if (typeof modeArg === "string" && modeArg.length >= 3) {
+ const mode = modeArg.slice(0, 3).toLowerCase();
+ if (mode === "asc") {
+ display = utils.charsToAscii;
+ caption = "ASCII for printing characters, hex for non-printing";
+ } else if (mode === "hex") {
+ display = utils.charsToHex;
+ caption = "hexadecimal integer character codes";
+ } else if (mode === "uni") {
+ display = utils.charsToUnicode;
+ caption = "Unicode UTF-32 integer character codes";
+ }
+ }
+ let xml = "";
+ let depth = 0;
+ xml += '\n';
+ xml += `
+`;
+ xml += `
+`;
+ xml += indent(depth + 2);
+ xml += display(chars);
+ xml += "\n";
+ records.forEach((rec) => {
+ if (rec.state === id.SEM_PRE) {
+ depth += 1;
+ xml += indent(depth);
+ xml += `
+`;
+ xml += indent(depth + 2);
+ xml += display(chars, rec.phraseIndex, rec.phraseLength);
+ xml += "\n";
+ } else {
+ xml += indent(depth);
+ xml += `
+`;
+ depth -= 1;
+ }
+ });
+ xml += "\n";
+ return xml;
+ };
+ this.phrases = function phrases() {
+ const obj = {};
+ let i;
+ let record;
+ for (i = 0; i < records.length; i += 1) {
+ record = records[i];
+ if (record.state === id.SEM_PRE) {
+ if (!Array.isArray(obj[record.name])) {
+ obj[record.name] = [];
+ }
+ obj[record.name].push({
+ index: record.phraseIndex,
+ length: record.phraseLength
+ });
+ }
+ }
+ return obj;
+ };
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-lib/circular-buffer.js
+var require_circular_buffer = __commonJS({
+ "node_modules/apg-js/src/apg-lib/circular-buffer.js"(exports2, module2) {
+ module2.exports = function exportsCircularBuffer() {
+ "use strict;";
+ const thisFileName = "circular-buffer.js: ";
+ let itemIndex = -1;
+ let maxListSize = 0;
+ this.init = function init(size) {
+ if (typeof size !== "number" || size <= 0) {
+ throw new Error(`${thisFileName}init: circular buffer size must an integer > 0`);
+ }
+ maxListSize = Math.ceil(size);
+ itemIndex = -1;
+ };
+ this.increment = function increment() {
+ itemIndex += 1;
+ return (itemIndex + maxListSize) % maxListSize;
+ };
+ this.maxSize = function maxSize() {
+ return maxListSize;
+ };
+ this.items = function items() {
+ return itemIndex + 1;
+ };
+ this.getListIndex = function getListIndex(item) {
+ if (itemIndex === -1) {
+ return -1;
+ }
+ if (item < 0 || item > itemIndex) {
+ return -1;
+ }
+ if (itemIndex - item >= maxListSize) {
+ return -1;
+ }
+ return (item + maxListSize) % maxListSize;
+ };
+ this.forEach = function forEach(fn) {
+ if (itemIndex === -1) {
+ return;
+ }
+ if (itemIndex < maxListSize) {
+ for (let i = 0; i <= itemIndex; i += 1) {
+ fn(i, i);
+ }
+ return;
+ }
+ for (let i = itemIndex - maxListSize + 1; i <= itemIndex; i += 1) {
+ const listIndex = (i + maxListSize) % maxListSize;
+ fn(listIndex, i);
+ }
+ };
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-lib/parser.js
+var require_parser = __commonJS({
+ "node_modules/apg-js/src/apg-lib/parser.js"(exports2, module2) {
+ module2.exports = function parser() {
+ const id = require_identifiers();
+ const utils = require_utilities();
+ const thisFileName = "parser.js: ";
+ const thisThis = this;
+ let opExecute;
+ this.ast = null;
+ this.stats = null;
+ this.trace = null;
+ this.callbacks = [];
+ let opcodes = null;
+ let chars = null;
+ let charsBegin;
+ let charsLength;
+ let charsEnd;
+ let lookAround;
+ let treeDepth = 0;
+ let maxTreeDepth = 0;
+ let nodeHits = 0;
+ let ruleCallbacks = null;
+ let udtCallbacks = null;
+ let rules = null;
+ let udts = null;
+ let syntaxData = null;
+ let maxMatched = 0;
+ let limitTreeDepth = Infinity;
+ let limitNodeHits = Infinity;
+ const evaluateRule = function evaluateRule2(ruleIndex, phraseIndex, sysData) {
+ const functionName = `${thisFileName}evaluateRule(): `;
+ if (ruleIndex >= rules.length) {
+ throw new Error(`${functionName}rule index: ${ruleIndex} out of range`);
+ }
+ if (phraseIndex >= charsEnd) {
+ throw new Error(`${functionName}phrase index: ${phraseIndex} out of range`);
+ }
+ const { length } = opcodes;
+ opcodes.push({
+ type: id.RNM,
+ index: ruleIndex
+ });
+ opExecute(length, phraseIndex, sysData);
+ opcodes.pop();
+ };
+ const evaluateUdt = function(udtIndex, phraseIndex, sysData) {
+ const functionName = `${thisFileName}evaluateUdt(): `;
+ if (udtIndex >= udts.length) {
+ throw new Error(`${functionName}udt index: ${udtIndex} out of range`);
+ }
+ if (phraseIndex >= charsEnd) {
+ throw new Error(`${functionName}phrase index: ${phraseIndex} out of range`);
+ }
+ const { length } = opcodes;
+ opcodes.push({
+ type: id.UDT,
+ empty: udts[udtIndex].empty,
+ index: udtIndex
+ });
+ opExecute(length, phraseIndex, sysData);
+ opcodes.pop();
+ };
+ const clear = function() {
+ treeDepth = 0;
+ maxTreeDepth = 0;
+ nodeHits = 0;
+ maxMatched = 0;
+ lookAround = [
+ {
+ lookAround: id.LOOKAROUND_NONE,
+ anchor: 0,
+ charsEnd: 0,
+ charsLength: 0
+ }
+ ];
+ rules = null;
+ udts = null;
+ chars = null;
+ charsBegin = 0;
+ charsLength = 0;
+ charsEnd = 0;
+ ruleCallbacks = null;
+ udtCallbacks = null;
+ syntaxData = null;
+ opcodes = null;
+ };
+ const backRef = function() {
+ const stack = [];
+ const init = function() {
+ const obj = {};
+ rules.forEach((rule) => {
+ if (rule.isBkr) {
+ obj[rule.lower] = null;
+ }
+ });
+ if (udts.length > 0) {
+ udts.forEach((udt) => {
+ if (udt.isBkr) {
+ obj[udt.lower] = null;
+ }
+ });
+ }
+ stack.push(obj);
+ };
+ const copy = function() {
+ const top = stack[stack.length - 1];
+ const obj = {};
+ for (const name in top) {
+ obj[name] = top[name];
+ }
+ return obj;
+ };
+ this.push = function push() {
+ stack.push(copy());
+ };
+ this.pop = function pop(lengthArg) {
+ let length = lengthArg;
+ if (!length) {
+ length = stack.length - 1;
+ }
+ if (length < 1 || length > stack.length) {
+ throw new Error(`${thisFileName}backRef.pop(): bad length: ${length}`);
+ }
+ stack.length = length;
+ return stack[stack.length - 1];
+ };
+ this.length = function length() {
+ return stack.length;
+ };
+ this.savePhrase = function savePhrase(name, index, length) {
+ stack[stack.length - 1][name] = {
+ phraseIndex: index,
+ phraseLength: length
+ };
+ };
+ this.getPhrase = function(name) {
+ return stack[stack.length - 1][name];
+ };
+ init();
+ };
+ const systemData = function systemData2() {
+ const thisData = this;
+ this.state = id.ACTIVE;
+ this.phraseLength = 0;
+ this.ruleIndex = 0;
+ this.udtIndex = 0;
+ this.lookAround = lookAround[lookAround.length - 1];
+ this.uFrame = new backRef();
+ this.pFrame = new backRef();
+ this.evaluateRule = evaluateRule;
+ this.evaluateUdt = evaluateUdt;
+ this.refresh = function refresh() {
+ thisData.state = id.ACTIVE;
+ thisData.phraseLength = 0;
+ thisData.lookAround = lookAround[lookAround.length - 1];
+ };
+ };
+ const lookAroundValue = function lookAroundValue2() {
+ return lookAround[lookAround.length - 1];
+ };
+ const inLookAround = function inLookAround2() {
+ return lookAround.length > 1;
+ };
+ const inLookBehind = function() {
+ return lookAround[lookAround.length - 1].lookAround === id.LOOKAROUND_BEHIND;
+ };
+ const initializeAst = function() {
+ const functionName = `${thisFileName}initializeAst(): `;
+ const TRUE = true;
+ while (TRUE) {
+ if (thisThis.ast === void 0) {
+ thisThis.ast = null;
+ break;
+ }
+ if (thisThis.ast === null) {
+ break;
+ }
+ if (thisThis.ast.astObject !== "astObject") {
+ throw new Error(`${functionName}ast object not recognized`);
+ }
+ break;
+ }
+ if (thisThis.ast !== null) {
+ thisThis.ast.init(rules, udts, chars);
+ }
+ };
+ const initializeTrace = function() {
+ const functionName = `${thisFileName}initializeTrace(): `;
+ const TRUE = true;
+ while (TRUE) {
+ if (thisThis.trace === void 0) {
+ thisThis.trace = null;
+ break;
+ }
+ if (thisThis.trace === null) {
+ break;
+ }
+ if (thisThis.trace.traceObject !== "traceObject") {
+ throw new Error(`${functionName}trace object not recognized`);
+ }
+ break;
+ }
+ if (thisThis.trace !== null) {
+ thisThis.trace.init(rules, udts, chars);
+ }
+ };
+ const initializeStats = function() {
+ const functionName = `${thisFileName}initializeStats(): `;
+ const TRUE = true;
+ while (TRUE) {
+ if (thisThis.stats === void 0) {
+ thisThis.stats = null;
+ break;
+ }
+ if (thisThis.stats === null) {
+ break;
+ }
+ if (thisThis.stats.statsObject !== "statsObject") {
+ throw new Error(`${functionName}stats object not recognized`);
+ }
+ break;
+ }
+ if (thisThis.stats !== null) {
+ thisThis.stats.init(rules, udts);
+ }
+ };
+ const initializeGrammar = function(grammar) {
+ const functionName = `${thisFileName}initializeGrammar(): `;
+ if (!grammar) {
+ throw new Error(`${functionName}grammar object undefined`);
+ }
+ if (grammar.grammarObject !== "grammarObject") {
+ throw new Error(`${functionName}bad grammar object`);
+ }
+ rules = grammar.rules;
+ udts = grammar.udts;
+ };
+ const initializeStartRule = function(startRule) {
+ const functionName = `${thisFileName}initializeStartRule(): `;
+ let start = null;
+ if (typeof startRule === "number") {
+ if (startRule >= rules.length) {
+ throw new Error(`${functionName}start rule index too large: max: ${rules.length}: index: ${startRule}`);
+ }
+ start = startRule;
+ } else if (typeof startRule === "string") {
+ const lower = startRule.toLowerCase();
+ for (let i = 0; i < rules.length; i += 1) {
+ if (lower === rules[i].lower) {
+ start = rules[i].index;
+ break;
+ }
+ }
+ if (start === null) {
+ throw new Error(`${functionName}start rule name '${startRule}' not recognized`);
+ }
+ } else {
+ throw new Error(`${functionName}type of start rule '${typeof startRule}' not recognized`);
+ }
+ return start;
+ };
+ const initializeInputChars = function initializeInputChars2(inputArg, begArg, lenArg) {
+ const functionName = `${thisFileName}initializeInputChars(): `;
+ let input = inputArg;
+ let beg = begArg;
+ let len = lenArg;
+ if (input === void 0) {
+ throw new Error(`${functionName}input string is undefined`);
+ }
+ if (input === null) {
+ throw new Error(`${functionName}input string is null`);
+ }
+ if (typeof input === "string") {
+ input = utils.stringToChars(input);
+ } else if (!Array.isArray(input)) {
+ throw new Error(`${functionName}input string is not a string or array`);
+ }
+ if (input.length > 0) {
+ if (typeof input[0] !== "number") {
+ throw new Error(`${functionName}input string not an array of integers`);
+ }
+ }
+ if (typeof beg !== "number") {
+ beg = 0;
+ } else {
+ beg = Math.floor(beg);
+ if (beg < 0 || beg > input.length) {
+ throw new Error(`${functionName}input beginning index out of range: ${beg}`);
+ }
+ }
+ if (typeof len !== "number") {
+ len = input.length - beg;
+ } else {
+ len = Math.floor(len);
+ if (len < 0 || len > input.length - beg) {
+ throw new Error(`${functionName}input length out of range: ${len}`);
+ }
+ }
+ chars = input;
+ charsBegin = beg;
+ charsLength = len;
+ charsEnd = charsBegin + charsLength;
+ };
+ const initializeCallbacks = function() {
+ const functionName = `${thisFileName}initializeCallbacks(): `;
+ let i;
+ ruleCallbacks = [];
+ udtCallbacks = [];
+ for (i = 0; i < rules.length; i += 1) {
+ ruleCallbacks[i] = null;
+ }
+ for (i = 0; i < udts.length; i += 1) {
+ udtCallbacks[i] = null;
+ }
+ let func;
+ const list = [];
+ for (i = 0; i < rules.length; i += 1) {
+ list.push(rules[i].lower);
+ }
+ for (i = 0; i < udts.length; i += 1) {
+ list.push(udts[i].lower);
+ }
+ for (const index in thisThis.callbacks) {
+ i = list.indexOf(index.toLowerCase());
+ if (i < 0) {
+ throw new Error(`${functionName}syntax callback '${index}' not a rule or udt name`);
+ }
+ func = thisThis.callbacks[index];
+ if (!func) {
+ func = null;
+ }
+ if (typeof func === "function" || func === null) {
+ if (i < rules.length) {
+ ruleCallbacks[i] = func;
+ } else {
+ udtCallbacks[i - rules.length] = func;
+ }
+ } else {
+ throw new Error(
+ `${functionName}syntax callback[${index}] must be function reference or 'false' (false/null/undefined/etc.)`
+ );
+ }
+ }
+ for (i = 0; i < udts.length; i += 1) {
+ if (udtCallbacks[i] === null) {
+ throw new Error(
+ `${functionName}all UDT callbacks must be defined. UDT callback[${udts[i].lower}] not a function reference`
+ );
+ }
+ }
+ };
+ this.setMaxTreeDepth = function(depth) {
+ if (typeof depth !== "number") {
+ throw new Error(`parser: max tree depth must be integer > 0: ${depth}`);
+ }
+ limitTreeDepth = Math.floor(depth);
+ if (limitTreeDepth <= 0) {
+ throw new Error(`parser: max tree depth must be integer > 0: ${depth}`);
+ }
+ };
+ this.setMaxNodeHits = function(hits) {
+ if (typeof hits !== "number") {
+ throw new Error(`parser: max node hits must be integer > 0: ${hits}`);
+ }
+ limitNodeHits = Math.floor(hits);
+ if (limitNodeHits <= 0) {
+ throw new Error(`parser: max node hits must be integer > 0: ${hits}`);
+ }
+ };
+ const privateParse = function(grammar, startRuleArg, callbackData) {
+ let success;
+ const functionName = `${thisFileName}parse(): `;
+ initializeGrammar(grammar);
+ const startRule = initializeStartRule(startRuleArg);
+ initializeCallbacks();
+ initializeTrace();
+ initializeStats();
+ initializeAst();
+ const sysData = new systemData();
+ if (!(callbackData === void 0 || callbackData === null)) {
+ syntaxData = callbackData;
+ }
+ opcodes = [
+ {
+ type: id.RNM,
+ index: startRule
+ }
+ ];
+ opExecute(0, charsBegin, sysData);
+ opcodes = null;
+ switch (sysData.state) {
+ case id.ACTIVE:
+ throw new Error(`${functionName}final state should never be 'ACTIVE'`);
+ case id.NOMATCH:
+ success = false;
+ break;
+ case id.EMPTY:
+ case id.MATCH:
+ if (sysData.phraseLength === charsLength) {
+ success = true;
+ } else {
+ success = false;
+ }
+ break;
+ default:
+ throw new Error("unrecognized state");
+ }
+ return {
+ success,
+ state: sysData.state,
+ length: charsLength,
+ matched: sysData.phraseLength,
+ maxMatched,
+ maxTreeDepth,
+ nodeHits,
+ inputLength: chars.length,
+ subBegin: charsBegin,
+ subEnd: charsEnd,
+ subLength: charsLength
+ };
+ };
+ this.parseSubstring = function parseSubstring(grammar, startRule, inputChars, inputIndex, inputLength, callbackData) {
+ clear();
+ initializeInputChars(inputChars, inputIndex, inputLength);
+ return privateParse(grammar, startRule, callbackData);
+ };
+ this.parse = function parse(grammar, startRule, inputChars, callbackData) {
+ clear();
+ initializeInputChars(inputChars, 0, inputChars.length);
+ return privateParse(grammar, startRule, callbackData);
+ };
+ const opALT = function(opIndex, phraseIndex, sysData) {
+ const op = opcodes[opIndex];
+ for (let i = 0; i < op.children.length; i += 1) {
+ opExecute(op.children[i], phraseIndex, sysData);
+ if (sysData.state !== id.NOMATCH) {
+ break;
+ }
+ }
+ };
+ const opCAT = function(opIndex, phraseIndex, sysData) {
+ let success;
+ let astLength;
+ let catCharIndex;
+ let catPhrase;
+ const op = opcodes[opIndex];
+ const ulen = sysData.uFrame.length();
+ const plen = sysData.pFrame.length();
+ if (thisThis.ast) {
+ astLength = thisThis.ast.getLength();
+ }
+ success = true;
+ catCharIndex = phraseIndex;
+ catPhrase = 0;
+ for (let i = 0; i < op.children.length; i += 1) {
+ opExecute(op.children[i], catCharIndex, sysData);
+ if (sysData.state === id.NOMATCH) {
+ success = false;
+ break;
+ } else {
+ catCharIndex += sysData.phraseLength;
+ catPhrase += sysData.phraseLength;
+ }
+ }
+ if (success) {
+ sysData.state = catPhrase === 0 ? id.EMPTY : id.MATCH;
+ sysData.phraseLength = catPhrase;
+ } else {
+ sysData.state = id.NOMATCH;
+ sysData.phraseLength = 0;
+ sysData.uFrame.pop(ulen);
+ sysData.pFrame.pop(plen);
+ if (thisThis.ast) {
+ thisThis.ast.setLength(astLength);
+ }
+ }
+ };
+ const opREP = function(opIndex, phraseIndex, sysData) {
+ let astLength;
+ let repCharIndex;
+ let repPhrase;
+ let repCount;
+ const op = opcodes[opIndex];
+ if (op.max === 0) {
+ sysData.state = id.EMPTY;
+ sysData.phraseLength = 0;
+ return;
+ }
+ repCharIndex = phraseIndex;
+ repPhrase = 0;
+ repCount = 0;
+ const ulen = sysData.uFrame.length();
+ const plen = sysData.pFrame.length();
+ if (thisThis.ast) {
+ astLength = thisThis.ast.getLength();
+ }
+ const TRUE = true;
+ while (TRUE) {
+ if (repCharIndex >= charsEnd) {
+ break;
+ }
+ opExecute(opIndex + 1, repCharIndex, sysData);
+ if (sysData.state === id.NOMATCH) {
+ break;
+ }
+ if (sysData.state === id.EMPTY) {
+ break;
+ }
+ repCount += 1;
+ repPhrase += sysData.phraseLength;
+ repCharIndex += sysData.phraseLength;
+ if (repCount === op.max) {
+ break;
+ }
+ }
+ if (sysData.state === id.EMPTY) {
+ sysData.state = repPhrase === 0 ? id.EMPTY : id.MATCH;
+ sysData.phraseLength = repPhrase;
+ } else if (repCount >= op.min) {
+ sysData.state = repPhrase === 0 ? id.EMPTY : id.MATCH;
+ sysData.phraseLength = repPhrase;
+ } else {
+ sysData.state = id.NOMATCH;
+ sysData.phraseLength = 0;
+ sysData.uFrame.pop(ulen);
+ sysData.pFrame.pop(plen);
+ if (thisThis.ast) {
+ thisThis.ast.setLength(astLength);
+ }
+ }
+ };
+ const validateRnmCallbackResult = function(rule, sysData, charsLeft, down) {
+ if (sysData.phraseLength > charsLeft) {
+ let str = `${thisFileName}opRNM(${rule.name}): callback function error: `;
+ str += `sysData.phraseLength: ${sysData.phraseLength}`;
+ str += ` must be <= remaining chars: ${charsLeft}`;
+ throw new Error(str);
+ }
+ switch (sysData.state) {
+ case id.ACTIVE:
+ if (down !== true) {
+ throw new Error(
+ `${thisFileName}opRNM(${rule.name}): callback function return error. ACTIVE state not allowed.`
+ );
+ }
+ break;
+ case id.EMPTY:
+ sysData.phraseLength = 0;
+ break;
+ case id.MATCH:
+ if (sysData.phraseLength === 0) {
+ sysData.state = id.EMPTY;
+ }
+ break;
+ case id.NOMATCH:
+ sysData.phraseLength = 0;
+ break;
+ default:
+ throw new Error(
+ `${thisFileName}opRNM(${rule.name}): callback function return error. Unrecognized return state: ${sysData.state}`
+ );
+ }
+ };
+ const opRNM = function(opIndex, phraseIndex, sysData) {
+ let astLength;
+ let astDefined;
+ let savedOpcodes;
+ let ulen;
+ let plen;
+ let saveFrame;
+ const op = opcodes[opIndex];
+ const rule = rules[op.index];
+ const callback = ruleCallbacks[rule.index];
+ const notLookAround = !inLookAround();
+ if (notLookAround) {
+ astDefined = thisThis.ast && thisThis.ast.ruleDefined(op.index);
+ if (astDefined) {
+ astLength = thisThis.ast.getLength();
+ thisThis.ast.down(op.index, rules[op.index].name);
+ }
+ ulen = sysData.uFrame.length();
+ plen = sysData.pFrame.length();
+ sysData.uFrame.push();
+ sysData.pFrame.push();
+ saveFrame = sysData.pFrame;
+ sysData.pFrame = new backRef();
+ }
+ if (callback === null) {
+ savedOpcodes = opcodes;
+ opcodes = rule.opcodes;
+ opExecute(0, phraseIndex, sysData);
+ opcodes = savedOpcodes;
+ } else {
+ const charsLeft = charsEnd - phraseIndex;
+ sysData.ruleIndex = rule.index;
+ callback(sysData, chars, phraseIndex, syntaxData);
+ validateRnmCallbackResult(rule, sysData, charsLeft, true);
+ if (sysData.state === id.ACTIVE) {
+ savedOpcodes = opcodes;
+ opcodes = rule.opcodes;
+ opExecute(0, phraseIndex, sysData);
+ opcodes = savedOpcodes;
+ sysData.ruleIndex = rule.index;
+ callback(sysData, chars, phraseIndex, syntaxData);
+ validateRnmCallbackResult(rule, sysData, charsLeft, false);
+ }
+ }
+ if (notLookAround) {
+ if (astDefined) {
+ if (sysData.state === id.NOMATCH) {
+ thisThis.ast.setLength(astLength);
+ } else {
+ thisThis.ast.up(op.index, rule.name, phraseIndex, sysData.phraseLength);
+ }
+ }
+ sysData.pFrame = saveFrame;
+ if (sysData.state === id.NOMATCH) {
+ sysData.uFrame.pop(ulen);
+ sysData.pFrame.pop(plen);
+ } else if (rule.isBkr) {
+ sysData.pFrame.savePhrase(rule.lower, phraseIndex, sysData.phraseLength);
+ sysData.uFrame.savePhrase(rule.lower, phraseIndex, sysData.phraseLength);
+ }
+ }
+ };
+ const validateUdtCallbackResult = function(udt, sysData, charsLeft) {
+ if (sysData.phraseLength > charsLeft) {
+ let str = `${thisFileName}opUDT(${udt.name}): callback function error: `;
+ str += `sysData.phraseLength: ${sysData.phraseLength}`;
+ str += ` must be <= remaining chars: ${charsLeft}`;
+ throw new Error(str);
+ }
+ switch (sysData.state) {
+ case id.ACTIVE:
+ throw new Error(`${thisFileName}opUDT(${udt.name}): callback function return error. ACTIVE state not allowed.`);
+ case id.EMPTY:
+ if (udt.empty === false) {
+ throw new Error(`${thisFileName}opUDT(${udt.name}): callback function return error. May not return EMPTY.`);
+ } else {
+ sysData.phraseLength = 0;
+ }
+ break;
+ case id.MATCH:
+ if (sysData.phraseLength === 0) {
+ if (udt.empty === false) {
+ throw new Error(`${thisFileName}opUDT(${udt.name}): callback function return error. May not return EMPTY.`);
+ } else {
+ sysData.state = id.EMPTY;
+ }
+ }
+ break;
+ case id.NOMATCH:
+ sysData.phraseLength = 0;
+ break;
+ default:
+ throw new Error(
+ `${thisFileName}opUDT(${udt.name}): callback function return error. Unrecognized return state: ${sysData.state}`
+ );
+ }
+ };
+ const opUDT = function(opIndex, phraseIndex, sysData) {
+ let astLength;
+ let astIndex;
+ let astDefined;
+ let ulen;
+ let plen;
+ let saveFrame;
+ const op = opcodes[opIndex];
+ const udt = udts[op.index];
+ sysData.UdtIndex = udt.index;
+ const notLookAround = !inLookAround();
+ if (notLookAround) {
+ astDefined = thisThis.ast && thisThis.ast.udtDefined(op.index);
+ if (astDefined) {
+ astIndex = rules.length + op.index;
+ astLength = thisThis.ast.getLength();
+ thisThis.ast.down(astIndex, udt.name);
+ }
+ ulen = sysData.uFrame.length();
+ plen = sysData.pFrame.length();
+ sysData.uFrame.push();
+ sysData.pFrame.push();
+ saveFrame = sysData.pFrame;
+ sysData.pFrame = new backRef();
+ }
+ const charsLeft = charsEnd - phraseIndex;
+ udtCallbacks[op.index](sysData, chars, phraseIndex, syntaxData);
+ validateUdtCallbackResult(udt, sysData, charsLeft);
+ if (notLookAround) {
+ if (astDefined) {
+ if (sysData.state === id.NOMATCH) {
+ thisThis.ast.setLength(astLength);
+ } else {
+ thisThis.ast.up(astIndex, udt.name, phraseIndex, sysData.phraseLength);
+ }
+ }
+ sysData.pFrame = saveFrame;
+ if (sysData.state === id.NOMATCH) {
+ sysData.uFrame.pop(ulen);
+ sysData.pFrame.pop(plen);
+ } else if (udt.isBkr) {
+ sysData.pFrame.savePhrase(udt.lower, phraseIndex, sysData.phraseLength);
+ sysData.uFrame.savePhrase(udt.lower, phraseIndex, sysData.phraseLength);
+ }
+ }
+ };
+ const opAND = function(opIndex, phraseIndex, sysData) {
+ lookAround.push({
+ lookAround: id.LOOKAROUND_AHEAD,
+ anchor: phraseIndex,
+ charsEnd,
+ charsLength
+ });
+ charsEnd = chars.length;
+ charsLength = chars.length - charsBegin;
+ opExecute(opIndex + 1, phraseIndex, sysData);
+ const pop = lookAround.pop();
+ charsEnd = pop.charsEnd;
+ charsLength = pop.charsLength;
+ sysData.phraseLength = 0;
+ switch (sysData.state) {
+ case id.EMPTY:
+ sysData.state = id.EMPTY;
+ break;
+ case id.MATCH:
+ sysData.state = id.EMPTY;
+ break;
+ case id.NOMATCH:
+ sysData.state = id.NOMATCH;
+ break;
+ default:
+ throw new Error(`opAND: invalid state ${sysData.state}`);
+ }
+ };
+ const opNOT = function(opIndex, phraseIndex, sysData) {
+ lookAround.push({
+ lookAround: id.LOOKAROUND_AHEAD,
+ anchor: phraseIndex,
+ charsEnd,
+ charsLength
+ });
+ charsEnd = chars.length;
+ charsLength = chars.length - charsBegin;
+ opExecute(opIndex + 1, phraseIndex, sysData);
+ const pop = lookAround.pop();
+ charsEnd = pop.charsEnd;
+ charsLength = pop.charsLength;
+ sysData.phraseLength = 0;
+ switch (sysData.state) {
+ case id.EMPTY:
+ case id.MATCH:
+ sysData.state = id.NOMATCH;
+ break;
+ case id.NOMATCH:
+ sysData.state = id.EMPTY;
+ break;
+ default:
+ throw new Error(`opNOT: invalid state ${sysData.state}`);
+ }
+ };
+ const opTRG = function(opIndex, phraseIndex, sysData) {
+ const op = opcodes[opIndex];
+ sysData.state = id.NOMATCH;
+ if (phraseIndex < charsEnd) {
+ if (op.min <= chars[phraseIndex] && chars[phraseIndex] <= op.max) {
+ sysData.state = id.MATCH;
+ sysData.phraseLength = 1;
+ }
+ }
+ };
+ const opTBS = function(opIndex, phraseIndex, sysData) {
+ let i;
+ const op = opcodes[opIndex];
+ const len = op.string.length;
+ sysData.state = id.NOMATCH;
+ if (phraseIndex + len <= charsEnd) {
+ for (i = 0; i < len; i += 1) {
+ if (chars[phraseIndex + i] !== op.string[i]) {
+ return;
+ }
+ }
+ sysData.state = id.MATCH;
+ sysData.phraseLength = len;
+ }
+ };
+ const opTLS = function(opIndex, phraseIndex, sysData) {
+ let i;
+ let code;
+ const op = opcodes[opIndex];
+ sysData.state = id.NOMATCH;
+ const len = op.string.length;
+ if (len === 0) {
+ sysData.state = id.EMPTY;
+ return;
+ }
+ if (phraseIndex + len <= charsEnd) {
+ for (i = 0; i < len; i += 1) {
+ code = chars[phraseIndex + i];
+ if (code >= 65 && code <= 90) {
+ code += 32;
+ }
+ if (code !== op.string[i]) {
+ return;
+ }
+ }
+ sysData.state = id.MATCH;
+ sysData.phraseLength = len;
+ }
+ };
+ const opABG = function(opIndex, phraseIndex, sysData) {
+ sysData.state = id.NOMATCH;
+ sysData.phraseLength = 0;
+ sysData.state = phraseIndex === 0 ? id.EMPTY : id.NOMATCH;
+ };
+ const opAEN = function(opIndex, phraseIndex, sysData) {
+ sysData.state = id.NOMATCH;
+ sysData.phraseLength = 0;
+ sysData.state = phraseIndex === chars.length ? id.EMPTY : id.NOMATCH;
+ };
+ const opBKR = function(opIndex, phraseIndex, sysData) {
+ let i;
+ let code;
+ let lmcode;
+ let lower;
+ const op = opcodes[opIndex];
+ sysData.state = id.NOMATCH;
+ if (op.index < rules.length) {
+ lower = rules[op.index].lower;
+ } else {
+ lower = udts[op.index - rules.length].lower;
+ }
+ const frame = op.bkrMode === id.BKR_MODE_PM ? sysData.pFrame.getPhrase(lower) : sysData.uFrame.getPhrase(lower);
+ const insensitive = op.bkrCase === id.BKR_MODE_CI;
+ if (frame === null) {
+ return;
+ }
+ const lmIndex = frame.phraseIndex;
+ const len = frame.phraseLength;
+ if (len === 0) {
+ sysData.state = id.EMPTY;
+ return;
+ }
+ if (phraseIndex + len <= charsEnd) {
+ if (insensitive) {
+ for (i = 0; i < len; i += 1) {
+ code = chars[phraseIndex + i];
+ lmcode = chars[lmIndex + i];
+ if (code >= 65 && code <= 90) {
+ code += 32;
+ }
+ if (lmcode >= 65 && lmcode <= 90) {
+ lmcode += 32;
+ }
+ if (code !== lmcode) {
+ return;
+ }
+ }
+ sysData.state = id.MATCH;
+ sysData.phraseLength = len;
+ } else {
+ for (i = 0; i < len; i += 1) {
+ code = chars[phraseIndex + i];
+ lmcode = chars[lmIndex + i];
+ if (code !== lmcode) {
+ return;
+ }
+ }
+ }
+ sysData.state = id.MATCH;
+ sysData.phraseLength = len;
+ }
+ };
+ const opBKA = function(opIndex, phraseIndex, sysData) {
+ lookAround.push({
+ lookAround: id.LOOKAROUND_BEHIND,
+ anchor: phraseIndex
+ });
+ opExecute(opIndex + 1, phraseIndex, sysData);
+ lookAround.pop();
+ sysData.phraseLength = 0;
+ switch (sysData.state) {
+ case id.EMPTY:
+ sysData.state = id.EMPTY;
+ break;
+ case id.MATCH:
+ sysData.state = id.EMPTY;
+ break;
+ case id.NOMATCH:
+ sysData.state = id.NOMATCH;
+ break;
+ default:
+ throw new Error(`opBKA: invalid state ${sysData.state}`);
+ }
+ };
+ const opBKN = function(opIndex, phraseIndex, sysData) {
+ lookAround.push({
+ lookAround: id.LOOKAROUND_BEHIND,
+ anchor: phraseIndex
+ });
+ opExecute(opIndex + 1, phraseIndex, sysData);
+ lookAround.pop();
+ sysData.phraseLength = 0;
+ switch (sysData.state) {
+ case id.EMPTY:
+ case id.MATCH:
+ sysData.state = id.NOMATCH;
+ break;
+ case id.NOMATCH:
+ sysData.state = id.EMPTY;
+ break;
+ default:
+ throw new Error(`opBKN: invalid state ${sysData.state}`);
+ }
+ };
+ const opCATBehind = function(opIndex, phraseIndex, sysData) {
+ let success;
+ let astLength;
+ let catCharIndex;
+ let catMatched;
+ const op = opcodes[opIndex];
+ const ulen = sysData.uFrame.length();
+ const plen = sysData.pFrame.length();
+ if (thisThis.ast) {
+ astLength = thisThis.ast.getLength();
+ }
+ success = true;
+ catCharIndex = phraseIndex;
+ catMatched = 0;
+ for (let i = op.children.length - 1; i >= 0; i -= 1) {
+ opExecute(op.children[i], catCharIndex, sysData);
+ catCharIndex -= sysData.phraseLength;
+ catMatched += sysData.phraseLength;
+ if (sysData.state === id.NOMATCH) {
+ success = false;
+ break;
+ }
+ }
+ if (success) {
+ sysData.state = catMatched === 0 ? id.EMPTY : id.MATCH;
+ sysData.phraseLength = catMatched;
+ } else {
+ sysData.state = id.NOMATCH;
+ sysData.phraseLength = 0;
+ sysData.uFrame.pop(ulen);
+ sysData.pFrame.pop(plen);
+ if (thisThis.ast) {
+ thisThis.ast.setLength(astLength);
+ }
+ }
+ };
+ const opREPBehind = function(opIndex, phraseIndex, sysData) {
+ let astLength;
+ let repCharIndex;
+ let repPhrase;
+ let repCount;
+ const op = opcodes[opIndex];
+ repCharIndex = phraseIndex;
+ repPhrase = 0;
+ repCount = 0;
+ const ulen = sysData.uFrame.length();
+ const plen = sysData.pFrame.length();
+ if (thisThis.ast) {
+ astLength = thisThis.ast.getLength();
+ }
+ const TRUE = true;
+ while (TRUE) {
+ if (repCharIndex <= 0) {
+ break;
+ }
+ opExecute(opIndex + 1, repCharIndex, sysData);
+ if (sysData.state === id.NOMATCH) {
+ break;
+ }
+ if (sysData.state === id.EMPTY) {
+ break;
+ }
+ repCount += 1;
+ repPhrase += sysData.phraseLength;
+ repCharIndex -= sysData.phraseLength;
+ if (repCount === op.max) {
+ break;
+ }
+ }
+ if (sysData.state === id.EMPTY) {
+ sysData.state = repPhrase === 0 ? id.EMPTY : id.MATCH;
+ sysData.phraseLength = repPhrase;
+ } else if (repCount >= op.min) {
+ sysData.state = repPhrase === 0 ? id.EMPTY : id.MATCH;
+ sysData.phraseLength = repPhrase;
+ } else {
+ sysData.state = id.NOMATCH;
+ sysData.phraseLength = 0;
+ sysData.uFrame.pop(ulen);
+ sysData.pFrame.pop(plen);
+ if (thisThis.ast) {
+ thisThis.ast.setLength(astLength);
+ }
+ }
+ };
+ const opTRGBehind = function(opIndex, phraseIndex, sysData) {
+ const op = opcodes[opIndex];
+ sysData.state = id.NOMATCH;
+ sysData.phraseLength = 0;
+ if (phraseIndex > 0) {
+ const char = chars[phraseIndex - 1];
+ if (op.min <= char && char <= op.max) {
+ sysData.state = id.MATCH;
+ sysData.phraseLength = 1;
+ }
+ }
+ };
+ const opTBSBehind = function(opIndex, phraseIndex, sysData) {
+ let i;
+ const op = opcodes[opIndex];
+ sysData.state = id.NOMATCH;
+ const len = op.string.length;
+ const beg = phraseIndex - len;
+ if (beg >= 0) {
+ for (i = 0; i < len; i += 1) {
+ if (chars[beg + i] !== op.string[i]) {
+ return;
+ }
+ }
+ sysData.state = id.MATCH;
+ sysData.phraseLength = len;
+ }
+ };
+ const opTLSBehind = function(opIndex, phraseIndex, sysData) {
+ let char;
+ const op = opcodes[opIndex];
+ sysData.state = id.NOMATCH;
+ const len = op.string.length;
+ if (len === 0) {
+ sysData.state = id.EMPTY;
+ return;
+ }
+ const beg = phraseIndex - len;
+ if (beg >= 0) {
+ for (let i = 0; i < len; i += 1) {
+ char = chars[beg + i];
+ if (char >= 65 && char <= 90) {
+ char += 32;
+ }
+ if (char !== op.string[i]) {
+ return;
+ }
+ }
+ sysData.state = id.MATCH;
+ sysData.phraseLength = len;
+ }
+ };
+ const opBKRBehind = function(opIndex, phraseIndex, sysData) {
+ let i;
+ let code;
+ let lmcode;
+ let lower;
+ const op = opcodes[opIndex];
+ sysData.state = id.NOMATCH;
+ sysData.phraseLength = 0;
+ if (op.index < rules.length) {
+ lower = rules[op.index].lower;
+ } else {
+ lower = udts[op.index - rules.length].lower;
+ }
+ const frame = op.bkrMode === id.BKR_MODE_PM ? sysData.pFrame.getPhrase(lower) : sysData.uFrame.getPhrase(lower);
+ const insensitive = op.bkrCase === id.BKR_MODE_CI;
+ if (frame === null) {
+ return;
+ }
+ const lmIndex = frame.phraseIndex;
+ const len = frame.phraseLength;
+ if (len === 0) {
+ sysData.state = id.EMPTY;
+ sysData.phraseLength = 0;
+ return;
+ }
+ const beg = phraseIndex - len;
+ if (beg >= 0) {
+ if (insensitive) {
+ for (i = 0; i < len; i += 1) {
+ code = chars[beg + i];
+ lmcode = chars[lmIndex + i];
+ if (code >= 65 && code <= 90) {
+ code += 32;
+ }
+ if (lmcode >= 65 && lmcode <= 90) {
+ lmcode += 32;
+ }
+ if (code !== lmcode) {
+ return;
+ }
+ }
+ sysData.state = id.MATCH;
+ sysData.phraseLength = len;
+ } else {
+ for (i = 0; i < len; i += 1) {
+ code = chars[beg + i];
+ lmcode = chars[lmIndex + i];
+ if (code !== lmcode) {
+ return;
+ }
+ }
+ }
+ sysData.state = id.MATCH;
+ sysData.phraseLength = len;
+ }
+ };
+ opExecute = function opExecuteFunc(opIndex, phraseIndex, sysData) {
+ let ret = true;
+ const op = opcodes[opIndex];
+ nodeHits += 1;
+ if (nodeHits > limitNodeHits) {
+ throw new Error(`parser: maximum number of node hits exceeded: ${limitNodeHits}`);
+ }
+ treeDepth += 1;
+ if (treeDepth > maxTreeDepth) {
+ maxTreeDepth = treeDepth;
+ if (maxTreeDepth > limitTreeDepth) {
+ throw new Error(`parser: maximum parse tree depth exceeded: ${limitTreeDepth}`);
+ }
+ }
+ sysData.refresh();
+ if (thisThis.trace !== null) {
+ const lk = lookAroundValue();
+ thisThis.trace.down(op, sysData.state, phraseIndex, sysData.phraseLength, lk.anchor, lk.lookAround);
+ }
+ if (inLookBehind()) {
+ switch (op.type) {
+ case id.ALT:
+ opALT(opIndex, phraseIndex, sysData);
+ break;
+ case id.CAT:
+ opCATBehind(opIndex, phraseIndex, sysData);
+ break;
+ case id.REP:
+ opREPBehind(opIndex, phraseIndex, sysData);
+ break;
+ case id.RNM:
+ opRNM(opIndex, phraseIndex, sysData);
+ break;
+ case id.UDT:
+ opUDT(opIndex, phraseIndex, sysData);
+ break;
+ case id.AND:
+ opAND(opIndex, phraseIndex, sysData);
+ break;
+ case id.NOT:
+ opNOT(opIndex, phraseIndex, sysData);
+ break;
+ case id.TRG:
+ opTRGBehind(opIndex, phraseIndex, sysData);
+ break;
+ case id.TBS:
+ opTBSBehind(opIndex, phraseIndex, sysData);
+ break;
+ case id.TLS:
+ opTLSBehind(opIndex, phraseIndex, sysData);
+ break;
+ case id.BKR:
+ opBKRBehind(opIndex, phraseIndex, sysData);
+ break;
+ case id.BKA:
+ opBKA(opIndex, phraseIndex, sysData);
+ break;
+ case id.BKN:
+ opBKN(opIndex, phraseIndex, sysData);
+ break;
+ case id.ABG:
+ opABG(opIndex, phraseIndex, sysData);
+ break;
+ case id.AEN:
+ opAEN(opIndex, phraseIndex, sysData);
+ break;
+ default:
+ ret = false;
+ break;
+ }
+ } else {
+ switch (op.type) {
+ case id.ALT:
+ opALT(opIndex, phraseIndex, sysData);
+ break;
+ case id.CAT:
+ opCAT(opIndex, phraseIndex, sysData);
+ break;
+ case id.REP:
+ opREP(opIndex, phraseIndex, sysData);
+ break;
+ case id.RNM:
+ opRNM(opIndex, phraseIndex, sysData);
+ break;
+ case id.UDT:
+ opUDT(opIndex, phraseIndex, sysData);
+ break;
+ case id.AND:
+ opAND(opIndex, phraseIndex, sysData);
+ break;
+ case id.NOT:
+ opNOT(opIndex, phraseIndex, sysData);
+ break;
+ case id.TRG:
+ opTRG(opIndex, phraseIndex, sysData);
+ break;
+ case id.TBS:
+ opTBS(opIndex, phraseIndex, sysData);
+ break;
+ case id.TLS:
+ opTLS(opIndex, phraseIndex, sysData);
+ break;
+ case id.BKR:
+ opBKR(opIndex, phraseIndex, sysData);
+ break;
+ case id.BKA:
+ opBKA(opIndex, phraseIndex, sysData);
+ break;
+ case id.BKN:
+ opBKN(opIndex, phraseIndex, sysData);
+ break;
+ case id.ABG:
+ opABG(opIndex, phraseIndex, sysData);
+ break;
+ case id.AEN:
+ opAEN(opIndex, phraseIndex, sysData);
+ break;
+ default:
+ ret = false;
+ break;
+ }
+ }
+ if (!inLookAround() && phraseIndex + sysData.phraseLength > maxMatched) {
+ maxMatched = phraseIndex + sysData.phraseLength;
+ }
+ if (thisThis.stats !== null) {
+ thisThis.stats.collect(op, sysData);
+ }
+ if (thisThis.trace !== null) {
+ const lk = lookAroundValue();
+ thisThis.trace.up(op, sysData.state, phraseIndex, sysData.phraseLength, lk.anchor, lk.lookAround);
+ }
+ treeDepth -= 1;
+ return ret;
+ };
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-lib/stats.js
+var require_stats = __commonJS({
+ "node_modules/apg-js/src/apg-lib/stats.js"(exports2, module2) {
+ module2.exports = function statsFunc() {
+ const id = require_identifiers();
+ const utils = require_utilities();
+ const style = require_style();
+ const thisFileName = "stats.js: ";
+ let rules = [];
+ let udts = [];
+ const stats = [];
+ let totals;
+ const ruleStats = [];
+ const udtStats = [];
+ this.statsObject = "statsObject";
+ const nameId = "stats";
+ const sortAlpha = function sortAlpha2(lhs, rhs) {
+ if (lhs.lower < rhs.lower) {
+ return -1;
+ }
+ if (lhs.lower > rhs.lower) {
+ return 1;
+ }
+ return 0;
+ };
+ const sortHits = function sortHits2(lhs, rhs) {
+ if (lhs.total < rhs.total) {
+ return 1;
+ }
+ if (lhs.total > rhs.total) {
+ return -1;
+ }
+ return sortAlpha(lhs, rhs);
+ };
+ const sortIndex = function sortIndex2(lhs, rhs) {
+ if (lhs.index < rhs.index) {
+ return -1;
+ }
+ if (lhs.index > rhs.index) {
+ return 1;
+ }
+ return 0;
+ };
+ const EmptyStat = function EmptyStat2() {
+ this.empty = 0;
+ this.match = 0;
+ this.nomatch = 0;
+ this.total = 0;
+ };
+ const clear = function clear2() {
+ stats.length = 0;
+ totals = new EmptyStat();
+ stats[id.ALT] = new EmptyStat();
+ stats[id.CAT] = new EmptyStat();
+ stats[id.REP] = new EmptyStat();
+ stats[id.RNM] = new EmptyStat();
+ stats[id.TRG] = new EmptyStat();
+ stats[id.TBS] = new EmptyStat();
+ stats[id.TLS] = new EmptyStat();
+ stats[id.UDT] = new EmptyStat();
+ stats[id.AND] = new EmptyStat();
+ stats[id.NOT] = new EmptyStat();
+ stats[id.BKR] = new EmptyStat();
+ stats[id.BKA] = new EmptyStat();
+ stats[id.BKN] = new EmptyStat();
+ stats[id.ABG] = new EmptyStat();
+ stats[id.AEN] = new EmptyStat();
+ ruleStats.length = 0;
+ for (let i = 0; i < rules.length; i += 1) {
+ ruleStats.push({
+ empty: 0,
+ match: 0,
+ nomatch: 0,
+ total: 0,
+ name: rules[i].name,
+ lower: rules[i].lower,
+ index: rules[i].index
+ });
+ }
+ if (udts.length > 0) {
+ udtStats.length = 0;
+ for (let i = 0; i < udts.length; i += 1) {
+ udtStats.push({
+ empty: 0,
+ match: 0,
+ nomatch: 0,
+ total: 0,
+ name: udts[i].name,
+ lower: udts[i].lower,
+ index: udts[i].index
+ });
+ }
+ }
+ };
+ const incStat = function incStat2(stat, state) {
+ stat.total += 1;
+ switch (state) {
+ case id.EMPTY:
+ stat.empty += 1;
+ break;
+ case id.MATCH:
+ stat.match += 1;
+ break;
+ case id.NOMATCH:
+ stat.nomatch += 1;
+ break;
+ default:
+ throw new Error(`${thisFileName}collect(): incStat(): unrecognized state: ${state}`);
+ }
+ };
+ const displayRow = function displayRow2(name, stat) {
+ let html = "";
+ html += "";
+ html += `${name} | `;
+ html += `${stat.empty} | `;
+ html += `${stat.match} | `;
+ html += `${stat.nomatch} | `;
+ html += `${stat.total} | `;
+ html += "
\n";
+ return html;
+ };
+ const displayOpsOnly = function displayOpsOnly2() {
+ let html = "";
+ html += displayRow("ALT", stats[id.ALT]);
+ html += displayRow("CAT", stats[id.CAT]);
+ html += displayRow("REP", stats[id.REP]);
+ html += displayRow("RNM", stats[id.RNM]);
+ html += displayRow("TRG", stats[id.TRG]);
+ html += displayRow("TBS", stats[id.TBS]);
+ html += displayRow("TLS", stats[id.TLS]);
+ html += displayRow("UDT", stats[id.UDT]);
+ html += displayRow("AND", stats[id.AND]);
+ html += displayRow("NOT", stats[id.NOT]);
+ html += displayRow("BKR", stats[id.BKR]);
+ html += displayRow("BKA", stats[id.BKA]);
+ html += displayRow("BKN", stats[id.BKN]);
+ html += displayRow("ABG", stats[id.ABG]);
+ html += displayRow("AEN", stats[id.AEN]);
+ html += displayRow("totals", totals);
+ return html;
+ };
+ const displayRules = function displayRules2() {
+ let html = "";
+ html += " | | | | |
\n";
+ html += "rules | | | | |
\n";
+ for (let i = 0; i < rules.length; i += 1) {
+ if (ruleStats[i].total > 0) {
+ html += "";
+ html += `${ruleStats[i].name} | `;
+ html += `${ruleStats[i].empty} | `;
+ html += `${ruleStats[i].match} | `;
+ html += `${ruleStats[i].nomatch} | `;
+ html += `${ruleStats[i].total} | `;
+ html += "
\n";
+ }
+ }
+ if (udts.length > 0) {
+ html += " | | | | |
\n";
+ html += "udts | | | | |
\n";
+ for (let i = 0; i < udts.length; i += 1) {
+ if (udtStats[i].total > 0) {
+ html += "";
+ html += `${udtStats[i].name} | `;
+ html += `${udtStats[i].empty} | `;
+ html += `${udtStats[i].match} | `;
+ html += `${udtStats[i].nomatch} | `;
+ html += `${udtStats[i].total} | `;
+ html += "
\n";
+ }
+ }
+ }
+ return html;
+ };
+ this.validate = function validate(name) {
+ let ret = false;
+ if (typeof name === "string" && nameId === name) {
+ ret = true;
+ }
+ return ret;
+ };
+ this.init = function init(inputRules, inputUdts) {
+ rules = inputRules;
+ udts = inputUdts;
+ clear();
+ };
+ this.collect = function collect(op, result) {
+ incStat(totals, result.state, result.phraseLength);
+ incStat(stats[op.type], result.state, result.phraseLength);
+ if (op.type === id.RNM) {
+ incStat(ruleStats[op.index], result.state, result.phraseLength);
+ }
+ if (op.type === id.UDT) {
+ incStat(udtStats[op.index], result.state, result.phraseLength);
+ }
+ };
+ this.toHtml = function toHtml(type, caption) {
+ let html = "";
+ html += `
+`;
+ if (typeof caption === "string") {
+ html += `${caption}
+`;
+ }
+ html += `ops |
+`;
+ html += `EMPTY |
+`;
+ html += `MATCH |
+`;
+ html += `NOMATCH |
+`;
+ html += `totals |
+`;
+ const test = true;
+ while (test) {
+ if (type === void 0) {
+ html += displayOpsOnly();
+ break;
+ }
+ if (type === null) {
+ html += displayOpsOnly();
+ break;
+ }
+ if (type === "ops") {
+ html += displayOpsOnly();
+ break;
+ }
+ if (type === "index") {
+ ruleStats.sort(sortIndex);
+ if (udtStats.length > 0) {
+ udtStats.sort(sortIndex);
+ }
+ html += displayOpsOnly();
+ html += displayRules();
+ break;
+ }
+ if (type === "hits") {
+ ruleStats.sort(sortHits);
+ if (udtStats.length > 0) {
+ udtStats.sort(sortIndex);
+ }
+ html += displayOpsOnly();
+ html += displayRules();
+ break;
+ }
+ if (type === "alpha") {
+ ruleStats.sort(sortAlpha);
+ if (udtStats.length > 0) {
+ udtStats.sort(sortAlpha);
+ }
+ html += displayOpsOnly();
+ html += displayRules();
+ break;
+ }
+ break;
+ }
+ html += "
\n";
+ return html;
+ };
+ this.toHtmlPage = function toHtmlPage(type, caption, title) {
+ return utils.htmlToPage(this.toHtml(type, caption), title);
+ };
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-lib/trace.js
+var require_trace = __commonJS({
+ "node_modules/apg-js/src/apg-lib/trace.js"(exports2, module2) {
+ module2.exports = function exportTrace() {
+ const utils = require_utilities();
+ const style = require_style();
+ const circular = new (require_circular_buffer())();
+ const id = require_identifiers();
+ const thisFileName = "trace.js: ";
+ const that = this;
+ const MODE_HEX = 16;
+ const MODE_DEC = 10;
+ const MODE_ASCII = 8;
+ const MODE_UNICODE = 32;
+ const MAX_PHRASE = 80;
+ const MAX_TLS = 5;
+ const records = [];
+ let maxRecords = 5e3;
+ let lastRecord = -1;
+ let filteredRecords = 0;
+ let treeDepth = 0;
+ const recordStack = [];
+ let chars = null;
+ let rules = null;
+ let udts = null;
+ const operatorFilter = [];
+ const ruleFilter = [];
+ const PHRASE_END = `•`;
+ const PHRASE_CONTINUE = `…`;
+ const PHRASE_EMPTY = `𝜺`;
+ const initOperatorFilter = function() {
+ const setOperators = function(set) {
+ operatorFilter[id.ALT] = set;
+ operatorFilter[id.CAT] = set;
+ operatorFilter[id.REP] = set;
+ operatorFilter[id.TLS] = set;
+ operatorFilter[id.TBS] = set;
+ operatorFilter[id.TRG] = set;
+ operatorFilter[id.AND] = set;
+ operatorFilter[id.NOT] = set;
+ operatorFilter[id.BKR] = set;
+ operatorFilter[id.BKA] = set;
+ operatorFilter[id.BKN] = set;
+ operatorFilter[id.ABG] = set;
+ operatorFilter[id.AEN] = set;
+ };
+ let items = 0;
+ for (const name in that.filter.operators) {
+ items += 1;
+ }
+ if (items === 0) {
+ setOperators(false);
+ return;
+ }
+ for (const name in that.filter.operators) {
+ const upper = name.toUpperCase();
+ if (upper === "") {
+ setOperators(true);
+ return;
+ }
+ if (upper === "") {
+ setOperators(false);
+ return;
+ }
+ }
+ setOperators(false);
+ for (const name in that.filter.operators) {
+ const upper = name.toUpperCase();
+ if (upper === "ALT") {
+ operatorFilter[id.ALT] = that.filter.operators[name] === true;
+ } else if (upper === "CAT") {
+ operatorFilter[id.CAT] = that.filter.operators[name] === true;
+ } else if (upper === "REP") {
+ operatorFilter[id.REP] = that.filter.operators[name] === true;
+ } else if (upper === "AND") {
+ operatorFilter[id.AND] = that.filter.operators[name] === true;
+ } else if (upper === "NOT") {
+ operatorFilter[id.NOT] = that.filter.operators[name] === true;
+ } else if (upper === "TLS") {
+ operatorFilter[id.TLS] = that.filter.operators[name] === true;
+ } else if (upper === "TBS") {
+ operatorFilter[id.TBS] = that.filter.operators[name] === true;
+ } else if (upper === "TRG") {
+ operatorFilter[id.TRG] = that.filter.operators[name] === true;
+ } else if (upper === "BKR") {
+ operatorFilter[id.BKR] = that.filter.operators[name] === true;
+ } else if (upper === "BKA") {
+ operatorFilter[id.BKA] = that.filter.operators[name] === true;
+ } else if (upper === "BKN") {
+ operatorFilter[id.BKN] = that.filter.operators[name] === true;
+ } else if (upper === "ABG") {
+ operatorFilter[id.ABG] = that.filter.operators[name] === true;
+ } else if (upper === "AEN") {
+ operatorFilter[id.AEN] = that.filter.operators[name] === true;
+ } else {
+ throw new Error(
+ `${thisFileName}initOpratorFilter: '${name}' not a valid operator name. Must be , , alt, cat, rep, tls, tbs, trg, and, not, bkr, bka or bkn`
+ );
+ }
+ }
+ };
+ const initRuleFilter = function() {
+ const setRules = function(set) {
+ operatorFilter[id.RNM] = set;
+ operatorFilter[id.UDT] = set;
+ const count = rules.length + udts.length;
+ ruleFilter.length = 0;
+ for (let i2 = 0; i2 < count; i2 += 1) {
+ ruleFilter.push(set);
+ }
+ };
+ let items;
+ let i;
+ const list = [];
+ for (i = 0; i < rules.length; i += 1) {
+ list.push(rules[i].lower);
+ }
+ for (i = 0; i < udts.length; i += 1) {
+ list.push(udts[i].lower);
+ }
+ ruleFilter.length = 0;
+ items = 0;
+ for (const name in that.filter.rules) {
+ items += 1;
+ }
+ if (items === 0) {
+ setRules(true);
+ return;
+ }
+ for (const name in that.filter.rules) {
+ const lower = name.toLowerCase();
+ if (lower === "") {
+ setRules(true);
+ return;
+ }
+ if (lower === "") {
+ setRules(false);
+ return;
+ }
+ }
+ setRules(false);
+ operatorFilter[id.RNM] = true;
+ operatorFilter[id.UDT] = true;
+ for (const name in that.filter.rules) {
+ const lower = name.toLowerCase();
+ i = list.indexOf(lower);
+ if (i < 0) {
+ throw new Error(`${thisFileName}initRuleFilter: '${name}' not a valid rule or udt name`);
+ }
+ ruleFilter[i] = that.filter.rules[name] === true;
+ }
+ };
+ this.traceObject = "traceObject";
+ this.filter = {
+ operators: [],
+ rules: []
+ };
+ this.setMaxRecords = function(max, last) {
+ lastRecord = -1;
+ if (typeof max === "number" && max > 0) {
+ maxRecords = Math.ceil(max);
+ } else {
+ maxRecords = 0;
+ return;
+ }
+ if (typeof last === "number") {
+ lastRecord = Math.floor(last);
+ if (lastRecord < 0) {
+ lastRecord = -1;
+ }
+ }
+ };
+ this.getMaxRecords = function() {
+ return maxRecords;
+ };
+ this.getLastRecord = function() {
+ return lastRecord;
+ };
+ this.init = function(rulesIn, udtsIn, charsIn) {
+ records.length = 0;
+ recordStack.length = 0;
+ filteredRecords = 0;
+ treeDepth = 0;
+ chars = charsIn;
+ rules = rulesIn;
+ udts = udtsIn;
+ initOperatorFilter();
+ initRuleFilter();
+ circular.init(maxRecords);
+ };
+ const filterOps = function(op) {
+ let ret = false;
+ if (op.type === id.RNM) {
+ if (operatorFilter[op.type] && ruleFilter[op.index]) {
+ ret = true;
+ } else {
+ ret = false;
+ }
+ } else if (op.type === id.UDT) {
+ if (operatorFilter[op.type] && ruleFilter[rules.length + op.index]) {
+ ret = true;
+ } else {
+ ret = false;
+ }
+ } else {
+ ret = operatorFilter[op.type];
+ }
+ return ret;
+ };
+ const filterRecords = function(record) {
+ if (lastRecord === -1) {
+ return true;
+ }
+ if (record <= lastRecord) {
+ return true;
+ }
+ return false;
+ };
+ this.down = function(op, state, offset, length, anchor, lookAround) {
+ if (filterRecords(filteredRecords) && filterOps(op)) {
+ recordStack.push(filteredRecords);
+ records[circular.increment()] = {
+ dirUp: false,
+ depth: treeDepth,
+ thisLine: filteredRecords,
+ thatLine: void 0,
+ opcode: op,
+ state,
+ phraseIndex: offset,
+ phraseLength: length,
+ lookAnchor: anchor,
+ lookAround
+ };
+ filteredRecords += 1;
+ treeDepth += 1;
+ }
+ };
+ this.up = function(op, state, offset, length, anchor, lookAround) {
+ if (filterRecords(filteredRecords) && filterOps(op)) {
+ const thisLine = filteredRecords;
+ const thatLine = recordStack.pop();
+ const thatRecord = circular.getListIndex(thatLine);
+ if (thatRecord !== -1) {
+ records[thatRecord].thatLine = thisLine;
+ }
+ treeDepth -= 1;
+ records[circular.increment()] = {
+ dirUp: true,
+ depth: treeDepth,
+ thisLine,
+ thatLine,
+ opcode: op,
+ state,
+ phraseIndex: offset,
+ phraseLength: length,
+ lookAnchor: anchor,
+ lookAround
+ };
+ filteredRecords += 1;
+ }
+ };
+ const toTreeObj = function() {
+ function nodeOpcode(node2, opcode) {
+ let name;
+ let casetype;
+ let modetype;
+ if (opcode) {
+ node2.op = { id: opcode.type, name: utils.opcodeToString(opcode.type) };
+ node2.opData = void 0;
+ switch (opcode.type) {
+ case id.RNM:
+ node2.opData = rules[opcode.index].name;
+ break;
+ case id.UDT:
+ node2.opData = udts[opcode.index].name;
+ break;
+ case id.BKR:
+ if (opcode.index < rules.length) {
+ name = rules[opcode.index].name;
+ } else {
+ name = udts[opcode.index - rules.length].name;
+ }
+ casetype = opcode.bkrCase === id.BKR_MODE_CI ? "%i" : "%s";
+ modetype = opcode.bkrMode === id.BKR_MODE_UM ? "%u" : "%p";
+ node2.opData = `\\\\${casetype}${modetype}${name}`;
+ break;
+ case id.TLS:
+ node2.opData = [];
+ for (let i = 0; i < opcode.string.length; i += 1) {
+ node2.opData.push(opcode.string[i]);
+ }
+ break;
+ case id.TBS:
+ node2.opData = [];
+ for (let i = 0; i < opcode.string.length; i += 1) {
+ node2.opData.push(opcode.string[i]);
+ }
+ break;
+ case id.TRG:
+ node2.opData = [opcode.min, opcode.max];
+ break;
+ case id.REP:
+ node2.opData = [opcode.min, opcode.max];
+ break;
+ default:
+ throw new Error("unrecognized opcode");
+ }
+ } else {
+ node2.op = { id: void 0, name: void 0 };
+ node2.opData = void 0;
+ }
+ }
+ function nodePhrase(state, index, length) {
+ if (state === id.MATCH) {
+ return {
+ index,
+ length
+ };
+ }
+ if (state === id.NOMATCH) {
+ return {
+ index,
+ length: 0
+ };
+ }
+ if (state === id.EMPTY) {
+ return {
+ index,
+ length: 0
+ };
+ }
+ return null;
+ }
+ let nodeId = -1;
+ function nodeDown(parent2, record2, depth2) {
+ const node2 = {
+ // eslint-disable-next-line no-plusplus
+ id: nodeId++,
+ branch: -1,
+ parent: parent2,
+ up: false,
+ down: false,
+ depth: depth2,
+ children: []
+ };
+ if (record2) {
+ node2.down = true;
+ node2.state = { id: record2.state, name: utils.stateToString(record2.state) };
+ node2.phrase = null;
+ nodeOpcode(node2, record2.opcode);
+ } else {
+ node2.state = { id: void 0, name: void 0 };
+ node2.phrase = nodePhrase();
+ nodeOpcode(node2, void 0);
+ }
+ return node2;
+ }
+ function nodeUp(node2, record2) {
+ if (record2) {
+ node2.up = true;
+ node2.state = { id: record2.state, name: utils.stateToString(record2.state) };
+ node2.phrase = nodePhrase(record2.state, record2.phraseIndex, record2.phraseLength);
+ if (!node2.down) {
+ nodeOpcode(node2, record2.opcode);
+ }
+ }
+ }
+ let leafNodes = 0;
+ let depth = -1;
+ let branchCount = 1;
+ function walk(node2) {
+ depth += 1;
+ node2.branch = branchCount;
+ if (depth > treeDepth) {
+ treeDepth = depth;
+ }
+ if (node2.children.length === 0) {
+ leafNodes += 1;
+ } else {
+ for (let i = 0; i < node2.children.length; i += 1) {
+ if (i > 0) {
+ branchCount += 1;
+ }
+ node2.children[i].leftMost = false;
+ node2.children[i].rightMost = false;
+ if (node2.leftMost) {
+ node2.children[i].leftMost = i === 0;
+ }
+ if (node2.rightMost) {
+ node2.children[i].rightMost = i === node2.children.length - 1;
+ }
+ walk(node2.children[i]);
+ }
+ }
+ depth -= 1;
+ }
+ function display(node2, offset) {
+ let name;
+ const obj2 = {};
+ obj2.id = node2.id;
+ obj2.branch = node2.branch;
+ obj2.leftMost = node2.leftMost;
+ obj2.rightMost = node2.rightMost;
+ name = node2.state.name ? node2.state.name : "ACTIVE";
+ obj2.state = { id: node2.state.id, name };
+ name = node2.op.name ? node2.op.name : "?";
+ obj2.op = { id: node2.op.id, name };
+ if (typeof node2.opData === "string") {
+ obj2.opData = node2.opData;
+ } else if (Array.isArray(node2.opData)) {
+ obj2.opData = [];
+ for (let i = 0; i < node2.opData.length; i += 1) {
+ obj2.opData[i] = node2.opData[i];
+ }
+ } else {
+ obj2.opData = void 0;
+ }
+ if (node2.phrase) {
+ obj2.phrase = { index: node2.phrase.index, length: node2.phrase.length };
+ } else {
+ obj2.phrase = null;
+ }
+ obj2.depth = node2.depth;
+ obj2.children = [];
+ for (let i = 0; i < node2.children.length; i += 1) {
+ const c = i !== node2.children.length - 1;
+ obj2.children[i] = display(node2.children[i], offset, c);
+ }
+ return obj2;
+ }
+ const branch = [];
+ let root;
+ let node;
+ let parent;
+ let record;
+ let firstRecord = true;
+ const dummy = nodeDown(null, null, -1);
+ branch.push(dummy);
+ node = dummy;
+ circular.forEach((lineIndex) => {
+ record = records[lineIndex];
+ if (firstRecord) {
+ firstRecord = false;
+ if (record.depth > 0) {
+ const num = record.dirUp ? record.depth + 1 : record.depth;
+ for (let i = 0; i < num; i += 1) {
+ parent = node;
+ node = nodeDown(node, null, i);
+ branch.push(node);
+ parent.children.push(node);
+ }
+ }
+ }
+ if (record.dirUp) {
+ node = branch.pop();
+ nodeUp(node, record);
+ node = branch[branch.length - 1];
+ } else {
+ parent = node;
+ node = nodeDown(node, record, record.depth);
+ branch.push(node);
+ parent.children.push(node);
+ }
+ });
+ while (branch.length > 1) {
+ node = branch.pop();
+ nodeUp(node, null);
+ }
+ if (dummy.children.length === 0) {
+ throw new Error("trace.toTree(): parse tree has no nodes");
+ }
+ if (branch.length === 0) {
+ throw new Error("trace.toTree(): integrity check: dummy root node disappeared?");
+ }
+ root = dummy.children[0];
+ let prev = root;
+ while (root && !root.down && !root.up) {
+ prev = root;
+ root = root.children[0];
+ }
+ root = prev;
+ root.leftMost = true;
+ root.rightMost = true;
+ walk(root);
+ root.branch = 0;
+ const obj = {};
+ obj.string = [];
+ for (let i = 0; i < chars.length; i += 1) {
+ obj.string[i] = chars[i];
+ }
+ obj.rules = [];
+ for (let i = 0; i < rules.length; i += 1) {
+ obj.rules[i] = rules[i].name;
+ }
+ obj.udts = [];
+ for (let i = 0; i < udts.length; i += 1) {
+ obj.udts[i] = udts[i].name;
+ }
+ obj.id = {};
+ obj.id.ALT = { id: id.ALT, name: "ALT" };
+ obj.id.CAT = { id: id.CAT, name: "CAT" };
+ obj.id.REP = { id: id.REP, name: "REP" };
+ obj.id.RNM = { id: id.RNM, name: "RNM" };
+ obj.id.TLS = { id: id.TLS, name: "TLS" };
+ obj.id.TBS = { id: id.TBS, name: "TBS" };
+ obj.id.TRG = { id: id.TRG, name: "TRG" };
+ obj.id.UDT = { id: id.UDT, name: "UDT" };
+ obj.id.AND = { id: id.AND, name: "AND" };
+ obj.id.NOT = { id: id.NOT, name: "NOT" };
+ obj.id.BKR = { id: id.BKR, name: "BKR" };
+ obj.id.BKA = { id: id.BKA, name: "BKA" };
+ obj.id.BKN = { id: id.BKN, name: "BKN" };
+ obj.id.ABG = { id: id.ABG, name: "ABG" };
+ obj.id.AEN = { id: id.AEN, name: "AEN" };
+ obj.id.ACTIVE = { id: id.ACTIVE, name: "ACTIVE" };
+ obj.id.MATCH = { id: id.MATCH, name: "MATCH" };
+ obj.id.EMPTY = { id: id.EMPTY, name: "EMPTY" };
+ obj.id.NOMATCH = { id: id.NOMATCH, name: "NOMATCH" };
+ obj.treeDepth = treeDepth;
+ obj.leafNodes = leafNodes;
+ let branchesIncomplete;
+ if (root.down) {
+ if (root.up) {
+ branchesIncomplete = "none";
+ } else {
+ branchesIncomplete = "right";
+ }
+ } else if (root.up) {
+ branchesIncomplete = "left";
+ } else {
+ branchesIncomplete = "both";
+ }
+ obj.branchesIncomplete = branchesIncomplete;
+ obj.tree = display(root, root.depth, false);
+ return obj;
+ };
+ this.toTree = function(stringify) {
+ const obj = toTreeObj();
+ if (stringify) {
+ return JSON.stringify(obj);
+ }
+ return obj;
+ };
+ this.toHtmlPage = function(mode, caption, title) {
+ return utils.htmlToPage(this.toHtml(mode, caption), title);
+ };
+ const htmlHeader = function(mode, caption) {
+ let modeName;
+ switch (mode) {
+ case MODE_HEX:
+ modeName = "hexadecimal";
+ break;
+ case MODE_DEC:
+ modeName = "decimal";
+ break;
+ case MODE_ASCII:
+ modeName = "ASCII";
+ break;
+ case MODE_UNICODE:
+ modeName = "UNICODE";
+ break;
+ default:
+ throw new Error(`${thisFileName}htmlHeader: unrecognized mode: ${mode}`);
+ }
+ let header = "";
+ header += `display mode: ${modeName}
+`;
+ header += `
+`;
+ if (typeof caption === "string") {
+ header += `${caption}`;
+ }
+ return header;
+ };
+ const htmlFooter = function() {
+ let footer = "";
+ footer += "
\n";
+ footer += `legend:
+`;
+ footer += "(a) - line number
\n";
+ footer += "(b) - matching line number
\n";
+ footer += "(c) - phrase offset
\n";
+ footer += "(d) - phrase length
\n";
+ footer += "(e) - tree depth
\n";
+ footer += "(f) - operator state
\n";
+ footer += ` - ↓ phrase opened
+`;
+ footer += ` - ↑M phrase matched
+`;
+ footer += ` - ↑E empty phrase matched
+`;
+ footer += ` - ↑N phrase not matched
+`;
+ footer += "operator - ALT, CAT, REP, RNM, TRG, TLS, TBS†, UDT, AND, NOT, BKA, BKN, BKR, ABG, AEN‡
\n";
+ footer += `phrase - up to ${MAX_PHRASE} characters of the phrase being matched
+`;
+ footer += ` - matched characters
+`;
+ footer += ` - matched characters in look ahead mode
+`;
+ footer += ` - matched characters in look behind mode
+`;
+ footer += ` - remainder characters(not yet examined by parser)
+`;
+ footer += ` - control characters, TAB, LF, CR, etc. (ASCII mode only)
+`;
+ footer += ` - ${PHRASE_EMPTY} empty string
+`;
+ footer += ` - ${PHRASE_END} end of input string
+`;
+ footer += ` - ${PHRASE_CONTINUE} input string display truncated
+`;
+ footer += "
\n";
+ footer += `
+`;
+ footer += "†original ABNF operators:
\n";
+ footer += "ALT - alternation
\n";
+ footer += "CAT - concatenation
\n";
+ footer += "REP - repetition
\n";
+ footer += "RNM - rule name
\n";
+ footer += "TRG - terminal range
\n";
+ footer += "TLS - terminal literal string (case insensitive)
\n";
+ footer += "TBS - terminal binary string (case sensitive)
\n";
+ footer += "
\n";
+ footer += "‡super set SABNF operators:
\n";
+ footer += "UDT - user-defined terminal
\n";
+ footer += "AND - positive look ahead
\n";
+ footer += "NOT - negative look ahead
\n";
+ footer += "BKA - positive look behind
\n";
+ footer += "BKN - negative look behind
\n";
+ footer += "BKR - back reference
\n";
+ footer += "ABG - anchor - begin of input string
\n";
+ footer += "AEN - anchor - end of input string
\n";
+ footer += "
\n";
+ return footer;
+ };
+ this.indent = function(depth) {
+ let html = "";
+ for (let i = 0; i < depth; i += 1) {
+ html += ".";
+ }
+ return html;
+ };
+ const displayTrg = function(mode, op) {
+ let html = "";
+ if (op.type === id.TRG) {
+ if (mode === MODE_HEX || mode === MODE_UNICODE) {
+ let hex = op.min.toString(16).toUpperCase();
+ if (hex.length % 2 !== 0) {
+ hex = `0${hex}`;
+ }
+ html += mode === MODE_HEX ? "%x" : "U+";
+ html += hex;
+ hex = op.max.toString(16).toUpperCase();
+ if (hex.length % 2 !== 0) {
+ hex = `0${hex}`;
+ }
+ html += `–${hex}`;
+ } else {
+ html = `%d${op.min.toString(10)}–${op.max.toString(10)}`;
+ }
+ }
+ return html;
+ };
+ const displayRep = function(mode, op) {
+ let html = "";
+ if (op.type === id.REP) {
+ if (mode === MODE_HEX) {
+ let hex = op.min.toString(16).toUpperCase();
+ if (hex.length % 2 !== 0) {
+ hex = `0${hex}`;
+ }
+ html = `x${hex}`;
+ if (op.max < Infinity) {
+ hex = op.max.toString(16).toUpperCase();
+ if (hex.length % 2 !== 0) {
+ hex = `0${hex}`;
+ }
+ } else {
+ hex = "inf";
+ }
+ html += `–${hex}`;
+ } else if (op.max < Infinity) {
+ html = `${op.min.toString(10)}–${op.max.toString(10)}`;
+ } else {
+ html = `${op.min.toString(10)}–inf`;
+ }
+ }
+ return html;
+ };
+ const displayTbs = function(mode, op) {
+ let html = "";
+ if (op.type === id.TBS) {
+ const len = Math.min(op.string.length, MAX_TLS * 2);
+ if (mode === MODE_HEX || mode === MODE_UNICODE) {
+ html += mode === MODE_HEX ? "%x" : "U+";
+ for (let i = 0; i < len; i += 1) {
+ let hex;
+ if (i > 0) {
+ html += ".";
+ }
+ hex = op.string[i].toString(16).toUpperCase();
+ if (hex.length % 2 !== 0) {
+ hex = `0${hex}`;
+ }
+ html += hex;
+ }
+ } else {
+ html = "%d";
+ for (let i = 0; i < len; i += 1) {
+ if (i > 0) {
+ html += ".";
+ }
+ html += op.string[i].toString(10);
+ }
+ }
+ if (len < op.string.length) {
+ html += PHRASE_CONTINUE;
+ }
+ }
+ return html;
+ };
+ const displayTls = function(mode, op) {
+ let html = "";
+ if (op.type === id.TLS) {
+ const len = Math.min(op.string.length, MAX_TLS);
+ if (mode === MODE_HEX || mode === MODE_DEC) {
+ let charu;
+ let charl;
+ let base;
+ if (mode === MODE_HEX) {
+ html = "%x";
+ base = 16;
+ } else {
+ html = "%d";
+ base = 10;
+ }
+ for (let i = 0; i < len; i += 1) {
+ if (i > 0) {
+ html += ".";
+ }
+ charl = op.string[i];
+ if (charl >= 97 && charl <= 122) {
+ charu = charl - 32;
+ html += `${charu.toString(base)}/${charl.toString(base)}`.toUpperCase();
+ } else if (charl >= 65 && charl <= 90) {
+ charu = charl;
+ charl += 32;
+ html += `${charu.toString(base)}/${charl.toString(base)}`.toUpperCase();
+ } else {
+ html += charl.toString(base).toUpperCase();
+ }
+ }
+ if (len < op.string.length) {
+ html += PHRASE_CONTINUE;
+ }
+ } else {
+ html = '"';
+ for (let i = 0; i < len; i += 1) {
+ html += utils.asciiChars[op.string[i]];
+ }
+ if (len < op.string.length) {
+ html += PHRASE_CONTINUE;
+ }
+ html += '"';
+ }
+ }
+ return html;
+ };
+ const subPhrase = function(mode, charsArg, index, length, prev) {
+ if (length === 0) {
+ return "";
+ }
+ let phrase = "";
+ const comma = prev ? "," : "";
+ switch (mode) {
+ case MODE_HEX:
+ phrase = comma + utils.charsToHex(charsArg, index, length);
+ break;
+ case MODE_DEC:
+ if (prev) {
+ return `,${utils.charsToDec(charsArg, index, length)}`;
+ }
+ phrase = comma + utils.charsToDec(charsArg, index, length);
+ break;
+ case MODE_UNICODE:
+ phrase = utils.charsToUnicode(charsArg, index, length);
+ break;
+ case MODE_ASCII:
+ default:
+ phrase = utils.charsToAsciiHtml(charsArg, index, length);
+ break;
+ }
+ return phrase;
+ };
+ const displayBehind = function(mode, charsArg, state, index, length, anchor) {
+ let html = "";
+ let beg1;
+ let len1;
+ let beg2;
+ let len2;
+ let lastchar = PHRASE_END;
+ const spanBehind = ``;
+ const spanRemainder = ``;
+ const spanend = "";
+ let prev = false;
+ switch (state) {
+ case id.EMPTY:
+ html += PHRASE_EMPTY;
+ case id.NOMATCH:
+ case id.MATCH:
+ case id.ACTIVE:
+ beg1 = index - length;
+ len1 = anchor - beg1;
+ beg2 = anchor;
+ len2 = charsArg.length - beg2;
+ break;
+ default:
+ throw new Error("unrecognized state");
+ }
+ lastchar = PHRASE_END;
+ if (len1 > MAX_PHRASE) {
+ len1 = MAX_PHRASE;
+ lastchar = PHRASE_CONTINUE;
+ len2 = 0;
+ } else if (len1 + len2 > MAX_PHRASE) {
+ lastchar = PHRASE_CONTINUE;
+ len2 = MAX_PHRASE - len1;
+ }
+ if (len1 > 0) {
+ html += spanBehind;
+ html += subPhrase(mode, charsArg, beg1, len1, prev);
+ html += spanend;
+ prev = true;
+ }
+ if (len2 > 0) {
+ html += spanRemainder;
+ html += subPhrase(mode, charsArg, beg2, len2, prev);
+ html += spanend;
+ }
+ return html + lastchar;
+ };
+ const displayForward = function(mode, charsArg, state, index, length, spanAhead) {
+ let html = "";
+ let beg1;
+ let len1;
+ let beg2;
+ let len2;
+ let lastchar = PHRASE_END;
+ const spanRemainder = ``;
+ const spanend = "";
+ let prev = false;
+ switch (state) {
+ case id.EMPTY:
+ html += PHRASE_EMPTY;
+ case id.NOMATCH:
+ case id.ACTIVE:
+ beg1 = index;
+ len1 = 0;
+ beg2 = index;
+ len2 = charsArg.length - beg2;
+ break;
+ case id.MATCH:
+ beg1 = index;
+ len1 = length;
+ beg2 = index + len1;
+ len2 = charsArg.length - beg2;
+ break;
+ default:
+ throw new Error("unrecognized state");
+ }
+ lastchar = PHRASE_END;
+ if (len1 > MAX_PHRASE) {
+ len1 = MAX_PHRASE;
+ lastchar = PHRASE_CONTINUE;
+ len2 = 0;
+ } else if (len1 + len2 > MAX_PHRASE) {
+ lastchar = PHRASE_CONTINUE;
+ len2 = MAX_PHRASE - len1;
+ }
+ if (len1 > 0) {
+ html += spanAhead;
+ html += subPhrase(mode, charsArg, beg1, len1, prev);
+ html += spanend;
+ prev = true;
+ }
+ if (len2 > 0) {
+ html += spanRemainder;
+ html += subPhrase(mode, charsArg, beg2, len2, prev);
+ html += spanend;
+ }
+ return html + lastchar;
+ };
+ const displayAhead = function(mode, charsArg, state, index, length) {
+ const spanAhead = ``;
+ return displayForward(mode, charsArg, state, index, length, spanAhead);
+ };
+ const displayNone = function(mode, charsArg, state, index, length) {
+ const spanAhead = ``;
+ return displayForward(mode, charsArg, state, index, length, spanAhead);
+ };
+ const htmlTable = function(mode) {
+ if (rules === null) {
+ return "";
+ }
+ let html = "";
+ let thisLine;
+ let thatLine;
+ let lookAhead;
+ let lookBehind;
+ let lookAround;
+ let anchor;
+ html += "(a) | (b) | (c) | (d) | (e) | (f) | ";
+ html += "operator | phrase |
\n";
+ circular.forEach((lineIndex) => {
+ const line = records[lineIndex];
+ thisLine = line.thisLine;
+ thatLine = line.thatLine !== void 0 ? line.thatLine : "--";
+ lookAhead = false;
+ lookBehind = false;
+ lookAround = false;
+ if (line.lookAround === id.LOOKAROUND_AHEAD) {
+ lookAhead = true;
+ lookAround = true;
+ anchor = line.lookAnchor;
+ }
+ if (line.opcode.type === id.AND || line.opcode.type === id.NOT) {
+ lookAhead = true;
+ lookAround = true;
+ anchor = line.phraseIndex;
+ }
+ if (line.lookAround === id.LOOKAROUND_BEHIND) {
+ lookBehind = true;
+ lookAround = true;
+ anchor = line.lookAnchor;
+ }
+ if (line.opcode.type === id.BKA || line.opcode.type === id.BKN) {
+ lookBehind = true;
+ lookAround = true;
+ anchor = line.phraseIndex;
+ }
+ html += "";
+ html += `${thisLine} | ${thatLine} | `;
+ html += `${line.phraseIndex} | `;
+ html += `${line.phraseLength} | `;
+ html += `${line.depth} | `;
+ html += "";
+ switch (line.state) {
+ case id.ACTIVE:
+ html += `↓ `;
+ break;
+ case id.MATCH:
+ html += `↑M`;
+ break;
+ case id.NOMATCH:
+ html += `↑N`;
+ break;
+ case id.EMPTY:
+ html += `↑E`;
+ break;
+ default:
+ html += `--`;
+ break;
+ }
+ html += " | ";
+ html += "";
+ html += that.indent(line.depth);
+ if (lookAhead) {
+ html += ``;
+ } else if (lookBehind) {
+ html += ``;
+ }
+ html += utils.opcodeToString(line.opcode.type);
+ if (line.opcode.type === id.RNM) {
+ html += `(${rules[line.opcode.index].name}) `;
+ }
+ if (line.opcode.type === id.BKR) {
+ const casetype = line.opcode.bkrCase === id.BKR_MODE_CI ? "%i" : "%s";
+ const modetype = line.opcode.bkrMode === id.BKR_MODE_UM ? "%u" : "%p";
+ html += `(\\${casetype}${modetype}${rules[line.opcode.index].name}) `;
+ }
+ if (line.opcode.type === id.UDT) {
+ html += `(${udts[line.opcode.index].name}) `;
+ }
+ if (line.opcode.type === id.TRG) {
+ html += `(${displayTrg(mode, line.opcode)}) `;
+ }
+ if (line.opcode.type === id.TBS) {
+ html += `(${displayTbs(mode, line.opcode)}) `;
+ }
+ if (line.opcode.type === id.TLS) {
+ html += `(${displayTls(mode, line.opcode)}) `;
+ }
+ if (line.opcode.type === id.REP) {
+ html += `(${displayRep(mode, line.opcode)}) `;
+ }
+ if (lookAround) {
+ html += "";
+ }
+ html += " | ";
+ html += "";
+ if (lookBehind) {
+ html += displayBehind(mode, chars, line.state, line.phraseIndex, line.phraseLength, anchor);
+ } else if (lookAhead) {
+ html += displayAhead(mode, chars, line.state, line.phraseIndex, line.phraseLength);
+ } else {
+ html += displayNone(mode, chars, line.state, line.phraseIndex, line.phraseLength);
+ }
+ html += " |
\n";
+ });
+ html += "(a) | (b) | (c) | (d) | (e) | (f) | ";
+ html += "operator | phrase |
\n";
+ html += "\n";
+ return html;
+ };
+ this.toHtml = function(modearg, caption) {
+ let mode = MODE_ASCII;
+ if (typeof modearg === "string" && modearg.length >= 3) {
+ const modein = modearg.toLowerCase().slice(0, 3);
+ if (modein === "hex") {
+ mode = MODE_HEX;
+ } else if (modein === "dec") {
+ mode = MODE_DEC;
+ } else if (modein === "uni") {
+ mode = MODE_UNICODE;
+ }
+ }
+ let html = "";
+ html += htmlHeader(mode, caption);
+ html += htmlTable(mode);
+ html += htmlFooter();
+ return html;
+ };
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-lib/node-exports.js
+var require_node_exports = __commonJS({
+ "node_modules/apg-js/src/apg-lib/node-exports.js"(exports2, module2) {
+ module2.exports = {
+ ast: require_ast(),
+ circular: require_circular_buffer(),
+ ids: require_identifiers(),
+ parser: require_parser(),
+ stats: require_stats(),
+ trace: require_trace(),
+ utils: require_utilities(),
+ emitcss: require_emitcss(),
+ style: require_style()
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-api/scanner-grammar.js
+var require_scanner_grammar = __commonJS({
+ "node_modules/apg-js/src/apg-api/scanner-grammar.js"(exports2, module2) {
+ module2.exports = function grammar() {
+ this.grammarObject = "grammarObject";
+ this.rules = [];
+ this.rules[0] = { name: "file", lower: "file", index: 0, isBkr: false };
+ this.rules[1] = { name: "line", lower: "line", index: 1, isBkr: false };
+ this.rules[2] = { name: "line-text", lower: "line-text", index: 2, isBkr: false };
+ this.rules[3] = { name: "last-line", lower: "last-line", index: 3, isBkr: false };
+ this.rules[4] = { name: "valid", lower: "valid", index: 4, isBkr: false };
+ this.rules[5] = { name: "invalid", lower: "invalid", index: 5, isBkr: false };
+ this.rules[6] = { name: "end", lower: "end", index: 6, isBkr: false };
+ this.rules[7] = { name: "CRLF", lower: "crlf", index: 7, isBkr: false };
+ this.rules[8] = { name: "LF", lower: "lf", index: 8, isBkr: false };
+ this.rules[9] = { name: "CR", lower: "cr", index: 9, isBkr: false };
+ this.udts = [];
+ this.rules[0].opcodes = [];
+ this.rules[0].opcodes[0] = { type: 2, children: [1, 3] };
+ this.rules[0].opcodes[1] = { type: 3, min: 0, max: Infinity };
+ this.rules[0].opcodes[2] = { type: 4, index: 1 };
+ this.rules[0].opcodes[3] = { type: 3, min: 0, max: 1 };
+ this.rules[0].opcodes[4] = { type: 4, index: 3 };
+ this.rules[1].opcodes = [];
+ this.rules[1].opcodes[0] = { type: 2, children: [1, 2] };
+ this.rules[1].opcodes[1] = { type: 4, index: 2 };
+ this.rules[1].opcodes[2] = { type: 4, index: 6 };
+ this.rules[2].opcodes = [];
+ this.rules[2].opcodes[0] = { type: 3, min: 0, max: Infinity };
+ this.rules[2].opcodes[1] = { type: 1, children: [2, 3] };
+ this.rules[2].opcodes[2] = { type: 4, index: 4 };
+ this.rules[2].opcodes[3] = { type: 4, index: 5 };
+ this.rules[3].opcodes = [];
+ this.rules[3].opcodes[0] = { type: 3, min: 1, max: Infinity };
+ this.rules[3].opcodes[1] = { type: 1, children: [2, 3] };
+ this.rules[3].opcodes[2] = { type: 4, index: 4 };
+ this.rules[3].opcodes[3] = { type: 4, index: 5 };
+ this.rules[4].opcodes = [];
+ this.rules[4].opcodes[0] = { type: 1, children: [1, 2] };
+ this.rules[4].opcodes[1] = { type: 5, min: 32, max: 126 };
+ this.rules[4].opcodes[2] = { type: 6, string: [9] };
+ this.rules[5].opcodes = [];
+ this.rules[5].opcodes[0] = { type: 1, children: [1, 2, 3, 4] };
+ this.rules[5].opcodes[1] = { type: 5, min: 0, max: 8 };
+ this.rules[5].opcodes[2] = { type: 5, min: 11, max: 12 };
+ this.rules[5].opcodes[3] = { type: 5, min: 14, max: 31 };
+ this.rules[5].opcodes[4] = { type: 5, min: 127, max: 4294967295 };
+ this.rules[6].opcodes = [];
+ this.rules[6].opcodes[0] = { type: 1, children: [1, 2, 3] };
+ this.rules[6].opcodes[1] = { type: 4, index: 7 };
+ this.rules[6].opcodes[2] = { type: 4, index: 8 };
+ this.rules[6].opcodes[3] = { type: 4, index: 9 };
+ this.rules[7].opcodes = [];
+ this.rules[7].opcodes[0] = { type: 6, string: [13, 10] };
+ this.rules[8].opcodes = [];
+ this.rules[8].opcodes[0] = { type: 6, string: [10] };
+ this.rules[9].opcodes = [];
+ this.rules[9].opcodes[0] = { type: 6, string: [13] };
+ this.toString = function toString2() {
+ let str = "";
+ str += "file = *line [last-line]\n";
+ str += "line = line-text end\n";
+ str += "line-text = *(valid/invalid)\n";
+ str += "last-line = 1*(valid/invalid)\n";
+ str += "valid = %d32-126 / %d9\n";
+ str += "invalid = %d0-8 / %d11-12 /%d14-31 / %x7f-ffffffff\n";
+ str += "end = CRLF / LF / CR\n";
+ str += "CRLF = %d13.10\n";
+ str += "LF = %d10\n";
+ str += "CR = %d13\n";
+ return str;
+ };
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-api/scanner-callbacks.js
+var require_scanner_callbacks = __commonJS({
+ "node_modules/apg-js/src/apg-api/scanner-callbacks.js"(exports2) {
+ var ids = require_identifiers();
+ var utils = require_utilities();
+ function semLine(state, chars, phraseIndex, phraseCount, data) {
+ if (state === ids.SEM_PRE) {
+ data.endLength = 0;
+ data.textLength = 0;
+ data.invalidCount = 0;
+ } else {
+ data.lines.push({
+ lineNo: data.lines.length,
+ beginChar: phraseIndex,
+ length: phraseCount,
+ textLength: data.textLength,
+ endType: data.endType,
+ invalidChars: data.invalidCount
+ });
+ }
+ return ids.SEM_OK;
+ }
+ function semLineText(state, chars, phraseIndex, phraseCount, data) {
+ if (state === ids.SEM_PRE) {
+ data.textLength = phraseCount;
+ }
+ return ids.SEM_OK;
+ }
+ function semLastLine(state, chars, phraseIndex, phraseCount, data) {
+ if (state === ids.SEM_PRE) {
+ data.endLength = 0;
+ data.textLength = 0;
+ data.invalidCount = 0;
+ } else if (data.strict) {
+ data.lines.push({
+ lineNo: data.lines.length,
+ beginChar: phraseIndex,
+ length: phraseCount,
+ textLength: phraseCount,
+ endType: "none",
+ invalidChars: data.invalidCount
+ });
+ data.errors.push({
+ line: data.lineNo,
+ char: phraseIndex + phraseCount,
+ msg: "no line end on last line - strict ABNF specifies CRLF(\\r\\n, \\x0D\\x0A)"
+ });
+ } else {
+ chars.push(10);
+ data.lines.push({
+ lineNo: data.lines.length,
+ beginChar: phraseIndex,
+ length: phraseCount + 1,
+ textLength: phraseCount,
+ endType: "LF",
+ invalidChars: data.invalidCount
+ });
+ }
+ return ids.SEM_OK;
+ }
+ function semInvalid(state, chars, phraseIndex, phraseCount, data) {
+ if (state === ids.SEM_PRE) {
+ data.errors.push({
+ line: data.lineNo,
+ char: phraseIndex,
+ msg: `invalid character found '\\x${utils.charToHex(chars[phraseIndex])}'`
+ });
+ }
+ return ids.SEM_OK;
+ }
+ function semEnd(state, chars, phraseIndex, phraseCount, data) {
+ if (state === ids.SEM_POST) {
+ data.lineNo += 1;
+ }
+ return ids.SEM_OK;
+ }
+ function semLF(state, chars, phraseIndex, phraseCount, data) {
+ if (state === ids.SEM_PRE) {
+ data.endType = "LF";
+ if (data.strict) {
+ data.errors.push({
+ line: data.lineNo,
+ char: phraseIndex,
+ msg: "line end character LF(\\n, \\x0A) - strict ABNF specifies CRLF(\\r\\n, \\x0D\\x0A)"
+ });
+ }
+ }
+ return ids.SEM_OK;
+ }
+ function semCR(state, chars, phraseIndex, phraseCount, data) {
+ if (state === ids.SEM_PRE) {
+ data.endType = "CR";
+ if (data.strict) {
+ data.errors.push({
+ line: data.lineNo,
+ char: phraseIndex,
+ msg: "line end character CR(\\r, \\x0D) - strict ABNF specifies CRLF(\\r\\n, \\x0D\\x0A)"
+ });
+ }
+ }
+ return ids.SEM_OK;
+ }
+ function semCRLF(state, chars, phraseIndex, phraseCount, data) {
+ if (state === ids.SEM_PRE) {
+ data.endType = "CRLF";
+ }
+ return ids.SEM_OK;
+ }
+ var callbacks = [];
+ callbacks.line = semLine;
+ callbacks["line-text"] = semLineText;
+ callbacks["last-line"] = semLastLine;
+ callbacks.invalid = semInvalid;
+ callbacks.end = semEnd;
+ callbacks.lf = semLF;
+ callbacks.cr = semCR;
+ callbacks.crlf = semCRLF;
+ exports2.callbacks = callbacks;
+ }
+});
+
+// node_modules/apg-js/src/apg-api/scanner.js
+var require_scanner = __commonJS({
+ "node_modules/apg-js/src/apg-api/scanner.js"(exports2, module2) {
+ module2.exports = function exfn(chars, errors, strict, trace) {
+ const thisFileName = "scanner.js: ";
+ const apglib = require_node_exports();
+ const grammar = new (require_scanner_grammar())();
+ const { callbacks } = require_scanner_callbacks();
+ const lines = [];
+ const parser = new apglib.parser();
+ parser.ast = new apglib.ast();
+ parser.ast.callbacks = callbacks;
+ if (trace) {
+ if (trace.traceObject !== "traceObject") {
+ throw new TypeError(`${thisFileName}trace argument is not a trace object`);
+ }
+ parser.trace = trace;
+ }
+ const test = parser.parse(grammar, "file", chars);
+ if (test.success !== true) {
+ errors.push({
+ line: 0,
+ char: 0,
+ msg: "syntax analysis error analyzing input SABNF grammar"
+ });
+ return;
+ }
+ const data = {
+ lines,
+ lineNo: 0,
+ errors,
+ strict: !!strict
+ };
+ parser.ast.translate(data);
+ return lines;
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-api/syntax-callbacks.js
+var require_syntax_callbacks = __commonJS({
+ "node_modules/apg-js/src/apg-api/syntax-callbacks.js"(exports2, module2) {
+ module2.exports = function exfn() {
+ const thisFileName = "syntax-callbacks.js: ";
+ const apglib = require_node_exports();
+ const id = apglib.ids;
+ let topAlt;
+ const synFile = function synFile2(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ data.altStack = [];
+ data.repCount = 0;
+ break;
+ case id.EMPTY:
+ data.errors.push({
+ line: 0,
+ char: 0,
+ msg: "grammar file is empty"
+ });
+ break;
+ case id.MATCH:
+ if (data.ruleCount === 0) {
+ data.errors.push({
+ line: 0,
+ char: 0,
+ msg: "no rules defined"
+ });
+ }
+ break;
+ case id.NOMATCH:
+ throw new Error(`${thisFileName}synFile: grammar file NOMATCH: design error: should never happen.`);
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synRule = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ data.altStack.length = 0;
+ topAlt = {
+ groupOpen: null,
+ groupError: false,
+ optionOpen: null,
+ optionError: false,
+ tlsOpen: null,
+ clsOpen: null,
+ prosValOpen: null,
+ basicError: false
+ };
+ data.altStack.push(topAlt);
+ break;
+ case id.EMPTY:
+ throw new Error(`${thisFileName}synRule: EMPTY: rule cannot be empty`);
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ data.ruleCount += 1;
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synRuleError = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: "Unrecognized SABNF line. Invalid rule, comment or blank line."
+ });
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synRuleNameError = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: "Rule names must be alphanum and begin with alphabetic character."
+ });
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synDefinedAsError = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: "Expected '=' or '=/'. Not found."
+ });
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synAndOp = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ if (data.strict) {
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: "AND operator(&) found - strict ABNF specified."
+ });
+ }
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synNotOp = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ if (data.strict) {
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: "NOT operator(!) found - strict ABNF specified."
+ });
+ }
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synBkaOp = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ if (data.strict) {
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: "Positive look-behind operator(&&) found - strict ABNF specified."
+ });
+ } else if (data.lite) {
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: "Positive look-behind operator(&&) found - apg-lite specified."
+ });
+ }
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synBknOp = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ if (data.strict) {
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: "Negative look-behind operator(!!) found - strict ABNF specified."
+ });
+ } else if (data.lite) {
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: "Negative look-behind operator(!!) found - apg-lite specified."
+ });
+ }
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synAbgOp = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ if (data.strict) {
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: "Beginning of string anchor(%^) found - strict ABNF specified."
+ });
+ } else if (data.lite) {
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: "Beginning of string anchor(%^) found - apg-lite specified."
+ });
+ }
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synAenOp = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ if (data.strict) {
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: "End of string anchor(%$) found - strict ABNF specified."
+ });
+ } else if (data.lite) {
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: "End of string anchor(%$) found - apg-lite specified."
+ });
+ }
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synBkrOp = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ if (data.strict) {
+ const name = apglib.utils.charsToString(chars, phraseIndex, result.phraseLength);
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: `Back reference operator(${name}) found - strict ABNF specified.`
+ });
+ } else if (data.lite) {
+ const name = apglib.utils.charsToString(chars, phraseIndex, result.phraseLength);
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: `Back reference operator(${name}) found - apg-lite specified.`
+ });
+ }
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synUdtOp = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ if (data.strict) {
+ const name = apglib.utils.charsToString(chars, phraseIndex, result.phraseLength);
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: `UDT operator found(${name}) - strict ABNF specified.`
+ });
+ }
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synTlsOpen = function(result, chars, phraseIndex) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ topAlt.tlsOpen = phraseIndex;
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synTlsString = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ data.stringTabChar = false;
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ if (data.stringTabChar !== false) {
+ data.errors.push({
+ line: data.findLine(data.lines, data.stringTabChar),
+ char: data.stringTabChar,
+ msg: "Tab character (\\t, x09) not allowed in literal string (see 'quoted-string' definition, RFC 7405.)"
+ });
+ }
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synStringTab = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ data.stringTabChar = phraseIndex;
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synTlsClose = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ data.errors.push({
+ line: data.findLine(data.lines, topAlt.tlsOpen),
+ char: topAlt.tlsOpen,
+ msg: 'Case-insensitive literal string("...") opened but not closed.'
+ });
+ topAlt.basicError = true;
+ topAlt.tlsOpen = null;
+ break;
+ case id.MATCH:
+ topAlt.tlsOpen = null;
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synClsOpen = function(result, chars, phraseIndex) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ topAlt.clsOpen = phraseIndex;
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synClsString = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ data.stringTabChar = false;
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ if (data.stringTabChar !== false) {
+ data.errors.push({
+ line: data.findLine(data.lines, data.stringTabChar),
+ char: data.stringTabChar,
+ msg: "Tab character (\\t, x09) not allowed in literal string."
+ });
+ }
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synClsClose = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ data.errors.push({
+ line: data.findLine(data.lines, topAlt.clsOpen),
+ char: topAlt.clsOpen,
+ msg: "Case-sensitive literal string('...') opened but not closed."
+ });
+ topAlt.clsOpen = null;
+ topAlt.basicError = true;
+ break;
+ case id.MATCH:
+ if (data.strict) {
+ data.errors.push({
+ line: data.findLine(data.lines, topAlt.clsOpen),
+ char: topAlt.clsOpen,
+ msg: "Case-sensitive string operator('...') found - strict ABNF specified."
+ });
+ }
+ topAlt.clsOpen = null;
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synProsValOpen = function(result, chars, phraseIndex) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ topAlt.prosValOpen = phraseIndex;
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synProsValString = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ data.stringTabChar = false;
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ if (data.stringTabChar !== false) {
+ data.errors.push({
+ line: data.findLine(data.lines, data.stringTabChar),
+ char: data.stringTabChar,
+ msg: "Tab character (\\t, x09) not allowed in prose value string."
+ });
+ }
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synProsValClose = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ data.errors.push({
+ line: data.findLine(data.lines, topAlt.prosValOpen),
+ char: topAlt.prosValOpen,
+ msg: "Prose value operator(<...>) opened but not closed."
+ });
+ topAlt.basicError = true;
+ topAlt.prosValOpen = null;
+ break;
+ case id.MATCH:
+ data.errors.push({
+ line: data.findLine(data.lines, topAlt.prosValOpen),
+ char: topAlt.prosValOpen,
+ msg: "Prose value operator(<...>) found. The ABNF syntax is valid, but a parser cannot be generated from this grammar."
+ });
+ topAlt.prosValOpen = null;
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synGroupOpen = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ topAlt = {
+ groupOpen: phraseIndex,
+ groupError: false,
+ optionOpen: null,
+ optionError: false,
+ tlsOpen: null,
+ clsOpen: null,
+ prosValOpen: null,
+ basicError: false
+ };
+ data.altStack.push(topAlt);
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synGroupClose = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ data.errors.push({
+ line: data.findLine(data.lines, topAlt.groupOpen),
+ char: topAlt.groupOpen,
+ msg: 'Group "(...)" opened but not closed.'
+ });
+ topAlt = data.altStack.pop();
+ topAlt.groupError = true;
+ break;
+ case id.MATCH:
+ topAlt = data.altStack.pop();
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synOptionOpen = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ topAlt = {
+ groupOpen: null,
+ groupError: false,
+ optionOpen: phraseIndex,
+ optionError: false,
+ tlsOpen: null,
+ clsOpen: null,
+ prosValOpen: null,
+ basicError: false
+ };
+ data.altStack.push(topAlt);
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synOptionClose = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ data.errors.push({
+ line: data.findLine(data.lines, topAlt.optionOpen),
+ char: topAlt.optionOpen,
+ msg: 'Option "[...]" opened but not closed.'
+ });
+ topAlt = data.altStack.pop();
+ topAlt.optionError = true;
+ break;
+ case id.MATCH:
+ topAlt = data.altStack.pop();
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synBasicElementError = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ if (topAlt.basicError === false) {
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: "Unrecognized SABNF element."
+ });
+ }
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synLineEnd = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ if (result.phraseLength === 1 && data.strict) {
+ const end = chars[phraseIndex] === 13 ? "CR" : "LF";
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: `Line end '${end}' found - strict ABNF specified, only CRLF allowed.`
+ });
+ }
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synLineEndError = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ break;
+ case id.MATCH:
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: "Unrecognized grammar element or characters."
+ });
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ const synRepetition = function(result, chars, phraseIndex, data) {
+ switch (result.state) {
+ case id.ACTIVE:
+ break;
+ case id.EMPTY:
+ break;
+ case id.NOMATCH:
+ data.repCount += 1;
+ break;
+ case id.MATCH:
+ data.repCount += 1;
+ break;
+ default:
+ throw new Error(`${thisFileName}synFile: unrecognized case.`);
+ }
+ };
+ this.callbacks = [];
+ this.callbacks.andop = synAndOp;
+ this.callbacks.basicelementerr = synBasicElementError;
+ this.callbacks.clsclose = synClsClose;
+ this.callbacks.clsopen = synClsOpen;
+ this.callbacks.clsstring = synClsString;
+ this.callbacks.definedaserror = synDefinedAsError;
+ this.callbacks.file = synFile;
+ this.callbacks.groupclose = synGroupClose;
+ this.callbacks.groupopen = synGroupOpen;
+ this.callbacks.lineenderror = synLineEndError;
+ this.callbacks.lineend = synLineEnd;
+ this.callbacks.notop = synNotOp;
+ this.callbacks.optionclose = synOptionClose;
+ this.callbacks.optionopen = synOptionOpen;
+ this.callbacks.prosvalclose = synProsValClose;
+ this.callbacks.prosvalopen = synProsValOpen;
+ this.callbacks.prosvalstring = synProsValString;
+ this.callbacks.repetition = synRepetition;
+ this.callbacks.rule = synRule;
+ this.callbacks.ruleerror = synRuleError;
+ this.callbacks.rulenameerror = synRuleNameError;
+ this.callbacks.stringtab = synStringTab;
+ this.callbacks.tlsclose = synTlsClose;
+ this.callbacks.tlsopen = synTlsOpen;
+ this.callbacks.tlsstring = synTlsString;
+ this.callbacks.udtop = synUdtOp;
+ this.callbacks.bkaop = synBkaOp;
+ this.callbacks.bknop = synBknOp;
+ this.callbacks.bkrop = synBkrOp;
+ this.callbacks.abgop = synAbgOp;
+ this.callbacks.aenop = synAenOp;
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-api/semantic-callbacks.js
+var require_semantic_callbacks = __commonJS({
+ "node_modules/apg-js/src/apg-api/semantic-callbacks.js"(exports2, module2) {
+ module2.exports = function exfn() {
+ const apglib = require_node_exports();
+ const id = apglib.ids;
+ const NameList = function NameList2() {
+ this.names = [];
+ this.add = function add(name) {
+ let ret = -1;
+ const find = this.get(name);
+ if (find === -1) {
+ ret = {
+ name,
+ lower: name.toLowerCase(),
+ index: this.names.length
+ };
+ this.names.push(ret);
+ }
+ return ret;
+ };
+ this.get = function get(name) {
+ let ret = -1;
+ const lower = name.toLowerCase();
+ for (let i = 0; i < this.names.length; i += 1) {
+ if (this.names[i].lower === lower) {
+ ret = this.names[i];
+ break;
+ }
+ }
+ return ret;
+ };
+ };
+ const decnum = function decnum2(chars, beg, len) {
+ let num = 0;
+ for (let i = beg; i < beg + len; i += 1) {
+ num = 10 * num + chars[i] - 48;
+ }
+ return num;
+ };
+ const binnum = function binnum2(chars, beg, len) {
+ let num = 0;
+ for (let i = beg; i < beg + len; i += 1) {
+ num = 2 * num + chars[i] - 48;
+ }
+ return num;
+ };
+ const hexnum = function hexnum2(chars, beg, len) {
+ let num = 0;
+ for (let i = beg; i < beg + len; i += 1) {
+ let digit = chars[i];
+ if (digit >= 48 && digit <= 57) {
+ digit -= 48;
+ } else if (digit >= 65 && digit <= 70) {
+ digit -= 55;
+ } else if (digit >= 97 && digit <= 102) {
+ digit -= 87;
+ } else {
+ throw new Error("hexnum out of range");
+ }
+ num = 16 * num + digit;
+ }
+ return num;
+ };
+ function semFile(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.ruleNames = new NameList();
+ data.udtNames = new NameList();
+ data.rules = [];
+ data.udts = [];
+ data.rulesLineMap = [];
+ data.opcodes = [];
+ data.altStack = [];
+ data.topStack = null;
+ data.topRule = null;
+ } else if (state === id.SEM_POST) {
+ let nameObj;
+ data.rules.forEach((rule) => {
+ rule.isBkr = false;
+ rule.opcodes.forEach((op) => {
+ if (op.type === id.RNM) {
+ nameObj = data.ruleNames.get(op.index.name);
+ if (nameObj === -1) {
+ data.errors.push({
+ line: data.findLine(data.lines, op.index.phraseIndex, data.charsLength),
+ char: op.index.phraseIndex,
+ msg: `Rule name '${op.index.name}' used but not defined.`
+ });
+ op.index = -1;
+ } else {
+ op.index = nameObj.index;
+ }
+ }
+ });
+ });
+ data.udts.forEach((udt) => {
+ udt.isBkr = false;
+ });
+ data.rules.forEach((rule) => {
+ rule.opcodes.forEach((op) => {
+ if (op.type === id.BKR) {
+ rule.hasBkr = true;
+ nameObj = data.ruleNames.get(op.index.name);
+ if (nameObj !== -1) {
+ data.rules[nameObj.index].isBkr = true;
+ op.index = nameObj.index;
+ } else {
+ nameObj = data.udtNames.get(op.index.name);
+ if (nameObj !== -1) {
+ data.udts[nameObj.index].isBkr = true;
+ op.index = data.rules.length + nameObj.index;
+ } else {
+ data.errors.push({
+ line: data.findLine(data.lines, op.index.phraseIndex, data.charsLength),
+ char: op.index.phraseIndex,
+ msg: `Back reference name '${op.index.name}' refers to undefined rule or unamed UDT.`
+ });
+ op.index = -1;
+ }
+ }
+ }
+ });
+ });
+ }
+ return ret;
+ }
+ function semRule(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.altStack.length = 0;
+ data.topStack = null;
+ data.rulesLineMap.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex
+ });
+ }
+ return ret;
+ }
+ function semRuleLookup(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.ruleName = "";
+ data.definedas = "";
+ } else if (state === id.SEM_POST) {
+ let ruleName;
+ if (data.definedas === "=") {
+ ruleName = data.ruleNames.add(data.ruleName);
+ if (ruleName === -1) {
+ data.definedas = null;
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: `Rule name '${data.ruleName}' previously defined.`
+ });
+ } else {
+ data.topRule = {
+ name: ruleName.name,
+ lower: ruleName.lower,
+ opcodes: [],
+ index: ruleName.index
+ };
+ data.rules.push(data.topRule);
+ data.opcodes = data.topRule.opcodes;
+ }
+ } else {
+ ruleName = data.ruleNames.get(data.ruleName);
+ if (ruleName === -1) {
+ data.definedas = null;
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: `Rule name '${data.ruleName}' for incremental alternate not previously defined.`
+ });
+ } else {
+ data.topRule = data.rules[ruleName.index];
+ data.opcodes = data.topRule.opcodes;
+ }
+ }
+ }
+ return ret;
+ }
+ function semAlternation(state, chars, phraseIndex, phraseCount, data) {
+ let ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ const TRUE = true;
+ while (TRUE) {
+ if (data.definedas === null) {
+ ret = id.SEM_SKIP;
+ break;
+ }
+ if (data.topStack === null) {
+ if (data.definedas === "=") {
+ data.topStack = {
+ alt: {
+ type: id.ALT,
+ children: []
+ },
+ cat: null
+ };
+ data.altStack.push(data.topStack);
+ data.opcodes.push(data.topStack.alt);
+ break;
+ }
+ data.topStack = {
+ alt: data.opcodes[0],
+ cat: null
+ };
+ data.altStack.push(data.topStack);
+ break;
+ }
+ data.topStack = {
+ alt: {
+ type: id.ALT,
+ children: []
+ },
+ cat: null
+ };
+ data.altStack.push(data.topStack);
+ data.opcodes.push(data.topStack.alt);
+ break;
+ }
+ } else if (state === id.SEM_POST) {
+ data.altStack.pop();
+ if (data.altStack.length > 0) {
+ data.topStack = data.altStack[data.altStack.length - 1];
+ } else {
+ data.topStack = null;
+ }
+ }
+ return ret;
+ }
+ function semConcatenation(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.topStack.alt.children.push(data.opcodes.length);
+ data.topStack.cat = {
+ type: id.CAT,
+ children: []
+ };
+ data.opcodes.push(data.topStack.cat);
+ } else if (state === id.SEM_POST) {
+ data.topStack.cat = null;
+ }
+ return ret;
+ }
+ function semRepetition(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.topStack.cat.children.push(data.opcodes.length);
+ }
+ return ret;
+ }
+ function semOptionOpen(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.opcodes.push({
+ type: id.REP,
+ min: 0,
+ max: 1,
+ char: phraseIndex
+ });
+ }
+ return ret;
+ }
+ function semRuleName(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.ruleName = apglib.utils.charsToString(chars, phraseIndex, phraseCount);
+ }
+ return ret;
+ }
+ function semDefined(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.definedas = "=";
+ }
+ return ret;
+ }
+ function semIncAlt(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.definedas = "=/";
+ }
+ return ret;
+ }
+ function semRepOp(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.min = 0;
+ data.max = Infinity;
+ data.topRep = {
+ type: id.REP,
+ min: 0,
+ max: Infinity
+ };
+ data.opcodes.push(data.topRep);
+ } else if (state === id.SEM_POST) {
+ if (data.min > data.max) {
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: `repetition min cannot be greater than max: min: ${data.min}: max: ${data.max}`
+ });
+ }
+ data.topRep.min = data.min;
+ data.topRep.max = data.max;
+ }
+ return ret;
+ }
+ function semRepMin(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.min = decnum(chars, phraseIndex, phraseCount);
+ }
+ return ret;
+ }
+ function semRepMax(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.max = decnum(chars, phraseIndex, phraseCount);
+ }
+ return ret;
+ }
+ function semRepMinMax(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.max = decnum(chars, phraseIndex, phraseCount);
+ data.min = data.max;
+ }
+ return ret;
+ }
+ function semAndOp(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.opcodes.push({
+ type: id.AND
+ });
+ }
+ return ret;
+ }
+ function semNotOp(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.opcodes.push({
+ type: id.NOT
+ });
+ }
+ return ret;
+ }
+ function semRnmOp(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.opcodes.push({
+ type: id.RNM,
+ /* NOTE: this is temporary info, index will be replaced with integer later. */
+ /* Probably not the best coding practice but here you go. */
+ index: {
+ phraseIndex,
+ name: apglib.utils.charsToString(chars, phraseIndex, phraseCount)
+ }
+ });
+ }
+ return ret;
+ }
+ function semAbgOp(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.opcodes.push({
+ type: id.ABG
+ });
+ }
+ return ret;
+ }
+ function semAenOp(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.opcodes.push({
+ type: id.AEN
+ });
+ }
+ return ret;
+ }
+ function semBkaOp(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.opcodes.push({
+ type: id.BKA
+ });
+ }
+ return ret;
+ }
+ function semBknOp(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.opcodes.push({
+ type: id.BKN
+ });
+ }
+ return ret;
+ }
+ function semBkrOp(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.ci = true;
+ data.cs = false;
+ data.um = true;
+ data.pm = false;
+ } else if (state === id.SEM_POST) {
+ data.opcodes.push({
+ type: id.BKR,
+ bkrCase: data.cs === true ? id.BKR_MODE_CS : id.BKR_MODE_CI,
+ bkrMode: data.pm === true ? id.BKR_MODE_PM : id.BKR_MODE_UM,
+ /* NOTE: this is temporary info, index will be replaced with integer later. */
+ /* Probably not the best coding practice but here you go. */
+ index: {
+ phraseIndex: data.bkrname.phraseIndex,
+ name: apglib.utils.charsToString(chars, data.bkrname.phraseIndex, data.bkrname.phraseLength)
+ }
+ });
+ }
+ return ret;
+ }
+ function semBkrCi(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.ci = true;
+ }
+ return ret;
+ }
+ function semBkrCs(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.cs = true;
+ }
+ return ret;
+ }
+ function semBkrUm(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.um = true;
+ }
+ return ret;
+ }
+ function semBkrPm(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.pm = true;
+ }
+ return ret;
+ }
+ function semBkrName(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.bkrname = {
+ phraseIndex,
+ phraseLength: phraseCount
+ };
+ }
+ return ret;
+ }
+ function semUdtEmpty(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ const name = apglib.utils.charsToString(chars, phraseIndex, phraseCount);
+ let udtName = data.udtNames.add(name);
+ if (udtName === -1) {
+ udtName = data.udtNames.get(name);
+ if (udtName === -1) {
+ throw new Error("semUdtEmpty: name look up error");
+ }
+ } else {
+ data.udts.push({
+ name: udtName.name,
+ lower: udtName.lower,
+ index: udtName.index,
+ empty: true
+ });
+ }
+ data.opcodes.push({
+ type: id.UDT,
+ empty: true,
+ index: udtName.index
+ });
+ }
+ return ret;
+ }
+ function semUdtNonEmpty(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ const name = apglib.utils.charsToString(chars, phraseIndex, phraseCount);
+ let udtName = data.udtNames.add(name);
+ if (udtName === -1) {
+ udtName = data.udtNames.get(name);
+ if (udtName === -1) {
+ throw new Error("semUdtNonEmpty: name look up error");
+ }
+ } else {
+ data.udts.push({
+ name: udtName.name,
+ lower: udtName.lower,
+ index: udtName.index,
+ empty: false
+ });
+ }
+ data.opcodes.push({
+ type: id.UDT,
+ empty: false,
+ index: udtName.index,
+ syntax: null,
+ semantic: null
+ });
+ }
+ return ret;
+ }
+ function semTlsOp(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.tlscase = true;
+ }
+ return ret;
+ }
+ function semTlsCase(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ if (phraseCount > 0 && (chars[phraseIndex + 1] === 83 || chars[phraseIndex + 1] === 115)) {
+ data.tlscase = false;
+ }
+ }
+ return ret;
+ }
+ function semTlsString(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ if (data.tlscase) {
+ const str = chars.slice(phraseIndex, phraseIndex + phraseCount);
+ for (let i = 0; i < str.length; i += 1) {
+ if (str[i] >= 65 && str[i] <= 90) {
+ str[i] += 32;
+ }
+ }
+ data.opcodes.push({
+ type: id.TLS,
+ string: str
+ });
+ } else {
+ data.opcodes.push({
+ type: id.TBS,
+ string: chars.slice(phraseIndex, phraseIndex + phraseCount)
+ });
+ }
+ }
+ return ret;
+ }
+ function semClsOp(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ if (phraseCount <= 2) {
+ data.opcodes.push({
+ type: id.TLS,
+ string: []
+ });
+ } else {
+ data.opcodes.push({
+ type: id.TBS,
+ string: chars.slice(phraseIndex + 1, phraseIndex + phraseCount - 1)
+ });
+ }
+ }
+ return ret;
+ }
+ function semTbsOp(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.tbsstr = [];
+ } else if (state === id.SEM_POST) {
+ data.opcodes.push({
+ type: id.TBS,
+ string: data.tbsstr
+ });
+ }
+ return ret;
+ }
+ function semTrgOp(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.min = 0;
+ data.max = 0;
+ } else if (state === id.SEM_POST) {
+ if (data.min > data.max) {
+ data.errors.push({
+ line: data.findLine(data.lines, phraseIndex, data.charsLength),
+ char: phraseIndex,
+ msg: `TRG, (%dmin-max), min cannot be greater than max: min: ${data.min}: max: ${data.max}`
+ });
+ }
+ data.opcodes.push({
+ type: id.TRG,
+ min: data.min,
+ max: data.max
+ });
+ }
+ return ret;
+ }
+ function semDmin(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.min = decnum(chars, phraseIndex, phraseCount);
+ }
+ return ret;
+ }
+ function semDmax(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.max = decnum(chars, phraseIndex, phraseCount);
+ }
+ return ret;
+ }
+ function semBmin(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.min = binnum(chars, phraseIndex, phraseCount);
+ }
+ return ret;
+ }
+ function semBmax(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.max = binnum(chars, phraseIndex, phraseCount);
+ }
+ return ret;
+ }
+ function semXmin(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.min = hexnum(chars, phraseIndex, phraseCount);
+ }
+ return ret;
+ }
+ function semXmax(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.max = hexnum(chars, phraseIndex, phraseCount);
+ }
+ return ret;
+ }
+ function semDstring(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.tbsstr.push(decnum(chars, phraseIndex, phraseCount));
+ }
+ return ret;
+ }
+ function semBstring(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.tbsstr.push(binnum(chars, phraseIndex, phraseCount));
+ }
+ return ret;
+ }
+ function semXstring(state, chars, phraseIndex, phraseCount, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_POST) {
+ data.tbsstr.push(hexnum(chars, phraseIndex, phraseCount));
+ }
+ return ret;
+ }
+ this.callbacks = [];
+ this.callbacks.abgop = semAbgOp;
+ this.callbacks.aenop = semAenOp;
+ this.callbacks.alternation = semAlternation;
+ this.callbacks.andop = semAndOp;
+ this.callbacks.bmax = semBmax;
+ this.callbacks.bmin = semBmin;
+ this.callbacks.bkaop = semBkaOp;
+ this.callbacks.bknop = semBknOp;
+ this.callbacks.bkrop = semBkrOp;
+ this.callbacks["bkr-name"] = semBkrName;
+ this.callbacks.bstring = semBstring;
+ this.callbacks.clsop = semClsOp;
+ this.callbacks.ci = semBkrCi;
+ this.callbacks.cs = semBkrCs;
+ this.callbacks.um = semBkrUm;
+ this.callbacks.pm = semBkrPm;
+ this.callbacks.concatenation = semConcatenation;
+ this.callbacks.defined = semDefined;
+ this.callbacks.dmax = semDmax;
+ this.callbacks.dmin = semDmin;
+ this.callbacks.dstring = semDstring;
+ this.callbacks.file = semFile;
+ this.callbacks.incalt = semIncAlt;
+ this.callbacks.notop = semNotOp;
+ this.callbacks.optionopen = semOptionOpen;
+ this.callbacks["rep-max"] = semRepMax;
+ this.callbacks["rep-min"] = semRepMin;
+ this.callbacks["rep-min-max"] = semRepMinMax;
+ this.callbacks.repetition = semRepetition;
+ this.callbacks.repop = semRepOp;
+ this.callbacks.rnmop = semRnmOp;
+ this.callbacks.rule = semRule;
+ this.callbacks.rulelookup = semRuleLookup;
+ this.callbacks.rulename = semRuleName;
+ this.callbacks.tbsop = semTbsOp;
+ this.callbacks.tlscase = semTlsCase;
+ this.callbacks.tlsstring = semTlsString;
+ this.callbacks.tlsop = semTlsOp;
+ this.callbacks.trgop = semTrgOp;
+ this.callbacks["udt-empty"] = semUdtEmpty;
+ this.callbacks["udt-non-empty"] = semUdtNonEmpty;
+ this.callbacks.xmax = semXmax;
+ this.callbacks.xmin = semXmin;
+ this.callbacks.xstring = semXstring;
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-api/sabnf-grammar.js
+var require_sabnf_grammar = __commonJS({
+ "node_modules/apg-js/src/apg-api/sabnf-grammar.js"(exports2, module2) {
+ module2.exports = function grammar() {
+ this.grammarObject = "grammarObject";
+ this.rules = [];
+ this.rules[0] = { name: "File", lower: "file", index: 0, isBkr: false };
+ this.rules[1] = { name: "BlankLine", lower: "blankline", index: 1, isBkr: false };
+ this.rules[2] = { name: "Rule", lower: "rule", index: 2, isBkr: false };
+ this.rules[3] = { name: "RuleLookup", lower: "rulelookup", index: 3, isBkr: false };
+ this.rules[4] = { name: "RuleNameTest", lower: "rulenametest", index: 4, isBkr: false };
+ this.rules[5] = { name: "RuleName", lower: "rulename", index: 5, isBkr: false };
+ this.rules[6] = { name: "RuleNameError", lower: "rulenameerror", index: 6, isBkr: false };
+ this.rules[7] = { name: "DefinedAsTest", lower: "definedastest", index: 7, isBkr: false };
+ this.rules[8] = { name: "DefinedAsError", lower: "definedaserror", index: 8, isBkr: false };
+ this.rules[9] = { name: "DefinedAs", lower: "definedas", index: 9, isBkr: false };
+ this.rules[10] = { name: "Defined", lower: "defined", index: 10, isBkr: false };
+ this.rules[11] = { name: "IncAlt", lower: "incalt", index: 11, isBkr: false };
+ this.rules[12] = { name: "RuleError", lower: "ruleerror", index: 12, isBkr: false };
+ this.rules[13] = { name: "LineEndError", lower: "lineenderror", index: 13, isBkr: false };
+ this.rules[14] = { name: "Alternation", lower: "alternation", index: 14, isBkr: false };
+ this.rules[15] = { name: "Concatenation", lower: "concatenation", index: 15, isBkr: false };
+ this.rules[16] = { name: "Repetition", lower: "repetition", index: 16, isBkr: false };
+ this.rules[17] = { name: "Modifier", lower: "modifier", index: 17, isBkr: false };
+ this.rules[18] = { name: "Predicate", lower: "predicate", index: 18, isBkr: false };
+ this.rules[19] = { name: "BasicElement", lower: "basicelement", index: 19, isBkr: false };
+ this.rules[20] = { name: "BasicElementErr", lower: "basicelementerr", index: 20, isBkr: false };
+ this.rules[21] = { name: "Group", lower: "group", index: 21, isBkr: false };
+ this.rules[22] = { name: "GroupError", lower: "grouperror", index: 22, isBkr: false };
+ this.rules[23] = { name: "GroupOpen", lower: "groupopen", index: 23, isBkr: false };
+ this.rules[24] = { name: "GroupClose", lower: "groupclose", index: 24, isBkr: false };
+ this.rules[25] = { name: "Option", lower: "option", index: 25, isBkr: false };
+ this.rules[26] = { name: "OptionError", lower: "optionerror", index: 26, isBkr: false };
+ this.rules[27] = { name: "OptionOpen", lower: "optionopen", index: 27, isBkr: false };
+ this.rules[28] = { name: "OptionClose", lower: "optionclose", index: 28, isBkr: false };
+ this.rules[29] = { name: "RnmOp", lower: "rnmop", index: 29, isBkr: false };
+ this.rules[30] = { name: "BkrOp", lower: "bkrop", index: 30, isBkr: false };
+ this.rules[31] = { name: "bkrModifier", lower: "bkrmodifier", index: 31, isBkr: false };
+ this.rules[32] = { name: "cs", lower: "cs", index: 32, isBkr: false };
+ this.rules[33] = { name: "ci", lower: "ci", index: 33, isBkr: false };
+ this.rules[34] = { name: "um", lower: "um", index: 34, isBkr: false };
+ this.rules[35] = { name: "pm", lower: "pm", index: 35, isBkr: false };
+ this.rules[36] = { name: "bkr-name", lower: "bkr-name", index: 36, isBkr: false };
+ this.rules[37] = { name: "rname", lower: "rname", index: 37, isBkr: false };
+ this.rules[38] = { name: "uname", lower: "uname", index: 38, isBkr: false };
+ this.rules[39] = { name: "ename", lower: "ename", index: 39, isBkr: false };
+ this.rules[40] = { name: "UdtOp", lower: "udtop", index: 40, isBkr: false };
+ this.rules[41] = { name: "udt-non-empty", lower: "udt-non-empty", index: 41, isBkr: false };
+ this.rules[42] = { name: "udt-empty", lower: "udt-empty", index: 42, isBkr: false };
+ this.rules[43] = { name: "RepOp", lower: "repop", index: 43, isBkr: false };
+ this.rules[44] = { name: "AltOp", lower: "altop", index: 44, isBkr: false };
+ this.rules[45] = { name: "CatOp", lower: "catop", index: 45, isBkr: false };
+ this.rules[46] = { name: "StarOp", lower: "starop", index: 46, isBkr: false };
+ this.rules[47] = { name: "AndOp", lower: "andop", index: 47, isBkr: false };
+ this.rules[48] = { name: "NotOp", lower: "notop", index: 48, isBkr: false };
+ this.rules[49] = { name: "BkaOp", lower: "bkaop", index: 49, isBkr: false };
+ this.rules[50] = { name: "BknOp", lower: "bknop", index: 50, isBkr: false };
+ this.rules[51] = { name: "AbgOp", lower: "abgop", index: 51, isBkr: false };
+ this.rules[52] = { name: "AenOp", lower: "aenop", index: 52, isBkr: false };
+ this.rules[53] = { name: "TrgOp", lower: "trgop", index: 53, isBkr: false };
+ this.rules[54] = { name: "TbsOp", lower: "tbsop", index: 54, isBkr: false };
+ this.rules[55] = { name: "TlsOp", lower: "tlsop", index: 55, isBkr: false };
+ this.rules[56] = { name: "TlsCase", lower: "tlscase", index: 56, isBkr: false };
+ this.rules[57] = { name: "TlsOpen", lower: "tlsopen", index: 57, isBkr: false };
+ this.rules[58] = { name: "TlsClose", lower: "tlsclose", index: 58, isBkr: false };
+ this.rules[59] = { name: "TlsString", lower: "tlsstring", index: 59, isBkr: false };
+ this.rules[60] = { name: "StringTab", lower: "stringtab", index: 60, isBkr: false };
+ this.rules[61] = { name: "ClsOp", lower: "clsop", index: 61, isBkr: false };
+ this.rules[62] = { name: "ClsOpen", lower: "clsopen", index: 62, isBkr: false };
+ this.rules[63] = { name: "ClsClose", lower: "clsclose", index: 63, isBkr: false };
+ this.rules[64] = { name: "ClsString", lower: "clsstring", index: 64, isBkr: false };
+ this.rules[65] = { name: "ProsVal", lower: "prosval", index: 65, isBkr: false };
+ this.rules[66] = { name: "ProsValOpen", lower: "prosvalopen", index: 66, isBkr: false };
+ this.rules[67] = { name: "ProsValString", lower: "prosvalstring", index: 67, isBkr: false };
+ this.rules[68] = { name: "ProsValClose", lower: "prosvalclose", index: 68, isBkr: false };
+ this.rules[69] = { name: "rep-min", lower: "rep-min", index: 69, isBkr: false };
+ this.rules[70] = { name: "rep-min-max", lower: "rep-min-max", index: 70, isBkr: false };
+ this.rules[71] = { name: "rep-max", lower: "rep-max", index: 71, isBkr: false };
+ this.rules[72] = { name: "rep-num", lower: "rep-num", index: 72, isBkr: false };
+ this.rules[73] = { name: "dString", lower: "dstring", index: 73, isBkr: false };
+ this.rules[74] = { name: "xString", lower: "xstring", index: 74, isBkr: false };
+ this.rules[75] = { name: "bString", lower: "bstring", index: 75, isBkr: false };
+ this.rules[76] = { name: "Dec", lower: "dec", index: 76, isBkr: false };
+ this.rules[77] = { name: "Hex", lower: "hex", index: 77, isBkr: false };
+ this.rules[78] = { name: "Bin", lower: "bin", index: 78, isBkr: false };
+ this.rules[79] = { name: "dmin", lower: "dmin", index: 79, isBkr: false };
+ this.rules[80] = { name: "dmax", lower: "dmax", index: 80, isBkr: false };
+ this.rules[81] = { name: "bmin", lower: "bmin", index: 81, isBkr: false };
+ this.rules[82] = { name: "bmax", lower: "bmax", index: 82, isBkr: false };
+ this.rules[83] = { name: "xmin", lower: "xmin", index: 83, isBkr: false };
+ this.rules[84] = { name: "xmax", lower: "xmax", index: 84, isBkr: false };
+ this.rules[85] = { name: "dnum", lower: "dnum", index: 85, isBkr: false };
+ this.rules[86] = { name: "bnum", lower: "bnum", index: 86, isBkr: false };
+ this.rules[87] = { name: "xnum", lower: "xnum", index: 87, isBkr: false };
+ this.rules[88] = { name: "alphanum", lower: "alphanum", index: 88, isBkr: false };
+ this.rules[89] = { name: "owsp", lower: "owsp", index: 89, isBkr: false };
+ this.rules[90] = { name: "wsp", lower: "wsp", index: 90, isBkr: false };
+ this.rules[91] = { name: "space", lower: "space", index: 91, isBkr: false };
+ this.rules[92] = { name: "comment", lower: "comment", index: 92, isBkr: false };
+ this.rules[93] = { name: "LineEnd", lower: "lineend", index: 93, isBkr: false };
+ this.rules[94] = { name: "LineContinue", lower: "linecontinue", index: 94, isBkr: false };
+ this.udts = [];
+ this.rules[0].opcodes = [];
+ this.rules[0].opcodes[0] = { type: 3, min: 0, max: Infinity };
+ this.rules[0].opcodes[1] = { type: 1, children: [2, 3, 4] };
+ this.rules[0].opcodes[2] = { type: 4, index: 1 };
+ this.rules[0].opcodes[3] = { type: 4, index: 2 };
+ this.rules[0].opcodes[4] = { type: 4, index: 12 };
+ this.rules[1].opcodes = [];
+ this.rules[1].opcodes[0] = { type: 2, children: [1, 5, 7] };
+ this.rules[1].opcodes[1] = { type: 3, min: 0, max: Infinity };
+ this.rules[1].opcodes[2] = { type: 1, children: [3, 4] };
+ this.rules[1].opcodes[3] = { type: 6, string: [32] };
+ this.rules[1].opcodes[4] = { type: 6, string: [9] };
+ this.rules[1].opcodes[5] = { type: 3, min: 0, max: 1 };
+ this.rules[1].opcodes[6] = { type: 4, index: 92 };
+ this.rules[1].opcodes[7] = { type: 4, index: 93 };
+ this.rules[2].opcodes = [];
+ this.rules[2].opcodes[0] = { type: 2, children: [1, 2, 3, 4] };
+ this.rules[2].opcodes[1] = { type: 4, index: 3 };
+ this.rules[2].opcodes[2] = { type: 4, index: 89 };
+ this.rules[2].opcodes[3] = { type: 4, index: 14 };
+ this.rules[2].opcodes[4] = { type: 1, children: [5, 8] };
+ this.rules[2].opcodes[5] = { type: 2, children: [6, 7] };
+ this.rules[2].opcodes[6] = { type: 4, index: 89 };
+ this.rules[2].opcodes[7] = { type: 4, index: 93 };
+ this.rules[2].opcodes[8] = { type: 2, children: [9, 10] };
+ this.rules[2].opcodes[9] = { type: 4, index: 13 };
+ this.rules[2].opcodes[10] = { type: 4, index: 93 };
+ this.rules[3].opcodes = [];
+ this.rules[3].opcodes[0] = { type: 2, children: [1, 2, 3] };
+ this.rules[3].opcodes[1] = { type: 4, index: 4 };
+ this.rules[3].opcodes[2] = { type: 4, index: 89 };
+ this.rules[3].opcodes[3] = { type: 4, index: 7 };
+ this.rules[4].opcodes = [];
+ this.rules[4].opcodes[0] = { type: 1, children: [1, 2] };
+ this.rules[4].opcodes[1] = { type: 4, index: 5 };
+ this.rules[4].opcodes[2] = { type: 4, index: 6 };
+ this.rules[5].opcodes = [];
+ this.rules[5].opcodes[0] = { type: 4, index: 88 };
+ this.rules[6].opcodes = [];
+ this.rules[6].opcodes[0] = { type: 3, min: 1, max: Infinity };
+ this.rules[6].opcodes[1] = { type: 1, children: [2, 3] };
+ this.rules[6].opcodes[2] = { type: 5, min: 33, max: 60 };
+ this.rules[6].opcodes[3] = { type: 5, min: 62, max: 126 };
+ this.rules[7].opcodes = [];
+ this.rules[7].opcodes[0] = { type: 1, children: [1, 2] };
+ this.rules[7].opcodes[1] = { type: 4, index: 9 };
+ this.rules[7].opcodes[2] = { type: 4, index: 8 };
+ this.rules[8].opcodes = [];
+ this.rules[8].opcodes[0] = { type: 3, min: 1, max: 2 };
+ this.rules[8].opcodes[1] = { type: 5, min: 33, max: 126 };
+ this.rules[9].opcodes = [];
+ this.rules[9].opcodes[0] = { type: 1, children: [1, 2] };
+ this.rules[9].opcodes[1] = { type: 4, index: 11 };
+ this.rules[9].opcodes[2] = { type: 4, index: 10 };
+ this.rules[10].opcodes = [];
+ this.rules[10].opcodes[0] = { type: 6, string: [61] };
+ this.rules[11].opcodes = [];
+ this.rules[11].opcodes[0] = { type: 6, string: [61, 47] };
+ this.rules[12].opcodes = [];
+ this.rules[12].opcodes[0] = { type: 2, children: [1, 6] };
+ this.rules[12].opcodes[1] = { type: 3, min: 1, max: Infinity };
+ this.rules[12].opcodes[2] = { type: 1, children: [3, 4, 5] };
+ this.rules[12].opcodes[3] = { type: 5, min: 32, max: 126 };
+ this.rules[12].opcodes[4] = { type: 6, string: [9] };
+ this.rules[12].opcodes[5] = { type: 4, index: 94 };
+ this.rules[12].opcodes[6] = { type: 4, index: 93 };
+ this.rules[13].opcodes = [];
+ this.rules[13].opcodes[0] = { type: 3, min: 1, max: Infinity };
+ this.rules[13].opcodes[1] = { type: 1, children: [2, 3, 4] };
+ this.rules[13].opcodes[2] = { type: 5, min: 32, max: 126 };
+ this.rules[13].opcodes[3] = { type: 6, string: [9] };
+ this.rules[13].opcodes[4] = { type: 4, index: 94 };
+ this.rules[14].opcodes = [];
+ this.rules[14].opcodes[0] = { type: 2, children: [1, 2] };
+ this.rules[14].opcodes[1] = { type: 4, index: 15 };
+ this.rules[14].opcodes[2] = { type: 3, min: 0, max: Infinity };
+ this.rules[14].opcodes[3] = { type: 2, children: [4, 5, 6] };
+ this.rules[14].opcodes[4] = { type: 4, index: 89 };
+ this.rules[14].opcodes[5] = { type: 4, index: 44 };
+ this.rules[14].opcodes[6] = { type: 4, index: 15 };
+ this.rules[15].opcodes = [];
+ this.rules[15].opcodes[0] = { type: 2, children: [1, 2] };
+ this.rules[15].opcodes[1] = { type: 4, index: 16 };
+ this.rules[15].opcodes[2] = { type: 3, min: 0, max: Infinity };
+ this.rules[15].opcodes[3] = { type: 2, children: [4, 5] };
+ this.rules[15].opcodes[4] = { type: 4, index: 45 };
+ this.rules[15].opcodes[5] = { type: 4, index: 16 };
+ this.rules[16].opcodes = [];
+ this.rules[16].opcodes[0] = { type: 2, children: [1, 3] };
+ this.rules[16].opcodes[1] = { type: 3, min: 0, max: 1 };
+ this.rules[16].opcodes[2] = { type: 4, index: 17 };
+ this.rules[16].opcodes[3] = { type: 1, children: [4, 5, 6, 7] };
+ this.rules[16].opcodes[4] = { type: 4, index: 21 };
+ this.rules[16].opcodes[5] = { type: 4, index: 25 };
+ this.rules[16].opcodes[6] = { type: 4, index: 19 };
+ this.rules[16].opcodes[7] = { type: 4, index: 20 };
+ this.rules[17].opcodes = [];
+ this.rules[17].opcodes[0] = { type: 1, children: [1, 5] };
+ this.rules[17].opcodes[1] = { type: 2, children: [2, 3] };
+ this.rules[17].opcodes[2] = { type: 4, index: 18 };
+ this.rules[17].opcodes[3] = { type: 3, min: 0, max: 1 };
+ this.rules[17].opcodes[4] = { type: 4, index: 43 };
+ this.rules[17].opcodes[5] = { type: 4, index: 43 };
+ this.rules[18].opcodes = [];
+ this.rules[18].opcodes[0] = { type: 1, children: [1, 2, 3, 4] };
+ this.rules[18].opcodes[1] = { type: 4, index: 49 };
+ this.rules[18].opcodes[2] = { type: 4, index: 50 };
+ this.rules[18].opcodes[3] = { type: 4, index: 47 };
+ this.rules[18].opcodes[4] = { type: 4, index: 48 };
+ this.rules[19].opcodes = [];
+ this.rules[19].opcodes[0] = { type: 1, children: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] };
+ this.rules[19].opcodes[1] = { type: 4, index: 40 };
+ this.rules[19].opcodes[2] = { type: 4, index: 29 };
+ this.rules[19].opcodes[3] = { type: 4, index: 53 };
+ this.rules[19].opcodes[4] = { type: 4, index: 54 };
+ this.rules[19].opcodes[5] = { type: 4, index: 55 };
+ this.rules[19].opcodes[6] = { type: 4, index: 61 };
+ this.rules[19].opcodes[7] = { type: 4, index: 30 };
+ this.rules[19].opcodes[8] = { type: 4, index: 51 };
+ this.rules[19].opcodes[9] = { type: 4, index: 52 };
+ this.rules[19].opcodes[10] = { type: 4, index: 65 };
+ this.rules[20].opcodes = [];
+ this.rules[20].opcodes[0] = { type: 3, min: 1, max: Infinity };
+ this.rules[20].opcodes[1] = { type: 1, children: [2, 3, 4, 5] };
+ this.rules[20].opcodes[2] = { type: 5, min: 33, max: 40 };
+ this.rules[20].opcodes[3] = { type: 5, min: 42, max: 46 };
+ this.rules[20].opcodes[4] = { type: 5, min: 48, max: 92 };
+ this.rules[20].opcodes[5] = { type: 5, min: 94, max: 126 };
+ this.rules[21].opcodes = [];
+ this.rules[21].opcodes[0] = { type: 2, children: [1, 2, 3] };
+ this.rules[21].opcodes[1] = { type: 4, index: 23 };
+ this.rules[21].opcodes[2] = { type: 4, index: 14 };
+ this.rules[21].opcodes[3] = { type: 1, children: [4, 5] };
+ this.rules[21].opcodes[4] = { type: 4, index: 24 };
+ this.rules[21].opcodes[5] = { type: 4, index: 22 };
+ this.rules[22].opcodes = [];
+ this.rules[22].opcodes[0] = { type: 3, min: 1, max: Infinity };
+ this.rules[22].opcodes[1] = { type: 1, children: [2, 3, 4, 5] };
+ this.rules[22].opcodes[2] = { type: 5, min: 33, max: 40 };
+ this.rules[22].opcodes[3] = { type: 5, min: 42, max: 46 };
+ this.rules[22].opcodes[4] = { type: 5, min: 48, max: 92 };
+ this.rules[22].opcodes[5] = { type: 5, min: 94, max: 126 };
+ this.rules[23].opcodes = [];
+ this.rules[23].opcodes[0] = { type: 2, children: [1, 2] };
+ this.rules[23].opcodes[1] = { type: 6, string: [40] };
+ this.rules[23].opcodes[2] = { type: 4, index: 89 };
+ this.rules[24].opcodes = [];
+ this.rules[24].opcodes[0] = { type: 2, children: [1, 2] };
+ this.rules[24].opcodes[1] = { type: 4, index: 89 };
+ this.rules[24].opcodes[2] = { type: 6, string: [41] };
+ this.rules[25].opcodes = [];
+ this.rules[25].opcodes[0] = { type: 2, children: [1, 2, 3] };
+ this.rules[25].opcodes[1] = { type: 4, index: 27 };
+ this.rules[25].opcodes[2] = { type: 4, index: 14 };
+ this.rules[25].opcodes[3] = { type: 1, children: [4, 5] };
+ this.rules[25].opcodes[4] = { type: 4, index: 28 };
+ this.rules[25].opcodes[5] = { type: 4, index: 26 };
+ this.rules[26].opcodes = [];
+ this.rules[26].opcodes[0] = { type: 3, min: 1, max: Infinity };
+ this.rules[26].opcodes[1] = { type: 1, children: [2, 3, 4, 5] };
+ this.rules[26].opcodes[2] = { type: 5, min: 33, max: 40 };
+ this.rules[26].opcodes[3] = { type: 5, min: 42, max: 46 };
+ this.rules[26].opcodes[4] = { type: 5, min: 48, max: 92 };
+ this.rules[26].opcodes[5] = { type: 5, min: 94, max: 126 };
+ this.rules[27].opcodes = [];
+ this.rules[27].opcodes[0] = { type: 2, children: [1, 2] };
+ this.rules[27].opcodes[1] = { type: 6, string: [91] };
+ this.rules[27].opcodes[2] = { type: 4, index: 89 };
+ this.rules[28].opcodes = [];
+ this.rules[28].opcodes[0] = { type: 2, children: [1, 2] };
+ this.rules[28].opcodes[1] = { type: 4, index: 89 };
+ this.rules[28].opcodes[2] = { type: 6, string: [93] };
+ this.rules[29].opcodes = [];
+ this.rules[29].opcodes[0] = { type: 4, index: 88 };
+ this.rules[30].opcodes = [];
+ this.rules[30].opcodes[0] = { type: 2, children: [1, 2, 4] };
+ this.rules[30].opcodes[1] = { type: 6, string: [92] };
+ this.rules[30].opcodes[2] = { type: 3, min: 0, max: 1 };
+ this.rules[30].opcodes[3] = { type: 4, index: 31 };
+ this.rules[30].opcodes[4] = { type: 4, index: 36 };
+ this.rules[31].opcodes = [];
+ this.rules[31].opcodes[0] = { type: 1, children: [1, 7, 13, 19] };
+ this.rules[31].opcodes[1] = { type: 2, children: [2, 3] };
+ this.rules[31].opcodes[2] = { type: 4, index: 32 };
+ this.rules[31].opcodes[3] = { type: 3, min: 0, max: 1 };
+ this.rules[31].opcodes[4] = { type: 1, children: [5, 6] };
+ this.rules[31].opcodes[5] = { type: 4, index: 34 };
+ this.rules[31].opcodes[6] = { type: 4, index: 35 };
+ this.rules[31].opcodes[7] = { type: 2, children: [8, 9] };
+ this.rules[31].opcodes[8] = { type: 4, index: 33 };
+ this.rules[31].opcodes[9] = { type: 3, min: 0, max: 1 };
+ this.rules[31].opcodes[10] = { type: 1, children: [11, 12] };
+ this.rules[31].opcodes[11] = { type: 4, index: 34 };
+ this.rules[31].opcodes[12] = { type: 4, index: 35 };
+ this.rules[31].opcodes[13] = { type: 2, children: [14, 15] };
+ this.rules[31].opcodes[14] = { type: 4, index: 34 };
+ this.rules[31].opcodes[15] = { type: 3, min: 0, max: 1 };
+ this.rules[31].opcodes[16] = { type: 1, children: [17, 18] };
+ this.rules[31].opcodes[17] = { type: 4, index: 32 };
+ this.rules[31].opcodes[18] = { type: 4, index: 33 };
+ this.rules[31].opcodes[19] = { type: 2, children: [20, 21] };
+ this.rules[31].opcodes[20] = { type: 4, index: 35 };
+ this.rules[31].opcodes[21] = { type: 3, min: 0, max: 1 };
+ this.rules[31].opcodes[22] = { type: 1, children: [23, 24] };
+ this.rules[31].opcodes[23] = { type: 4, index: 32 };
+ this.rules[31].opcodes[24] = { type: 4, index: 33 };
+ this.rules[32].opcodes = [];
+ this.rules[32].opcodes[0] = { type: 6, string: [37, 115] };
+ this.rules[33].opcodes = [];
+ this.rules[33].opcodes[0] = { type: 6, string: [37, 105] };
+ this.rules[34].opcodes = [];
+ this.rules[34].opcodes[0] = { type: 6, string: [37, 117] };
+ this.rules[35].opcodes = [];
+ this.rules[35].opcodes[0] = { type: 6, string: [37, 112] };
+ this.rules[36].opcodes = [];
+ this.rules[36].opcodes[0] = { type: 1, children: [1, 2, 3] };
+ this.rules[36].opcodes[1] = { type: 4, index: 38 };
+ this.rules[36].opcodes[2] = { type: 4, index: 39 };
+ this.rules[36].opcodes[3] = { type: 4, index: 37 };
+ this.rules[37].opcodes = [];
+ this.rules[37].opcodes[0] = { type: 4, index: 88 };
+ this.rules[38].opcodes = [];
+ this.rules[38].opcodes[0] = { type: 2, children: [1, 2] };
+ this.rules[38].opcodes[1] = { type: 6, string: [117, 95] };
+ this.rules[38].opcodes[2] = { type: 4, index: 88 };
+ this.rules[39].opcodes = [];
+ this.rules[39].opcodes[0] = { type: 2, children: [1, 2] };
+ this.rules[39].opcodes[1] = { type: 6, string: [101, 95] };
+ this.rules[39].opcodes[2] = { type: 4, index: 88 };
+ this.rules[40].opcodes = [];
+ this.rules[40].opcodes[0] = { type: 1, children: [1, 2] };
+ this.rules[40].opcodes[1] = { type: 4, index: 42 };
+ this.rules[40].opcodes[2] = { type: 4, index: 41 };
+ this.rules[41].opcodes = [];
+ this.rules[41].opcodes[0] = { type: 2, children: [1, 2] };
+ this.rules[41].opcodes[1] = { type: 6, string: [117, 95] };
+ this.rules[41].opcodes[2] = { type: 4, index: 88 };
+ this.rules[42].opcodes = [];
+ this.rules[42].opcodes[0] = { type: 2, children: [1, 2] };
+ this.rules[42].opcodes[1] = { type: 6, string: [101, 95] };
+ this.rules[42].opcodes[2] = { type: 4, index: 88 };
+ this.rules[43].opcodes = [];
+ this.rules[43].opcodes[0] = { type: 1, children: [1, 5, 8, 11, 12] };
+ this.rules[43].opcodes[1] = { type: 2, children: [2, 3, 4] };
+ this.rules[43].opcodes[2] = { type: 4, index: 69 };
+ this.rules[43].opcodes[3] = { type: 4, index: 46 };
+ this.rules[43].opcodes[4] = { type: 4, index: 71 };
+ this.rules[43].opcodes[5] = { type: 2, children: [6, 7] };
+ this.rules[43].opcodes[6] = { type: 4, index: 69 };
+ this.rules[43].opcodes[7] = { type: 4, index: 46 };
+ this.rules[43].opcodes[8] = { type: 2, children: [9, 10] };
+ this.rules[43].opcodes[9] = { type: 4, index: 46 };
+ this.rules[43].opcodes[10] = { type: 4, index: 71 };
+ this.rules[43].opcodes[11] = { type: 4, index: 46 };
+ this.rules[43].opcodes[12] = { type: 4, index: 70 };
+ this.rules[44].opcodes = [];
+ this.rules[44].opcodes[0] = { type: 2, children: [1, 2] };
+ this.rules[44].opcodes[1] = { type: 6, string: [47] };
+ this.rules[44].opcodes[2] = { type: 4, index: 89 };
+ this.rules[45].opcodes = [];
+ this.rules[45].opcodes[0] = { type: 4, index: 90 };
+ this.rules[46].opcodes = [];
+ this.rules[46].opcodes[0] = { type: 6, string: [42] };
+ this.rules[47].opcodes = [];
+ this.rules[47].opcodes[0] = { type: 6, string: [38] };
+ this.rules[48].opcodes = [];
+ this.rules[48].opcodes[0] = { type: 6, string: [33] };
+ this.rules[49].opcodes = [];
+ this.rules[49].opcodes[0] = { type: 6, string: [38, 38] };
+ this.rules[50].opcodes = [];
+ this.rules[50].opcodes[0] = { type: 6, string: [33, 33] };
+ this.rules[51].opcodes = [];
+ this.rules[51].opcodes[0] = { type: 6, string: [37, 94] };
+ this.rules[52].opcodes = [];
+ this.rules[52].opcodes[0] = { type: 6, string: [37, 36] };
+ this.rules[53].opcodes = [];
+ this.rules[53].opcodes[0] = { type: 2, children: [1, 2] };
+ this.rules[53].opcodes[1] = { type: 6, string: [37] };
+ this.rules[53].opcodes[2] = { type: 1, children: [3, 8, 13] };
+ this.rules[53].opcodes[3] = { type: 2, children: [4, 5, 6, 7] };
+ this.rules[53].opcodes[4] = { type: 4, index: 76 };
+ this.rules[53].opcodes[5] = { type: 4, index: 79 };
+ this.rules[53].opcodes[6] = { type: 6, string: [45] };
+ this.rules[53].opcodes[7] = { type: 4, index: 80 };
+ this.rules[53].opcodes[8] = { type: 2, children: [9, 10, 11, 12] };
+ this.rules[53].opcodes[9] = { type: 4, index: 77 };
+ this.rules[53].opcodes[10] = { type: 4, index: 83 };
+ this.rules[53].opcodes[11] = { type: 6, string: [45] };
+ this.rules[53].opcodes[12] = { type: 4, index: 84 };
+ this.rules[53].opcodes[13] = { type: 2, children: [14, 15, 16, 17] };
+ this.rules[53].opcodes[14] = { type: 4, index: 78 };
+ this.rules[53].opcodes[15] = { type: 4, index: 81 };
+ this.rules[53].opcodes[16] = { type: 6, string: [45] };
+ this.rules[53].opcodes[17] = { type: 4, index: 82 };
+ this.rules[54].opcodes = [];
+ this.rules[54].opcodes[0] = { type: 2, children: [1, 2] };
+ this.rules[54].opcodes[1] = { type: 6, string: [37] };
+ this.rules[54].opcodes[2] = { type: 1, children: [3, 10, 17] };
+ this.rules[54].opcodes[3] = { type: 2, children: [4, 5, 6] };
+ this.rules[54].opcodes[4] = { type: 4, index: 76 };
+ this.rules[54].opcodes[5] = { type: 4, index: 73 };
+ this.rules[54].opcodes[6] = { type: 3, min: 0, max: Infinity };
+ this.rules[54].opcodes[7] = { type: 2, children: [8, 9] };
+ this.rules[54].opcodes[8] = { type: 6, string: [46] };
+ this.rules[54].opcodes[9] = { type: 4, index: 73 };
+ this.rules[54].opcodes[10] = { type: 2, children: [11, 12, 13] };
+ this.rules[54].opcodes[11] = { type: 4, index: 77 };
+ this.rules[54].opcodes[12] = { type: 4, index: 74 };
+ this.rules[54].opcodes[13] = { type: 3, min: 0, max: Infinity };
+ this.rules[54].opcodes[14] = { type: 2, children: [15, 16] };
+ this.rules[54].opcodes[15] = { type: 6, string: [46] };
+ this.rules[54].opcodes[16] = { type: 4, index: 74 };
+ this.rules[54].opcodes[17] = { type: 2, children: [18, 19, 20] };
+ this.rules[54].opcodes[18] = { type: 4, index: 78 };
+ this.rules[54].opcodes[19] = { type: 4, index: 75 };
+ this.rules[54].opcodes[20] = { type: 3, min: 0, max: Infinity };
+ this.rules[54].opcodes[21] = { type: 2, children: [22, 23] };
+ this.rules[54].opcodes[22] = { type: 6, string: [46] };
+ this.rules[54].opcodes[23] = { type: 4, index: 75 };
+ this.rules[55].opcodes = [];
+ this.rules[55].opcodes[0] = { type: 2, children: [1, 2, 3, 4] };
+ this.rules[55].opcodes[1] = { type: 4, index: 56 };
+ this.rules[55].opcodes[2] = { type: 4, index: 57 };
+ this.rules[55].opcodes[3] = { type: 4, index: 59 };
+ this.rules[55].opcodes[4] = { type: 4, index: 58 };
+ this.rules[56].opcodes = [];
+ this.rules[56].opcodes[0] = { type: 3, min: 0, max: 1 };
+ this.rules[56].opcodes[1] = { type: 1, children: [2, 3] };
+ this.rules[56].opcodes[2] = { type: 7, string: [37, 105] };
+ this.rules[56].opcodes[3] = { type: 7, string: [37, 115] };
+ this.rules[57].opcodes = [];
+ this.rules[57].opcodes[0] = { type: 6, string: [34] };
+ this.rules[58].opcodes = [];
+ this.rules[58].opcodes[0] = { type: 6, string: [34] };
+ this.rules[59].opcodes = [];
+ this.rules[59].opcodes[0] = { type: 3, min: 0, max: Infinity };
+ this.rules[59].opcodes[1] = { type: 1, children: [2, 3, 4] };
+ this.rules[59].opcodes[2] = { type: 5, min: 32, max: 33 };
+ this.rules[59].opcodes[3] = { type: 5, min: 35, max: 126 };
+ this.rules[59].opcodes[4] = { type: 4, index: 60 };
+ this.rules[60].opcodes = [];
+ this.rules[60].opcodes[0] = { type: 6, string: [9] };
+ this.rules[61].opcodes = [];
+ this.rules[61].opcodes[0] = { type: 2, children: [1, 2, 3] };
+ this.rules[61].opcodes[1] = { type: 4, index: 62 };
+ this.rules[61].opcodes[2] = { type: 4, index: 64 };
+ this.rules[61].opcodes[3] = { type: 4, index: 63 };
+ this.rules[62].opcodes = [];
+ this.rules[62].opcodes[0] = { type: 6, string: [39] };
+ this.rules[63].opcodes = [];
+ this.rules[63].opcodes[0] = { type: 6, string: [39] };
+ this.rules[64].opcodes = [];
+ this.rules[64].opcodes[0] = { type: 3, min: 0, max: Infinity };
+ this.rules[64].opcodes[1] = { type: 1, children: [2, 3, 4] };
+ this.rules[64].opcodes[2] = { type: 5, min: 32, max: 38 };
+ this.rules[64].opcodes[3] = { type: 5, min: 40, max: 126 };
+ this.rules[64].opcodes[4] = { type: 4, index: 60 };
+ this.rules[65].opcodes = [];
+ this.rules[65].opcodes[0] = { type: 2, children: [1, 2, 3] };
+ this.rules[65].opcodes[1] = { type: 4, index: 66 };
+ this.rules[65].opcodes[2] = { type: 4, index: 67 };
+ this.rules[65].opcodes[3] = { type: 4, index: 68 };
+ this.rules[66].opcodes = [];
+ this.rules[66].opcodes[0] = { type: 6, string: [60] };
+ this.rules[67].opcodes = [];
+ this.rules[67].opcodes[0] = { type: 3, min: 0, max: Infinity };
+ this.rules[67].opcodes[1] = { type: 1, children: [2, 3, 4] };
+ this.rules[67].opcodes[2] = { type: 5, min: 32, max: 61 };
+ this.rules[67].opcodes[3] = { type: 5, min: 63, max: 126 };
+ this.rules[67].opcodes[4] = { type: 4, index: 60 };
+ this.rules[68].opcodes = [];
+ this.rules[68].opcodes[0] = { type: 6, string: [62] };
+ this.rules[69].opcodes = [];
+ this.rules[69].opcodes[0] = { type: 4, index: 72 };
+ this.rules[70].opcodes = [];
+ this.rules[70].opcodes[0] = { type: 4, index: 72 };
+ this.rules[71].opcodes = [];
+ this.rules[71].opcodes[0] = { type: 4, index: 72 };
+ this.rules[72].opcodes = [];
+ this.rules[72].opcodes[0] = { type: 3, min: 1, max: Infinity };
+ this.rules[72].opcodes[1] = { type: 5, min: 48, max: 57 };
+ this.rules[73].opcodes = [];
+ this.rules[73].opcodes[0] = { type: 4, index: 85 };
+ this.rules[74].opcodes = [];
+ this.rules[74].opcodes[0] = { type: 4, index: 87 };
+ this.rules[75].opcodes = [];
+ this.rules[75].opcodes[0] = { type: 4, index: 86 };
+ this.rules[76].opcodes = [];
+ this.rules[76].opcodes[0] = { type: 1, children: [1, 2] };
+ this.rules[76].opcodes[1] = { type: 6, string: [68] };
+ this.rules[76].opcodes[2] = { type: 6, string: [100] };
+ this.rules[77].opcodes = [];
+ this.rules[77].opcodes[0] = { type: 1, children: [1, 2] };
+ this.rules[77].opcodes[1] = { type: 6, string: [88] };
+ this.rules[77].opcodes[2] = { type: 6, string: [120] };
+ this.rules[78].opcodes = [];
+ this.rules[78].opcodes[0] = { type: 1, children: [1, 2] };
+ this.rules[78].opcodes[1] = { type: 6, string: [66] };
+ this.rules[78].opcodes[2] = { type: 6, string: [98] };
+ this.rules[79].opcodes = [];
+ this.rules[79].opcodes[0] = { type: 4, index: 85 };
+ this.rules[80].opcodes = [];
+ this.rules[80].opcodes[0] = { type: 4, index: 85 };
+ this.rules[81].opcodes = [];
+ this.rules[81].opcodes[0] = { type: 4, index: 86 };
+ this.rules[82].opcodes = [];
+ this.rules[82].opcodes[0] = { type: 4, index: 86 };
+ this.rules[83].opcodes = [];
+ this.rules[83].opcodes[0] = { type: 4, index: 87 };
+ this.rules[84].opcodes = [];
+ this.rules[84].opcodes[0] = { type: 4, index: 87 };
+ this.rules[85].opcodes = [];
+ this.rules[85].opcodes[0] = { type: 3, min: 1, max: Infinity };
+ this.rules[85].opcodes[1] = { type: 5, min: 48, max: 57 };
+ this.rules[86].opcodes = [];
+ this.rules[86].opcodes[0] = { type: 3, min: 1, max: Infinity };
+ this.rules[86].opcodes[1] = { type: 5, min: 48, max: 49 };
+ this.rules[87].opcodes = [];
+ this.rules[87].opcodes[0] = { type: 3, min: 1, max: Infinity };
+ this.rules[87].opcodes[1] = { type: 1, children: [2, 3, 4] };
+ this.rules[87].opcodes[2] = { type: 5, min: 48, max: 57 };
+ this.rules[87].opcodes[3] = { type: 5, min: 65, max: 70 };
+ this.rules[87].opcodes[4] = { type: 5, min: 97, max: 102 };
+ this.rules[88].opcodes = [];
+ this.rules[88].opcodes[0] = { type: 2, children: [1, 4] };
+ this.rules[88].opcodes[1] = { type: 1, children: [2, 3] };
+ this.rules[88].opcodes[2] = { type: 5, min: 97, max: 122 };
+ this.rules[88].opcodes[3] = { type: 5, min: 65, max: 90 };
+ this.rules[88].opcodes[4] = { type: 3, min: 0, max: Infinity };
+ this.rules[88].opcodes[5] = { type: 1, children: [6, 7, 8, 9] };
+ this.rules[88].opcodes[6] = { type: 5, min: 97, max: 122 };
+ this.rules[88].opcodes[7] = { type: 5, min: 65, max: 90 };
+ this.rules[88].opcodes[8] = { type: 5, min: 48, max: 57 };
+ this.rules[88].opcodes[9] = { type: 6, string: [45] };
+ this.rules[89].opcodes = [];
+ this.rules[89].opcodes[0] = { type: 3, min: 0, max: Infinity };
+ this.rules[89].opcodes[1] = { type: 4, index: 91 };
+ this.rules[90].opcodes = [];
+ this.rules[90].opcodes[0] = { type: 3, min: 1, max: Infinity };
+ this.rules[90].opcodes[1] = { type: 4, index: 91 };
+ this.rules[91].opcodes = [];
+ this.rules[91].opcodes[0] = { type: 1, children: [1, 2, 3, 4] };
+ this.rules[91].opcodes[1] = { type: 6, string: [32] };
+ this.rules[91].opcodes[2] = { type: 6, string: [9] };
+ this.rules[91].opcodes[3] = { type: 4, index: 92 };
+ this.rules[91].opcodes[4] = { type: 4, index: 94 };
+ this.rules[92].opcodes = [];
+ this.rules[92].opcodes[0] = { type: 2, children: [1, 2] };
+ this.rules[92].opcodes[1] = { type: 6, string: [59] };
+ this.rules[92].opcodes[2] = { type: 3, min: 0, max: Infinity };
+ this.rules[92].opcodes[3] = { type: 1, children: [4, 5] };
+ this.rules[92].opcodes[4] = { type: 5, min: 32, max: 126 };
+ this.rules[92].opcodes[5] = { type: 6, string: [9] };
+ this.rules[93].opcodes = [];
+ this.rules[93].opcodes[0] = { type: 1, children: [1, 2, 3] };
+ this.rules[93].opcodes[1] = { type: 6, string: [13, 10] };
+ this.rules[93].opcodes[2] = { type: 6, string: [10] };
+ this.rules[93].opcodes[3] = { type: 6, string: [13] };
+ this.rules[94].opcodes = [];
+ this.rules[94].opcodes[0] = { type: 2, children: [1, 5] };
+ this.rules[94].opcodes[1] = { type: 1, children: [2, 3, 4] };
+ this.rules[94].opcodes[2] = { type: 6, string: [13, 10] };
+ this.rules[94].opcodes[3] = { type: 6, string: [10] };
+ this.rules[94].opcodes[4] = { type: 6, string: [13] };
+ this.rules[94].opcodes[5] = { type: 1, children: [6, 7] };
+ this.rules[94].opcodes[6] = { type: 6, string: [32] };
+ this.rules[94].opcodes[7] = { type: 6, string: [9] };
+ this.toString = function toString2() {
+ let str = "";
+ str += ";\n";
+ str += "; ABNF for JavaScript APG 2.0 SABNF\n";
+ str += "; RFC 5234 with some restrictions and additions.\n";
+ str += "; Updated 11/24/2015 for RFC 7405 case-sensitive literal string notation\n";
+ str += '; - accepts %s"string" as a case-sensitive string\n';
+ str += '; - accepts %i"string" as a case-insensitive string\n';
+ str += '; - accepts "string" as a case-insensitive string\n';
+ str += ";\n";
+ str += "; Some restrictions:\n";
+ str += "; 1. Rules must begin at first character of each line.\n";
+ str += "; Indentations on first rule and rules thereafter are not allowed.\n";
+ str += "; 2. Relaxed line endings. CRLF, LF or CR are accepted as valid line ending.\n";
+ str += "; 3. Prose values, i.e. , are accepted as valid grammar syntax.\n";
+ str += "; However, a working parser cannot be generated from them.\n";
+ str += ";\n";
+ str += "; Super set (SABNF) additions:\n";
+ str += "; 1. Look-ahead (syntactic predicate) operators are accepted as element prefixes.\n";
+ str += "; & is the positive look-ahead operator, succeeds and backtracks if the look-ahead phrase is found\n";
+ str += "; ! is the negative look-ahead operator, succeeds and backtracks if the look-ahead phrase is NOT found\n";
+ str += "; e.g. &%d13 or &rule or !(A / B)\n";
+ str += "; 2. User-Defined Terminals (UDT) of the form, u_name and e_name are accepted.\n";
+ str += "; 'name' is alpha followed by alpha/num/hyphen just like a rule name.\n";
+ str += "; u_name may be used as an element but no rule definition is given.\n";
+ str += "; e.g. rule = A / u_myUdt\n";
+ str += '; A = "a"\n';
+ str += "; would be a valid grammar.\n";
+ str += "; 3. Case-sensitive, single-quoted strings are accepted.\n";
+ str += "; e.g. 'abc' would be equivalent to %d97.98.99\n";
+ str += '; (kept for backward compatibility, but superseded by %s"abc") \n';
+ str += "; New 12/26/2015\n";
+ str += "; 4. Look-behind operators are accepted as element prefixes.\n";
+ str += "; && is the positive look-behind operator, succeeds and backtracks if the look-behind phrase is found\n";
+ str += "; !! is the negative look-behind operator, succeeds and backtracks if the look-behind phrase is NOT found\n";
+ str += "; e.g. &&%d13 or &&rule or !!(A / B)\n";
+ str += "; 5. Back reference operators, i.e. \\rulename, are accepted.\n";
+ str += "; A back reference operator acts like a TLS or TBS terminal except that the phrase it attempts\n";
+ str += "; to match is a phrase previously matched by the rule 'rulename'.\n";
+ str += "; There are two modes of previous phrase matching - the parent-frame mode and the universal mode.\n";
+ str += "; In universal mode, \\rulename matches the last match to 'rulename' regardless of where it was found.\n";
+ str += "; In parent-frame mode, \\rulename matches only the last match found on the parent's frame or parse tree level.\n";
+ str += "; Back reference modifiers can be used to specify case and mode.\n";
+ str += "; \\A defaults to case-insensitive and universal mode, e.g. \\A === \\%i%uA\n";
+ str += "; Modifiers %i and %s determine case-insensitive and case-sensitive mode, respectively.\n";
+ str += "; Modifiers %u and %p determine universal mode and parent frame mode, respectively.\n";
+ str += "; Case and mode modifiers can appear in any order, e.g. \\%s%pA === \\%p%sA. \n";
+ str += "; 7. String begin anchor, ABG(%^) matches the beginning of the input string location.\n";
+ str += "; Returns EMPTY or NOMATCH. Never consumes any characters.\n";
+ str += "; 8. String end anchor, AEN(%$) matches the end of the input string location.\n";
+ str += "; Returns EMPTY or NOMATCH. Never consumes any characters.\n";
+ str += ";\n";
+ str += "File = *(BlankLine / Rule / RuleError)\n";
+ str += "BlankLine = *(%d32/%d9) [comment] LineEnd\n";
+ str += "Rule = RuleLookup owsp Alternation ((owsp LineEnd)\n";
+ str += " / (LineEndError LineEnd))\n";
+ str += "RuleLookup = RuleNameTest owsp DefinedAsTest\n";
+ str += "RuleNameTest = RuleName/RuleNameError\n";
+ str += "RuleName = alphanum\n";
+ str += "RuleNameError = 1*(%d33-60/%d62-126)\n";
+ str += "DefinedAsTest = DefinedAs / DefinedAsError\n";
+ str += "DefinedAsError = 1*2%d33-126\n";
+ str += "DefinedAs = IncAlt / Defined\n";
+ str += "Defined = %d61\n";
+ str += "IncAlt = %d61.47\n";
+ str += "RuleError = 1*(%d32-126 / %d9 / LineContinue) LineEnd\n";
+ str += "LineEndError = 1*(%d32-126 / %d9 / LineContinue)\n";
+ str += "Alternation = Concatenation *(owsp AltOp Concatenation)\n";
+ str += "Concatenation = Repetition *(CatOp Repetition)\n";
+ str += "Repetition = [Modifier] (Group / Option / BasicElement / BasicElementErr)\n";
+ str += "Modifier = (Predicate [RepOp])\n";
+ str += " / RepOp\n";
+ str += "Predicate = BkaOp\n";
+ str += " / BknOp\n";
+ str += " / AndOp\n";
+ str += " / NotOp\n";
+ str += "BasicElement = UdtOp\n";
+ str += " / RnmOp\n";
+ str += " / TrgOp\n";
+ str += " / TbsOp\n";
+ str += " / TlsOp\n";
+ str += " / ClsOp\n";
+ str += " / BkrOp\n";
+ str += " / AbgOp\n";
+ str += " / AenOp\n";
+ str += " / ProsVal\n";
+ str += "BasicElementErr = 1*(%d33-40/%d42-46/%d48-92/%d94-126)\n";
+ str += "Group = GroupOpen Alternation (GroupClose / GroupError)\n";
+ str += "GroupError = 1*(%d33-40/%d42-46/%d48-92/%d94-126) ; same as BasicElementErr\n";
+ str += "GroupOpen = %d40 owsp\n";
+ str += "GroupClose = owsp %d41\n";
+ str += "Option = OptionOpen Alternation (OptionClose / OptionError)\n";
+ str += "OptionError = 1*(%d33-40/%d42-46/%d48-92/%d94-126) ; same as BasicElementErr\n";
+ str += "OptionOpen = %d91 owsp\n";
+ str += "OptionClose = owsp %d93\n";
+ str += "RnmOp = alphanum\n";
+ str += "BkrOp = %d92 [bkrModifier] bkr-name\n";
+ str += "bkrModifier = (cs [um / pm]) / (ci [um / pm]) / (um [cs /ci]) / (pm [cs / ci])\n";
+ str += "cs = '%s'\n";
+ str += "ci = '%i'\n";
+ str += "um = '%u'\n";
+ str += "pm = '%p'\n";
+ str += "bkr-name = uname / ename / rname\n";
+ str += "rname = alphanum\n";
+ str += "uname = %d117.95 alphanum\n";
+ str += "ename = %d101.95 alphanum\n";
+ str += "UdtOp = udt-empty\n";
+ str += " / udt-non-empty\n";
+ str += "udt-non-empty = %d117.95 alphanum\n";
+ str += "udt-empty = %d101.95 alphanum\n";
+ str += "RepOp = (rep-min StarOp rep-max)\n";
+ str += " / (rep-min StarOp)\n";
+ str += " / (StarOp rep-max)\n";
+ str += " / StarOp\n";
+ str += " / rep-min-max\n";
+ str += "AltOp = %d47 owsp\n";
+ str += "CatOp = wsp\n";
+ str += "StarOp = %d42\n";
+ str += "AndOp = %d38\n";
+ str += "NotOp = %d33\n";
+ str += "BkaOp = %d38.38\n";
+ str += "BknOp = %d33.33\n";
+ str += "AbgOp = %d37.94\n";
+ str += "AenOp = %d37.36\n";
+ str += "TrgOp = %d37 ((Dec dmin %d45 dmax) / (Hex xmin %d45 xmax) / (Bin bmin %d45 bmax))\n";
+ str += "TbsOp = %d37 ((Dec dString *(%d46 dString)) / (Hex xString *(%d46 xString)) / (Bin bString *(%d46 bString)))\n";
+ str += "TlsOp = TlsCase TlsOpen TlsString TlsClose\n";
+ str += 'TlsCase = ["%i" / "%s"]\n';
+ str += "TlsOpen = %d34\n";
+ str += "TlsClose = %d34\n";
+ str += "TlsString = *(%d32-33/%d35-126/StringTab)\n";
+ str += "StringTab = %d9\n";
+ str += "ClsOp = ClsOpen ClsString ClsClose\n";
+ str += "ClsOpen = %d39\n";
+ str += "ClsClose = %d39\n";
+ str += "ClsString = *(%d32-38/%d40-126/StringTab)\n";
+ str += "ProsVal = ProsValOpen ProsValString ProsValClose\n";
+ str += "ProsValOpen = %d60\n";
+ str += "ProsValString = *(%d32-61/%d63-126/StringTab)\n";
+ str += "ProsValClose = %d62\n";
+ str += "rep-min = rep-num\n";
+ str += "rep-min-max = rep-num\n";
+ str += "rep-max = rep-num\n";
+ str += "rep-num = 1*(%d48-57)\n";
+ str += "dString = dnum\n";
+ str += "xString = xnum\n";
+ str += "bString = bnum\n";
+ str += "Dec = (%d68/%d100)\n";
+ str += "Hex = (%d88/%d120)\n";
+ str += "Bin = (%d66/%d98)\n";
+ str += "dmin = dnum\n";
+ str += "dmax = dnum\n";
+ str += "bmin = bnum\n";
+ str += "bmax = bnum\n";
+ str += "xmin = xnum\n";
+ str += "xmax = xnum\n";
+ str += "dnum = 1*(%d48-57)\n";
+ str += "bnum = 1*%d48-49\n";
+ str += "xnum = 1*(%d48-57 / %d65-70 / %d97-102)\n";
+ str += ";\n";
+ str += "; Basics\n";
+ str += "alphanum = (%d97-122/%d65-90) *(%d97-122/%d65-90/%d48-57/%d45)\n";
+ str += "owsp = *space\n";
+ str += "wsp = 1*space\n";
+ str += "space = %d32\n";
+ str += " / %d9\n";
+ str += " / comment\n";
+ str += " / LineContinue\n";
+ str += "comment = %d59 *(%d32-126 / %d9)\n";
+ str += "LineEnd = %d13.10\n";
+ str += " / %d10\n";
+ str += " / %d13\n";
+ str += "LineContinue = (%d13.10 / %d10 / %d13) (%d32 / %d9)\n";
+ return str;
+ };
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-api/parser.js
+var require_parser2 = __commonJS({
+ "node_modules/apg-js/src/apg-api/parser.js"(exports2, module2) {
+ module2.exports = function exportParser() {
+ const thisFileName = "parser: ";
+ const ApgLib = require_node_exports();
+ const id = ApgLib.ids;
+ const syn = new (require_syntax_callbacks())();
+ const sem = new (require_semantic_callbacks())();
+ const sabnfGrammar = new (require_sabnf_grammar())();
+ const parser = new ApgLib.parser();
+ parser.ast = new ApgLib.ast();
+ parser.callbacks = syn.callbacks;
+ parser.ast.callbacks = sem.callbacks;
+ const findLine = function findLine2(lines, charIndex, charLength) {
+ if (charIndex < 0 || charIndex >= charLength) {
+ return -1;
+ }
+ for (let i = 0; i < lines.length; i += 1) {
+ if (charIndex >= lines[i].beginChar && charIndex < lines[i].beginChar + lines[i].length) {
+ return i;
+ }
+ }
+ return -1;
+ };
+ const translateIndex = function translateIndex2(map, index) {
+ let ret = -1;
+ if (index < map.length) {
+ for (let i = index; i < map.length; i += 1) {
+ if (map[i] !== null) {
+ ret = map[i];
+ break;
+ }
+ }
+ }
+ return ret;
+ };
+ const reduceOpcodes = function reduceOpcodes2(rules) {
+ rules.forEach((rule) => {
+ const opcodes = [];
+ const map = [];
+ let reducedIndex = 0;
+ rule.opcodes.forEach((op) => {
+ if (op.type === id.ALT && op.children.length === 1) {
+ map.push(null);
+ } else if (op.type === id.CAT && op.children.length === 1) {
+ map.push(null);
+ } else if (op.type === id.REP && op.min === 1 && op.max === 1) {
+ map.push(null);
+ } else {
+ map.push(reducedIndex);
+ opcodes.push(op);
+ reducedIndex += 1;
+ }
+ });
+ map.push(reducedIndex);
+ opcodes.forEach((op) => {
+ if (op.type === id.ALT || op.type === id.CAT) {
+ for (let i = 0; i < op.children.length; i += 1) {
+ op.children[i] = translateIndex(map, op.children[i]);
+ }
+ }
+ });
+ rule.opcodes = opcodes;
+ });
+ };
+ this.syntax = function syntax(chars, lines, errors, strict, lite, trace) {
+ if (trace) {
+ if (trace.traceObject !== "traceObject") {
+ throw new TypeError(`${thisFileName}trace argument is not a trace object`);
+ }
+ parser.trace = trace;
+ }
+ const data = {};
+ data.errors = errors;
+ data.strict = !!strict;
+ data.lite = !!lite;
+ data.lines = lines;
+ data.findLine = findLine;
+ data.charsLength = chars.length;
+ data.ruleCount = 0;
+ const result = parser.parse(sabnfGrammar, "file", chars, data);
+ if (!result.success) {
+ errors.push({
+ line: 0,
+ char: 0,
+ msg: "syntax analysis of input grammar failed"
+ });
+ }
+ };
+ this.semantic = function semantic(chars, lines, errors) {
+ const data = {};
+ data.errors = errors;
+ data.lines = lines;
+ data.findLine = findLine;
+ data.charsLength = chars.length;
+ parser.ast.translate(data);
+ if (errors.length) {
+ return null;
+ }
+ reduceOpcodes(data.rules);
+ return {
+ rules: data.rules,
+ udts: data.udts,
+ lineMap: data.rulesLineMap
+ };
+ };
+ this.generateSource = function generateSource(chars, lines, rules, udts, config) {
+ let source = "";
+ let typescript = false;
+ let lite = false;
+ if (config) {
+ if (config.typescript) {
+ typescript = true;
+ lite = false;
+ } else if (config.lite) {
+ typescript = false;
+ lite = true;
+ }
+ }
+ let i;
+ let bkrname;
+ let bkrlower;
+ let opcodeCount = 0;
+ let charCodeMin = Infinity;
+ let charCodeMax = 0;
+ const ruleNames = [];
+ const udtNames = [];
+ let alt = 0;
+ let cat = 0;
+ let rnm = 0;
+ let udt = 0;
+ let rep = 0;
+ let and = 0;
+ let not = 0;
+ let tls = 0;
+ let tbs = 0;
+ let trg = 0;
+ let bkr = 0;
+ let bka = 0;
+ let bkn = 0;
+ let abg = 0;
+ let aen = 0;
+ rules.forEach((rule) => {
+ ruleNames.push(rule.lower);
+ opcodeCount += rule.opcodes.length;
+ rule.opcodes.forEach((op) => {
+ switch (op.type) {
+ case id.ALT:
+ alt += 1;
+ break;
+ case id.CAT:
+ cat += 1;
+ break;
+ case id.RNM:
+ rnm += 1;
+ break;
+ case id.UDT:
+ udt += 1;
+ break;
+ case id.REP:
+ rep += 1;
+ break;
+ case id.AND:
+ and += 1;
+ break;
+ case id.NOT:
+ not += 1;
+ break;
+ case id.BKA:
+ bka += 1;
+ break;
+ case id.BKN:
+ bkn += 1;
+ break;
+ case id.BKR:
+ bkr += 1;
+ break;
+ case id.ABG:
+ abg += 1;
+ break;
+ case id.AEN:
+ aen += 1;
+ break;
+ case id.TLS:
+ tls += 1;
+ for (i = 0; i < op.string.length; i += 1) {
+ if (op.string[i] < charCodeMin) {
+ charCodeMin = op.string[i];
+ }
+ if (op.string[i] > charCodeMax) {
+ charCodeMax = op.string[i];
+ }
+ }
+ break;
+ case id.TBS:
+ tbs += 1;
+ for (i = 0; i < op.string.length; i += 1) {
+ if (op.string[i] < charCodeMin) {
+ charCodeMin = op.string[i];
+ }
+ if (op.string[i] > charCodeMax) {
+ charCodeMax = op.string[i];
+ }
+ }
+ break;
+ case id.TRG:
+ trg += 1;
+ if (op.min < charCodeMin) {
+ charCodeMin = op.min;
+ }
+ if (op.max > charCodeMax) {
+ charCodeMax = op.max;
+ }
+ break;
+ default:
+ throw new Error("generateSource: unrecognized opcode");
+ }
+ });
+ });
+ ruleNames.sort();
+ if (udts.length > 0) {
+ udts.forEach((udtFunc) => {
+ udtNames.push(udtFunc.lower);
+ });
+ udtNames.sort();
+ }
+ source += "// copyright: Copyright (c) 2024 Lowell D. Thomas, all rights reserved
\n";
+ source += "// license: BSD-2-Clause (https://opensource.org/licenses/BSD-2-Clause)
\n";
+ source += "//\n";
+ source += "// Generated by apg-js, Version 4.4.0 [apg-js](https://github.com/ldthomas/apg-js)\n";
+ if (config) {
+ if (config.funcName) {
+ source += `const ${config.funcName} = function grammar(){
+`;
+ } else if (typescript) {
+ source += "export function grammar(){\n";
+ } else if (lite) {
+ source += "export default function grammar(){\n";
+ } else {
+ source += `module.exports = function grammar(){
+`;
+ }
+ } else {
+ source += `module.exports = function grammar(){
+`;
+ }
+ source += " // ```\n";
+ source += " // SUMMARY\n";
+ source += ` // rules = ${rules.length}
+`;
+ source += ` // udts = ${udts.length}
+`;
+ source += ` // opcodes = ${opcodeCount}
+`;
+ source += " // --- ABNF original opcodes\n";
+ source += ` // ALT = ${alt}
+`;
+ source += ` // CAT = ${cat}
+`;
+ source += ` // REP = ${rep}
+`;
+ source += ` // RNM = ${rnm}
+`;
+ source += ` // TLS = ${tls}
+`;
+ source += ` // TBS = ${tbs}
+`;
+ source += ` // TRG = ${trg}
+`;
+ source += " // --- SABNF superset opcodes\n";
+ source += ` // UDT = ${udt}
+`;
+ source += ` // AND = ${and}
+`;
+ source += ` // NOT = ${not}
+`;
+ if (!lite) {
+ source += ` // BKA = ${bka}
+`;
+ source += ` // BKN = ${bkn}
+`;
+ source += ` // BKR = ${bkr}
+`;
+ source += ` // ABG = ${abg}
+`;
+ source += ` // AEN = ${aen}
+`;
+ }
+ source += " // characters = [";
+ if (tls + tbs + trg === 0) {
+ source += " none defined ]";
+ } else {
+ source += `${charCodeMin} - ${charCodeMax}]`;
+ }
+ if (udt > 0) {
+ source += " + user defined";
+ }
+ source += "\n";
+ source += " // ```\n";
+ source += " /* OBJECT IDENTIFIER (for internal parser use) */\n";
+ source += " this.grammarObject = 'grammarObject';\n";
+ source += "\n";
+ source += " /* RULES */\n";
+ source += " this.rules = [];\n";
+ rules.forEach((rule, ii) => {
+ let thisRule = " this.rules[";
+ thisRule += ii;
+ thisRule += "] = { name: '";
+ thisRule += rule.name;
+ thisRule += "', lower: '";
+ thisRule += rule.lower;
+ thisRule += "', index: ";
+ thisRule += rule.index;
+ thisRule += ", isBkr: ";
+ thisRule += rule.isBkr;
+ thisRule += " };\n";
+ source += thisRule;
+ });
+ source += "\n";
+ source += " /* UDTS */\n";
+ source += " this.udts = [];\n";
+ if (udts.length > 0) {
+ udts.forEach((udtFunc, ii) => {
+ let thisUdt = " this.udts[";
+ thisUdt += ii;
+ thisUdt += "] = { name: '";
+ thisUdt += udtFunc.name;
+ thisUdt += "', lower: '";
+ thisUdt += udtFunc.lower;
+ thisUdt += "', index: ";
+ thisUdt += udtFunc.index;
+ thisUdt += ", empty: ";
+ thisUdt += udtFunc.empty;
+ thisUdt += ", isBkr: ";
+ thisUdt += udtFunc.isBkr;
+ thisUdt += " };\n";
+ source += thisUdt;
+ });
+ }
+ source += "\n";
+ source += " /* OPCODES */\n";
+ rules.forEach((rule, ruleIndex) => {
+ if (ruleIndex > 0) {
+ source += "\n";
+ }
+ source += ` /* ${rule.name} */
+`;
+ source += ` this.rules[${ruleIndex}].opcodes = [];
+`;
+ rule.opcodes.forEach((op, opIndex) => {
+ let prefix;
+ switch (op.type) {
+ case id.ALT:
+ source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type}, children: [${op.children.toString()}] };// ALT
+`;
+ break;
+ case id.CAT:
+ source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type}, children: [${op.children.toString()}] };// CAT
+`;
+ break;
+ case id.RNM:
+ source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type}, index: ${op.index} };// RNM(${rules[op.index].name})
+`;
+ break;
+ case id.BKR:
+ if (op.index >= rules.length) {
+ bkrname = udts[op.index - rules.length].name;
+ bkrlower = udts[op.index - rules.length].lower;
+ } else {
+ bkrname = rules[op.index].name;
+ bkrlower = rules[op.index].lower;
+ }
+ prefix = "%i";
+ if (op.bkrCase === id.BKR_MODE_CS) {
+ prefix = "%s";
+ }
+ if (op.bkrMode === id.BKR_MODE_UM) {
+ prefix += "%u";
+ } else {
+ prefix += "%p";
+ }
+ bkrname = prefix + bkrname;
+ source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type}, index: ${op.index}, lower: '${bkrlower}', bkrCase: ${op.bkrCase}, bkrMode: ${op.bkrMode} };// BKR(\\${bkrname})
+`;
+ break;
+ case id.UDT:
+ source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type}, empty: ${op.empty}, index: ${op.index} };// UDT(${udts[op.index].name})
+`;
+ break;
+ case id.REP:
+ source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type}, min: ${op.min}, max: ${op.max} };// REP
+`;
+ break;
+ case id.AND:
+ source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type} };// AND
+`;
+ break;
+ case id.NOT:
+ source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type} };// NOT
+`;
+ break;
+ case id.ABG:
+ source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type} };// ABG(%^)
+`;
+ break;
+ case id.AEN:
+ source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type} };// AEN(%$)
+`;
+ break;
+ case id.BKA:
+ source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type} };// BKA
+`;
+ break;
+ case id.BKN:
+ source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type} };// BKN
+`;
+ break;
+ case id.TLS:
+ source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type}, string: [${op.string.toString()}] };// TLS
+`;
+ break;
+ case id.TBS:
+ source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type}, string: [${op.string.toString()}] };// TBS
+`;
+ break;
+ case id.TRG:
+ source += ` this.rules[${ruleIndex}].opcodes[${opIndex}] = { type: ${op.type}, min: ${op.min}, max: ${op.max} };// TRG
+`;
+ break;
+ default:
+ throw new Error("parser.js: ~143: unrecognized opcode");
+ }
+ });
+ });
+ source += "\n";
+ source += " // The `toString()` function will display the original grammar file(s) that produced these opcodes.\n";
+ source += " this.toString = function toString(){\n";
+ source += ' let str = "";\n';
+ let str;
+ lines.forEach((line) => {
+ const end = line.beginChar + line.length;
+ str = "";
+ source += ' str += "';
+ for (let ii = line.beginChar; ii < end; ii += 1) {
+ switch (chars[ii]) {
+ case 9:
+ str = " ";
+ break;
+ case 10:
+ str = "\\n";
+ break;
+ case 13:
+ str = "\\r";
+ break;
+ case 34:
+ str = '\\"';
+ break;
+ case 92:
+ str = "\\\\";
+ break;
+ default:
+ str = String.fromCharCode(chars[ii]);
+ break;
+ }
+ source += str;
+ }
+ source += '";\n';
+ });
+ source += " return str;\n";
+ source += " }\n";
+ source += "}\n";
+ return source;
+ };
+ this.generateObject = function generateObject(stringArg, rules, udts) {
+ const obj = {};
+ const ruleNames = [];
+ const udtNames = [];
+ const string = stringArg.slice(0);
+ obj.grammarObject = "grammarObject";
+ rules.forEach((rule) => {
+ ruleNames.push(rule.lower);
+ });
+ ruleNames.sort();
+ if (udts.length > 0) {
+ udts.forEach((udtFunc) => {
+ udtNames.push(udtFunc.lower);
+ });
+ udtNames.sort();
+ }
+ obj.callbacks = [];
+ ruleNames.forEach((name) => {
+ obj.callbacks[name] = false;
+ });
+ if (udts.length > 0) {
+ udtNames.forEach((name) => {
+ obj.callbacks[name] = false;
+ });
+ }
+ obj.rules = rules;
+ obj.udts = udts;
+ obj.toString = function toStringFunc() {
+ return string;
+ };
+ return obj;
+ };
+ };
+ }
+});
+
+// node_modules/apg-js/src/apg-api/rule-attributes.js
+var require_rule_attributes = __commonJS({
+ "node_modules/apg-js/src/apg-api/rule-attributes.js"(exports2, module2) {
+ module2.exports = function exportRuleAttributes() {
+ const id = require_identifiers();
+ const thisFile = "rule-attributes.js";
+ let state = null;
+ function isEmptyOnly(attr) {
+ if (attr.left || attr.nested || attr.right || attr.cyclic) {
+ return false;
+ }
+ return attr.empty;
+ }
+ function isRecursive(attr) {
+ if (attr.left || attr.nested || attr.right || attr.cyclic) {
+ return true;
+ }
+ return false;
+ }
+ function isCatNested(attrs, count) {
+ let i = 0;
+ let j = 0;
+ let k = 0;
+ for (i = 0; i < count; i += 1) {
+ if (attrs[i].nested) {
+ return true;
+ }
+ }
+ for (i = 0; i < count; i += 1) {
+ if (attrs[i].right && !attrs[i].leaf) {
+ for (j = i + 1; j < count; j += 1) {
+ if (!isEmptyOnly(attrs[j])) {
+ return true;
+ }
+ }
+ }
+ }
+ for (i = count - 1; i >= 0; i -= 1) {
+ if (attrs[i].left && !attrs[i].leaf) {
+ for (j = i - 1; j >= 0; j -= 1) {
+ if (!isEmptyOnly(attrs[j])) {
+ return true;
+ }
+ }
+ }
+ }
+ for (i = 0; i < count; i += 1) {
+ if (!attrs[i].empty && !isRecursive(attrs[i])) {
+ for (j = i + 1; j < count; j += 1) {
+ if (isRecursive(attrs[j])) {
+ for (k = j + 1; k < count; k += 1) {
+ if (!attrs[k].empty && !isRecursive(attrs[k])) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+ function isCatCyclic(attrs, count) {
+ for (let i = 0; i < count; i += 1) {
+ if (!attrs[i].cyclic) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function isCatLeft(attrs, count) {
+ for (let i = 0; i < count; i += 1) {
+ if (attrs[i].left) {
+ return true;
+ }
+ if (!attrs[i].empty) {
+ return false;
+ }
+ }
+ return false;
+ }
+ function isCatRight(attrs, count) {
+ for (let i = count - 1; i >= 0; i -= 1) {
+ if (attrs[i].right) {
+ return true;
+ }
+ if (!attrs[i].empty) {
+ return false;
+ }
+ }
+ return false;
+ }
+ function isCatEmpty(attrs, count) {
+ for (let i = 0; i < count; i += 1) {
+ if (!attrs[i].empty) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function isCatFinite(attrs, count) {
+ for (let i = 0; i < count; i += 1) {
+ if (!attrs[i].finite) {
+ return false;
+ }
+ }
+ return true;
+ }
+ function cat(stateArg, opcodes, opIndex, iAttr) {
+ let i = 0;
+ const opCat = opcodes[opIndex];
+ const count = opCat.children.length;
+ const childAttrs = [];
+ for (i = 0; i < count; i += 1) {
+ childAttrs.push(stateArg.attrGen());
+ }
+ for (i = 0; i < count; i += 1) {
+ opEval(stateArg, opcodes, opCat.children[i], childAttrs[i]);
+ }
+ iAttr.left = isCatLeft(childAttrs, count);
+ iAttr.right = isCatRight(childAttrs, count);
+ iAttr.nested = isCatNested(childAttrs, count);
+ iAttr.empty = isCatEmpty(childAttrs, count);
+ iAttr.finite = isCatFinite(childAttrs, count);
+ iAttr.cyclic = isCatCyclic(childAttrs, count);
+ }
+ function alt(stateArg, opcodes, opIndex, iAttr) {
+ let i = 0;
+ const opAlt = opcodes[opIndex];
+ const count = opAlt.children.length;
+ const childAttrs = [];
+ for (i = 0; i < count; i += 1) {
+ childAttrs.push(stateArg.attrGen());
+ }
+ for (i = 0; i < count; i += 1) {
+ opEval(stateArg, opcodes, opAlt.children[i], childAttrs[i]);
+ }
+ iAttr.left = false;
+ iAttr.right = false;
+ iAttr.nested = false;
+ iAttr.empty = false;
+ iAttr.finite = false;
+ iAttr.cyclic = false;
+ for (i = 0; i < count; i += 1) {
+ if (childAttrs[i].left) {
+ iAttr.left = true;
+ }
+ if (childAttrs[i].nested) {
+ iAttr.nested = true;
+ }
+ if (childAttrs[i].right) {
+ iAttr.right = true;
+ }
+ if (childAttrs[i].empty) {
+ iAttr.empty = true;
+ }
+ if (childAttrs[i].finite) {
+ iAttr.finite = true;
+ }
+ if (childAttrs[i].cyclic) {
+ iAttr.cyclic = true;
+ }
+ }
+ }
+ function bkr(stateArg, opcodes, opIndex, iAttr) {
+ const opBkr = opcodes[opIndex];
+ if (opBkr.index >= stateArg.ruleCount) {
+ iAttr.empty = stateArg.udts[opBkr.index - stateArg.ruleCount].empty;
+ iAttr.finite = true;
+ } else {
+ ruleAttrsEval(stateArg, opBkr.index, iAttr);
+ iAttr.left = false;
+ iAttr.nested = false;
+ iAttr.right = false;
+ iAttr.cyclic = false;
+ }
+ }
+ function opEval(stateArg, opcodes, opIndex, iAttr) {
+ stateArg.attrInit(iAttr);
+ const opi = opcodes[opIndex];
+ switch (opi.type) {
+ case id.ALT:
+ alt(stateArg, opcodes, opIndex, iAttr);
+ break;
+ case id.CAT:
+ cat(stateArg, opcodes, opIndex, iAttr);
+ break;
+ case id.REP:
+ opEval(stateArg, opcodes, opIndex + 1, iAttr);
+ if (opi.min === 0) {
+ iAttr.empty = true;
+ iAttr.finite = true;
+ }
+ break;
+ case id.RNM:
+ ruleAttrsEval(stateArg, opcodes[opIndex].index, iAttr);
+ break;
+ case id.BKR:
+ bkr(stateArg, opcodes, opIndex, iAttr);
+ break;
+ case id.AND:
+ case id.NOT:
+ case id.BKA:
+ case id.BKN:
+ opEval(stateArg, opcodes, opIndex + 1, iAttr);
+ iAttr.empty = true;
+ break;
+ case id.TLS:
+ iAttr.empty = !opcodes[opIndex].string.length;
+ iAttr.finite = true;
+ iAttr.cyclic = false;
+ break;
+ case id.TBS:
+ case id.TRG:
+ iAttr.empty = false;
+ iAttr.finite = true;
+ iAttr.cyclic = false;
+ break;
+ case id.UDT:
+ iAttr.empty = opi.empty;
+ iAttr.finite = true;
+ iAttr.cyclic = false;
+ break;
+ case id.ABG:
+ case id.AEN:
+ iAttr.empty = true;
+ iAttr.finite = true;
+ iAttr.cyclic = false;
+ break;
+ default:
+ throw new Error(`unknown opcode type: ${opi}`);
+ }
+ }
+ function ruleAttrsEval(stateArg, ruleIndex, iAttr) {
+ const attri = stateArg.attrsWorking[ruleIndex];
+ if (attri.isComplete) {
+ stateArg.attrCopy(iAttr, attri);
+ } else if (!attri.isOpen) {
+ attri.isOpen = true;
+ opEval(stateArg, attri.rule.opcodes, 0, iAttr);
+ attri.left = iAttr.left;
+ attri.right = iAttr.right;
+ attri.nested = iAttr.nested;
+ attri.empty = iAttr.empty;
+ attri.finite = iAttr.finite;
+ attri.cyclic = iAttr.cyclic;
+ attri.leaf = false;
+ attri.isOpen = false;
+ attri.isComplete = true;
+ } else if (ruleIndex === stateArg.startRule) {
+ if (ruleIndex === stateArg.startRule) {
+ iAttr.left = true;
+ iAttr.right = true;
+ iAttr.cyclic = true;
+ iAttr.leaf = true;
+ }
+ } else {
+ iAttr.finite = true;
+ }
+ }
+ const ruleAttributes = (stateArg) => {
+ state = stateArg;
+ let i = 0;
+ let j = 0;
+ const iAttr = state.attrGen();
+ for (i = 0; i < state.ruleCount; i += 1) {
+ for (j = 0; j < state.ruleCount; j += 1) {
+ state.attrInit(state.attrsWorking[j]);
+ }
+ state.startRule = i;
+ ruleAttrsEval(state, i, iAttr);
+ state.attrCopy(state.attrs[i], state.attrsWorking[i]);
+ }
+ state.attributesComplete = true;
+ let attri = null;
+ for (i = 0; i < state.ruleCount; i += 1) {
+ attri = state.attrs[i];
+ if (attri.left || !attri.finite || attri.cyclic) {
+ const temp = state.attrGen(attri.rule);
+ state.attrCopy(temp, attri);
+ state.attrsErrors.push(temp);
+ state.attrsErrorCount += 1;
+ }
+ }
+ };
+ const truth = (val) => val ? "t" : "f";
+ const tError = (val) => val ? "e" : "f";
+ const fError = (val) => val ? "t" : "e";
+ const showAttr = (seq, index, attr, dep) => {
+ let str = `${seq}:${index}:`;
+ str += `${tError(attr.left)} `;
+ str += `${truth(attr.nested)} `;
+ str += `${truth(attr.right)} `;
+ str += `${tError(attr.cyclic)} `;
+ str += `${fError(attr.finite)} `;
+ str += `${truth(attr.empty)}:`;
+ str += `${state.typeToString(dep.recursiveType)}:`;
+ str += dep.recursiveType === id.ATTR_MR ? dep.groupNumber : "-";
+ str += `:${attr.rule.name}
+`;
+ return str;
+ };
+ const showLegend = () => {
+ let str = "LEGEND - t=true, f=false, e=error\n";
+ str += "sequence:rule index:left nested right cyclic finite empty:type:group number:rule name\n";
+ return str;
+ };
+ const showAttributeErrors = () => {
+ let attri = null;
+ let depi = null;
+ let str = "";
+ str += "RULE ATTRIBUTES WITH ERRORS\n";
+ str += showLegend();
+ if (state.attrsErrorCount) {
+ for (let i = 0; i < state.attrsErrorCount; i += 1) {
+ attri = state.attrsErrors[i];
+ depi = state.ruleDeps[attri.rule.index];
+ str += showAttr(i, attri.rule.index, attri, depi);
+ }
+ } else {
+ str += "\n";
+ }
+ return str;
+ };
+ const show = (type) => {
+ let i = 0;
+ let ii = 0;
+ let attri = null;
+ let depi = null;
+ let str = "";
+ let { ruleIndexes } = state;
+ if (type === 97) {
+ ruleIndexes = state.ruleAlphaIndexes;
+ } else if (type === 116) {
+ ruleIndexes = state.ruleTypeIndexes;
+ }
+ for (i = 0; i < state.ruleCount; i += 1) {
+ ii = ruleIndexes[i];
+ attri = state.attrs[ii];
+ depi = state.ruleDeps[ii];
+ str += showAttr(i, ii, attri, depi);
+ }
+ return str;
+ };
+ const showAttributes = (order = "index") => {
+ if (!state.attributesComplete) {
+ throw new Error(`${thisFile}:showAttributes: attributes not available`);
+ }
+ let str = "";
+ const leader = "RULE ATTRIBUTES\n";
+ if (order.charCodeAt(0) === 97) {
+ str += "alphabetical by rule name\n";
+ str += leader;
+ str += showLegend();
+ str += show(97);
+ } else if (order.charCodeAt(0) === 116) {
+ str += "ordered by rule type\n";
+ str += leader;
+ str += showLegend();
+ str += show(116);
+ } else {
+ str += "ordered by rule index\n";
+ str += leader;
+ str += showLegend();
+ str += show();
+ }
+ return str;
+ };
+ return { ruleAttributes, showAttributes, showAttributeErrors };
+ }();
+ }
+});
+
+// node_modules/apg-js/src/apg-api/rule-dependencies.js
+var require_rule_dependencies = __commonJS({
+ "node_modules/apg-js/src/apg-api/rule-dependencies.js"(exports2, module2) {
+ module2.exports = (() => {
+ const id = require_identifiers();
+ let state = null;
+ const scan = (ruleCount, ruleDeps, index, isScanned) => {
+ let i = 0;
+ let j = 0;
+ const rdi = ruleDeps[index];
+ isScanned[index] = true;
+ const op = rdi.rule.opcodes;
+ for (i = 0; i < op.length; i += 1) {
+ const opi = op[i];
+ if (opi.type === id.RNM) {
+ rdi.refersTo[opi.index] = true;
+ if (!isScanned[opi.index]) {
+ scan(ruleCount, ruleDeps, opi.index, isScanned);
+ }
+ for (j = 0; j < ruleCount; j += 1) {
+ if (ruleDeps[opi.index].refersTo[j]) {
+ rdi.refersTo[j] = true;
+ }
+ }
+ } else if (opi.type === id.UDT) {
+ rdi.refersToUdt[opi.index] = true;
+ } else if (opi.type === id.BKR) {
+ if (opi.index < ruleCount) {
+ rdi.refersTo[opi.index] = true;
+ if (!isScanned[opi.index]) {
+ scan(ruleCount, ruleDeps, opi.index, isScanned);
+ }
+ } else {
+ rdi.refersToUdt[ruleCount - opi.index] = true;
+ }
+ }
+ }
+ };
+ const ruleDependencies = (stateArg) => {
+ state = stateArg;
+ let i = 0;
+ let j = 0;
+ let groupCount = 0;
+ let rdi = null;
+ let rdj = null;
+ let newGroup = false;
+ state.dependenciesComplete = false;
+ const isScanned = state.falseArray(state.ruleCount);
+ for (i = 0; i < state.ruleCount; i += 1) {
+ state.falsifyArray(isScanned);
+ scan(state.ruleCount, state.ruleDeps, i, isScanned);
+ }
+ for (i = 0; i < state.ruleCount; i += 1) {
+ for (j = 0; j < state.ruleCount; j += 1) {
+ if (i !== j) {
+ if (state.ruleDeps[j].refersTo[i]) {
+ state.ruleDeps[i].referencedBy[j] = true;
+ }
+ }
+ }
+ }
+ for (i = 0; i < state.ruleCount; i += 1) {
+ state.ruleDeps[i].recursiveType = id.ATTR_N;
+ if (state.ruleDeps[i].refersTo[i]) {
+ state.ruleDeps[i].recursiveType = id.ATTR_R;
+ }
+ }
+ groupCount = -1;
+ for (i = 0; i < state.ruleCount; i += 1) {
+ rdi = state.ruleDeps[i];
+ if (rdi.recursiveType === id.ATTR_R) {
+ newGroup = true;
+ for (j = 0; j < state.ruleCount; j += 1) {
+ if (i !== j) {
+ rdj = state.ruleDeps[j];
+ if (rdj.recursiveType === id.ATTR_R) {
+ if (rdi.refersTo[j] && rdj.refersTo[i]) {
+ if (newGroup) {
+ groupCount += 1;
+ rdi.recursiveType = id.ATTR_MR;
+ rdi.groupNumber = groupCount;
+ newGroup = false;
+ }
+ rdj.recursiveType = id.ATTR_MR;
+ rdj.groupNumber = groupCount;
+ }
+ }
+ }
+ }
+ }
+ }
+ state.isMutuallyRecursive = groupCount > -1;
+ state.ruleAlphaIndexes.sort(state.compRulesAlpha);
+ state.ruleTypeIndexes.sort(state.compRulesAlpha);
+ state.ruleTypeIndexes.sort(state.compRulesType);
+ if (state.isMutuallyRecursive) {
+ state.ruleTypeIndexes.sort(state.compRulesGroup);
+ }
+ if (state.udtCount) {
+ state.udtAlphaIndexes.sort(state.compUdtsAlpha);
+ }
+ state.dependenciesComplete = true;
+ };
+ const show = (type = null) => {
+ let i = 0;
+ let j = 0;
+ let count = 0;
+ let startSeg = 0;
+ const maxRule = state.ruleCount - 1;
+ const maxUdt = state.udtCount - 1;
+ const lineLength = 100;
+ let str = "";
+ let pre = "";
+ const toArrow = "=> ";
+ const byArrow = "<= ";
+ let first = false;
+ let rdi = null;
+ let { ruleIndexes } = state;
+ let { udtIndexes } = state;
+ if (type === 97) {
+ ruleIndexes = state.ruleAlphaIndexes;
+ udtIndexes = state.udtAlphaIndexes;
+ } else if (type === 116) {
+ ruleIndexes = state.ruleTypeIndexes;
+ udtIndexes = state.udtAlphaIndexes;
+ }
+ for (i = 0; i < state.ruleCount; i += 1) {
+ rdi = state.ruleDeps[ruleIndexes[i]];
+ pre = `${ruleIndexes[i]}:${state.typeToString(rdi.recursiveType)}:`;
+ if (state.isMutuallyRecursive) {
+ pre += rdi.groupNumber > -1 ? rdi.groupNumber : "-";
+ pre += ":";
+ }
+ pre += " ";
+ str += `${pre + state.rules[ruleIndexes[i]].name}
+`;
+ first = true;
+ count = 0;
+ startSeg = str.length;
+ str += pre;
+ for (j = 0; j < state.ruleCount; j += 1) {
+ if (rdi.refersTo[ruleIndexes[j]]) {
+ if (first) {
+ str += toArrow;
+ first = false;
+ str += state.ruleDeps[ruleIndexes[j]].rule.name;
+ } else {
+ str += `, ${state.ruleDeps[ruleIndexes[j]].rule.name}`;
+ }
+ count += 1;
+ }
+ if (str.length - startSeg > lineLength && j !== maxRule) {
+ str += `
+${pre}${toArrow}`;
+ startSeg = str.length;
+ }
+ }
+ if (state.udtCount) {
+ for (j = 0; j < state.udtCount; j += 1) {
+ if (rdi.refersToUdt[udtIndexes[j]]) {
+ if (first) {
+ str += toArrow;
+ first = false;
+ str += state.udts[udtIndexes[j]].name;
+ } else {
+ str += `, ${state.udts[udtIndexes[j]].name}`;
+ }
+ count += 1;
+ }
+ if (str.length - startSeg > lineLength && j !== maxUdt) {
+ str += `
+${pre}${toArrow}`;
+ startSeg = str.length;
+ }
+ }
+ }
+ if (count === 0) {
+ str += "=> \n";
+ }
+ if (first === false) {
+ str += "\n";
+ }
+ first = true;
+ count = 0;
+ startSeg = str.length;
+ str += pre;
+ for (j = 0; j < state.ruleCount; j += 1) {
+ if (rdi.referencedBy[ruleIndexes[j]]) {
+ if (first) {
+ str += byArrow;
+ first = false;
+ str += state.ruleDeps[ruleIndexes[j]].rule.name;
+ } else {
+ str += `, ${state.ruleDeps[ruleIndexes[j]].rule.name}`;
+ }
+ count += 1;
+ }
+ if (str.length - startSeg > lineLength && j !== maxRule) {
+ str += `
+${pre}${toArrow}`;
+ startSeg = str.length;
+ }
+ }
+ if (count === 0) {
+ str += "<= \n";
+ }
+ if (first === false) {
+ str += "\n";
+ }
+ str += "\n";
+ }
+ return str;
+ };
+ const showRuleDependencies = (order = "index") => {
+ let str = "RULE DEPENDENCIES(index:type:[group number:])\n";
+ str += "=> refers to rule names\n";
+ str += "<= referenced by rule names\n";
+ if (!state.dependenciesComplete) {
+ return str;
+ }
+ if (order.charCodeAt(0) === 97) {
+ str += "alphabetical by rule name\n";
+ str += show(97);
+ } else if (order.charCodeAt(0) === 116) {
+ str += "ordered by rule type\n";
+ str += show(116);
+ } else {
+ str += "ordered by rule index\n";
+ str += show(null);
+ }
+ return str;
+ };
+ return { ruleDependencies, showRuleDependencies };
+ })();
+ }
+});
+
+// node_modules/apg-js/src/apg-api/attributes.js
+var require_attributes = __commonJS({
+ "node_modules/apg-js/src/apg-api/attributes.js"(exports2, module2) {
+ module2.exports = function exportAttributes() {
+ const id = require_identifiers();
+ const { ruleAttributes, showAttributes, showAttributeErrors } = require_rule_attributes();
+ const { ruleDependencies, showRuleDependencies } = require_rule_dependencies();
+ class State {
+ constructor(rules, udts) {
+ this.rules = rules;
+ this.udts = udts;
+ this.ruleCount = rules.length;
+ this.udtCount = udts.length;
+ this.startRule = 0;
+ this.dependenciesComplete = false;
+ this.attributesComplete = false;
+ this.isMutuallyRecursive = false;
+ this.ruleIndexes = this.indexArray(this.ruleCount);
+ this.ruleAlphaIndexes = this.indexArray(this.ruleCount);
+ this.ruleTypeIndexes = this.indexArray(this.ruleCount);
+ this.udtIndexes = this.indexArray(this.udtCount);
+ this.udtAlphaIndexes = this.indexArray(this.udtCount);
+ this.attrsErrorCount = 0;
+ this.attrs = [];
+ this.attrsErrors = [];
+ this.attrsWorking = [];
+ this.ruleDeps = [];
+ for (let i = 0; i < this.ruleCount; i += 1) {
+ this.attrs.push(this.attrGen(this.rules[i]));
+ this.attrsWorking.push(this.attrGen(this.rules[i]));
+ this.ruleDeps.push(this.rdGen(rules[i], this.ruleCount, this.udtCount));
+ }
+ this.compRulesAlpha = this.compRulesAlpha.bind(this);
+ this.compUdtsAlpha = this.compUdtsAlpha.bind(this);
+ this.compRulesType = this.compRulesType.bind(this);
+ this.compRulesGroup = this.compRulesGroup.bind(this);
+ }
+ // eslint-disable-next-line class-methods-use-this
+ attrGen(rule) {
+ return {
+ left: false,
+ nested: false,
+ right: false,
+ empty: false,
+ finite: false,
+ cyclic: false,
+ leaf: false,
+ isOpen: false,
+ isComplete: false,
+ rule
+ };
+ }
+ // eslint-disable-next-line class-methods-use-this
+ attrInit(attr) {
+ attr.left = false;
+ attr.nested = false;
+ attr.right = false;
+ attr.empty = false;
+ attr.finite = false;
+ attr.cyclic = false;
+ attr.leaf = false;
+ attr.isOpen = false;
+ attr.isComplete = false;
+ }
+ attrCopy(dst, src) {
+ dst.left = src.left;
+ dst.nested = src.nested;
+ dst.right = src.right;
+ dst.empty = src.empty;
+ dst.finite = src.finite;
+ dst.cyclic = src.cyclic;
+ dst.leaf = src.leaf;
+ dst.isOpen = src.isOpen;
+ dst.isComplete = src.isComplete;
+ dst.rule = src.rule;
+ }
+ rdGen(rule, ruleCount, udtCount) {
+ const ret = {
+ rule,
+ recursiveType: id.ATTR_N,
+ groupNumber: -1,
+ refersTo: this.falseArray(ruleCount),
+ refersToUdt: this.falseArray(udtCount),
+ referencedBy: this.falseArray(ruleCount)
+ };
+ return ret;
+ }
+ typeToString(recursiveType) {
+ switch (recursiveType) {
+ case id.ATTR_N:
+ return " N";
+ case id.ATTR_R:
+ return " R";
+ case id.ATTR_MR:
+ return "MR";
+ default:
+ return "UNKNOWN";
+ }
+ }
+ falseArray(length) {
+ const ret = [];
+ if (length > 0) {
+ for (let i = 0; i < length; i += 1) {
+ ret.push(false);
+ }
+ }
+ return ret;
+ }
+ falsifyArray(a) {
+ for (let i = 0; i < a.length; i += 1) {
+ a[i] = false;
+ }
+ }
+ indexArray(length) {
+ const ret = [];
+ if (length > 0) {
+ for (let i = 0; i < length; i += 1) {
+ ret.push(i);
+ }
+ }
+ return ret;
+ }
+ compRulesAlpha(left, right) {
+ if (this.rules[left].lower < this.rules[right].lower) {
+ return -1;
+ }
+ if (this.rules[left].lower > this.rules[right].lower) {
+ return 1;
+ }
+ return 0;
+ }
+ compUdtsAlpha(left, right) {
+ if (this.udts[left].lower < this.udts[right].lower) {
+ return -1;
+ }
+ if (this.udts[left].lower > this.udts[right].lower) {
+ return 1;
+ }
+ return 0;
+ }
+ compRulesType(left, right) {
+ if (this.ruleDeps[left].recursiveType < this.ruleDeps[right].recursiveType) {
+ return -1;
+ }
+ if (this.ruleDeps[left].recursiveType > this.ruleDeps[right].recursiveType) {
+ return 1;
+ }
+ return 0;
+ }
+ compRulesGroup(left, right) {
+ if (this.ruleDeps[left].recursiveType === id.ATTR_MR && this.ruleDeps[right].recursiveType === id.ATTR_MR) {
+ if (this.ruleDeps[left].groupNumber < this.ruleDeps[right].groupNumber) {
+ return -1;
+ }
+ if (this.ruleDeps[left].groupNumber > this.ruleDeps[right].groupNumber) {
+ return 1;
+ }
+ }
+ return 0;
+ }
+ }
+ const attributes = function attributes2(rules = [], udts = [], lineMap = [], errors = []) {
+ const state = new State(rules, udts);
+ ruleDependencies(state);
+ ruleAttributes(state);
+ if (state.attrsErrorCount) {
+ errors.push({ line: 0, char: 0, msg: `${state.attrsErrorCount} attribute errors` });
+ }
+ return state.attrsErrorCount;
+ };
+ return { attributes, showAttributes, showAttributeErrors, showRuleDependencies };
+ }();
+ }
+});
+
+// node_modules/apg-js/src/apg-api/show-rules.js
+var require_show_rules = __commonJS({
+ "node_modules/apg-js/src/apg-api/show-rules.js"(exports2, module2) {
+ module2.exports = /* @__PURE__ */ function exfn() {
+ const thisFileName = "show-rules.js";
+ const showRules = function showRules2(rulesIn = [], udtsIn = [], order = "index") {
+ const thisFuncName = "showRules";
+ let alphaArray = [];
+ let udtAlphaArray = [];
+ const indexArray = [];
+ const udtIndexArray = [];
+ const rules = rulesIn;
+ const udts = udtsIn;
+ const ruleCount = rulesIn.length;
+ const udtCount = udtsIn.length;
+ let str = "RULE/UDT NAMES";
+ let i;
+ function compRulesAlpha(left, right) {
+ if (rules[left].lower < rules[right].lower) {
+ return -1;
+ }
+ if (rules[left].lower > rules[right].lower) {
+ return 1;
+ }
+ return 0;
+ }
+ function compUdtsAlpha(left, right) {
+ if (udts[left].lower < udts[right].lower) {
+ return -1;
+ }
+ if (udts[left].lower > udts[right].lower) {
+ return 1;
+ }
+ return 0;
+ }
+ if (!(Array.isArray(rulesIn) && rulesIn.length)) {
+ throw new Error(`${thisFileName}:${thisFuncName}: rules arg must be array with length > 0`);
+ }
+ if (!Array.isArray(udtsIn)) {
+ throw new Error(`${thisFileName}:${thisFuncName}: udts arg must be array`);
+ }
+ for (i = 0; i < ruleCount; i += 1) {
+ indexArray.push(i);
+ }
+ alphaArray = indexArray.slice(0);
+ alphaArray.sort(compRulesAlpha);
+ if (udtCount) {
+ for (i = 0; i < udtCount; i += 1) {
+ udtIndexArray.push(i);
+ }
+ udtAlphaArray = udtIndexArray.slice(0);
+ udtAlphaArray.sort(compUdtsAlpha);
+ }
+ if (order.charCodeAt(0) === 97) {
+ str += " - alphabetical by rule/UDT name\n";
+ for (i = 0; i < ruleCount; i += 1) {
+ str += `${i}: ${alphaArray[i]}: ${rules[alphaArray[i]].name}
+`;
+ }
+ if (udtCount) {
+ for (i = 0; i < udtCount; i += 1) {
+ str += `${i}: ${udtAlphaArray[i]}: ${udts[udtAlphaArray[i]].name}
+`;
+ }
+ }
+ } else {
+ str += " - ordered by rule/UDT index\n";
+ for (i = 0; i < ruleCount; i += 1) {
+ str += `${i}: ${rules[i].name}
+`;
+ }
+ if (udtCount) {
+ for (i = 0; i < udtCount; i += 1) {
+ str += `${i}: ${udts[i].name}
+`;
+ }
+ }
+ }
+ return str;
+ };
+ return showRules;
+ }();
+ }
+});
+
+// node_modules/apg-js/src/apg-api/api.js
+var require_api = __commonJS({
+ "node_modules/apg-js/src/apg-api/api.js"(exports2, module2) {
+ module2.exports = function api(src) {
+ const { Buffer: Buffer2 } = require("buffer");
+ const thisFileName = "api.js: ";
+ const thisObject = this;
+ const apglib = require_node_exports();
+ const converter = require_converter();
+ const scanner = require_scanner();
+ const parser = new (require_parser2())();
+ const { attributes, showAttributes, showAttributeErrors, showRuleDependencies } = require_attributes();
+ const showRules = require_show_rules();
+ const abnfToHtml = function abnfToHtml2(chars, beg, len) {
+ const NORMAL = 0;
+ const CONTROL = 1;
+ const INVALID = 2;
+ const CONTROL_BEG = ``;
+ const CONTROL_END = "";
+ const INVALID_BEG = ``;
+ const INVALID_END = "";
+ let end;
+ let html = "";
+ const TRUE = true;
+ while (TRUE) {
+ if (!Array.isArray(chars) || chars.length === 0) {
+ break;
+ }
+ if (typeof beg !== "number") {
+ throw new Error("abnfToHtml: beg must be type number");
+ }
+ if (beg >= chars.length) {
+ break;
+ }
+ if (typeof len !== "number" || beg + len >= chars.length) {
+ end = chars.length;
+ } else {
+ end = beg + len;
+ }
+ let state = NORMAL;
+ for (let i = beg; i < end; i += 1) {
+ const ch = chars[i];
+ if (ch >= 32 && ch <= 126) {
+ if (state === CONTROL) {
+ html += CONTROL_END;
+ state = NORMAL;
+ } else if (state === INVALID) {
+ html += INVALID_END;
+ state = NORMAL;
+ }
+ switch (ch) {
+ case 32:
+ html += " ";
+ break;
+ case 60:
+ html += "<";
+ break;
+ case 62:
+ html += ">";
+ break;
+ case 38:
+ html += "&";
+ break;
+ case 34:
+ html += """;
+ break;
+ case 39:
+ html += "'";
+ break;
+ case 92:
+ html += "\";
+ break;
+ default:
+ html += String.fromCharCode(ch);
+ break;
+ }
+ } else if (ch === 9 || ch === 10 || ch === 13) {
+ if (state === NORMAL) {
+ html += CONTROL_BEG;
+ state = CONTROL;
+ } else if (state === INVALID) {
+ html += INVALID_END + CONTROL_BEG;
+ state = CONTROL;
+ }
+ if (ch === 9) {
+ html += "TAB";
+ }
+ if (ch === 10) {
+ html += "LF";
+ }
+ if (ch === 13) {
+ html += "CR";
+ }
+ } else {
+ if (state === NORMAL) {
+ html += INVALID_BEG;
+ state = INVALID;
+ } else if (state === CONTROL) {
+ html += CONTROL_END + INVALID_BEG;
+ state = INVALID;
+ }
+ html += `\\x${apglib.utils.charToHex(ch)}`;
+ }
+ }
+ if (state === INVALID) {
+ html += INVALID_END;
+ }
+ if (state === CONTROL) {
+ html += CONTROL_END;
+ }
+ break;
+ }
+ return html;
+ };
+ const abnfToAscii = function abnfToAscii2(chars, beg, len) {
+ let str = "";
+ for (let i = beg; i < beg + len; i += 1) {
+ const ch = chars[i];
+ if (ch >= 32 && ch <= 126) {
+ str += String.fromCharCode(ch);
+ } else {
+ switch (ch) {
+ case 9:
+ str += "\\t";
+ break;
+ case 10:
+ str += "\\n";
+ break;
+ case 13:
+ str += "\\r";
+ break;
+ default:
+ str += "\\unknown";
+ break;
+ }
+ }
+ }
+ return str;
+ };
+ const linesToAscii = function linesToAscii2(lines) {
+ let str = "Annotated Input Grammar";
+ lines.forEach((val) => {
+ str += "\n";
+ str += `line no: ${val.lineNo}`;
+ str += ` : char index: ${val.beginChar}`;
+ str += ` : length: ${val.length}`;
+ str += ` : abnf: ${abnfToAscii(thisObject.chars, val.beginChar, val.length)}`;
+ });
+ str += "\n";
+ return str;
+ };
+ const linesToHtml = function linesToHtml2(lines) {
+ let html = "";
+ html += `
+`;
+ const title = "Annotated Input Grammar";
+ html += `${title}
+`;
+ html += "";
+ html += "line no. | first char | length | text | ";
+ html += "
\n";
+ lines.forEach((val) => {
+ html += "";
+ html += `${val.lineNo}`;
+ html += ` | ${val.beginChar}`;
+ html += ` | ${val.length}`;
+ html += ` | ${abnfToHtml(thisObject.chars, val.beginChar, val.length)}`;
+ html += " | ";
+ html += "
\n";
+ });
+ html += "
\n";
+ return html;
+ };
+ const errorsToHtml = function errorsToHtml2(errors, lines, chars, title) {
+ const [style] = apglib;
+ let html = "";
+ const errorArrow = `»`;
+ html += `
+`;
+ if (title && typeof title === "string") {
+ html += `${title}
+`;
+ }
+ html += "line no. | line offset | error offset | text |
\n";
+ errors.forEach((val) => {
+ let line;
+ let relchar;
+ let beg;
+ let end;
+ let text;
+ let prefix = "";
+ let suffix = "";
+ if (lines.length === 0) {
+ text = errorArrow;
+ relchar = 0;
+ } else {
+ line = lines[val.line];
+ beg = line.beginChar;
+ if (val.char > beg) {
+ prefix = abnfToHtml(chars, beg, val.char - beg);
+ }
+ beg = val.char;
+ end = line.beginChar + line.length;
+ if (beg < end) {
+ suffix = abnfToHtml(chars, beg, end - beg);
+ }
+ text = prefix + errorArrow + suffix;
+ relchar = val.char - line.beginChar;
+ html += "";
+ html += `${val.line} | ${line.beginChar} | ${relchar} | ${text} | `;
+ html += "
\n";
+ html += "";
+ html += ` | ↑: ${apglib.utils.stringToAsciiHtml(val.msg)} | `;
+ html += "
\n";
+ }
+ });
+ html += "
\n";
+ return html;
+ };
+ const errorsToAscii = function errorsToAscii2(errors, lines, chars) {
+ let str;
+ let line;
+ let beg;
+ let len;
+ str = "";
+ errors.forEach((error) => {
+ line = lines[error.line];
+ str += `${line.lineNo}: `;
+ str += `${line.beginChar}: `;
+ str += `${error.char - line.beginChar}: `;
+ beg = line.beginChar;
+ len = error.char - line.beginChar;
+ str += abnfToAscii(chars, beg, len);
+ str += " >> ";
+ beg = error.char;
+ len = line.beginChar + line.length - error.char;
+ str += abnfToAscii(chars, beg, len);
+ str += "\n";
+ str += `${line.lineNo}: `;
+ str += `${line.beginChar}: `;
+ str += `${error.char - line.beginChar}: `;
+ str += "error: ";
+ str += error.msg;
+ str += "\n";
+ });
+ return str;
+ };
+ let isScanned = false;
+ let isParsed = false;
+ let isTranslated = false;
+ let haveAttributes = false;
+ let attributeErrors = 0;
+ let lineMap;
+ this.errors = [];
+ if (Buffer2.isBuffer(src)) {
+ this.chars = converter.decode("BINARY", src);
+ } else if (Array.isArray(src)) {
+ this.chars = src.slice();
+ } else if (typeof src === "string") {
+ this.chars = converter.decode("STRING", src);
+ } else {
+ throw new Error(`${thisFileName}input source is not a string, byte Buffer or character array`);
+ }
+ this.sabnf = converter.encode("STRING", this.chars);
+ this.scan = function scan(strict, trace) {
+ this.lines = scanner(this.chars, this.errors, strict, trace);
+ isScanned = true;
+ };
+ this.parse = function parse(strict, lite, trace) {
+ if (!isScanned) {
+ throw new Error(`${thisFileName}grammar not scanned`);
+ }
+ parser.syntax(this.chars, this.lines, this.errors, strict, lite, trace);
+ isParsed = true;
+ };
+ this.translate = function translate() {
+ if (!isParsed) {
+ throw new Error(`${thisFileName}grammar not scanned and parsed`);
+ }
+ const ret = parser.semantic(this.chars, this.lines, this.errors);
+ if (this.errors.length === 0) {
+ this.rules = ret.rules;
+ this.udts = ret.udts;
+ lineMap = ret.lineMap;
+ isTranslated = true;
+ }
+ };
+ this.attributes = function attrs() {
+ if (!isTranslated) {
+ throw new Error(`${thisFileName}grammar not scanned, parsed and translated`);
+ }
+ attributeErrors = attributes(this.rules, this.udts, lineMap, this.errors);
+ haveAttributes = true;
+ return attributeErrors;
+ };
+ this.generate = function generate(strict) {
+ this.lines = scanner(this.chars, this.errors, strict);
+ if (this.errors.length) {
+ return;
+ }
+ parser.syntax(this.chars, this.lines, this.errors, strict);
+ if (this.errors.length) {
+ return;
+ }
+ const ret = parser.semantic(this.chars, this.lines, this.errors);
+ if (this.errors.length) {
+ return;
+ }
+ this.rules = ret.rules;
+ this.udts = ret.udts;
+ lineMap = ret.lineMap;
+ attributeErrors = attributes(this.rules, this.udts, lineMap, this.errors);
+ haveAttributes = true;
+ };
+ this.displayRules = function displayRules(order = "index") {
+ if (!isTranslated) {
+ throw new Error(`${thisFileName}grammar not scanned, parsed and translated`);
+ }
+ return showRules(this.rules, this.udts, order);
+ };
+ this.displayRuleDependencies = function displayRuleDependencies(order = "index") {
+ if (!haveAttributes) {
+ throw new Error(`${thisFileName}no attributes - must be preceeded by call to attributes()`);
+ }
+ return showRuleDependencies(order);
+ };
+ this.displayAttributes = function displayAttributes(order = "index") {
+ if (!haveAttributes) {
+ throw new Error(`${thisFileName}no attributes - must be preceeded by call to attributes()`);
+ }
+ if (attributeErrors) {
+ showAttributeErrors(order);
+ }
+ return showAttributes(order);
+ };
+ this.displayAttributeErrors = function displayAttributeErrors() {
+ if (!haveAttributes) {
+ throw new Error(`${thisFileName}no attributes - must be preceeded by call to attributes()`);
+ }
+ return showAttributeErrors();
+ };
+ this.toSource = function toSource(config = void 0) {
+ if (!haveAttributes) {
+ throw new Error(`${thisFileName}can't generate parser source - must be preceeded by call to attributes()`);
+ }
+ if (attributeErrors) {
+ throw new Error(`${thisFileName}can't generate parser source - attributes have ${attributeErrors} errors`);
+ }
+ return parser.generateSource(this.chars, this.lines, this.rules, this.udts, config);
+ };
+ this.toObject = function toObject() {
+ if (!haveAttributes) {
+ throw new Error(`${thisFileName}can't generate parser source - must be preceeded by call to attributes()`);
+ }
+ if (attributeErrors) {
+ throw new Error(`${thisFileName}can't generate parser source - attributes have ${attributeErrors} errors`);
+ }
+ return parser.generateObject(this.sabnf, this.rules, this.udts);
+ };
+ this.errorsToAscii = function errorsToAsciiFunc() {
+ return errorsToAscii(this.errors, this.lines, this.chars);
+ };
+ this.errorsToHtml = function errorsToHtmlFunc(title) {
+ return errorsToHtml(this.errors, this.lines, this.chars, title);
+ };
+ this.linesToAscii = function linesToAsciiFunc() {
+ return linesToAscii(this.lines);
+ };
+ this.linesToHtml = function linesToHtmlFunc() {
+ return linesToHtml(this.lines);
+ };
+ };
+ }
+});
+
+// node_modules/@noble/hashes/_assert.js
+var require_assert = __commonJS({
+ "node_modules/@noble/hashes/_assert.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.isBytes = isBytes;
+ exports2.number = number;
+ exports2.bool = bool;
+ exports2.bytes = bytes;
+ exports2.hash = hash;
+ exports2.exists = exists;
+ exports2.output = output;
+ function number(n) {
+ if (!Number.isSafeInteger(n) || n < 0)
+ throw new Error(`positive integer expected, not ${n}`);
+ }
+ function bool(b) {
+ if (typeof b !== "boolean")
+ throw new Error(`boolean expected, not ${b}`);
+ }
+ function isBytes(a) {
+ return a instanceof Uint8Array || a != null && typeof a === "object" && a.constructor.name === "Uint8Array";
+ }
+ function bytes(b, ...lengths) {
+ if (!isBytes(b))
+ throw new Error("Uint8Array expected");
+ if (lengths.length > 0 && !lengths.includes(b.length))
+ throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);
+ }
+ function hash(h) {
+ if (typeof h !== "function" || typeof h.create !== "function")
+ throw new Error("Hash should be wrapped by utils.wrapConstructor");
+ number(h.outputLen);
+ number(h.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 };
+ exports2.default = assert;
+ }
+});
+
+// node_modules/@noble/hashes/_u64.js
+var require_u64 = __commonJS({
+ "node_modules/@noble/hashes/_u64.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.add5L = exports2.add5H = exports2.add4H = exports2.add4L = exports2.add3H = exports2.add3L = exports2.rotlBL = exports2.rotlBH = exports2.rotlSL = exports2.rotlSH = exports2.rotr32L = exports2.rotr32H = exports2.rotrBL = exports2.rotrBH = exports2.rotrSL = exports2.rotrSH = exports2.shrSL = exports2.shrSH = exports2.toBig = void 0;
+ exports2.fromBig = fromBig;
+ exports2.split = split;
+ exports2.add = add;
+ var U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);
+ var _32n = /* @__PURE__ */ 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);
+ exports2.toBig = toBig;
+ var shrSH = (h, _l, s) => h >>> s;
+ exports2.shrSH = shrSH;
+ var shrSL = (h, l, s) => h << 32 - s | l >>> s;
+ exports2.shrSL = shrSL;
+ var rotrSH = (h, l, s) => h >>> s | l << 32 - s;
+ exports2.rotrSH = rotrSH;
+ var rotrSL = (h, l, s) => h << 32 - s | l >>> s;
+ exports2.rotrSL = rotrSL;
+ var rotrBH = (h, l, s) => h << 64 - s | l >>> s - 32;
+ exports2.rotrBH = rotrBH;
+ var rotrBL = (h, l, s) => h >>> s - 32 | l << 64 - s;
+ exports2.rotrBL = rotrBL;
+ var rotr32H = (_h, l) => l;
+ exports2.rotr32H = rotr32H;
+ var rotr32L = (h, _l) => h;
+ exports2.rotr32L = rotr32L;
+ var rotlSH = (h, l, s) => h << s | l >>> 32 - s;
+ exports2.rotlSH = rotlSH;
+ var rotlSL = (h, l, s) => l << s | h >>> 32 - s;
+ exports2.rotlSL = rotlSL;
+ var rotlBH = (h, l, s) => l << s - 32 | h >>> 64 - s;
+ exports2.rotlBH = rotlBH;
+ var rotlBL = (h, l, s) => h << s - 32 | l >>> 64 - s;
+ exports2.rotlBL = rotlBL;
+ 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);
+ exports2.add3L = add3L;
+ var add3H = (low, Ah, Bh, Ch) => Ah + Bh + Ch + (low / 2 ** 32 | 0) | 0;
+ exports2.add3H = add3H;
+ var add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);
+ exports2.add4L = add4L;
+ var add4H = (low, Ah, Bh, Ch, Dh) => Ah + Bh + Ch + Dh + (low / 2 ** 32 | 0) | 0;
+ exports2.add4H = add4H;
+ var add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);
+ exports2.add5L = add5L;
+ var add5H = (low, Ah, Bh, Ch, Dh, Eh) => Ah + Bh + Ch + Dh + Eh + (low / 2 ** 32 | 0) | 0;
+ exports2.add5H = add5H;
+ var u64 = {
+ fromBig,
+ split,
+ toBig,
+ shrSH,
+ shrSL,
+ rotrSH,
+ rotrSL,
+ rotrBH,
+ rotrBL,
+ rotr32H,
+ rotr32L,
+ rotlSH,
+ rotlSL,
+ rotlBH,
+ rotlBL,
+ add,
+ add3L,
+ add3H,
+ add4L,
+ add4H,
+ add5H,
+ add5L
+ };
+ exports2.default = u64;
+ }
+});
+
+// node_modules/@noble/hashes/cryptoNode.js
+var require_cryptoNode = __commonJS({
+ "node_modules/@noble/hashes/cryptoNode.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.crypto = void 0;
+ var nc = require("node:crypto");
+ exports2.crypto = nc && typeof nc === "object" && "webcrypto" in nc ? nc.webcrypto : nc && typeof nc === "object" && "randomBytes" in nc ? nc : void 0;
+ }
+});
+
+// node_modules/@noble/hashes/utils.js
+var require_utils9 = __commonJS({
+ "node_modules/@noble/hashes/utils.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.Hash = exports2.nextTick = exports2.byteSwapIfBE = exports2.byteSwap = exports2.isLE = exports2.rotl = exports2.rotr = exports2.createView = exports2.u32 = exports2.u8 = void 0;
+ exports2.isBytes = isBytes;
+ exports2.byteSwap32 = byteSwap32;
+ exports2.bytesToHex = bytesToHex;
+ exports2.hexToBytes = hexToBytes;
+ exports2.asyncLoop = asyncLoop;
+ exports2.utf8ToBytes = utf8ToBytes;
+ exports2.toBytes = toBytes;
+ exports2.concatBytes = concatBytes;
+ exports2.checkOpts = checkOpts;
+ exports2.wrapConstructor = wrapConstructor;
+ exports2.wrapConstructorWithOpts = wrapConstructorWithOpts;
+ exports2.wrapXOFConstructorWithOpts = wrapXOFConstructorWithOpts;
+ exports2.randomBytes = randomBytes;
+ var crypto_1 = require_cryptoNode();
+ var _assert_js_1 = require_assert();
+ function isBytes(a) {
+ return a instanceof Uint8Array || a != null && typeof a === "object" && a.constructor.name === "Uint8Array";
+ }
+ var u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);
+ exports2.u8 = u8;
+ var u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));
+ exports2.u32 = u32;
+ var createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);
+ exports2.createView = createView;
+ var rotr = (word, shift) => word << 32 - shift | word >>> shift;
+ exports2.rotr = rotr;
+ var rotl = (word, shift) => word << shift | word >>> 32 - shift >>> 0;
+ exports2.rotl = rotl;
+ exports2.isLE = new Uint8Array(new Uint32Array([287454020]).buffer)[0] === 68;
+ var byteSwap = (word) => word << 24 & 4278190080 | word << 8 & 16711680 | word >>> 8 & 65280 | word >>> 24 & 255;
+ exports2.byteSwap = byteSwap;
+ exports2.byteSwapIfBE = exports2.isLE ? (n) => n : (n) => (0, exports2.byteSwap)(n);
+ function byteSwap32(arr) {
+ for (let i = 0; i < arr.length; i++) {
+ arr[i] = (0, exports2.byteSwap)(arr[i]);
+ }
+ }
+ var hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, "0"));
+ function bytesToHex(bytes) {
+ (0, _assert_js_1.bytes)(bytes);
+ let hex = "";
+ for (let i = 0; i < bytes.length; i++) {
+ hex += hexes[bytes[i]];
+ }
+ return hex;
+ }
+ var asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };
+ function asciiToBase16(char) {
+ if (char >= asciis._0 && char <= asciis._9)
+ return char - asciis._0;
+ if (char >= asciis._A && char <= asciis._F)
+ return char - (asciis._A - 10);
+ if (char >= asciis._a && char <= asciis._f)
+ return char - (asciis._a - 10);
+ return;
+ }
+ function hexToBytes(hex) {
+ if (typeof hex !== "string")
+ throw new Error("hex string expected, got " + typeof hex);
+ const hl = hex.length;
+ const al = hl / 2;
+ if (hl % 2)
+ throw new Error("padded hex string expected, got unpadded hex of length " + hl);
+ const array = new Uint8Array(al);
+ for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {
+ const n1 = asciiToBase16(hex.charCodeAt(hi));
+ const n2 = asciiToBase16(hex.charCodeAt(hi + 1));
+ if (n1 === void 0 || n2 === void 0) {
+ const char = hex[hi] + hex[hi + 1];
+ throw new Error('hex string expected, got non-hex character "' + char + '" at index ' + hi);
+ }
+ array[ai] = n1 * 16 + n2;
+ }
+ return array;
+ }
+ var nextTick = async () => {
+ };
+ exports2.nextTick = nextTick;
+ async function asyncLoop(iters, tick, cb) {
+ let ts = Date.now();
+ for (let i = 0; i < iters; i++) {
+ cb(i);
+ const diff = Date.now() - ts;
+ if (diff >= 0 && diff < tick)
+ continue;
+ await (0, exports2.nextTick)();
+ ts += diff;
+ }
+ }
+ function utf8ToBytes(str) {
+ if (typeof str !== "string")
+ throw new Error(`utf8ToBytes expected string, got ${typeof str}`);
+ return new Uint8Array(new TextEncoder().encode(str));
+ }
+ function toBytes(data) {
+ if (typeof data === "string")
+ data = utf8ToBytes(data);
+ (0, _assert_js_1.bytes)(data);
+ return data;
+ }
+ function concatBytes(...arrays) {
+ let sum = 0;
+ for (let i = 0; i < arrays.length; i++) {
+ const a = arrays[i];
+ (0, _assert_js_1.bytes)(a);
+ sum += a.length;
+ }
+ const res = new Uint8Array(sum);
+ for (let i = 0, pad = 0; i < arrays.length; i++) {
+ const a = arrays[i];
+ res.set(a, pad);
+ pad += a.length;
+ }
+ return res;
+ }
+ var Hash = class {
+ // Safe version that clones internal state
+ clone() {
+ return this._cloneInto();
+ }
+ };
+ exports2.Hash = Hash;
+ var toStr = {}.toString;
+ function checkOpts(defaults, opts) {
+ if (opts !== void 0 && toStr.call(opts) !== "[object Object]")
+ throw new Error("Options should be object or undefined");
+ const merged = Object.assign(defaults, opts);
+ return merged;
+ }
+ function wrapConstructor(hashCons) {
+ const hashC = (msg) => hashCons().update(toBytes(msg)).digest();
+ const tmp = hashCons();
+ hashC.outputLen = tmp.outputLen;
+ hashC.blockLen = tmp.blockLen;
+ hashC.create = () => hashCons();
+ return hashC;
+ }
+ function wrapConstructorWithOpts(hashCons) {
+ const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();
+ const tmp = hashCons({});
+ hashC.outputLen = tmp.outputLen;
+ hashC.blockLen = tmp.blockLen;
+ hashC.create = (opts) => hashCons(opts);
+ return hashC;
+ }
+ function wrapXOFConstructorWithOpts(hashCons) {
+ const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();
+ const tmp = hashCons({});
+ hashC.outputLen = tmp.outputLen;
+ hashC.blockLen = tmp.blockLen;
+ hashC.create = (opts) => hashCons(opts);
+ return hashC;
+ }
+ function randomBytes(bytesLength = 32) {
+ if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === "function") {
+ return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength));
+ }
+ if (crypto_1.crypto && typeof crypto_1.crypto.randomBytes === "function") {
+ return crypto_1.crypto.randomBytes(bytesLength);
+ }
+ throw new Error("crypto.getRandomValues must be defined");
+ }
+ }
+});
+
+// node_modules/@noble/hashes/sha3.js
+var require_sha32 = __commonJS({
+ "node_modules/@noble/hashes/sha3.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.shake256 = exports2.shake128 = exports2.keccak_512 = exports2.keccak_384 = exports2.keccak_256 = exports2.keccak_224 = exports2.sha3_512 = exports2.sha3_384 = exports2.sha3_256 = exports2.sha3_224 = exports2.Keccak = void 0;
+ exports2.keccakP = keccakP;
+ var _assert_js_1 = require_assert();
+ var _u64_js_1 = require_u64();
+ var utils_js_1 = require_utils9();
+ var SHA3_PI = [];
+ var SHA3_ROTL = [];
+ var _SHA3_IOTA = [];
+ var _0n = /* @__PURE__ */ BigInt(0);
+ var _1n = /* @__PURE__ */ BigInt(1);
+ var _2n = /* @__PURE__ */ BigInt(2);
+ var _7n = /* @__PURE__ */ BigInt(7);
+ var _256n = /* @__PURE__ */ BigInt(256);
+ var _0x71n = /* @__PURE__ */ 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 << /* @__PURE__ */ BigInt(j)) - _1n;
+ }
+ _SHA3_IOTA.push(t);
+ }
+ var [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ (0, _u64_js_1.split)(_SHA3_IOTA, true);
+ var rotlH = (h, l, s) => s > 32 ? (0, _u64_js_1.rotlBH)(h, l, s) : (0, _u64_js_1.rotlSH)(h, l, s);
+ var rotlL = (h, l, s) => s > 32 ? (0, _u64_js_1.rotlBL)(h, l, s) : (0, _u64_js_1.rotlSL)(h, l, s);
+ 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 Keccak = class _Keccak extends utils_js_1.Hash {
+ // NOTE: we accept arguments in bytes instead of bits here.
+ 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;
+ (0, _assert_js_1.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 = (0, utils_js_1.u32)(this.state);
+ }
+ keccak() {
+ if (!utils_js_1.isLE)
+ (0, utils_js_1.byteSwap32)(this.state32);
+ keccakP(this.state32, this.rounds);
+ if (!utils_js_1.isLE)
+ (0, utils_js_1.byteSwap32)(this.state32);
+ this.posOut = 0;
+ this.pos = 0;
+ }
+ update(data) {
+ (0, _assert_js_1.exists)(this);
+ const { blockLen, state } = this;
+ data = (0, utils_js_1.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) {
+ (0, _assert_js_1.exists)(this, false);
+ (0, _assert_js_1.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(bytes) {
+ (0, _assert_js_1.number)(bytes);
+ return this.xofInto(new Uint8Array(bytes));
+ }
+ digestInto(out) {
+ (0, _assert_js_1.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;
+ }
+ };
+ exports2.Keccak = Keccak;
+ var gen = (suffix, blockLen, outputLen) => (0, utils_js_1.wrapConstructor)(() => new Keccak(blockLen, suffix, outputLen));
+ exports2.sha3_224 = gen(6, 144, 224 / 8);
+ exports2.sha3_256 = gen(6, 136, 256 / 8);
+ exports2.sha3_384 = gen(6, 104, 384 / 8);
+ exports2.sha3_512 = gen(6, 72, 512 / 8);
+ exports2.keccak_224 = gen(1, 144, 224 / 8);
+ exports2.keccak_256 = gen(1, 136, 256 / 8);
+ exports2.keccak_384 = gen(1, 104, 384 / 8);
+ exports2.keccak_512 = gen(1, 72, 512 / 8);
+ var genShake = (suffix, blockLen, outputLen) => (0, utils_js_1.wrapXOFConstructorWithOpts)((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === void 0 ? outputLen : opts.dkLen, true));
+ exports2.shake128 = genShake(31, 168, 128 / 8);
+ exports2.shake256 = genShake(31, 136, 256 / 8);
+ }
+});
+
+// node_modules/@spruceid/siwe-parser/dist/utils.js
+var require_utils10 = __commonJS({
+ "node_modules/@spruceid/siwe-parser/dist/utils.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.parseIntegerNumber = exports2.isEIP55Address = void 0;
+ var sha3_1 = require_sha32();
+ var utils_1 = require_utils9();
+ var isEIP55Address = (address) => {
+ if (address.length != 42) {
+ return false;
+ }
+ const lowerAddress = `${address}`.toLowerCase().replace("0x", "");
+ const hash = (0, utils_1.bytesToHex)((0, sha3_1.keccak_256)(lowerAddress));
+ let ret = "0x";
+ for (let i = 0; i < lowerAddress.length; i++) {
+ if (parseInt(hash[i], 16) >= 8) {
+ ret += lowerAddress[i].toUpperCase();
+ } else {
+ ret += lowerAddress[i];
+ }
+ }
+ return address === ret;
+ };
+ exports2.isEIP55Address = isEIP55Address;
+ var parseIntegerNumber = (number) => {
+ const parsed = parseInt(number);
+ if (isNaN(parsed))
+ throw new Error("Invalid number.");
+ if (parsed === Infinity)
+ throw new Error("Invalid number.");
+ return parsed;
+ };
+ exports2.parseIntegerNumber = parseIntegerNumber;
+ }
+});
+
+// node_modules/@spruceid/siwe-parser/dist/abnf.js
+var require_abnf = __commonJS({
+ "node_modules/@spruceid/siwe-parser/dist/abnf.js"(exports2) {
+ "use strict";
+ var __importDefault13 = exports2 && exports2.__importDefault || function(mod) {
+ return mod && mod.__esModule ? mod : { "default": mod };
+ };
+ var _a;
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.ParsedMessage = void 0;
+ var api_1 = __importDefault13(require_api());
+ var node_exports_1 = __importDefault13(require_node_exports());
+ var utils_1 = require_utils10();
+ var GRAMMAR = `
+sign-in-with-ethereum =
+ [ scheme "://" ] domain %s" wants you to sign in with your Ethereum account:" LF
+ address LF
+ LF
+ [ statement LF ]
+ LF
+ %s"URI: " URI LF
+ %s"Version: " version LF
+ %s"Chain ID: " chain-id LF
+ %s"Nonce: " nonce LF
+ %s"Issued At: " issued-at
+ [ LF %s"Expiration Time: " expiration-time ]
+ [ LF %s"Not Before: " not-before ]
+ [ LF %s"Request ID: " request-id ]
+ [ LF %s"Resources:"
+ resources ]
+
+domain = authority
+
+address = "0x" 40*40HEXDIG
+ ; Must also conform to captilization
+ ; checksum encoding specified in EIP-55
+ ; where applicable (EOAs).
+
+statement = 1*( reserved / unreserved / " " )
+ ; The purpose is to exclude LF (line breaks).
+
+version = "1"
+
+nonce = 8*( ALPHA / DIGIT )
+
+issued-at = date-time
+expiration-time = date-time
+not-before = date-time
+
+request-id = *pchar
+
+chain-id = 1*DIGIT
+ ; See EIP-155 for valid CHAIN_IDs.
+
+resources = *( LF resource )
+
+resource = "- " URI
+
+; ------------------------------------------------------------------------------
+; RFC 3986
+
+URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
+
+hier-part = "//" authority path-abempty
+ / path-absolute
+ / path-rootless
+ / path-empty
+
+scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
+
+authority = [ userinfo "@" ] host [ ":" port ]
+userinfo = *( unreserved / pct-encoded / sub-delims / ":" )
+host = IP-literal / IPv4address / reg-name
+port = *DIGIT
+
+IP-literal = "[" ( IPv6address / IPvFuture ) "]"
+
+IPvFuture = "v" 1*HEXDIG "." 1*( unreserved / sub-delims / ":" )
+
+IPv6address = 6( h16 ":" ) ls32
+ / "::" 5( h16 ":" ) ls32
+ / [ h16 ] "::" 4( h16 ":" ) ls32
+ / [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
+ / [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
+ / [ *3( h16 ":" ) h16 ] "::" h16 ":" ls32
+ / [ *4( h16 ":" ) h16 ] "::" ls32
+ / [ *5( h16 ":" ) h16 ] "::" h16
+ / [ *6( h16 ":" ) h16 ] "::"
+
+h16 = 1*4HEXDIG
+ls32 = ( h16 ":" h16 ) / IPv4address
+IPv4address = dec-octet "." dec-octet "." dec-octet "." dec-octet
+dec-octet = DIGIT ; 0-9
+ / %x31-39 DIGIT ; 10-99
+ / "1" 2DIGIT ; 100-199
+ / "2" %x30-34 DIGIT ; 200-249
+ / "25" %x30-35 ; 250-255
+
+reg-name = *( unreserved / pct-encoded / sub-delims )
+
+path-abempty = *( "/" segment )
+path-absolute = "/" [ segment-nz *( "/" segment ) ]
+path-rootless = segment-nz *( "/" segment )
+path-empty = 0pchar
+
+segment = *pchar
+segment-nz = 1*pchar
+
+pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
+
+query = *( pchar / "/" / "?" )
+
+fragment = *( pchar / "/" / "?" )
+
+pct-encoded = "%" HEXDIG HEXDIG
+
+unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
+reserved = gen-delims / sub-delims
+gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
+sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
+ / "*" / "+" / "," / ";" / "="
+
+; ------------------------------------------------------------------------------
+; RFC 3339
+
+date-fullyear = 4DIGIT
+date-month = 2DIGIT ; 01-12
+date-mday = 2DIGIT ; 01-28, 01-29, 01-30, 01-31 based on
+ ; month/year
+time-hour = 2DIGIT ; 00-23
+time-minute = 2DIGIT ; 00-59
+time-second = 2DIGIT ; 00-58, 00-59, 00-60 based on leap second
+ ; rules
+time-secfrac = "." 1*DIGIT
+time-numoffset = ("+" / "-") time-hour ":" time-minute
+time-offset = "Z" / time-numoffset
+
+partial-time = time-hour ":" time-minute ":" time-second
+ [time-secfrac]
+full-date = date-fullyear "-" date-month "-" date-mday
+full-time = partial-time time-offset
+
+date-time = full-date "T" full-time
+
+; ------------------------------------------------------------------------------
+; RFC 5234
+
+ALPHA = %x41-5A / %x61-7A ; A-Z / a-z
+LF = %x0A
+ ; linefeed
+DIGIT = %x30-39
+ ; 0-9
+HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"
+`;
+ var GrammarApi = class {
+ static generateApi() {
+ const api = new api_1.default(GRAMMAR);
+ api.generate();
+ if (api.errors.length) {
+ console.error(api.errorsToAscii());
+ console.error(api.linesToAscii());
+ console.log(api.displayAttributeErrors());
+ throw new Error(`ABNF grammar has errors`);
+ }
+ return api.toObject();
+ }
+ };
+ _a = GrammarApi;
+ GrammarApi.grammarObj = _a.generateApi();
+ var ParsedMessage = class {
+ constructor(msg) {
+ const parser = new node_exports_1.default.parser();
+ parser.ast = new node_exports_1.default.ast();
+ const id = node_exports_1.default.ids;
+ const scheme = function(state, chars, phraseIndex, phraseLength, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE && phraseIndex === 0) {
+ data.scheme = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);
+ }
+ return ret;
+ };
+ parser.ast.callbacks.scheme = scheme;
+ const domain = function(state, chars, phraseIndex, phraseLength, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.domain = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);
+ }
+ return ret;
+ };
+ parser.ast.callbacks.domain = domain;
+ const address = function(state, chars, phraseIndex, phraseLength, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.address = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);
+ }
+ return ret;
+ };
+ parser.ast.callbacks.address = address;
+ const statement = function(state, chars, phraseIndex, phraseLength, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.statement = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);
+ }
+ return ret;
+ };
+ parser.ast.callbacks.statement = statement;
+ const uri = function(state, chars, phraseIndex, phraseLength, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ if (!data.uri) {
+ data.uri = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);
+ }
+ }
+ return ret;
+ };
+ parser.ast.callbacks.uri = uri;
+ const version = function(state, chars, phraseIndex, phraseLength, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.version = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);
+ }
+ return ret;
+ };
+ parser.ast.callbacks.version = version;
+ const chainId = function(state, chars, phraseIndex, phraseLength, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.chainId = (0, utils_1.parseIntegerNumber)(node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength));
+ }
+ return ret;
+ };
+ parser.ast.callbacks["chain-id"] = chainId;
+ const nonce = function(state, chars, phraseIndex, phraseLength, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.nonce = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);
+ }
+ return ret;
+ };
+ parser.ast.callbacks.nonce = nonce;
+ const issuedAt = function(state, chars, phraseIndex, phraseLength, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.issuedAt = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);
+ }
+ return ret;
+ };
+ parser.ast.callbacks["issued-at"] = issuedAt;
+ const expirationTime = function(state, chars, phraseIndex, phraseLength, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.expirationTime = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);
+ }
+ return ret;
+ };
+ parser.ast.callbacks["expiration-time"] = expirationTime;
+ const notBefore = function(state, chars, phraseIndex, phraseLength, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.notBefore = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);
+ }
+ return ret;
+ };
+ parser.ast.callbacks["not-before"] = notBefore;
+ const requestId = function(state, chars, phraseIndex, phraseLength, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.requestId = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength);
+ }
+ return ret;
+ };
+ parser.ast.callbacks["request-id"] = requestId;
+ const resources = function(state, chars, phraseIndex, phraseLength, data) {
+ const ret = id.SEM_OK;
+ if (state === id.SEM_PRE) {
+ data.resources = node_exports_1.default.utils.charsToString(chars, phraseIndex, phraseLength).slice(3).split("\n- ");
+ }
+ return ret;
+ };
+ parser.ast.callbacks.resources = resources;
+ const result = parser.parse(GrammarApi.grammarObj, "sign-in-with-ethereum", msg);
+ if (!result.success) {
+ throw new Error(`Invalid message: ${JSON.stringify(result)}`);
+ }
+ const elements = {};
+ parser.ast.translate(elements);
+ for (const [key, value] of Object.entries(elements)) {
+ this[key] = value;
+ }
+ if (this.domain.length === 0) {
+ throw new Error("Domain cannot be empty.");
+ }
+ if (!(0, utils_1.isEIP55Address)(this.address)) {
+ throw new Error("Address not conformant to EIP-55.");
+ }
+ }
+ };
+ exports2.ParsedMessage = ParsedMessage;
+ }
+});
+
+// node_modules/@spruceid/siwe-parser/dist/parsers.js
+var require_parsers = __commonJS({
+ "node_modules/@spruceid/siwe-parser/dist/parsers.js"(exports2) {
+ "use strict";
+ var __createBinding13 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() {
+ return m[k];
+ } };
+ }
+ Object.defineProperty(o, k2, desc);
+ } : function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+ });
+ var __exportStar13 = exports2 && exports2.__exportStar || function(m, exports3) {
+ for (var p in m)
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p))
+ __createBinding13(exports3, m, p);
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.ParsedMessage = void 0;
+ var abnf_1 = require_abnf();
+ Object.defineProperty(exports2, "ParsedMessage", { enumerable: true, get: function() {
+ return abnf_1.ParsedMessage;
+ } });
+ __exportStar13(require_utils10(), exports2);
+ }
+});
+
+// node_modules/valid-url/index.js
+var require_valid_url = __commonJS({
+ "node_modules/valid-url/index.js"(exports2, module2) {
+ (function(module3) {
+ "use strict";
+ module3.exports.is_uri = is_iri;
+ module3.exports.is_http_uri = is_http_iri;
+ module3.exports.is_https_uri = is_https_iri;
+ module3.exports.is_web_uri = is_web_iri;
+ module3.exports.isUri = is_iri;
+ module3.exports.isHttpUri = is_http_iri;
+ module3.exports.isHttpsUri = is_https_iri;
+ module3.exports.isWebUri = is_web_iri;
+ var splitUri = function(uri) {
+ var splitted = uri.match(/(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/);
+ return splitted;
+ };
+ function is_iri(value) {
+ if (!value) {
+ return;
+ }
+ if (/[^a-z0-9\:\/\?\#\[\]\@\!\$\&\'\(\)\*\+\,\;\=\.\-\_\~\%]/i.test(value))
+ return;
+ if (/%[^0-9a-f]/i.test(value))
+ return;
+ if (/%[0-9a-f](:?[^0-9a-f]|$)/i.test(value))
+ return;
+ var splitted = [];
+ var scheme = "";
+ var authority = "";
+ var path = "";
+ var query = "";
+ var fragment = "";
+ var out = "";
+ splitted = splitUri(value);
+ scheme = splitted[1];
+ authority = splitted[2];
+ path = splitted[3];
+ query = splitted[4];
+ fragment = splitted[5];
+ if (!(scheme && scheme.length && path.length >= 0))
+ return;
+ if (authority && authority.length) {
+ if (!(path.length === 0 || /^\//.test(path)))
+ return;
+ } else {
+ if (/^\/\//.test(path))
+ return;
+ }
+ if (!/^[a-z][a-z0-9\+\-\.]*$/.test(scheme.toLowerCase()))
+ return;
+ out += scheme + ":";
+ if (authority && authority.length) {
+ out += "//" + authority;
+ }
+ out += path;
+ if (query && query.length) {
+ out += "?" + query;
+ }
+ if (fragment && fragment.length) {
+ out += "#" + fragment;
+ }
+ return out;
+ }
+ function is_http_iri(value, allowHttps) {
+ if (!is_iri(value)) {
+ return;
+ }
+ var splitted = [];
+ var scheme = "";
+ var authority = "";
+ var path = "";
+ var port2 = "";
+ var query = "";
+ var fragment = "";
+ var out = "";
+ splitted = splitUri(value);
+ scheme = splitted[1];
+ authority = splitted[2];
+ path = splitted[3];
+ query = splitted[4];
+ fragment = splitted[5];
+ if (!scheme)
+ return;
+ if (allowHttps) {
+ if (scheme.toLowerCase() != "https")
+ return;
+ } else {
+ if (scheme.toLowerCase() != "http")
+ return;
+ }
+ if (!authority) {
+ return;
+ }
+ if (/:(\d+)$/.test(authority)) {
+ port2 = authority.match(/:(\d+)$/)[0];
+ authority = authority.replace(/:\d+$/, "");
+ }
+ out += scheme + ":";
+ out += "//" + authority;
+ if (port2) {
+ out += port2;
+ }
+ out += path;
+ if (query && query.length) {
+ out += "?" + query;
+ }
+ if (fragment && fragment.length) {
+ out += "#" + fragment;
+ }
+ return out;
+ }
+ function is_https_iri(value) {
+ return is_http_iri(value, true);
+ }
+ function is_web_iri(value) {
+ return is_http_iri(value) || is_https_iri(value);
+ }
+ })(module2);
+ }
+});
+
+// node_modules/siwe/dist/ethersCompat.js
+var require_ethersCompat = __commonJS({
+ "node_modules/siwe/dist/ethersCompat.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getAddress = exports2.hashMessage = exports2.verifyMessage = void 0;
+ var ethers_1 = require_lib36();
+ var ethersVerifyMessage = null;
+ var ethersHashMessage = null;
+ var ethersGetAddress = null;
+ try {
+ ethersVerifyMessage = ethers_1.ethers.utils.verifyMessage;
+ ethersHashMessage = ethers_1.ethers.utils.hashMessage;
+ ethersGetAddress = ethers_1.ethers.utils.getAddress;
+ } catch (_a) {
+ ethersVerifyMessage = ethers_1.ethers.verifyMessage;
+ ethersHashMessage = ethers_1.ethers.hashMessage;
+ ethersGetAddress = ethers_1.ethers.getAddress;
+ }
+ exports2.verifyMessage = ethersVerifyMessage;
+ exports2.hashMessage = ethersHashMessage;
+ exports2.getAddress = ethersGetAddress;
+ }
+});
+
+// node_modules/siwe/dist/types.js
+var require_types3 = __commonJS({
+ "node_modules/siwe/dist/types.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.SiweErrorType = exports2.SiweError = exports2.VerifyOptsKeys = exports2.VerifyParamsKeys = void 0;
+ exports2.VerifyParamsKeys = [
+ "signature",
+ "scheme",
+ "domain",
+ "nonce",
+ "time"
+ ];
+ exports2.VerifyOptsKeys = [
+ "provider",
+ "suppressExceptions",
+ "verificationFallback"
+ ];
+ var SiweError = class {
+ constructor(type, expected, received) {
+ this.type = type;
+ this.expected = expected;
+ this.received = received;
+ }
+ };
+ exports2.SiweError = SiweError;
+ var SiweErrorType;
+ (function(SiweErrorType2) {
+ SiweErrorType2["EXPIRED_MESSAGE"] = "Expired message.";
+ SiweErrorType2["INVALID_DOMAIN"] = "Invalid domain.";
+ SiweErrorType2["SCHEME_MISMATCH"] = "Scheme does not match provided scheme for verification.";
+ SiweErrorType2["DOMAIN_MISMATCH"] = "Domain does not match provided domain for verification.";
+ SiweErrorType2["NONCE_MISMATCH"] = "Nonce does not match provided nonce for verification.";
+ SiweErrorType2["INVALID_ADDRESS"] = "Invalid address.";
+ SiweErrorType2["INVALID_URI"] = "URI does not conform to RFC 3986.";
+ SiweErrorType2["INVALID_NONCE"] = "Nonce size smaller then 8 characters or is not alphanumeric.";
+ SiweErrorType2["NOT_YET_VALID_MESSAGE"] = "Message is not valid yet.";
+ SiweErrorType2["INVALID_SIGNATURE"] = "Signature does not match address of the message.";
+ SiweErrorType2["INVALID_TIME_FORMAT"] = "Invalid time format.";
+ SiweErrorType2["INVALID_MESSAGE_VERSION"] = "Invalid message version.";
+ SiweErrorType2["UNABLE_TO_PARSE"] = "Unable to parse the message.";
+ })(SiweErrorType = exports2.SiweErrorType || (exports2.SiweErrorType = {}));
+ }
+});
+
+// node_modules/@stablelib/random/lib/source/browser.js
+var require_browser2 = __commonJS({
+ "node_modules/@stablelib/random/lib/source/browser.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.BrowserRandomSource = void 0;
+ var QUOTA = 65536;
+ var BrowserRandomSource = class {
+ constructor() {
+ this.isAvailable = false;
+ this.isInstantiated = false;
+ const browserCrypto = typeof self !== "undefined" ? self.crypto || self.msCrypto : null;
+ if (browserCrypto && browserCrypto.getRandomValues !== void 0) {
+ this._crypto = browserCrypto;
+ this.isAvailable = true;
+ this.isInstantiated = true;
+ }
+ }
+ randomBytes(length) {
+ if (!this.isAvailable || !this._crypto) {
+ throw new Error("Browser random byte generator is not available.");
+ }
+ const out = new Uint8Array(length);
+ for (let i = 0; i < out.length; i += QUOTA) {
+ this._crypto.getRandomValues(out.subarray(i, i + Math.min(out.length - i, QUOTA)));
+ }
+ return out;
+ }
+ };
+ exports2.BrowserRandomSource = BrowserRandomSource;
+ }
+});
+
+// node_modules/@stablelib/wipe/lib/wipe.js
+var require_wipe = __commonJS({
+ "node_modules/@stablelib/wipe/lib/wipe.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ function wipe(array) {
+ for (var i = 0; i < array.length; i++) {
+ array[i] = 0;
+ }
+ return array;
+ }
+ exports2.wipe = wipe;
+ }
+});
+
+// node_modules/@stablelib/random/lib/source/node.js
+var require_node2 = __commonJS({
+ "node_modules/@stablelib/random/lib/source/node.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.NodeRandomSource = void 0;
+ var wipe_1 = require_wipe();
+ var NodeRandomSource = class {
+ constructor() {
+ this.isAvailable = false;
+ this.isInstantiated = false;
+ if (typeof require !== "undefined") {
+ const nodeCrypto = require("crypto");
+ if (nodeCrypto && nodeCrypto.randomBytes) {
+ this._crypto = nodeCrypto;
+ this.isAvailable = true;
+ this.isInstantiated = true;
+ }
+ }
+ }
+ randomBytes(length) {
+ if (!this.isAvailable || !this._crypto) {
+ throw new Error("Node.js random byte generator is not available.");
+ }
+ let buffer = this._crypto.randomBytes(length);
+ if (buffer.length !== length) {
+ throw new Error("NodeRandomSource: got fewer bytes than requested");
+ }
+ const out = new Uint8Array(length);
+ for (let i = 0; i < out.length; i++) {
+ out[i] = buffer[i];
+ }
+ (0, wipe_1.wipe)(buffer);
+ return out;
+ }
+ };
+ exports2.NodeRandomSource = NodeRandomSource;
+ }
+});
+
+// node_modules/@stablelib/random/lib/source/system.js
+var require_system = __commonJS({
+ "node_modules/@stablelib/random/lib/source/system.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.SystemRandomSource = void 0;
+ var browser_1 = require_browser2();
+ var node_1 = require_node2();
+ var SystemRandomSource = class {
+ constructor() {
+ this.isAvailable = false;
+ this.name = "";
+ this._source = new browser_1.BrowserRandomSource();
+ if (this._source.isAvailable) {
+ this.isAvailable = true;
+ this.name = "Browser";
+ return;
+ }
+ this._source = new node_1.NodeRandomSource();
+ if (this._source.isAvailable) {
+ this.isAvailable = true;
+ this.name = "Node";
+ return;
+ }
+ }
+ randomBytes(length) {
+ if (!this.isAvailable) {
+ throw new Error("System random byte generator is not available.");
+ }
+ return this._source.randomBytes(length);
+ }
+ };
+ exports2.SystemRandomSource = SystemRandomSource;
+ }
+});
+
+// node_modules/@stablelib/int/lib/int.js
+var require_int = __commonJS({
+ "node_modules/@stablelib/int/lib/int.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ function imulShim(a, b) {
+ var ah = a >>> 16 & 65535, al = a & 65535;
+ var bh = b >>> 16 & 65535, bl = b & 65535;
+ return al * bl + (ah * bl + al * bh << 16 >>> 0) | 0;
+ }
+ exports2.mul = Math.imul || imulShim;
+ function add(a, b) {
+ return a + b | 0;
+ }
+ exports2.add = add;
+ function sub(a, b) {
+ return a - b | 0;
+ }
+ exports2.sub = sub;
+ function rotl(x, n) {
+ return x << n | x >>> 32 - n;
+ }
+ exports2.rotl = rotl;
+ function rotr(x, n) {
+ return x << 32 - n | x >>> n;
+ }
+ exports2.rotr = rotr;
+ function isIntegerShim(n) {
+ return typeof n === "number" && isFinite(n) && Math.floor(n) === n;
+ }
+ exports2.isInteger = Number.isInteger || isIntegerShim;
+ exports2.MAX_SAFE_INTEGER = 9007199254740991;
+ exports2.isSafeInteger = function(n) {
+ return exports2.isInteger(n) && (n >= -exports2.MAX_SAFE_INTEGER && n <= exports2.MAX_SAFE_INTEGER);
+ };
+ }
+});
+
+// node_modules/@stablelib/binary/lib/binary.js
+var require_binary = __commonJS({
+ "node_modules/@stablelib/binary/lib/binary.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var int_1 = require_int();
+ function readInt16BE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ return (array[offset + 0] << 8 | array[offset + 1]) << 16 >> 16;
+ }
+ exports2.readInt16BE = readInt16BE;
+ function readUint16BE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ return (array[offset + 0] << 8 | array[offset + 1]) >>> 0;
+ }
+ exports2.readUint16BE = readUint16BE;
+ function readInt16LE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ return (array[offset + 1] << 8 | array[offset]) << 16 >> 16;
+ }
+ exports2.readInt16LE = readInt16LE;
+ function readUint16LE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ return (array[offset + 1] << 8 | array[offset]) >>> 0;
+ }
+ exports2.readUint16LE = readUint16LE;
+ function writeUint16BE(value, out, offset) {
+ if (out === void 0) {
+ out = new Uint8Array(2);
+ }
+ if (offset === void 0) {
+ offset = 0;
+ }
+ out[offset + 0] = value >>> 8;
+ out[offset + 1] = value >>> 0;
+ return out;
+ }
+ exports2.writeUint16BE = writeUint16BE;
+ exports2.writeInt16BE = writeUint16BE;
+ function writeUint16LE(value, out, offset) {
+ if (out === void 0) {
+ out = new Uint8Array(2);
+ }
+ if (offset === void 0) {
+ offset = 0;
+ }
+ out[offset + 0] = value >>> 0;
+ out[offset + 1] = value >>> 8;
+ return out;
+ }
+ exports2.writeUint16LE = writeUint16LE;
+ exports2.writeInt16LE = writeUint16LE;
+ function readInt32BE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ return array[offset] << 24 | array[offset + 1] << 16 | array[offset + 2] << 8 | array[offset + 3];
+ }
+ exports2.readInt32BE = readInt32BE;
+ function readUint32BE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ return (array[offset] << 24 | array[offset + 1] << 16 | array[offset + 2] << 8 | array[offset + 3]) >>> 0;
+ }
+ exports2.readUint32BE = readUint32BE;
+ function readInt32LE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ return array[offset + 3] << 24 | array[offset + 2] << 16 | array[offset + 1] << 8 | array[offset];
+ }
+ exports2.readInt32LE = readInt32LE;
+ function readUint32LE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ return (array[offset + 3] << 24 | array[offset + 2] << 16 | array[offset + 1] << 8 | array[offset]) >>> 0;
+ }
+ exports2.readUint32LE = readUint32LE;
+ function writeUint32BE(value, out, offset) {
+ if (out === void 0) {
+ out = new Uint8Array(4);
+ }
+ if (offset === void 0) {
+ offset = 0;
+ }
+ out[offset + 0] = value >>> 24;
+ out[offset + 1] = value >>> 16;
+ out[offset + 2] = value >>> 8;
+ out[offset + 3] = value >>> 0;
+ return out;
+ }
+ exports2.writeUint32BE = writeUint32BE;
+ exports2.writeInt32BE = writeUint32BE;
+ function writeUint32LE(value, out, offset) {
+ if (out === void 0) {
+ out = new Uint8Array(4);
+ }
+ if (offset === void 0) {
+ offset = 0;
+ }
+ out[offset + 0] = value >>> 0;
+ out[offset + 1] = value >>> 8;
+ out[offset + 2] = value >>> 16;
+ out[offset + 3] = value >>> 24;
+ return out;
+ }
+ exports2.writeUint32LE = writeUint32LE;
+ exports2.writeInt32LE = writeUint32LE;
+ function readInt64BE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ var hi = readInt32BE(array, offset);
+ var lo = readInt32BE(array, offset + 4);
+ return hi * 4294967296 + lo - (lo >> 31) * 4294967296;
+ }
+ exports2.readInt64BE = readInt64BE;
+ function readUint64BE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ var hi = readUint32BE(array, offset);
+ var lo = readUint32BE(array, offset + 4);
+ return hi * 4294967296 + lo;
+ }
+ exports2.readUint64BE = readUint64BE;
+ function readInt64LE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ var lo = readInt32LE(array, offset);
+ var hi = readInt32LE(array, offset + 4);
+ return hi * 4294967296 + lo - (lo >> 31) * 4294967296;
+ }
+ exports2.readInt64LE = readInt64LE;
+ function readUint64LE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ var lo = readUint32LE(array, offset);
+ var hi = readUint32LE(array, offset + 4);
+ return hi * 4294967296 + lo;
+ }
+ exports2.readUint64LE = readUint64LE;
+ function writeUint64BE(value, out, offset) {
+ if (out === void 0) {
+ out = new Uint8Array(8);
+ }
+ if (offset === void 0) {
+ offset = 0;
+ }
+ writeUint32BE(value / 4294967296 >>> 0, out, offset);
+ writeUint32BE(value >>> 0, out, offset + 4);
+ return out;
+ }
+ exports2.writeUint64BE = writeUint64BE;
+ exports2.writeInt64BE = writeUint64BE;
+ function writeUint64LE(value, out, offset) {
+ if (out === void 0) {
+ out = new Uint8Array(8);
+ }
+ if (offset === void 0) {
+ offset = 0;
+ }
+ writeUint32LE(value >>> 0, out, offset);
+ writeUint32LE(value / 4294967296 >>> 0, out, offset + 4);
+ return out;
+ }
+ exports2.writeUint64LE = writeUint64LE;
+ exports2.writeInt64LE = writeUint64LE;
+ function readUintBE(bitLength, array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ if (bitLength % 8 !== 0) {
+ throw new Error("readUintBE supports only bitLengths divisible by 8");
+ }
+ if (bitLength / 8 > array.length - offset) {
+ throw new Error("readUintBE: array is too short for the given bitLength");
+ }
+ var result = 0;
+ var mul = 1;
+ for (var i = bitLength / 8 + offset - 1; i >= offset; i--) {
+ result += array[i] * mul;
+ mul *= 256;
+ }
+ return result;
+ }
+ exports2.readUintBE = readUintBE;
+ function readUintLE(bitLength, array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ if (bitLength % 8 !== 0) {
+ throw new Error("readUintLE supports only bitLengths divisible by 8");
+ }
+ if (bitLength / 8 > array.length - offset) {
+ throw new Error("readUintLE: array is too short for the given bitLength");
+ }
+ var result = 0;
+ var mul = 1;
+ for (var i = offset; i < offset + bitLength / 8; i++) {
+ result += array[i] * mul;
+ mul *= 256;
+ }
+ return result;
+ }
+ exports2.readUintLE = readUintLE;
+ function writeUintBE(bitLength, value, out, offset) {
+ if (out === void 0) {
+ out = new Uint8Array(bitLength / 8);
+ }
+ if (offset === void 0) {
+ offset = 0;
+ }
+ if (bitLength % 8 !== 0) {
+ throw new Error("writeUintBE supports only bitLengths divisible by 8");
+ }
+ if (!int_1.isSafeInteger(value)) {
+ throw new Error("writeUintBE value must be an integer");
+ }
+ var div = 1;
+ for (var i = bitLength / 8 + offset - 1; i >= offset; i--) {
+ out[i] = value / div & 255;
+ div *= 256;
+ }
+ return out;
+ }
+ exports2.writeUintBE = writeUintBE;
+ function writeUintLE(bitLength, value, out, offset) {
+ if (out === void 0) {
+ out = new Uint8Array(bitLength / 8);
+ }
+ if (offset === void 0) {
+ offset = 0;
+ }
+ if (bitLength % 8 !== 0) {
+ throw new Error("writeUintLE supports only bitLengths divisible by 8");
+ }
+ if (!int_1.isSafeInteger(value)) {
+ throw new Error("writeUintLE value must be an integer");
+ }
+ var div = 1;
+ for (var i = offset; i < offset + bitLength / 8; i++) {
+ out[i] = value / div & 255;
+ div *= 256;
+ }
+ return out;
+ }
+ exports2.writeUintLE = writeUintLE;
+ function readFloat32BE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ var view = new DataView(array.buffer, array.byteOffset, array.byteLength);
+ return view.getFloat32(offset);
+ }
+ exports2.readFloat32BE = readFloat32BE;
+ function readFloat32LE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ var view = new DataView(array.buffer, array.byteOffset, array.byteLength);
+ return view.getFloat32(offset, true);
+ }
+ exports2.readFloat32LE = readFloat32LE;
+ function readFloat64BE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ var view = new DataView(array.buffer, array.byteOffset, array.byteLength);
+ return view.getFloat64(offset);
+ }
+ exports2.readFloat64BE = readFloat64BE;
+ function readFloat64LE(array, offset) {
+ if (offset === void 0) {
+ offset = 0;
+ }
+ var view = new DataView(array.buffer, array.byteOffset, array.byteLength);
+ return view.getFloat64(offset, true);
+ }
+ exports2.readFloat64LE = readFloat64LE;
+ function writeFloat32BE(value, out, offset) {
+ if (out === void 0) {
+ out = new Uint8Array(4);
+ }
+ if (offset === void 0) {
+ offset = 0;
+ }
+ var view = new DataView(out.buffer, out.byteOffset, out.byteLength);
+ view.setFloat32(offset, value);
+ return out;
+ }
+ exports2.writeFloat32BE = writeFloat32BE;
+ function writeFloat32LE(value, out, offset) {
+ if (out === void 0) {
+ out = new Uint8Array(4);
+ }
+ if (offset === void 0) {
+ offset = 0;
+ }
+ var view = new DataView(out.buffer, out.byteOffset, out.byteLength);
+ view.setFloat32(offset, value, true);
+ return out;
+ }
+ exports2.writeFloat32LE = writeFloat32LE;
+ function writeFloat64BE(value, out, offset) {
+ if (out === void 0) {
+ out = new Uint8Array(8);
+ }
+ if (offset === void 0) {
+ offset = 0;
+ }
+ var view = new DataView(out.buffer, out.byteOffset, out.byteLength);
+ view.setFloat64(offset, value);
+ return out;
+ }
+ exports2.writeFloat64BE = writeFloat64BE;
+ function writeFloat64LE(value, out, offset) {
+ if (out === void 0) {
+ out = new Uint8Array(8);
+ }
+ if (offset === void 0) {
+ offset = 0;
+ }
+ var view = new DataView(out.buffer, out.byteOffset, out.byteLength);
+ view.setFloat64(offset, value, true);
+ return out;
+ }
+ exports2.writeFloat64LE = writeFloat64LE;
+ }
+});
+
+// node_modules/@stablelib/random/lib/random.js
+var require_random2 = __commonJS({
+ "node_modules/@stablelib/random/lib/random.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.randomStringForEntropy = exports2.randomString = exports2.randomUint32 = exports2.randomBytes = exports2.defaultRandomSource = void 0;
+ var system_1 = require_system();
+ var binary_1 = require_binary();
+ var wipe_1 = require_wipe();
+ exports2.defaultRandomSource = new system_1.SystemRandomSource();
+ function randomBytes(length, prng = exports2.defaultRandomSource) {
+ return prng.randomBytes(length);
+ }
+ exports2.randomBytes = randomBytes;
+ function randomUint32(prng = exports2.defaultRandomSource) {
+ const buf = randomBytes(4, prng);
+ const result = (0, binary_1.readUint32LE)(buf);
+ (0, wipe_1.wipe)(buf);
+ return result;
+ }
+ exports2.randomUint32 = randomUint32;
+ var ALPHANUMERIC = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+ function randomString(length, charset = ALPHANUMERIC, prng = exports2.defaultRandomSource) {
+ if (charset.length < 2) {
+ throw new Error("randomString charset is too short");
+ }
+ if (charset.length > 256) {
+ throw new Error("randomString charset is too long");
+ }
+ let out = "";
+ const charsLen = charset.length;
+ const maxByte = 256 - 256 % charsLen;
+ while (length > 0) {
+ const buf = randomBytes(Math.ceil(length * 256 / maxByte), prng);
+ for (let i = 0; i < buf.length && length > 0; i++) {
+ const randomByte = buf[i];
+ if (randomByte < maxByte) {
+ out += charset.charAt(randomByte % charsLen);
+ length--;
+ }
+ }
+ (0, wipe_1.wipe)(buf);
+ }
+ return out;
+ }
+ exports2.randomString = randomString;
+ function randomStringForEntropy(bits, charset = ALPHANUMERIC, prng = exports2.defaultRandomSource) {
+ const length = Math.ceil(bits / (Math.log(charset.length) / Math.LN2));
+ return randomString(length, charset, prng);
+ }
+ exports2.randomStringForEntropy = randomStringForEntropy;
+ }
+});
+
+// node_modules/siwe/dist/utils.js
+var require_utils11 = __commonJS({
+ "node_modules/siwe/dist/utils.js"(exports2) {
+ "use strict";
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.checkInvalidKeys = exports2.isValidISO8601Date = exports2.generateNonce = exports2.checkContractWalletSignature = void 0;
+ var random_1 = require_random2();
+ var ethers_1 = require_lib36();
+ var ethersCompat_1 = require_ethersCompat();
+ var EIP1271_ABI = [
+ "function isValidSignature(bytes32 _message, bytes _signature) public view returns (bytes4)"
+ ];
+ var EIP1271_MAGICVALUE = "0x1626ba7e";
+ var ISO8601 = /^(?[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01]))[Tt]([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(.[0-9]+)?(([Zz])|([+|-]([01][0-9]|2[0-3]):[0-5][0-9]))$/;
+ var checkContractWalletSignature = (message, signature, provider) => __awaiter13(void 0, void 0, void 0, function* () {
+ if (!provider) {
+ return false;
+ }
+ const walletContract = new ethers_1.Contract(message.address, EIP1271_ABI, provider);
+ const hashedMessage = (0, ethersCompat_1.hashMessage)(message.prepareMessage());
+ const res = yield walletContract.isValidSignature(hashedMessage, signature);
+ return res === EIP1271_MAGICVALUE;
+ });
+ exports2.checkContractWalletSignature = checkContractWalletSignature;
+ var generateNonce = () => {
+ const nonce = (0, random_1.randomStringForEntropy)(96);
+ if (!nonce || nonce.length < 8) {
+ throw new Error("Error during nonce creation.");
+ }
+ return nonce;
+ };
+ exports2.generateNonce = generateNonce;
+ var isValidISO8601Date = (inputDate) => {
+ const inputMatch = ISO8601.exec(inputDate);
+ if (!inputDate) {
+ return false;
+ }
+ const inputDateParsed = new Date(inputMatch.groups.date).toISOString();
+ const parsedInputMatch = ISO8601.exec(inputDateParsed);
+ return inputMatch.groups.date === parsedInputMatch.groups.date;
+ };
+ exports2.isValidISO8601Date = isValidISO8601Date;
+ var checkInvalidKeys = (obj, keys) => {
+ const invalidKeys = [];
+ Object.keys(obj).forEach((key) => {
+ if (!keys.includes(key)) {
+ invalidKeys.push(key);
+ }
+ });
+ return invalidKeys;
+ };
+ exports2.checkInvalidKeys = checkInvalidKeys;
+ }
+});
+
+// node_modules/siwe/dist/client.js
+var require_client = __commonJS({
+ "node_modules/siwe/dist/client.js"(exports2) {
+ "use strict";
+ var __createBinding13 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() {
+ return m[k];
+ } };
+ }
+ Object.defineProperty(o, k2, desc);
+ } : function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+ });
+ var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+ } : function(o, v) {
+ o["default"] = v;
+ });
+ var __importStar13 = exports2 && exports2.__importStar || function(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
+ __createBinding13(result, mod, k);
+ }
+ __setModuleDefault(result, mod);
+ return result;
+ };
+ var __awaiter13 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.SiweMessage = void 0;
+ var siwe_parser_1 = require_parsers();
+ var uri = __importStar13(require_valid_url());
+ var ethersCompat_1 = require_ethersCompat();
+ var types_1 = require_types3();
+ var utils_1 = require_utils11();
+ var SiweMessage = class {
+ /**
+ * Creates a parsed Sign-In with Ethereum Message (EIP-4361) object from a
+ * string or an object. If a string is used an ABNF parser is called to
+ * validate the parameter, otherwise the fields are attributed.
+ * @param param {string | SiweMessage} Sign message as a string or an object.
+ */
+ constructor(param) {
+ if (typeof param === "string") {
+ const parsedMessage = new siwe_parser_1.ParsedMessage(param);
+ this.scheme = parsedMessage.scheme;
+ this.domain = parsedMessage.domain;
+ this.address = parsedMessage.address;
+ this.statement = parsedMessage.statement;
+ this.uri = parsedMessage.uri;
+ this.version = parsedMessage.version;
+ this.nonce = parsedMessage.nonce;
+ this.issuedAt = parsedMessage.issuedAt;
+ this.expirationTime = parsedMessage.expirationTime;
+ this.notBefore = parsedMessage.notBefore;
+ this.requestId = parsedMessage.requestId;
+ this.chainId = parsedMessage.chainId;
+ this.resources = parsedMessage.resources;
+ } else {
+ this.scheme = param === null || param === void 0 ? void 0 : param.scheme;
+ this.domain = param.domain;
+ this.address = param.address;
+ this.statement = param === null || param === void 0 ? void 0 : param.statement;
+ this.uri = param.uri;
+ this.version = param.version;
+ this.chainId = param.chainId;
+ this.nonce = param.nonce;
+ this.issuedAt = param === null || param === void 0 ? void 0 : param.issuedAt;
+ this.expirationTime = param === null || param === void 0 ? void 0 : param.expirationTime;
+ this.notBefore = param === null || param === void 0 ? void 0 : param.notBefore;
+ this.requestId = param === null || param === void 0 ? void 0 : param.requestId;
+ this.resources = param === null || param === void 0 ? void 0 : param.resources;
+ if (typeof this.chainId === "string") {
+ this.chainId = (0, siwe_parser_1.parseIntegerNumber)(this.chainId);
+ }
+ }
+ this.nonce = this.nonce || (0, utils_1.generateNonce)();
+ this.validateMessage();
+ }
+ /**
+ * This function can be used to retrieve an EIP-4361 formated message for
+ * signature, although you can call it directly it's advised to use
+ * [prepareMessage()] instead which will resolve to the correct method based
+ * on the [type] attribute of this object, in case of other formats being
+ * implemented.
+ * @returns {string} EIP-4361 formated message, ready for EIP-191 signing.
+ */
+ toMessage() {
+ this.validateMessage();
+ const headerPrefx = this.scheme ? `${this.scheme}://${this.domain}` : this.domain;
+ const header = `${headerPrefx} wants you to sign in with your Ethereum account:`;
+ const uriField = `URI: ${this.uri}`;
+ let prefix = [header, this.address].join("\n");
+ const versionField = `Version: ${this.version}`;
+ if (!this.nonce) {
+ this.nonce = (0, utils_1.generateNonce)();
+ }
+ const chainField = `Chain ID: ` + this.chainId || "1";
+ const nonceField = `Nonce: ${this.nonce}`;
+ const suffixArray = [uriField, versionField, chainField, nonceField];
+ this.issuedAt = this.issuedAt || (/* @__PURE__ */ new Date()).toISOString();
+ suffixArray.push(`Issued At: ${this.issuedAt}`);
+ if (this.expirationTime) {
+ const expiryField = `Expiration Time: ${this.expirationTime}`;
+ suffixArray.push(expiryField);
+ }
+ if (this.notBefore) {
+ suffixArray.push(`Not Before: ${this.notBefore}`);
+ }
+ if (this.requestId) {
+ suffixArray.push(`Request ID: ${this.requestId}`);
+ }
+ if (this.resources) {
+ suffixArray.push([`Resources:`, ...this.resources.map((x) => `- ${x}`)].join("\n"));
+ }
+ const suffix = suffixArray.join("\n");
+ prefix = [prefix, this.statement].join("\n\n");
+ if (this.statement) {
+ prefix += "\n";
+ }
+ return [prefix, suffix].join("\n");
+ }
+ /**
+ * This method parses all the fields in the object and creates a messaging for signing
+ * message according with the type defined.
+ * @returns {string} Returns a message ready to be signed according with the
+ * type defined in the object.
+ */
+ prepareMessage() {
+ let message;
+ switch (this.version) {
+ case "1": {
+ message = this.toMessage();
+ break;
+ }
+ default: {
+ message = this.toMessage();
+ break;
+ }
+ }
+ return message;
+ }
+ /**
+ * @deprecated
+ * Verifies the integrity of the object by matching its signature.
+ * @param signature Signature to match the address in the message.
+ * @param provider Ethers provider to be used for EIP-1271 validation
+ */
+ validate(signature, provider) {
+ return __awaiter13(this, void 0, void 0, function* () {
+ console.warn("validate() has been deprecated, please update your code to use verify(). validate() may be removed in future versions.");
+ return this.verify({ signature }, { provider, suppressExceptions: false }).then(({ data }) => data).catch(({ error }) => {
+ throw error;
+ });
+ });
+ }
+ /**
+ * Verifies the integrity of the object by matching its signature.
+ * @param params Parameters to verify the integrity of the message, signature is required.
+ * @returns {Promise} This object if valid.
+ */
+ verify(params, opts = { suppressExceptions: false }) {
+ return __awaiter13(this, void 0, void 0, function* () {
+ return new Promise((resolve, reject) => {
+ var _a, _b, _c;
+ const fail = (result) => {
+ if (opts.suppressExceptions) {
+ return resolve(result);
+ } else {
+ return reject(result);
+ }
+ };
+ const invalidParams = (0, utils_1.checkInvalidKeys)(params, types_1.VerifyParamsKeys);
+ if (invalidParams.length > 0) {
+ fail({
+ success: false,
+ data: this,
+ error: new Error(`${invalidParams.join(", ")} is/are not valid key(s) for VerifyParams.`)
+ });
+ }
+ const invalidOpts = (0, utils_1.checkInvalidKeys)(opts, types_1.VerifyOptsKeys);
+ if (invalidParams.length > 0) {
+ fail({
+ success: false,
+ data: this,
+ error: new Error(`${invalidOpts.join(", ")} is/are not valid key(s) for VerifyOpts.`)
+ });
+ }
+ const { signature, scheme, domain, nonce, time } = params;
+ if (scheme && scheme !== this.scheme) {
+ fail({
+ success: false,
+ data: this,
+ error: new types_1.SiweError(types_1.SiweErrorType.SCHEME_MISMATCH, scheme, this.scheme)
+ });
+ }
+ if (domain && domain !== this.domain) {
+ fail({
+ success: false,
+ data: this,
+ error: new types_1.SiweError(types_1.SiweErrorType.DOMAIN_MISMATCH, domain, this.domain)
+ });
+ }
+ if (nonce && nonce !== this.nonce) {
+ fail({
+ success: false,
+ data: this,
+ error: new types_1.SiweError(types_1.SiweErrorType.NONCE_MISMATCH, nonce, this.nonce)
+ });
+ }
+ const checkTime = new Date(time || /* @__PURE__ */ new Date());
+ if (this.expirationTime) {
+ const expirationDate = new Date(this.expirationTime);
+ if (checkTime.getTime() >= expirationDate.getTime()) {
+ fail({
+ success: false,
+ data: this,
+ error: new types_1.SiweError(types_1.SiweErrorType.EXPIRED_MESSAGE, `${checkTime.toISOString()} < ${expirationDate.toISOString()}`, `${checkTime.toISOString()} >= ${expirationDate.toISOString()}`)
+ });
+ }
+ }
+ if (this.notBefore) {
+ const notBefore = new Date(this.notBefore);
+ if (checkTime.getTime() < notBefore.getTime()) {
+ fail({
+ success: false,
+ data: this,
+ error: new types_1.SiweError(types_1.SiweErrorType.NOT_YET_VALID_MESSAGE, `${checkTime.toISOString()} >= ${notBefore.toISOString()}`, `${checkTime.toISOString()} < ${notBefore.toISOString()}`)
+ });
+ }
+ }
+ let EIP4361Message;
+ try {
+ EIP4361Message = this.prepareMessage();
+ } catch (e) {
+ fail({
+ success: false,
+ data: this,
+ error: e
+ });
+ }
+ let addr;
+ try {
+ addr = (0, ethersCompat_1.verifyMessage)(EIP4361Message, signature);
+ } catch (e) {
+ console.error(e);
+ }
+ if (addr === this.address) {
+ return resolve({
+ success: true,
+ data: this
+ });
+ } else {
+ const EIP1271Promise = (0, utils_1.checkContractWalletSignature)(this, signature, opts.provider).then((isValid) => {
+ if (!isValid) {
+ return {
+ success: false,
+ data: this,
+ error: new types_1.SiweError(types_1.SiweErrorType.INVALID_SIGNATURE, addr, `Resolved address to be ${this.address}`)
+ };
+ }
+ return {
+ success: true,
+ data: this
+ };
+ }).catch((error) => {
+ return {
+ success: false,
+ data: this,
+ error
+ };
+ });
+ Promise.all([
+ EIP1271Promise,
+ (_c = (_b = (_a = opts === null || opts === void 0 ? void 0 : opts.verificationFallback) === null || _a === void 0 ? void 0 : _a.call(opts, params, opts, this, EIP1271Promise)) === null || _b === void 0 ? void 0 : _b.then((res) => res)) === null || _c === void 0 ? void 0 : _c.catch((res) => res)
+ ]).then(([EIP1271Response, fallbackResponse]) => {
+ if (fallbackResponse) {
+ if (fallbackResponse.success) {
+ return resolve(fallbackResponse);
+ } else {
+ fail(fallbackResponse);
+ }
+ } else {
+ if (EIP1271Response.success) {
+ return resolve(EIP1271Response);
+ } else {
+ fail(EIP1271Response);
+ }
+ }
+ });
+ }
+ });
+ });
+ }
+ /**
+ * Validates the values of this object fields.
+ * @throws Throws an {ErrorType} if a field is invalid.
+ */
+ validateMessage(...args) {
+ var _a;
+ if (args.length > 0) {
+ throw new types_1.SiweError(types_1.SiweErrorType.UNABLE_TO_PARSE, `Unexpected argument in the validateMessage function.`);
+ }
+ if (!this.domain || this.domain.length === 0 || !/[^#?]*/.test(this.domain)) {
+ throw new types_1.SiweError(types_1.SiweErrorType.INVALID_DOMAIN, `${this.domain} to be a valid domain.`);
+ }
+ if (!(0, siwe_parser_1.isEIP55Address)(this.address)) {
+ throw new types_1.SiweError(types_1.SiweErrorType.INVALID_ADDRESS, (0, ethersCompat_1.getAddress)(this.address), this.address);
+ }
+ if (!uri.isUri(this.uri)) {
+ throw new types_1.SiweError(types_1.SiweErrorType.INVALID_URI, `${this.uri} to be a valid uri.`);
+ }
+ if (this.version !== "1") {
+ throw new types_1.SiweError(types_1.SiweErrorType.INVALID_MESSAGE_VERSION, "1", this.version);
+ }
+ const nonce = (_a = this === null || this === void 0 ? void 0 : this.nonce) === null || _a === void 0 ? void 0 : _a.match(/[a-zA-Z0-9]{8,}/);
+ if (!nonce || this.nonce.length < 8 || nonce[0] !== this.nonce) {
+ throw new types_1.SiweError(types_1.SiweErrorType.INVALID_NONCE, `Length > 8 (${nonce.length}). Alphanumeric.`, this.nonce);
+ }
+ if (this.issuedAt) {
+ if (!(0, utils_1.isValidISO8601Date)(this.issuedAt)) {
+ throw new Error(types_1.SiweErrorType.INVALID_TIME_FORMAT);
+ }
+ }
+ if (this.expirationTime) {
+ if (!(0, utils_1.isValidISO8601Date)(this.expirationTime)) {
+ throw new Error(types_1.SiweErrorType.INVALID_TIME_FORMAT);
+ }
+ }
+ if (this.notBefore) {
+ if (!(0, utils_1.isValidISO8601Date)(this.notBefore)) {
+ throw new Error(types_1.SiweErrorType.INVALID_TIME_FORMAT);
+ }
+ }
+ }
+ };
+ exports2.SiweMessage = SiweMessage;
+ }
+});
+
+// node_modules/siwe/dist/siwe.js
+var require_siwe = __commonJS({
+ "node_modules/siwe/dist/siwe.js"(exports2) {
+ "use strict";
+ var __createBinding13 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() {
+ return m[k];
+ } };
+ }
+ Object.defineProperty(o, k2, desc);
+ } : function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+ });
+ var __exportStar13 = exports2 && exports2.__exportStar || function(m, exports3) {
+ for (var p in m)
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p))
+ __createBinding13(exports3, m, p);
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ __exportStar13(require_client(), exports2);
+ __exportStar13(require_types3(), exports2);
+ __exportStar13(require_utils11(), exports2);
+ }
+});
+
+// node_modules/@lit-protocol/auth-helpers/node_modules/tslib/tslib.es6.js
+var tslib_es6_exports2 = {};
+__export(tslib_es6_exports2, {
+ __assign: () => __assign2,
+ __asyncDelegator: () => __asyncDelegator2,
+ __asyncGenerator: () => __asyncGenerator2,
+ __asyncValues: () => __asyncValues2,
+ __await: () => __await2,
+ __awaiter: () => __awaiter2,
+ __classPrivateFieldGet: () => __classPrivateFieldGet2,
+ __classPrivateFieldSet: () => __classPrivateFieldSet2,
+ __createBinding: () => __createBinding2,
+ __decorate: () => __decorate2,
+ __exportStar: () => __exportStar2,
+ __extends: () => __extends2,
+ __generator: () => __generator2,
+ __importDefault: () => __importDefault2,
+ __importStar: () => __importStar2,
+ __makeTemplateObject: () => __makeTemplateObject2,
+ __metadata: () => __metadata2,
+ __param: () => __param2,
+ __read: () => __read2,
+ __rest: () => __rest2,
+ __spread: () => __spread2,
+ __spreadArrays: () => __spreadArrays2,
+ __values: () => __values2
+});
+function __extends2(d, b) {
+ extendStatics2(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+function __rest2(s, e) {
+ var t = {};
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+}
+function __decorate2(decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ r = Reflect.decorate(decorators, target, key, desc);
+ else
+ for (var i = decorators.length - 1; i >= 0; i--)
+ if (d = decorators[i])
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+function __param2(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+}
+function __metadata2(metadataKey, metadataValue) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(metadataKey, metadataValue);
+}
+function __awaiter2(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+}
+function __generator2(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+}
+function __createBinding2(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+}
+function __exportStar2(m, exports2) {
+ for (var p in m)
+ if (p !== "default" && !exports2.hasOwnProperty(p))
+ exports2[p] = m[p];
+}
+function __values2(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m)
+ return m.call(o);
+ if (o && typeof o.length === "number")
+ return {
+ next: function() {
+ if (o && i >= o.length)
+ o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+}
+function __read2(o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m)
+ return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
+ ar.push(r.value);
+ } catch (error) {
+ e = { error };
+ } finally {
+ try {
+ if (r && !r.done && (m = i["return"]))
+ m.call(i);
+ } finally {
+ if (e)
+ throw e.error;
+ }
+ }
+ return ar;
+}
+function __spread2() {
+ for (var ar = [], i = 0; i < arguments.length; i++)
+ ar = ar.concat(__read2(arguments[i]));
+ return ar;
+}
+function __spreadArrays2() {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
+ s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+}
+function __await2(v) {
+ return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
+}
+function __asyncGenerator2(thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i;
+ function verb(n) {
+ if (g[n])
+ i[n] = function(v) {
+ return new Promise(function(a, b) {
+ q.push([n, v, a, b]) > 1 || resume(n, v);
+ });
+ };
+ }
+ function resume(n, v) {
+ try {
+ step(g[n](v));
+ } catch (e) {
+ settle(q[0][3], e);
+ }
+ }
+ function step(r) {
+ r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
+ }
+ function fulfill(value) {
+ resume("next", value);
+ }
+ function reject(value) {
+ resume("throw", value);
+ }
+ function settle(f, v) {
+ if (f(v), q.shift(), q.length)
+ resume(q[0][0], q[0][1]);
+ }
+}
+function __asyncDelegator2(o) {
+ var i, p;
+ return i = {}, verb("next"), verb("throw", function(e) {
+ throw e;
+ }), verb("return"), i[Symbol.iterator] = function() {
+ return this;
+ }, i;
+ function verb(n, f) {
+ i[n] = o[n] ? function(v) {
+ return (p = !p) ? { value: __await2(o[n](v)), done: n === "return" } : f ? f(v) : v;
+ } : f;
+ }
+}
+function __asyncValues2(o) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator], i;
+ return m ? m.call(o) : (o = typeof __values2 === "function" ? __values2(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i);
+ function verb(n) {
+ i[n] = o[n] && function(v) {
+ return new Promise(function(resolve, reject) {
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
+ });
+ };
+ }
+ function settle(resolve, reject, d, v) {
+ Promise.resolve(v).then(function(v2) {
+ resolve({ value: v2, done: d });
+ }, reject);
+ }
+}
+function __makeTemplateObject2(cooked, raw) {
+ if (Object.defineProperty) {
+ Object.defineProperty(cooked, "raw", { value: raw });
+ } else {
+ cooked.raw = raw;
+ }
+ return cooked;
+}
+function __importStar2(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (Object.hasOwnProperty.call(mod, k))
+ result[k] = mod[k];
+ }
+ result.default = mod;
+ return result;
+}
+function __importDefault2(mod) {
+ return mod && mod.__esModule ? mod : { default: mod };
+}
+function __classPrivateFieldGet2(receiver, privateMap) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to get private field on non-instance");
+ }
+ return privateMap.get(receiver);
+}
+function __classPrivateFieldSet2(receiver, privateMap, value) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to set private field on non-instance");
+ }
+ privateMap.set(receiver, value);
+ return value;
+}
+var extendStatics2, __assign2;
+var init_tslib_es62 = __esm({
+ "node_modules/@lit-protocol/auth-helpers/node_modules/tslib/tslib.es6.js"() {
+ extendStatics2 = function(d, b) {
+ extendStatics2 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (b2.hasOwnProperty(p))
+ d2[p] = b2[p];
+ };
+ return extendStatics2(d, b);
+ };
+ __assign2 = function() {
+ __assign2 = Object.assign || function __assign13(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign2.apply(this, arguments);
+ };
+ }
+});
+
+// node_modules/@lit-protocol/auth-helpers/src/lib/models.js
+var require_models = __commonJS({
+ "node_modules/@lit-protocol/auth-helpers/src/lib/models.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ }
+});
+
+// node_modules/@lit-protocol/constants/node_modules/tslib/tslib.es6.js
+var tslib_es6_exports3 = {};
+__export(tslib_es6_exports3, {
+ __assign: () => __assign3,
+ __asyncDelegator: () => __asyncDelegator3,
+ __asyncGenerator: () => __asyncGenerator3,
+ __asyncValues: () => __asyncValues3,
+ __await: () => __await3,
+ __awaiter: () => __awaiter3,
+ __classPrivateFieldGet: () => __classPrivateFieldGet3,
+ __classPrivateFieldSet: () => __classPrivateFieldSet3,
+ __createBinding: () => __createBinding3,
+ __decorate: () => __decorate3,
+ __exportStar: () => __exportStar3,
+ __extends: () => __extends3,
+ __generator: () => __generator3,
+ __importDefault: () => __importDefault3,
+ __importStar: () => __importStar3,
+ __makeTemplateObject: () => __makeTemplateObject3,
+ __metadata: () => __metadata3,
+ __param: () => __param3,
+ __read: () => __read3,
+ __rest: () => __rest3,
+ __spread: () => __spread3,
+ __spreadArrays: () => __spreadArrays3,
+ __values: () => __values3
+});
+function __extends3(d, b) {
+ extendStatics3(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+function __rest3(s, e) {
+ var t = {};
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+}
+function __decorate3(decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ r = Reflect.decorate(decorators, target, key, desc);
+ else
+ for (var i = decorators.length - 1; i >= 0; i--)
+ if (d = decorators[i])
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+function __param3(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+}
+function __metadata3(metadataKey, metadataValue) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(metadataKey, metadataValue);
+}
+function __awaiter3(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+}
+function __generator3(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+}
+function __createBinding3(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+}
+function __exportStar3(m, exports2) {
+ for (var p in m)
+ if (p !== "default" && !exports2.hasOwnProperty(p))
+ exports2[p] = m[p];
+}
+function __values3(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m)
+ return m.call(o);
+ if (o && typeof o.length === "number")
+ return {
+ next: function() {
+ if (o && i >= o.length)
+ o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+}
+function __read3(o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m)
+ return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
+ ar.push(r.value);
+ } catch (error) {
+ e = { error };
+ } finally {
+ try {
+ if (r && !r.done && (m = i["return"]))
+ m.call(i);
+ } finally {
+ if (e)
+ throw e.error;
+ }
+ }
+ return ar;
+}
+function __spread3() {
+ for (var ar = [], i = 0; i < arguments.length; i++)
+ ar = ar.concat(__read3(arguments[i]));
+ return ar;
+}
+function __spreadArrays3() {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
+ s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+}
+function __await3(v) {
+ return this instanceof __await3 ? (this.v = v, this) : new __await3(v);
+}
+function __asyncGenerator3(thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i;
+ function verb(n) {
+ if (g[n])
+ i[n] = function(v) {
+ return new Promise(function(a, b) {
+ q.push([n, v, a, b]) > 1 || resume(n, v);
+ });
+ };
+ }
+ function resume(n, v) {
+ try {
+ step(g[n](v));
+ } catch (e) {
+ settle(q[0][3], e);
+ }
+ }
+ function step(r) {
+ r.value instanceof __await3 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
+ }
+ function fulfill(value) {
+ resume("next", value);
+ }
+ function reject(value) {
+ resume("throw", value);
+ }
+ function settle(f, v) {
+ if (f(v), q.shift(), q.length)
+ resume(q[0][0], q[0][1]);
+ }
+}
+function __asyncDelegator3(o) {
+ var i, p;
+ return i = {}, verb("next"), verb("throw", function(e) {
+ throw e;
+ }), verb("return"), i[Symbol.iterator] = function() {
+ return this;
+ }, i;
+ function verb(n, f) {
+ i[n] = o[n] ? function(v) {
+ return (p = !p) ? { value: __await3(o[n](v)), done: n === "return" } : f ? f(v) : v;
+ } : f;
+ }
+}
+function __asyncValues3(o) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator], i;
+ return m ? m.call(o) : (o = typeof __values3 === "function" ? __values3(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i);
+ function verb(n) {
+ i[n] = o[n] && function(v) {
+ return new Promise(function(resolve, reject) {
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
+ });
+ };
+ }
+ function settle(resolve, reject, d, v) {
+ Promise.resolve(v).then(function(v2) {
+ resolve({ value: v2, done: d });
+ }, reject);
+ }
+}
+function __makeTemplateObject3(cooked, raw) {
+ if (Object.defineProperty) {
+ Object.defineProperty(cooked, "raw", { value: raw });
+ } else {
+ cooked.raw = raw;
+ }
+ return cooked;
+}
+function __importStar3(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (Object.hasOwnProperty.call(mod, k))
+ result[k] = mod[k];
+ }
+ result.default = mod;
+ return result;
+}
+function __importDefault3(mod) {
+ return mod && mod.__esModule ? mod : { default: mod };
+}
+function __classPrivateFieldGet3(receiver, privateMap) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to get private field on non-instance");
+ }
+ return privateMap.get(receiver);
+}
+function __classPrivateFieldSet3(receiver, privateMap, value) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to set private field on non-instance");
+ }
+ privateMap.set(receiver, value);
+ return value;
+}
+var extendStatics3, __assign3;
+var init_tslib_es63 = __esm({
+ "node_modules/@lit-protocol/constants/node_modules/tslib/tslib.es6.js"() {
+ extendStatics3 = function(d, b) {
+ extendStatics3 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (b2.hasOwnProperty(p))
+ d2[p] = b2[p];
+ };
+ return extendStatics3(d, b);
+ };
+ __assign3 = function() {
+ __assign3 = Object.assign || function __assign13(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign3.apply(this, arguments);
+ };
+ }
+});
+
+// node_modules/@lit-protocol/constants/src/lib/version.js
+var require_version26 = __commonJS({
+ "node_modules/@lit-protocol/constants/src/lib/version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.version = void 0;
+ exports2.version = "7.0.1-alpha-0";
+ }
+});
+
+// node_modules/@lit-protocol/constants/src/lib/constants/constants.js
+var require_constants2 = __commonJS({
+ "node_modules/@lit-protocol/constants/src/lib/constants/constants.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.LOG_LEVEL = exports2.LitNamespace = exports2.LIT_NAMESPACE = exports2.LitRecapAbility = exports2.LIT_RECAP_ABILITY = exports2.LitAbility = exports2.LIT_ABILITY = exports2.LitResourcePrefix = exports2.LIT_RESOURCE_PREFIX = exports2.RelayAuthStatus = exports2.RELAY_AUTH_STATUS = exports2.StakingStates = exports2.STAKING_STATES = exports2.ProviderType = exports2.PROVIDER_TYPE = exports2.AuthMethodScope = exports2.AUTH_METHOD_SCOPE = exports2.AuthMethodType = exports2.AUTH_METHOD_TYPE = exports2.EITHER_TYPE = exports2.LIT_CURVE = exports2.VMTYPE = exports2.LIT_ACTION_IPFS_HASH = exports2.SIWE_DELEGATION_URI = exports2.PKP_CLIENT_SUPPORTED_CHAINS = exports2.AUTH_METHOD_TYPE_IDS = exports2.LIT_SESSION_KEY_URI = exports2.LIT_NETWORKS = exports2.SYMM_KEY_ALGO_PARAMS = exports2.LOCAL_STORAGE_KEYS = exports2.ALL_LIT_CHAINS = exports2.LIT_COSMOS_CHAINS = exports2.LIT_SVM_CHAINS = exports2.CENTRALISATION_BY_NETWORK = exports2.HTTP_BY_NETWORK = exports2.HTTPS = exports2.HTTP = exports2.METAMASK_CHAIN_INFO_BY_NETWORK = exports2.RELAYER_URL_BY_NETWORK = exports2.RPC_URL_BY_NETWORK = exports2.LitNetwork = exports2.LIT_NETWORK = exports2.LIT_EVM_CHAINS = exports2.LIT_RPC = exports2.metamaskChainInfo = exports2.METAMASK_CHAIN_INFO = exports2.LIT_CHAINS = exports2.AUTH_SIGNATURE_BODY = exports2.LIT_AUTH_SIG_CHAIN_KEYS = exports2.NETWORK_PUB_KEY = void 0;
+ exports2.FALLBACK_IPFS_GATEWAYS = exports2.LogLevel = void 0;
+ var tslib_1 = (init_tslib_es63(), __toCommonJS(tslib_es6_exports3));
+ var depd_1 = tslib_1.__importDefault(require_depd());
+ var deprecated = (0, depd_1.default)("lit-js-sdk:constants:constants");
+ exports2.NETWORK_PUB_KEY = "9971e835a1fe1a4d78e381eebbe0ddc84fde5119169db816900de796d10187f3c53d65c1202ac083d099a517f34a9b62";
+ exports2.LIT_AUTH_SIG_CHAIN_KEYS = [
+ "ethereum",
+ "solana",
+ "cosmos",
+ "kyve"
+ ];
+ exports2.AUTH_SIGNATURE_BODY = "I am creating an account to use Lit Protocol at {{timestamp}}";
+ var yellowstoneChain = {
+ contractAddress: null,
+ chainId: 175188,
+ name: "Chronicle Yellowstone - Lit Protocol Testnet",
+ symbol: "tstLPX",
+ decimals: 18,
+ rpcUrls: ["https://yellowstone-rpc.litprotocol.com/"],
+ blockExplorerUrls: ["https://yellowstone-explorer.litprotocol.com/"],
+ type: null,
+ vmType: "EVM"
+ };
+ exports2.LIT_CHAINS = {
+ ethereum: {
+ contractAddress: "0xA54F7579fFb3F98bd8649fF02813F575f9b3d353",
+ chainId: 1,
+ name: "Ethereum",
+ symbol: "ETH",
+ decimals: 18,
+ type: "ERC1155",
+ rpcUrls: [
+ "https://eth-mainnet.alchemyapi.io/v2/EuGnkVlzVoEkzdg0lpCarhm8YHOxWVxE"
+ ],
+ blockExplorerUrls: ["https://etherscan.io"],
+ vmType: "EVM"
+ },
+ polygon: {
+ contractAddress: "0x7C7757a9675f06F3BE4618bB68732c4aB25D2e88",
+ chainId: 137,
+ name: "Polygon",
+ symbol: "MATIC",
+ decimals: 18,
+ rpcUrls: ["https://polygon-rpc.com"],
+ blockExplorerUrls: ["https://explorer.matic.network"],
+ type: "ERC1155",
+ vmType: "EVM"
+ },
+ fantom: {
+ contractAddress: "0x5bD3Fe8Ab542f0AaBF7552FAAf376Fd8Aa9b3869",
+ chainId: 250,
+ name: "Fantom",
+ symbol: "FTM",
+ decimals: 18,
+ rpcUrls: ["https://rpcapi.fantom.network"],
+ blockExplorerUrls: ["https://ftmscan.com"],
+ type: "ERC1155",
+ vmType: "EVM"
+ },
+ xdai: {
+ contractAddress: "0xDFc2Fd83dFfD0Dafb216F412aB3B18f2777406aF",
+ chainId: 100,
+ name: "xDai",
+ symbol: "xDai",
+ decimals: 18,
+ rpcUrls: ["https://rpc.gnosischain.com"],
+ blockExplorerUrls: [" https://blockscout.com/xdai/mainnet"],
+ type: "ERC1155",
+ vmType: "EVM"
+ },
+ bsc: {
+ contractAddress: "0xc716950e5DEae248160109F562e1C9bF8E0CA25B",
+ chainId: 56,
+ name: "Binance Smart Chain",
+ symbol: "BNB",
+ decimals: 18,
+ rpcUrls: ["https://bsc-dataseed.binance.org/"],
+ blockExplorerUrls: [" https://bscscan.com/"],
+ type: "ERC1155",
+ vmType: "EVM"
+ },
+ arbitrum: {
+ contractAddress: "0xc716950e5DEae248160109F562e1C9bF8E0CA25B",
+ chainId: 42161,
+ name: "Arbitrum",
+ symbol: "AETH",
+ decimals: 18,
+ type: "ERC1155",
+ rpcUrls: ["https://arb1.arbitrum.io/rpc"],
+ blockExplorerUrls: ["https://arbiscan.io/"],
+ vmType: "EVM"
+ },
+ arbitrumSepolia: {
+ contractAddress: null,
+ chainId: 421614,
+ name: "Arbitrum Sepolia",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://arbitrum-sepolia.blockpi.network/v1/rpc/public"],
+ blockExplorerUrls: ["https://sepolia.arbiscan.io/"],
+ type: null,
+ vmType: "EVM"
+ },
+ avalanche: {
+ contractAddress: "0xBB118507E802D17ECDD4343797066dDc13Cde7C6",
+ chainId: 43114,
+ name: "Avalanche",
+ symbol: "AVAX",
+ decimals: 18,
+ type: "ERC1155",
+ rpcUrls: ["https://api.avax.network/ext/bc/C/rpc"],
+ blockExplorerUrls: ["https://snowtrace.io/"],
+ vmType: "EVM"
+ },
+ fuji: {
+ contractAddress: "0xc716950e5DEae248160109F562e1C9bF8E0CA25B",
+ chainId: 43113,
+ name: "Avalanche FUJI Testnet",
+ symbol: "AVAX",
+ decimals: 18,
+ type: "ERC1155",
+ rpcUrls: ["https://api.avax-test.network/ext/bc/C/rpc"],
+ blockExplorerUrls: ["https://testnet.snowtrace.io/"],
+ vmType: "EVM"
+ },
+ harmony: {
+ contractAddress: "0xBB118507E802D17ECDD4343797066dDc13Cde7C6",
+ chainId: 16666e5,
+ name: "Harmony",
+ symbol: "ONE",
+ decimals: 18,
+ type: "ERC1155",
+ rpcUrls: ["https://api.harmony.one"],
+ blockExplorerUrls: ["https://explorer.harmony.one/"],
+ vmType: "EVM"
+ },
+ mumbai: {
+ contractAddress: "0xc716950e5DEae248160109F562e1C9bF8E0CA25B",
+ chainId: 80001,
+ name: "Mumbai",
+ symbol: "MATIC",
+ decimals: 18,
+ rpcUrls: [
+ "https://rpc-mumbai.maticvigil.com/v1/96bf5fa6e03d272fbd09de48d03927b95633726c"
+ ],
+ blockExplorerUrls: ["https://mumbai.polygonscan.com"],
+ type: "ERC1155",
+ vmType: "EVM"
+ },
+ goerli: {
+ contractAddress: "0xc716950e5DEae248160109F562e1C9bF8E0CA25B",
+ chainId: 5,
+ name: "Goerli",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://goerli.infura.io/v3/96dffb3d8c084dec952c61bd6230af34"],
+ blockExplorerUrls: ["https://goerli.etherscan.io"],
+ type: "ERC1155",
+ vmType: "EVM"
+ },
+ cronos: {
+ contractAddress: "0xc716950e5DEae248160109F562e1C9bF8E0CA25B",
+ chainId: 25,
+ name: "Cronos",
+ symbol: "CRO",
+ decimals: 18,
+ rpcUrls: ["https://evm-cronos.org"],
+ blockExplorerUrls: ["https://cronos.org/explorer/"],
+ type: "ERC1155",
+ vmType: "EVM"
+ },
+ optimism: {
+ contractAddress: "0xbF68B4c9aCbed79278465007f20a08Fa045281E0",
+ chainId: 10,
+ name: "Optimism",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://mainnet.optimism.io"],
+ blockExplorerUrls: ["https://optimistic.etherscan.io"],
+ type: "ERC1155",
+ vmType: "EVM"
+ },
+ celo: {
+ contractAddress: "0xBB118507E802D17ECDD4343797066dDc13Cde7C6",
+ chainId: 42220,
+ name: "Celo",
+ symbol: "CELO",
+ decimals: 18,
+ rpcUrls: ["https://forno.celo.org"],
+ blockExplorerUrls: ["https://explorer.celo.org"],
+ type: "ERC1155",
+ vmType: "EVM"
+ },
+ aurora: {
+ contractAddress: null,
+ chainId: 1313161554,
+ name: "Aurora",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://mainnet.aurora.dev"],
+ blockExplorerUrls: ["https://aurorascan.dev"],
+ type: null,
+ vmType: "EVM"
+ },
+ eluvio: {
+ contractAddress: null,
+ chainId: 955305,
+ name: "Eluvio",
+ symbol: "ELV",
+ decimals: 18,
+ rpcUrls: ["https://host-76-74-28-226.contentfabric.io/eth"],
+ blockExplorerUrls: ["https://explorer.eluv.io"],
+ type: null,
+ vmType: "EVM"
+ },
+ alfajores: {
+ contractAddress: null,
+ chainId: 44787,
+ name: "Alfajores",
+ symbol: "CELO",
+ decimals: 18,
+ rpcUrls: ["https://alfajores-forno.celo-testnet.org"],
+ blockExplorerUrls: ["https://alfajores-blockscout.celo-testnet.org"],
+ type: null,
+ vmType: "EVM"
+ },
+ xdc: {
+ contractAddress: null,
+ chainId: 50,
+ name: "XDC Blockchain",
+ symbol: "XDC",
+ decimals: 18,
+ rpcUrls: ["https://rpc.xinfin.network"],
+ blockExplorerUrls: ["https://explorer.xinfin.network"],
+ type: null,
+ vmType: "EVM"
+ },
+ evmos: {
+ contractAddress: null,
+ chainId: 9001,
+ name: "EVMOS",
+ symbol: "EVMOS",
+ decimals: 18,
+ rpcUrls: ["https://eth.bd.evmos.org:8545"],
+ blockExplorerUrls: ["https://evm.evmos.org"],
+ type: null,
+ vmType: "EVM"
+ },
+ evmosTestnet: {
+ contractAddress: null,
+ chainId: 9e3,
+ name: "EVMOS Testnet",
+ symbol: "EVMOS",
+ decimals: 18,
+ rpcUrls: ["https://eth.bd.evmos.dev:8545"],
+ blockExplorerUrls: ["https://evm.evmos.dev"],
+ type: null,
+ vmType: "EVM"
+ },
+ bscTestnet: {
+ contractAddress: null,
+ chainId: 97,
+ name: "BSC Testnet",
+ symbol: "BNB",
+ decimals: 18,
+ rpcUrls: ["https://data-seed-prebsc-1-s1.binance.org:8545"],
+ blockExplorerUrls: ["https://testnet.bscscan.com/"],
+ type: null,
+ vmType: "EVM"
+ },
+ baseGoerli: {
+ contractAddress: null,
+ chainId: 84531,
+ name: "Base Goerli",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://goerli.base.org"],
+ blockExplorerUrls: ["https://goerli.basescan.org"],
+ type: null,
+ vmType: "EVM"
+ },
+ baseSepolia: {
+ contractAddress: null,
+ chainId: 84532,
+ name: "Base Sepolia",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://sepolia.base.org"],
+ blockExplorerUrls: ["https://sepolia.basescan.org"],
+ type: null,
+ vmType: "EVM"
+ },
+ moonbeam: {
+ contractAddress: null,
+ chainId: 1284,
+ name: "Moonbeam",
+ symbol: "GLMR",
+ decimals: 18,
+ rpcUrls: ["https://rpc.api.moonbeam.network"],
+ blockExplorerUrls: ["https://moonscan.io"],
+ type: null,
+ vmType: "EVM"
+ },
+ moonriver: {
+ contractAddress: null,
+ chainId: 1285,
+ name: "Moonriver",
+ symbol: "MOVR",
+ decimals: 18,
+ rpcUrls: ["https://rpc.api.moonriver.moonbeam.network"],
+ blockExplorerUrls: ["https://moonriver.moonscan.io"],
+ type: null,
+ vmType: "EVM"
+ },
+ moonbaseAlpha: {
+ contractAddress: null,
+ chainId: 1287,
+ name: "Moonbase Alpha",
+ symbol: "DEV",
+ decimals: 18,
+ rpcUrls: ["https://rpc.api.moonbase.moonbeam.network"],
+ blockExplorerUrls: ["https://moonbase.moonscan.io/"],
+ type: null,
+ vmType: "EVM"
+ },
+ filecoin: {
+ contractAddress: null,
+ chainId: 314,
+ name: "Filecoin",
+ symbol: "FIL",
+ decimals: 18,
+ rpcUrls: ["https://api.node.glif.io/rpc/v1"],
+ blockExplorerUrls: ["https://filfox.info/"],
+ type: null,
+ vmType: "EVM"
+ },
+ hyperspace: {
+ contractAddress: null,
+ chainId: 3141,
+ name: "Filecoin Hyperspace testnet",
+ symbol: "tFIL",
+ decimals: 18,
+ rpcUrls: ["https://api.hyperspace.node.glif.io/rpc/v1"],
+ blockExplorerUrls: ["https://hyperspace.filscan.io/"],
+ type: null,
+ vmType: "EVM"
+ },
+ sepolia: {
+ contractAddress: null,
+ chainId: 11155111,
+ name: "Sepolia Testnet",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://ethereum-sepolia-rpc.publicnode.com"],
+ blockExplorerUrls: ["https://sepolia.etherscan.io/"],
+ type: null,
+ vmType: "EVM"
+ },
+ scrollSepolia: {
+ contractAddress: null,
+ chainId: 534351,
+ name: "Scroll Sepolia Testnet",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://sepolia-rpc.scroll.io"],
+ blockExplorerUrls: ["https://sepolia.scrollscan.com"],
+ type: null,
+ vmType: "EVM"
+ },
+ scroll: {
+ contractAddress: null,
+ chainId: 534352,
+ name: "Scroll",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://rpc.scroll.io"],
+ blockExplorerUrls: ["https://scrollscan.com/"],
+ type: null,
+ vmType: "EVM"
+ },
+ zksync: {
+ contractAddress: null,
+ chainId: 324,
+ name: "zkSync Era Mainnet",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://mainnet.era.zksync.io"],
+ blockExplorerUrls: ["https://explorer.zksync.io/"],
+ type: null,
+ vmType: "EVM"
+ },
+ base: {
+ contractAddress: null,
+ chainId: 8453,
+ name: "Base Mainnet",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://mainnet.base.org"],
+ blockExplorerUrls: ["https://basescan.org"],
+ type: null,
+ vmType: "EVM"
+ },
+ lukso: {
+ contractAddress: null,
+ chainId: 42,
+ name: "Lukso",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://rpc.lukso.gateway.fm"],
+ blockExplorerUrls: ["https://explorer.execution.mainnet.lukso.network/"],
+ type: null,
+ vmType: "EVM"
+ },
+ luksoTestnet: {
+ contractAddress: null,
+ chainId: 4201,
+ name: "Lukso Testnet",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://rpc.testnet.lukso.network"],
+ blockExplorerUrls: ["https://explorer.execution.testnet.lukso.network"],
+ type: null,
+ vmType: "EVM"
+ },
+ zora: {
+ contractAddress: null,
+ chainId: 7777777,
+ name: " Zora",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://rpc.zora.energy/"],
+ blockExplorerUrls: ["https://explorer.zora.energy"],
+ type: null,
+ vmType: "EVM"
+ },
+ zoraGoerli: {
+ contractAddress: null,
+ chainId: 999,
+ name: "Zora Goerli",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://testnet.rpc.zora.energy"],
+ blockExplorerUrls: ["https://testnet.explorer.zora.energy"],
+ type: null,
+ vmType: "EVM"
+ },
+ zksyncTestnet: {
+ contractAddress: null,
+ chainId: 280,
+ name: "zkSync Era Testnet",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://testnet.era.zksync.dev"],
+ blockExplorerUrls: ["https://goerli.explorer.zksync.io/"],
+ type: null,
+ vmType: "EVM"
+ },
+ lineaGoerli: {
+ contractAddress: null,
+ chainId: 59140,
+ name: "Linea Testnet",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://rpc.goerli.linea.build"],
+ blockExplorerUrls: ["https://explorer.goerli.linea.build"],
+ type: null,
+ vmType: "EVM"
+ },
+ lineaSepolia: {
+ contractAddress: null,
+ chainId: 59141,
+ name: "Linea Sepolia Testnet",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://rpc.sepolia.linea.build"],
+ blockExplorerUrls: ["https://explorer.sepolia.linea.build"],
+ type: null,
+ vmType: "EVM"
+ },
+ /**
+ * Use this for `>= Datil` network.
+ * Chainlist entry for the Chronicle Yellowstone Testnet.
+ * https://chainlist.org/chain/175188
+ */
+ yellowstone: yellowstoneChain,
+ chiado: {
+ contractAddress: null,
+ chainId: 10200,
+ name: "Chiado",
+ symbol: "XDAI",
+ decimals: 18,
+ rpcUrls: ["https://rpc.chiadochain.net"],
+ blockExplorerUrls: ["https://blockscout.chiadochain.net"],
+ type: null,
+ vmType: "EVM"
+ },
+ zkEvm: {
+ contractAddress: null,
+ chainId: 1101,
+ name: "zkEvm",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://zkevm-rpc.com"],
+ blockExplorerUrls: ["https://zkevm.polygonscan.com/"],
+ type: null,
+ vmType: "EVM"
+ },
+ mantleTestnet: {
+ contractAddress: null,
+ chainId: 5001,
+ name: "Mantle Testnet",
+ symbol: "MNT",
+ decimals: 18,
+ rpcUrls: ["https://rpc.testnet.mantle.xyz"],
+ blockExplorerUrls: ["https://explorer.testnet.mantle.xyz/"],
+ type: null,
+ vmType: "EVM"
+ },
+ mantle: {
+ contractAddress: null,
+ chainId: 5e3,
+ name: "Mantle",
+ symbol: "MNT",
+ decimals: 18,
+ rpcUrls: ["https://rpc.mantle.xyz"],
+ blockExplorerUrls: ["http://explorer.mantle.xyz/"],
+ type: null,
+ vmType: "EVM"
+ },
+ klaytn: {
+ contractAddress: null,
+ chainId: 8217,
+ name: "Klaytn",
+ symbol: "KLAY",
+ decimals: 18,
+ rpcUrls: ["https://klaytn.blockpi.network/v1/rpc/public"],
+ blockExplorerUrls: ["https://www.klaytnfinder.io/"],
+ type: null,
+ vmType: "EVM"
+ },
+ publicGoodsNetwork: {
+ contractAddress: null,
+ chainId: 424,
+ name: "Public Goods Network",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://rpc.publicgoods.network"],
+ blockExplorerUrls: ["https://explorer.publicgoods.network/"],
+ type: null,
+ vmType: "EVM"
+ },
+ optimismGoerli: {
+ contractAddress: null,
+ chainId: 420,
+ name: "Optimism Goerli",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://optimism-goerli.publicnode.com"],
+ blockExplorerUrls: ["https://goerli-optimism.etherscan.io/"],
+ type: null,
+ vmType: "EVM"
+ },
+ waevEclipseTestnet: {
+ contractAddress: null,
+ chainId: 91006,
+ name: "Waev Eclipse Testnet",
+ symbol: "ecWAEV",
+ decimals: 18,
+ rpcUrls: ["https://api.evm.waev.eclipsenetwork.xyz"],
+ blockExplorerUrls: ["http://waev.explorer.modular.cloud/"],
+ type: null,
+ vmType: "EVM"
+ },
+ waevEclipseDevnet: {
+ contractAddress: null,
+ chainId: 91006,
+ name: "Waev Eclipse Devnet",
+ symbol: "ecWAEV",
+ decimals: 18,
+ rpcUrls: ["https://api.evm.waev.dev.eclipsenetwork.xyz"],
+ blockExplorerUrls: ["http://waev.explorer.modular.cloud/"],
+ type: null,
+ vmType: "EVM"
+ },
+ verifyTestnet: {
+ contractAddress: null,
+ chainId: 1833,
+ name: "Verify Testnet",
+ symbol: "MATIC",
+ decimals: 18,
+ rpcUrls: ["https://rpc.verify-testnet.gelato.digital"],
+ blockExplorerUrls: ["https://verify-testnet.blockscout.com/"],
+ type: null,
+ vmType: "EVM"
+ },
+ fuse: {
+ contractAddress: null,
+ chainId: 122,
+ name: "Fuse",
+ symbol: "FUSE",
+ decimals: 18,
+ rpcUrls: ["https://rpc.fuse.io/"],
+ blockExplorerUrls: ["https://explorer.fuse.io/"],
+ type: null,
+ vmType: "EVM"
+ },
+ campNetwork: {
+ contractAddress: null,
+ chainId: 325e3,
+ name: "Camp Network",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://rpc.camp-network-testnet.gelato.digital"],
+ blockExplorerUrls: [
+ "https://explorer.camp-network-testnet.gelato.digital/"
+ ],
+ type: null,
+ vmType: "EVM"
+ },
+ vanar: {
+ contractAddress: null,
+ chainId: 78600,
+ name: "Vanar Vanguard",
+ symbol: "VANRY",
+ decimals: 18,
+ rpcUrls: ["https://rpc-vanguard.vanarchain.com"],
+ blockExplorerUrls: ["https://explorer-vanguard.vanarchain.com"],
+ type: null,
+ vmType: "EVM"
+ },
+ lisk: {
+ contractAddress: null,
+ chainId: 1135,
+ name: "Lisk",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://lisk.drpc.org"],
+ blockExplorerUrls: ["https://blockscout.lisk.com/"],
+ type: null,
+ vmType: "EVM"
+ },
+ chilizMainnet: {
+ contractAddress: null,
+ chainId: 88888,
+ name: "Chiliz Mainnet",
+ symbol: "CHZ",
+ decimals: 18,
+ rpcUrls: ["https://rpc.ankr.com/chiliz"],
+ blockExplorerUrls: ["https://chiliscan.com/"],
+ type: null,
+ vmType: "EVM"
+ },
+ chilizTestnet: {
+ contractAddress: null,
+ chainId: 88882,
+ name: "Chiliz Spicy Testnet",
+ symbol: "CHZ",
+ decimals: 18,
+ rpcUrls: ["https://spicy-rpc.chiliz.com/"],
+ blockExplorerUrls: ["https://testnet.chiliscan.com/"],
+ type: null,
+ vmType: "EVM"
+ },
+ skaleTestnet: {
+ contractAddress: null,
+ chainId: 37084624,
+ name: "SKALE Nebula Hub Testnet",
+ symbol: "sFUEL",
+ decimals: 18,
+ rpcUrls: ["https://testnet.skalenodes.com/v1/lanky-ill-funny-testnet"],
+ blockExplorerUrls: [
+ "https://lanky-ill-funny-testnet.explorer.testnet.skalenodes.com"
+ ],
+ type: null,
+ vmType: "EVM"
+ },
+ skale: {
+ contractAddress: null,
+ chainId: 1482601649,
+ name: "SKALE Nebula Hub Mainnet",
+ symbol: "sFUEL",
+ decimals: 18,
+ rpcUrls: ["https://mainnet.skalenodes.com/v1/green-giddy-denebola"],
+ blockExplorerUrls: [
+ "https://green-giddy-denebola.explorer.mainnet.skalenodes.com"
+ ],
+ type: null,
+ vmType: "EVM"
+ },
+ skaleCalypso: {
+ contractAddress: null,
+ chainId: 1564830818,
+ name: "SKALE Calypso Hub Mainnet",
+ symbol: "sFUEL",
+ decimals: 18,
+ rpcUrls: ["https://mainnet.skalenodes.com/v1/honorable-steel-rasalhague"],
+ blockExplorerUrls: [
+ "https://giant-half-dual-testnet.explorer.testnet.skalenodes.com/"
+ ],
+ type: null,
+ vmType: "EVM"
+ },
+ skaleCalypsoTestnet: {
+ contractAddress: null,
+ chainId: 974399131,
+ name: "SKALE Calypso Hub Testnet",
+ symbol: "sFUEL",
+ decimals: 18,
+ rpcUrls: ["https://testnet.skalenodes.com/v1/giant-half-dual-testnet"],
+ blockExplorerUrls: [
+ "https://giant-half-dual-testnet.explorer.testnet.skalenodes.com/"
+ ],
+ type: null,
+ vmType: "EVM"
+ },
+ skaleEuropa: {
+ contractAddress: null,
+ chainId: 2046399126,
+ name: "SKALE Europa DeFI Hub",
+ symbol: "sFUEL",
+ decimals: 18,
+ rpcUrls: ["https://mainnet.skalenodes.com/v1/elated-tan-skat"],
+ blockExplorerUrls: [
+ "https://elated-tan-skat.explorer.mainnet.skalenodes.com/"
+ ],
+ type: null,
+ vmType: "EVM"
+ },
+ skaleEuropaTestnet: {
+ contractAddress: null,
+ chainId: 1444673419,
+ name: "SKALE Europa DeFi Hub Testnet",
+ symbol: "sFUEL",
+ decimals: 18,
+ rpcUrls: ["https://testnet.skalenodes.com/v1/juicy-low-small-testnet"],
+ blockExplorerUrls: [
+ "https://juicy-low-small-testnet.explorer.testnet.skalenodes.com/"
+ ],
+ type: null,
+ vmType: "EVM"
+ },
+ skaleTitan: {
+ contractAddress: null,
+ chainId: 1350216234,
+ name: "SKALE Titan AI Hub",
+ symbol: "sFUEL",
+ decimals: 18,
+ rpcUrls: ["https://mainnet.skalenodes.com/v1/parallel-stormy-spica"],
+ blockExplorerUrls: [
+ "https://parallel-stormy-spica.explorer.mainnet.skalenodes.com/"
+ ],
+ type: null,
+ vmType: "EVM"
+ },
+ skaleTitanTestnet: {
+ contractAddress: null,
+ chainId: 1020352220,
+ name: "SKALE Titan AI Hub Testnet",
+ symbol: "sFUEL",
+ decimals: 18,
+ rpcUrls: ["https://testnet.skalenodes.com/v1/aware-fake-trim-testnet"],
+ blockExplorerUrls: [
+ "https://aware-fake-trim-testnet.explorer.testnet.skalenodes.com/"
+ ],
+ type: null,
+ vmType: "EVM"
+ },
+ fhenixHelium: {
+ contractAddress: null,
+ chainId: 8008135,
+ name: "Fhenix Helium",
+ symbol: "tFHE",
+ decimals: 18,
+ rpcUrls: ["https://api.helium.fhenix.zone"],
+ blockExplorerUrls: ["https://explorer.helium.fhenix.zone"],
+ type: null,
+ vmType: "EVM"
+ },
+ hederaTestnet: {
+ contractAddress: null,
+ chainId: 296,
+ name: "Hedera Testnet",
+ symbol: "HBAR",
+ decimals: 8,
+ rpcUrls: ["https://testnet.hashio.io/api"],
+ blockExplorerUrls: ["https://hashscan.io/testnet/dashboard"],
+ type: null,
+ vmType: "EVM"
+ },
+ bitTorrentTestnet: {
+ contractAddress: null,
+ chainId: 1028,
+ name: "BitTorrent Testnet",
+ symbol: "BTT",
+ decimals: 18,
+ rpcUrls: ["https://test-rpc.bittorrentchain.io"],
+ blockExplorerUrls: ["https://testnet.bttcscan.com"],
+ type: null,
+ vmType: "EVM"
+ },
+ storyOdyssey: {
+ contractAddress: null,
+ chainId: 1516,
+ name: "Story Odyssey",
+ symbol: "IP",
+ decimals: 18,
+ rpcUrls: ["https://rpc.odyssey.storyrpc.io"],
+ blockExplorerUrls: ["https://odyssey.storyscan.xyz"],
+ type: null,
+ vmType: "EVM"
+ },
+ campTestnet: {
+ contractAddress: null,
+ chainId: 325e3,
+ name: "Camp Testnet",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://rpc.camp-network-testnet.gelato.digital"],
+ blockExplorerUrls: ["https://camp-network-testnet.blockscout.com"],
+ type: null,
+ vmType: "EVM"
+ },
+ hushedNorthstar: {
+ contractAddress: null,
+ chainId: 42161,
+ name: "Hushed Northstar Devnet",
+ symbol: "ETH",
+ decimals: 18,
+ rpcUrls: ["https://rpc.buildbear.io/yielddev"],
+ blockExplorerUrls: ["https://explorer.buildbear.io/yielddev/transactions"],
+ type: null,
+ vmType: "EVM"
+ },
+ amoy: {
+ contractAddress: null,
+ chainId: 80002,
+ name: "Amoy",
+ symbol: "POL",
+ decimals: 18,
+ rpcUrls: ["https://rpc-amoy.polygon.technology"],
+ blockExplorerUrls: ["https://amoy.polygonscan.com"],
+ type: null,
+ vmType: "EVM"
+ },
+ matchain: {
+ contractAddress: null,
+ chainId: 698,
+ name: "Matchain",
+ symbol: "BNB",
+ decimals: 18,
+ rpcUrls: ["https://rpc.matchain.io"],
+ blockExplorerUrls: ["https://matchscan.io"],
+ type: null,
+ vmType: "EVM"
+ }
+ };
+ exports2.METAMASK_CHAIN_INFO = {
+ /**
+ * Information about the "chronicleYellowstone" chain.
+ */
+ yellowstone: {
+ chainId: exports2.LIT_CHAINS["yellowstone"].chainId,
+ chainName: exports2.LIT_CHAINS["yellowstone"].name,
+ nativeCurrency: {
+ name: exports2.LIT_CHAINS["yellowstone"].symbol,
+ symbol: exports2.LIT_CHAINS["yellowstone"].symbol,
+ decimals: exports2.LIT_CHAINS["yellowstone"].decimals
+ },
+ rpcUrls: exports2.LIT_CHAINS["yellowstone"].rpcUrls,
+ blockExplorerUrls: exports2.LIT_CHAINS["yellowstone"].blockExplorerUrls,
+ iconUrls: ["future"]
+ }
+ };
+ exports2.metamaskChainInfo = new Proxy(exports2.METAMASK_CHAIN_INFO, {
+ get(target, prop, receiver) {
+ deprecated("metamaskChainInfo is deprecated and will be removed in a future version. Use METAMASK_CHAIN_INFO instead.");
+ return Reflect.get(target, prop, receiver);
+ }
+ });
+ exports2.LIT_RPC = {
+ /**
+ * Local Anvil RPC endpoint.
+ */
+ LOCAL_ANVIL: "http://127.0.0.1:8545",
+ /**
+ * Chronicle Yellowstone RPC endpoint - used for >= Datil-test
+ * More info: https://app.conduit.xyz/published/view/chronicle-yellowstone-testnet-9qgmzfcohk
+ */
+ CHRONICLE_YELLOWSTONE: "https://yellowstone-rpc.litprotocol.com"
+ };
+ exports2.LIT_EVM_CHAINS = exports2.LIT_CHAINS;
+ exports2.LIT_NETWORK = {
+ DatilDev: "datil-dev",
+ DatilTest: "datil-test",
+ Datil: "datil",
+ Custom: "custom"
+ };
+ exports2.LitNetwork = new Proxy(exports2.LIT_NETWORK, {
+ get(target, prop, receiver) {
+ deprecated("LitNetwork is deprecated and will be removed in a future version. Use LIT_NETWORK instead.");
+ return Reflect.get(target, prop, receiver);
+ }
+ });
+ exports2.RPC_URL_BY_NETWORK = {
+ "datil-dev": exports2.LIT_RPC.CHRONICLE_YELLOWSTONE,
+ "datil-test": exports2.LIT_RPC.CHRONICLE_YELLOWSTONE,
+ datil: exports2.LIT_RPC.CHRONICLE_YELLOWSTONE,
+ custom: exports2.LIT_RPC.LOCAL_ANVIL
+ };
+ exports2.RELAYER_URL_BY_NETWORK = {
+ "datil-dev": "https://datil-dev-relayer.getlit.dev",
+ "datil-test": "https://datil-test-relayer.getlit.dev",
+ datil: "https://datil-relayer.getlit.dev",
+ custom: "http://localhost:3000"
+ };
+ exports2.METAMASK_CHAIN_INFO_BY_NETWORK = {
+ "datil-dev": exports2.METAMASK_CHAIN_INFO.yellowstone,
+ "datil-test": exports2.METAMASK_CHAIN_INFO.yellowstone,
+ datil: exports2.METAMASK_CHAIN_INFO.yellowstone,
+ custom: exports2.METAMASK_CHAIN_INFO.yellowstone
+ };
+ exports2.HTTP = "http://";
+ exports2.HTTPS = "https://";
+ exports2.HTTP_BY_NETWORK = {
+ "datil-dev": exports2.HTTPS,
+ "datil-test": exports2.HTTPS,
+ datil: exports2.HTTPS,
+ custom: exports2.HTTP
+ // default, can be changed by config
+ };
+ exports2.CENTRALISATION_BY_NETWORK = {
+ "datil-dev": "centralised",
+ "datil-test": "decentralised",
+ datil: "decentralised",
+ custom: "unknown"
+ };
+ exports2.LIT_SVM_CHAINS = {
+ solana: {
+ name: "Solana",
+ symbol: "SOL",
+ decimals: 9,
+ rpcUrls: ["https://api.mainnet-beta.solana.com"],
+ blockExplorerUrls: ["https://explorer.solana.com/"],
+ vmType: "SVM"
+ },
+ solanaDevnet: {
+ name: "Solana Devnet",
+ symbol: "SOL",
+ decimals: 9,
+ rpcUrls: ["https://api.devnet.solana.com"],
+ blockExplorerUrls: ["https://explorer.solana.com/"],
+ vmType: "SVM"
+ },
+ solanaTestnet: {
+ name: "Solana Testnet",
+ symbol: "SOL",
+ decimals: 9,
+ rpcUrls: ["https://api.testnet.solana.com"],
+ blockExplorerUrls: ["https://explorer.solana.com/"],
+ vmType: "SVM"
+ }
+ };
+ exports2.LIT_COSMOS_CHAINS = {
+ cosmos: {
+ name: "Cosmos",
+ symbol: "ATOM",
+ decimals: 6,
+ chainId: "cosmoshub-4",
+ rpcUrls: ["https://lcd-cosmoshub.keplr.app"],
+ blockExplorerUrls: ["https://atomscan.com/"],
+ vmType: "CVM"
+ },
+ kyve: {
+ name: "Kyve",
+ symbol: "KYVE",
+ decimals: 6,
+ chainId: "korellia",
+ rpcUrls: ["https://api.korellia.kyve.network"],
+ blockExplorerUrls: ["https://explorer.kyve.network/"],
+ vmType: "CVM"
+ },
+ evmosCosmos: {
+ name: "EVMOS Cosmos",
+ symbol: "EVMOS",
+ decimals: 18,
+ chainId: "evmos_9001-2",
+ rpcUrls: ["https://rest.bd.evmos.org:1317"],
+ blockExplorerUrls: ["https://evmos.bigdipper.live"],
+ vmType: "CVM"
+ },
+ evmosCosmosTestnet: {
+ name: "Evmos Cosmos Testnet",
+ symbol: "EVMOS",
+ decimals: 18,
+ chainId: "evmos_9000-4",
+ rpcUrls: ["https://rest.bd.evmos.dev:1317"],
+ blockExplorerUrls: ["https://testnet.bigdipper.live"],
+ vmType: "CVM"
+ },
+ cheqdMainnet: {
+ name: "Cheqd Mainnet",
+ symbol: "CHEQ",
+ decimals: 9,
+ chainId: "cheqd-mainnet-1",
+ rpcUrls: ["https://api.cheqd.net"],
+ blockExplorerUrls: ["https://explorer.cheqd.io"],
+ vmType: "CVM"
+ },
+ cheqdTestnet: {
+ name: "Cheqd Testnet",
+ symbol: "CHEQ",
+ decimals: 9,
+ chainId: "cheqd-testnet-6",
+ rpcUrls: ["https://api.cheqd.network"],
+ blockExplorerUrls: ["https://testnet-explorer.cheqd.io"],
+ vmType: "CVM"
+ },
+ juno: {
+ name: "Juno",
+ symbol: "JUNO",
+ decimals: 6,
+ chainId: "juno-1",
+ rpcUrls: ["https://rest.cosmos.directory/juno"],
+ blockExplorerUrls: ["https://www.mintscan.io/juno"],
+ vmType: "CVM"
+ }
+ };
+ exports2.ALL_LIT_CHAINS = {
+ ...exports2.LIT_CHAINS,
+ ...exports2.LIT_SVM_CHAINS,
+ ...exports2.LIT_COSMOS_CHAINS
+ };
+ exports2.LOCAL_STORAGE_KEYS = {
+ AUTH_COSMOS_SIGNATURE: "lit-auth-cosmos-signature",
+ AUTH_SIGNATURE: "lit-auth-signature",
+ AUTH_SOL_SIGNATURE: "lit-auth-sol-signature",
+ WEB3_PROVIDER: "lit-web3-provider",
+ KEY_PAIR: "lit-comms-keypair",
+ SESSION_KEY: "lit-session-key",
+ WALLET_SIGNATURE: "lit-wallet-sig"
+ };
+ exports2.SYMM_KEY_ALGO_PARAMS = {
+ name: "AES-CBC",
+ length: 256
+ };
+ exports2.LIT_NETWORKS = {
+ "datil-dev": [],
+ "datil-test": [],
+ datil: [],
+ custom: []
+ };
+ exports2.LIT_SESSION_KEY_URI = "lit:session:";
+ exports2.AUTH_METHOD_TYPE_IDS = {
+ WEBAUTHN: 3,
+ DISCORD: 4,
+ GOOGLE: 5,
+ GOOGLE_JWT: 6
+ };
+ exports2.PKP_CLIENT_SUPPORTED_CHAINS = ["eth", "cosmos"];
+ exports2.SIWE_DELEGATION_URI = "lit:capability:delegation";
+ exports2.LIT_ACTION_IPFS_HASH = "QmUjX8MW6StQ7NKNdaS6g4RMkvN5hcgtKmEi8Mca6oX4t3";
+ exports2.VMTYPE = {
+ EVM: "EVM",
+ SVM: "SVM",
+ CVM: "CVM"
+ };
+ exports2.LIT_CURVE = {
+ BLS: "BLS",
+ EcdsaK256: "K256",
+ EcdsaCaitSith: "ECDSA_CAIT_SITH",
+ // Legacy alias of K256
+ EcdsaCAITSITHP256: "EcdsaCaitSithP256"
+ };
+ exports2.EITHER_TYPE = {
+ ERROR: "ERROR",
+ SUCCESS: "SUCCESS"
+ };
+ exports2.AUTH_METHOD_TYPE = {
+ EthWallet: 1,
+ LitAction: 2,
+ WebAuthn: 3,
+ Discord: 4,
+ Google: 5,
+ GoogleJwt: 6,
+ AppleJwt: 8,
+ StytchOtp: 9,
+ StytchEmailFactorOtp: 10,
+ StytchSmsFactorOtp: 11,
+ StytchWhatsAppFactorOtp: 12,
+ StytchTotpFactorOtp: 13
+ };
+ exports2.AuthMethodType = new Proxy(exports2.AUTH_METHOD_TYPE, {
+ get(target, prop, receiver) {
+ deprecated("AuthMethodType is deprecated and will be removed in a future version. Use AUTH_METHOD_TYPE instead.");
+ return Reflect.get(target, prop, receiver);
+ }
+ });
+ exports2.AUTH_METHOD_SCOPE = {
+ NoPermissions: 0,
+ SignAnything: 1,
+ PersonalSign: 2
+ };
+ exports2.AuthMethodScope = new Proxy(exports2.AUTH_METHOD_SCOPE, {
+ get(target, prop, receiver) {
+ deprecated("AuthMethodScope is deprecated and will be removed in a future version. Use AUTH_METHOD_SCOPE instead.");
+ return Reflect.get(target, prop, receiver);
+ }
+ });
+ exports2.PROVIDER_TYPE = {
+ Discord: "discord",
+ Google: "google",
+ EthWallet: "ethwallet",
+ WebAuthn: "webauthn",
+ Apple: "apple",
+ StytchOtp: "stytchOtp",
+ StytchEmailFactorOtp: "stytchEmailFactorOtp",
+ StytchSmsFactorOtp: "stytchSmsFactorOtp",
+ StytchWhatsAppFactorOtp: "stytchWhatsAppFactorOtp",
+ StytchTotpFactor: "stytchTotpFactor"
+ };
+ exports2.ProviderType = new Proxy(exports2.PROVIDER_TYPE, {
+ get(target, prop, receiver) {
+ deprecated("ProviderType is deprecated and will be removed in a future version. Use PROVIDER_TYPE instead.");
+ return Reflect.get(target, prop, receiver);
+ }
+ });
+ exports2.STAKING_STATES = {
+ Active: 0,
+ NextValidatorSetLocked: 1,
+ ReadyForNextEpoch: 2,
+ Unlocked: 3,
+ Paused: 4,
+ Restore: 5
+ };
+ exports2.StakingStates = new Proxy(exports2.STAKING_STATES, {
+ get(target, prop, receiver) {
+ deprecated("StakingStates is deprecated and will be removed in a future version. Use STAKING_STATES instead.");
+ return Reflect.get(target, prop, receiver);
+ }
+ });
+ exports2.RELAY_AUTH_STATUS = {
+ InProgress: "InProgress",
+ Succeeded: "Succeeded",
+ Failed: "Failed"
+ };
+ exports2.RelayAuthStatus = new Proxy(exports2.RELAY_AUTH_STATUS, {
+ get(target, prop, receiver) {
+ deprecated("RelayAuthStatus is deprecated and will be removed in a future version. Use RELAY_AUTH_STATUS instead.");
+ return Reflect.get(target, prop, receiver);
+ }
+ });
+ exports2.LIT_RESOURCE_PREFIX = {
+ AccessControlCondition: "lit-accesscontrolcondition",
+ PKP: "lit-pkp",
+ RLI: "lit-ratelimitincrease",
+ LitAction: "lit-litaction"
+ };
+ exports2.LitResourcePrefix = new Proxy(exports2.LIT_RESOURCE_PREFIX, {
+ get(target, prop, receiver) {
+ deprecated("LitResourcePrefix is deprecated and will be removed in a future version. Use LIT_RESOURCE_PREFIX instead.");
+ return Reflect.get(target, prop, receiver);
+ }
+ });
+ exports2.LIT_ABILITY = {
+ /**
+ * This is the ability to process an encryption access control condition.
+ * The resource will specify the corresponding hashed key value of the
+ * access control condition.
+ */
+ AccessControlConditionDecryption: "access-control-condition-decryption",
+ /**
+ * This is the ability to process a signing access control condition.
+ * The resource will specify the corresponding hashed key value of the
+ * access control condition.
+ */
+ AccessControlConditionSigning: "access-control-condition-signing",
+ /**
+ * This is the ability to use a PKP for signing purposes. The resource will specify
+ * the corresponding PKP token ID.
+ */
+ PKPSigning: "pkp-signing",
+ /**
+ * This is the ability to use a Rate Limit Increase (Capacity Credits NFT) token during
+ * authentication with the nodes. The resource will specify the corresponding
+ * Capacity Credits NFT token ID.
+ */
+ RateLimitIncreaseAuth: "rate-limit-increase-auth",
+ /**
+ * This is the ability to execute a Lit Action. The resource will specify the
+ * corresponding Lit Action IPFS CID.
+ */
+ LitActionExecution: "lit-action-execution"
+ };
+ exports2.LitAbility = new Proxy(exports2.LIT_ABILITY, {
+ get(target, prop, receiver) {
+ deprecated("LitAbility is deprecated and will be removed in a future version. Use LIT_ABILITY instead.");
+ return Reflect.get(target, prop, receiver);
+ }
+ });
+ exports2.LIT_RECAP_ABILITY = {
+ Decryption: "Decryption",
+ Signing: "Signing",
+ Auth: "Auth",
+ Execution: "Execution"
+ };
+ exports2.LitRecapAbility = new Proxy(exports2.LIT_RECAP_ABILITY, {
+ get(target, prop, receiver) {
+ deprecated("LitRecapAbility is deprecated and will be removed in a future version. Use LIT_RECAP_ABILITY instead.");
+ return Reflect.get(target, prop, receiver);
+ }
+ });
+ exports2.LIT_NAMESPACE = {
+ Auth: "Auth",
+ Threshold: "Threshold"
+ };
+ exports2.LitNamespace = new Proxy(exports2.LIT_NAMESPACE, {
+ get(target, prop, receiver) {
+ deprecated("LitNamespace is deprecated and will be removed in a future version. Use LIT_NAMESPACE instead.");
+ return Reflect.get(target, prop, receiver);
+ }
+ });
+ exports2.LOG_LEVEL = {
+ INFO: 0,
+ DEBUG: 1,
+ WARN: 2,
+ ERROR: 3,
+ FATAL: 4,
+ TIMING_START: 5,
+ TIMING_END: 6,
+ OFF: -1
+ };
+ exports2.LogLevel = new Proxy(exports2.LOG_LEVEL, {
+ get(target, prop, receiver) {
+ deprecated("LogLevel is deprecated and will be removed in a future version. Use LOG_LEVEL instead.");
+ return Reflect.get(target, prop, receiver);
+ }
+ });
+ exports2.FALLBACK_IPFS_GATEWAYS = [
+ "https://flk-ipfs.io/ipfs/",
+ "https://litprotocol.mypinata.cloud/ipfs/"
+ ];
+ }
+});
+
+// node_modules/@lit-protocol/contracts/dist/dev/datil.cjs
+var require_datil = __commonJS({
+ "node_modules/@lit-protocol/contracts/dist/dev/datil.cjs"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ "config": {
+ "chainId": "175188",
+ "rpcUrl": "https://yellowstone-rpc.litprotocol.com",
+ "chainName": "yellowstone",
+ "litNodeDomainName": "127.0.0.1",
+ "litNodePort": 7470,
+ "rocketPort": 7470
+ },
+ "data": [
+ {
+ "name": "StakingBalances",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0x9c9D147dad75D8B9Bd327405098D65C727296B54",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "AliasNotOwnedBySender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRemoveAliasOfActiveValidator",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "aliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountReached",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "OnlyStakingContract",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeGreaterThanMinimumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeLessThanMaximumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaximumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MinimumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "permittedStakersOn",
+ "type": "bool"
+ }
+ ],
+ "name": "PermittedStakersOnChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Staked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ }
+ ],
+ "name": "TokenRewardPerTokenPerEpochSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorNotRewardedBecauseAlias",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorRewarded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorTokensPenalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrawn",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "addAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "addPermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "stakers",
+ "type": "address[]"
+ }
+ ],
+ "name": "addPermittedStakers",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "checkStakingAmounts",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedStaker",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maximumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "minimumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "penalizeTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "permittedStakersOn",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "removeAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "restakePenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxAliasCount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaximumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMinimumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "permitted",
+ "type": "bool"
+ }
+ ],
+ "name": "setPermittedStakersOn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "stakeForValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalStaked",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "transferPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdrawPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Staking",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0x21d636d95eE71150c0c3Ffa79268c989a329d1CE",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwnerOrDevopsAdmin",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedOrPausedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "ComplaintConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256[]",
+ "name": "newKeyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newPeerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "newRpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "name": "ConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newDevopsAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "DevopsAdminSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochEndTimeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochLengthSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochTimeoutSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "KickPenaltyPercentSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newStakingTokenAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakingTokenSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "StateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBurned",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorKickedFromNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorRejoinedNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminKickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "adminRejoinValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "adminResetEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "validators",
+ "type": "address[]"
+ }
+ ],
+ "name": "adminSetValidatorsInCurrentEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountToPenalize",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminSlashValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminStakeForValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "setComplaintConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "newConfig",
+ "type": "tuple"
+ }
+ ],
+ "name": "setConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newDevopsAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "setDevopsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochLength",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "setEpochState",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochTimeout",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setKickPenaltyPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotKickBelowCurrentValidatorThreshold",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRejoinUntilNextEpochBecauseKicked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "CannotReuseCommsKeys",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotVoteTwice",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CouldNotMapNodeAddressToStakerAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "MustBeValidatorInNextEpochToKick",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "validatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nextReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCountToBeReady",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsReadyForNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentEpochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receivedEpochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "SignaledReadyForWrongEpochNumber",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "address[]",
+ "name": "validatorsInNextEpoch",
+ "type": "address[]"
+ }
+ ],
+ "name": "ValidatorIsNotInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "valueName",
+ "type": "string"
+ }
+ ],
+ "name": "ValueMustBeNonzero",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "attestedAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "attestedPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "AttestedWalletRegistered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "ReadyForNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Recovered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToJoin",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToLeave",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newDuration",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardsDurationUpdated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "reporter",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "VotedToKickValidatorInNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "advanceEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "exit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "kickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockValidatorsForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "attestedAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "attestedPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "registerAttestedWallet",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "requestToJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeave",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeaveAsNode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "setIpPortNodeAddressAndCommunicationPubKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "signalReadyForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "stakeAndJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "VersionRequirementsUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "checkVersion",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMaxVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMinVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "complaintConfig",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "config",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfCurrentValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfNextValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKeyTypes",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeAttestedPubKeyMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "pubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.PubKeyMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeStakerAddressMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.AddressMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingBalancesAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpochLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInNextEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getValidatorsStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInCurrentEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInNextEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "voterStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "getVotingStatusToKickValidator",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidatorByNodeAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isRecentValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "kickPenaltyPercentByReason",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "nodeAddressToStakerAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "readyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "shouldKickValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "state",
+ "outputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "validators",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Multisender",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0xB87CcFf487B84b60c09DBE15337a46bf5a9e0680",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ }
+ ],
+ "name": "sendEth",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "sendTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "withdrawTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LITToken",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0xd78089bAAe410f5d0eae31D0D56157c73a3Ff98B",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "cap",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "InvalidShortString",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "str",
+ "type": "string"
+ }
+ ],
+ "name": "StringTooLong",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "fromDelegate",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "toDelegate",
+ "type": "address"
+ }
+ ],
+ "name": "DelegateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegate",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "previousBalance",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newBalance",
+ "type": "uint256"
+ }
+ ],
+ "name": "DelegateVotesChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "EIP712DomainChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Paused",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Unpaused",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CLOCK_MODE",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "MINTER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PAUSER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "cap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint32",
+ "name": "pos",
+ "type": "uint32"
+ }
+ ],
+ "name": "checkpoints",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "fromBlock",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint224",
+ "name": "votes",
+ "type": "uint224"
+ }
+ ],
+ "internalType": "struct ERC20Votes.Checkpoint",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "clock",
+ "outputs": [
+ {
+ "internalType": "uint48",
+ "name": "",
+ "type": "uint48"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ }
+ ],
+ "name": "delegate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "delegateBySig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "delegates",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "eip712Domain",
+ "outputs": [
+ {
+ "internalType": "bytes1",
+ "name": "fields",
+ "type": "bytes1"
+ },
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "version",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "chainId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "verifyingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "salt",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "extensions",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastTotalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "nonces",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "numCheckpoints",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "paused",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unpause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PubkeyRouter",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0xF182d6bEf16Ba77e69372dD096D8B70Bc3d5B475",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "PubkeyRoutingDataSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IPubkeyRouter.RootKey",
+ "name": "rootKey",
+ "type": "tuple"
+ }
+ ],
+ "name": "RootKeySet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "adminResetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "rootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "adminSetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "signedMessage",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "checkNodeSignatures",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "deriveEthAddressFromPubkey",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ethAddressToPkpId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getDerivedPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "getRootKeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRoutingData",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isRouted",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "pubkeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingDataAsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "newRootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "voteForRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFT",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0x487A9D096BB4B7Ac1520Cb12370e31e677B175EA",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PKPMinted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "claimAndMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "exists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getNextDerivedKeyId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftMetadataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "mintGrantAndBurnNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "redeemedFreeMintIds",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMintCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RateLimitNFT",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0x01205d94Fee4d9F59A4aB24bf80D11d4DdAf6Eed",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "AdditionalRequestsPerKilosecondCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "FreeRequestsPerRateLimitWindowSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RLIHolderRateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setAdditionalRequestsPerKilosecondCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "setFreeRequestsPerRateLimitWindow",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxExpirationSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxExpirationSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxRequestsPerKilosecond",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRLIHolderRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "RLIHolderRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "additionalRequestsPerKilosecondCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "payingAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "capacity",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibRateLimitNFTStorage.RateLimit",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestedRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "checkBelowMaxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentSoldRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "defaultRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMintSigTest",
+ "outputs": [],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeRequestsPerRateLimitWindow",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isExpired",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxExpirationSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "redeemedFreeMints",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tokenIdCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenSVG",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "totalSoldRequestsPerKilosecondByExpirationTime",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPHelper",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0x5B55ee57C459a31072145F2Fc00b35de20520adD",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterialV2",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypesV2",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getDomainWalletRegistry",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPKPNftMetdataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddDomainWalletMetadata",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "name": "onERC721Received",
+ "outputs": [
+ {
+ "internalType": "bytes4",
+ "name": "",
+ "type": "bytes4"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ }
+ ],
+ "name": "setPkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPPermissions",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0x213Db6E1446928E19588269bEF7dFc9187c4829A",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RootHashUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod",
+ "name": "authMethod",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "addPermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToAdd",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeysToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopesToAdd",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToRemove",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToRemove",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "batchAddRemoveAuthMethods",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getAuthMethodId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getPKPPubKeysByAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedActions",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxScopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethodScopes",
+ "outputs": [
+ {
+ "internalType": "bool[]",
+ "name": "",
+ "type": "bool[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethods",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getTokenIdsForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getUserPubkeyForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAction",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isPermittedAuthMethodScopePresent",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRootHash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "leaf",
+ "type": "bytes32"
+ }
+ ],
+ "name": "verifyState",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bool[]",
+ "name": "proofFlags",
+ "type": "bool[]"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "leaves",
+ "type": "bytes32[]"
+ }
+ ],
+ "name": "verifyStates",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFTMetadata",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0x4BB8681d3a24F130cC746C7DC31167C93D72d32b",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "buffer",
+ "type": "bytes"
+ }
+ ],
+ "name": "bytesToHex",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeProfileForPkp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "imgUrl",
+ "type": "string"
+ }
+ ],
+ "name": "setProfileForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "url",
+ "type": "string"
+ }
+ ],
+ "name": "setUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubKey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Allowlist",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0xE393BCD2a9099C903D28949Bac2C4cEd21E55415",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemNotAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "allowAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "allowedItems",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "isAllowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "removeAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "_allowAll",
+ "type": "bool"
+ }
+ ],
+ "name": "setAllowAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setNotAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PaymentDelegation",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0xF19ea8634969730cB51BFEe2E2A5353062053C14",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "restriction",
+ "type": "tuple"
+ }
+ ],
+ "name": "RestrictionSet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "delegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "delegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "getPayers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "getPayersAndRestrictions",
+ "outputs": [
+ {
+ "internalType": "address[][]",
+ "name": "",
+ "type": "address[][]"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction[][]",
+ "name": "",
+ "type": "tuple[][]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getRestriction",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getUsers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "r",
+ "type": "tuple"
+ }
+ ],
+ "name": "setRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "undelegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "undelegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts/dist/dev/datil-dev.cjs
+var require_datil_dev = __commonJS({
+ "node_modules/@lit-protocol/contracts/dist/dev/datil-dev.cjs"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ "config": {
+ "chainId": "175188",
+ "rpcUrl": "https://yellowstone-rpc.litprotocol.com",
+ "chainName": "yellowstone",
+ "litNodeDomainName": "127.0.0.1",
+ "litNodePort": 7470,
+ "rocketPort": 7470
+ },
+ "data": [
+ {
+ "name": "StakingBalances",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0x77F277D4858Ae589b2263FEfd50CaD7838fE4741",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "AliasNotOwnedBySender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRemoveAliasOfActiveValidator",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "aliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountReached",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "OnlyStakingContract",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeGreaterThanMinimumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeLessThanMaximumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaximumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MinimumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "permittedStakersOn",
+ "type": "bool"
+ }
+ ],
+ "name": "PermittedStakersOnChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Staked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ }
+ ],
+ "name": "TokenRewardPerTokenPerEpochSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorNotRewardedBecauseAlias",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorRewarded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorTokensPenalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrawn",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "addAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "addPermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "stakers",
+ "type": "address[]"
+ }
+ ],
+ "name": "addPermittedStakers",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "checkStakingAmounts",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedStaker",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maximumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "minimumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "penalizeTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "permittedStakersOn",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "removeAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "restakePenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxAliasCount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaximumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMinimumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "permitted",
+ "type": "bool"
+ }
+ ],
+ "name": "setPermittedStakersOn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "stakeForValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalStaked",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "transferPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdrawPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Staking",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0xD4507CD392Af2c80919219d7896508728f6A623F",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwnerOrDevopsAdmin",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedOrPausedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "ComplaintConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256[]",
+ "name": "newKeyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newPeerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "newRpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "name": "ConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newDevopsAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "DevopsAdminSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochEndTimeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochLengthSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochTimeoutSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "KickPenaltyPercentSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newStakingTokenAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakingTokenSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "StateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBurned",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorKickedFromNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorRejoinedNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminKickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "adminRejoinValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "adminResetEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "validators",
+ "type": "address[]"
+ }
+ ],
+ "name": "adminSetValidatorsInCurrentEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountToPenalize",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminSlashValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminStakeForValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "setComplaintConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "newConfig",
+ "type": "tuple"
+ }
+ ],
+ "name": "setConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newDevopsAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "setDevopsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochLength",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "setEpochState",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochTimeout",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setKickPenaltyPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotKickBelowCurrentValidatorThreshold",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRejoinUntilNextEpochBecauseKicked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "CannotReuseCommsKeys",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotVoteTwice",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CouldNotMapNodeAddressToStakerAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "MustBeValidatorInNextEpochToKick",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "validatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nextReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCountToBeReady",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsReadyForNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentEpochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receivedEpochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "SignaledReadyForWrongEpochNumber",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "address[]",
+ "name": "validatorsInNextEpoch",
+ "type": "address[]"
+ }
+ ],
+ "name": "ValidatorIsNotInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "valueName",
+ "type": "string"
+ }
+ ],
+ "name": "ValueMustBeNonzero",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "attestedAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "attestedPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "AttestedWalletRegistered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "ReadyForNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Recovered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToJoin",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToLeave",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newDuration",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardsDurationUpdated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "reporter",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "VotedToKickValidatorInNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "advanceEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "exit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "kickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockValidatorsForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "attestedAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "attestedPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "registerAttestedWallet",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "requestToJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeave",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeaveAsNode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "setIpPortNodeAddressAndCommunicationPubKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "signalReadyForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "stakeAndJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "VersionRequirementsUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "checkVersion",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMaxVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMinVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "complaintConfig",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "config",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfCurrentValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfNextValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKeyTypes",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeAttestedPubKeyMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "pubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.PubKeyMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeStakerAddressMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.AddressMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingBalancesAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpochLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInNextEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getValidatorsStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInCurrentEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInNextEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "voterStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "getVotingStatusToKickValidator",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidatorByNodeAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isRecentValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "kickPenaltyPercentByReason",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "nodeAddressToStakerAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "readyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "shouldKickValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "state",
+ "outputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "validators",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Multisender",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0x116eBFb474C6aa13e1B8b19253fd0E3f226A982f",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ }
+ ],
+ "name": "sendEth",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "sendTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "withdrawTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LITToken",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0x81d8f0e945E3Bdc735dA3E19C4Df77a8B91046Cd",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "cap",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "InvalidShortString",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "str",
+ "type": "string"
+ }
+ ],
+ "name": "StringTooLong",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "fromDelegate",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "toDelegate",
+ "type": "address"
+ }
+ ],
+ "name": "DelegateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegate",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "previousBalance",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newBalance",
+ "type": "uint256"
+ }
+ ],
+ "name": "DelegateVotesChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "EIP712DomainChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Paused",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Unpaused",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CLOCK_MODE",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "MINTER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PAUSER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "cap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint32",
+ "name": "pos",
+ "type": "uint32"
+ }
+ ],
+ "name": "checkpoints",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "fromBlock",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint224",
+ "name": "votes",
+ "type": "uint224"
+ }
+ ],
+ "internalType": "struct ERC20Votes.Checkpoint",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "clock",
+ "outputs": [
+ {
+ "internalType": "uint48",
+ "name": "",
+ "type": "uint48"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ }
+ ],
+ "name": "delegate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "delegateBySig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "delegates",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "eip712Domain",
+ "outputs": [
+ {
+ "internalType": "bytes1",
+ "name": "fields",
+ "type": "bytes1"
+ },
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "version",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "chainId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "verifyingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "salt",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "extensions",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastTotalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "nonces",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "numCheckpoints",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "paused",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unpause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PubkeyRouter",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0xbc01f21C58Ca83f25b09338401D53D4c2344D1d9",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "PubkeyRoutingDataSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IPubkeyRouter.RootKey",
+ "name": "rootKey",
+ "type": "tuple"
+ }
+ ],
+ "name": "RootKeySet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "adminResetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "rootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "adminSetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "signedMessage",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "checkNodeSignatures",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "deriveEthAddressFromPubkey",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ethAddressToPkpId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getDerivedPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "getRootKeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRoutingData",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isRouted",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "pubkeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingDataAsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "newRootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "voteForRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFT",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0x02C4242F72d62c8fEF2b2DB088A35a9F4ec741C7",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PKPMinted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "claimAndMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "exists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getNextDerivedKeyId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftMetadataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "mintGrantAndBurnNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "redeemedFreeMintIds",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMintCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RateLimitNFT",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0x1A12D5B3D6A52B3bDe0468900795D35ce994ac2b",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "AdditionalRequestsPerKilosecondCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "FreeRequestsPerRateLimitWindowSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RLIHolderRateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setAdditionalRequestsPerKilosecondCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "setFreeRequestsPerRateLimitWindow",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxExpirationSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxExpirationSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxRequestsPerKilosecond",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRLIHolderRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "RLIHolderRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "additionalRequestsPerKilosecondCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "payingAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "capacity",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibRateLimitNFTStorage.RateLimit",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestedRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "checkBelowMaxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentSoldRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "defaultRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMintSigTest",
+ "outputs": [],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeRequestsPerRateLimitWindow",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isExpired",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxExpirationSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "redeemedFreeMints",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tokenIdCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenSVG",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "totalSoldRequestsPerKilosecondByExpirationTime",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPHelper",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0xCa9C62fB4ceA8831eBb6fD9fE747Cc372515CF7f",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterialV2",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypesV2",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getDomainWalletRegistry",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPKPNftMetdataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddDomainWalletMetadata",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "name": "onERC721Received",
+ "outputs": [
+ {
+ "internalType": "bytes4",
+ "name": "",
+ "type": "bytes4"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ }
+ ],
+ "name": "setPkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPPermissions",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0xf64638F1eb3b064f5443F7c9e2Dc050ed535D891",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RootHashUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod",
+ "name": "authMethod",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "addPermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToAdd",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeysToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopesToAdd",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToRemove",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToRemove",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "batchAddRemoveAuthMethods",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getAuthMethodId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getPKPPubKeysByAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedActions",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxScopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethodScopes",
+ "outputs": [
+ {
+ "internalType": "bool[]",
+ "name": "",
+ "type": "bool[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethods",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getTokenIdsForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getUserPubkeyForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAction",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isPermittedAuthMethodScopePresent",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRootHash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "leaf",
+ "type": "bytes32"
+ }
+ ],
+ "name": "verifyState",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bool[]",
+ "name": "proofFlags",
+ "type": "bool[]"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "leaves",
+ "type": "bytes32[]"
+ }
+ ],
+ "name": "verifyStates",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFTMetadata",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0x784A743bBBB5f5225CeC7979A3304179be17D66d",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "buffer",
+ "type": "bytes"
+ }
+ ],
+ "name": "bytesToHex",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeProfileForPkp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "imgUrl",
+ "type": "string"
+ }
+ ],
+ "name": "setProfileForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "url",
+ "type": "string"
+ }
+ ],
+ "name": "setUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubKey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Allowlist",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0xC60051658E346554C1F572ef3Aa4bD8596E026b6",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemNotAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "allowAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "allowedItems",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "isAllowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "removeAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "_allowAll",
+ "type": "bool"
+ }
+ ],
+ "name": "setAllowAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setNotAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PaymentDelegation",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0xbB23168855efe735cE9e6fD6877bAf13E02c410f",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "restriction",
+ "type": "tuple"
+ }
+ ],
+ "name": "RestrictionSet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "delegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "delegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "getPayers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "getPayersAndRestrictions",
+ "outputs": [
+ {
+ "internalType": "address[][]",
+ "name": "",
+ "type": "address[][]"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction[][]",
+ "name": "",
+ "type": "tuple[][]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getRestriction",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getUsers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "r",
+ "type": "tuple"
+ }
+ ],
+ "name": "setRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "undelegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "undelegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts/dist/dev/datil-test.cjs
+var require_datil_test = __commonJS({
+ "node_modules/@lit-protocol/contracts/dist/dev/datil-test.cjs"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ "config": {
+ "chainId": "175188",
+ "rpcUrl": "https://yellowstone-rpc.litprotocol.com",
+ "chainName": "yellowstone",
+ "litNodeDomainName": "127.0.0.1",
+ "litNodePort": 7470,
+ "rocketPort": 7470
+ },
+ "data": [
+ {
+ "name": "StakingBalances",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0xCa3c64e7D8cA743aeD2B2d20DCA3233f400710E2",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "AliasNotOwnedBySender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRemoveAliasOfActiveValidator",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "aliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountReached",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "OnlyStakingContract",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeGreaterThanMinimumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeLessThanMaximumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaximumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MinimumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "permittedStakersOn",
+ "type": "bool"
+ }
+ ],
+ "name": "PermittedStakersOnChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Staked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ }
+ ],
+ "name": "TokenRewardPerTokenPerEpochSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorNotRewardedBecauseAlias",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorRewarded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorTokensPenalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrawn",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "addAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "addPermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "stakers",
+ "type": "address[]"
+ }
+ ],
+ "name": "addPermittedStakers",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "checkStakingAmounts",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedStaker",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maximumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "minimumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "penalizeTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "permittedStakersOn",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "removeAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "restakePenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxAliasCount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaximumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMinimumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "permitted",
+ "type": "bool"
+ }
+ ],
+ "name": "setPermittedStakersOn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "stakeForValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalStaked",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "transferPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdrawPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Staking",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0xdec37933239846834b3BfD408913Ed3dbEf6588F",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwnerOrDevopsAdmin",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedOrPausedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "ComplaintConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256[]",
+ "name": "newKeyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newPeerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "newRpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "name": "ConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newDevopsAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "DevopsAdminSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochEndTimeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochLengthSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochTimeoutSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "KickPenaltyPercentSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newStakingTokenAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakingTokenSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "StateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBurned",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorKickedFromNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorRejoinedNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminKickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "adminRejoinValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "adminResetEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "validators",
+ "type": "address[]"
+ }
+ ],
+ "name": "adminSetValidatorsInCurrentEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountToPenalize",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminSlashValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminStakeForValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "setComplaintConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "newConfig",
+ "type": "tuple"
+ }
+ ],
+ "name": "setConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newDevopsAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "setDevopsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochLength",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "setEpochState",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochTimeout",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setKickPenaltyPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotKickBelowCurrentValidatorThreshold",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRejoinUntilNextEpochBecauseKicked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "CannotReuseCommsKeys",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotVoteTwice",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CouldNotMapNodeAddressToStakerAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "MustBeValidatorInNextEpochToKick",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "validatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nextReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCountToBeReady",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsReadyForNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentEpochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receivedEpochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "SignaledReadyForWrongEpochNumber",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "address[]",
+ "name": "validatorsInNextEpoch",
+ "type": "address[]"
+ }
+ ],
+ "name": "ValidatorIsNotInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "valueName",
+ "type": "string"
+ }
+ ],
+ "name": "ValueMustBeNonzero",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "attestedAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "attestedPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "AttestedWalletRegistered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "ReadyForNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Recovered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToJoin",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToLeave",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newDuration",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardsDurationUpdated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "reporter",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "VotedToKickValidatorInNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "advanceEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "exit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "kickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockValidatorsForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "attestedAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "attestedPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "registerAttestedWallet",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "requestToJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeave",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeaveAsNode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "setIpPortNodeAddressAndCommunicationPubKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "signalReadyForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "stakeAndJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "VersionRequirementsUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "checkVersion",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMaxVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMinVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "complaintConfig",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "config",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfCurrentValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfNextValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKeyTypes",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeAttestedPubKeyMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "pubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.PubKeyMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeStakerAddressMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.AddressMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingBalancesAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpochLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInNextEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getValidatorsStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInCurrentEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInNextEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "voterStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "getVotingStatusToKickValidator",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidatorByNodeAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isRecentValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "kickPenaltyPercentByReason",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "nodeAddressToStakerAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "readyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "shouldKickValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "state",
+ "outputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "validators",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "CloneNet",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0x1f4233b6C5b84978c458FA66412E4ae6d0561104",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminAddActiveStakingContract",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminRemoveActiveStakingContract",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveStakingContracts",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getAllActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "epoch",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "currentValidatorCountForConsensus",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "activeUnkickedValidators",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.StakingAggregateDetails",
+ "name": "details",
+ "type": "tuple"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.KeyedStakingAggregateDetails[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "numActiveStakingContracts",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Multisender",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0x8281f3A62f7de320B3a634e6814BeC36a1AA92bd",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ }
+ ],
+ "name": "sendEth",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "sendTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "withdrawTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LITToken",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0xFA1208f5275a01Be1b4A6F6764d388FDcF5Bf85e",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "cap",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "InvalidShortString",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "str",
+ "type": "string"
+ }
+ ],
+ "name": "StringTooLong",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "fromDelegate",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "toDelegate",
+ "type": "address"
+ }
+ ],
+ "name": "DelegateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegate",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "previousBalance",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newBalance",
+ "type": "uint256"
+ }
+ ],
+ "name": "DelegateVotesChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "EIP712DomainChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Paused",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Unpaused",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CLOCK_MODE",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "MINTER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PAUSER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "cap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint32",
+ "name": "pos",
+ "type": "uint32"
+ }
+ ],
+ "name": "checkpoints",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "fromBlock",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint224",
+ "name": "votes",
+ "type": "uint224"
+ }
+ ],
+ "internalType": "struct ERC20Votes.Checkpoint",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "clock",
+ "outputs": [
+ {
+ "internalType": "uint48",
+ "name": "",
+ "type": "uint48"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ }
+ ],
+ "name": "delegate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "delegateBySig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "delegates",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "eip712Domain",
+ "outputs": [
+ {
+ "internalType": "bytes1",
+ "name": "fields",
+ "type": "bytes1"
+ },
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "version",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "chainId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "verifyingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "salt",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "extensions",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastTotalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "nonces",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "numCheckpoints",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "paused",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unpause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PubkeyRouter",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0x65C3d057aef28175AfaC61a74cc6b27E88405583",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "PubkeyRoutingDataSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IPubkeyRouter.RootKey",
+ "name": "rootKey",
+ "type": "tuple"
+ }
+ ],
+ "name": "RootKeySet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "adminResetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "rootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "adminSetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "signedMessage",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "checkNodeSignatures",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "deriveEthAddressFromPubkey",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ethAddressToPkpId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getDerivedPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "getRootKeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRoutingData",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isRouted",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "pubkeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingDataAsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "newRootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "voteForRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFT",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0x6a0f439f064B7167A8Ea6B22AcC07ae5360ee0d1",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PKPMinted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "claimAndMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "exists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getNextDerivedKeyId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftMetadataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "mintGrantAndBurnNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "redeemedFreeMintIds",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMintCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RateLimitNFT",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0xa17f11B7f828EEc97926E56D98D5AB63A0231b77",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "AdditionalRequestsPerKilosecondCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "FreeRequestsPerRateLimitWindowSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RLIHolderRateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setAdditionalRequestsPerKilosecondCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "setFreeRequestsPerRateLimitWindow",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxExpirationSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxExpirationSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxRequestsPerKilosecond",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRLIHolderRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "RLIHolderRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "additionalRequestsPerKilosecondCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "payingAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "capacity",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibRateLimitNFTStorage.RateLimit",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestedRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "checkBelowMaxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentSoldRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "defaultRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMintSigTest",
+ "outputs": [],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeRequestsPerRateLimitWindow",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isExpired",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxExpirationSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "redeemedFreeMints",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tokenIdCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenSVG",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "totalSoldRequestsPerKilosecondByExpirationTime",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPHelper",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0x341E5273E2E2ea3c4aDa4101F008b1261E58510D",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterialV2",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypesV2",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getDomainWalletRegistry",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPKPNftMetdataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddDomainWalletMetadata",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "name": "onERC721Received",
+ "outputs": [
+ {
+ "internalType": "bytes4",
+ "name": "",
+ "type": "bytes4"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ }
+ ],
+ "name": "setPkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPPermissions",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0x60C1ddC8b9e38F730F0e7B70A2F84C1A98A69167",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RootHashUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod",
+ "name": "authMethod",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "addPermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToAdd",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeysToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopesToAdd",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToRemove",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToRemove",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "batchAddRemoveAuthMethods",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getAuthMethodId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getPKPPubKeysByAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedActions",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxScopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethodScopes",
+ "outputs": [
+ {
+ "internalType": "bool[]",
+ "name": "",
+ "type": "bool[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethods",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getTokenIdsForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getUserPubkeyForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAction",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isPermittedAuthMethodScopePresent",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRootHash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "leaf",
+ "type": "bytes32"
+ }
+ ],
+ "name": "verifyState",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bool[]",
+ "name": "proofFlags",
+ "type": "bool[]"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "leaves",
+ "type": "bytes32[]"
+ }
+ ],
+ "name": "verifyStates",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFTMetadata",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0xaC1d01692EBA0E457134Eb7EB8bb96ee9D91FcdD",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "buffer",
+ "type": "bytes"
+ }
+ ],
+ "name": "bytesToHex",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeProfileForPkp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "imgUrl",
+ "type": "string"
+ }
+ ],
+ "name": "setProfileForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "url",
+ "type": "string"
+ }
+ ],
+ "name": "setUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubKey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Allowlist",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0x5DD7a0FD581aB11a5720bE7E388e63346bC266fe",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemNotAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "allowAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "allowedItems",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "isAllowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "removeAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "_allowAll",
+ "type": "bool"
+ }
+ ],
+ "name": "setAllowAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setNotAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PaymentDelegation",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0xd7188e0348F1dA8c9b3d6e614844cbA22329B99E",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "restriction",
+ "type": "tuple"
+ }
+ ],
+ "name": "RestrictionSet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "delegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "delegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "getPayers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "getPayersAndRestrictions",
+ "outputs": [
+ {
+ "internalType": "address[][]",
+ "name": "",
+ "type": "address[][]"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction[][]",
+ "name": "",
+ "type": "tuple[][]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getRestriction",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getUsers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "r",
+ "type": "tuple"
+ }
+ ],
+ "name": "setRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "undelegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "undelegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts/dist/dev/cayenne.cjs
+var require_cayenne = __commonJS({
+ "node_modules/@lit-protocol/contracts/dist/dev/cayenne.cjs"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ "data": [
+ {
+ "name": "StakingBalances",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x523642999938B5e9085E1e7dF38Eac96DC3fdD91",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "AliasNotOwnedBySender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRemoveAliasOfActiveValidator",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "aliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountReached",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "OnlyStakingContract",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeGreaterThanMinimumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeLessThanMaximumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaximumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MinimumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "permittedStakersOn",
+ "type": "bool"
+ }
+ ],
+ "name": "PermittedStakersOnChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Staked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ }
+ ],
+ "name": "TokenRewardPerTokenPerEpochSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorNotRewardedBecauseAlias",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorRewarded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorTokensPenalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrawn",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "addAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "addPermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "stakers",
+ "type": "address[]"
+ }
+ ],
+ "name": "addPermittedStakers",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "checkStakingAmounts",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedStaker",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maximumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "minimumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "penalizeTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "permittedStakersOn",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "removeAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "restakePenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxAliasCount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaximumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMinimumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "permitted",
+ "type": "bool"
+ }
+ ],
+ "name": "setPermittedStakersOn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "stakeForValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalStaked",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "transferPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdrawPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Staking",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x5bFa704aF947b3b0f966e4248DED7bfa6edeF952",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwnerOrDevopsAdmin",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedOrPausedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "ComplaintConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256[]",
+ "name": "newKeyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newPeerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "newRpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "name": "ConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newDevopsAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "DevopsAdminSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochEndTimeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochLengthSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochTimeoutSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "KickPenaltyPercentSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newStakingTokenAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakingTokenSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "StateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBurned",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorKickedFromNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorRejoinedNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminKickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "adminRejoinValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "adminResetEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "validators",
+ "type": "address[]"
+ }
+ ],
+ "name": "adminSetValidatorsInCurrentEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountToPenalize",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminSlashValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminStakeForValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "setComplaintConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "newConfig",
+ "type": "tuple"
+ }
+ ],
+ "name": "setConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newDevopsAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "setDevopsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochLength",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "setEpochState",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochTimeout",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setKickPenaltyPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotKickBelowCurrentValidatorThreshold",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRejoinUntilNextEpochBecauseKicked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "CannotReuseCommsKeys",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotVoteTwice",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CouldNotMapNodeAddressToStakerAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "MustBeValidatorInNextEpochToKick",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "validatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nextReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCountToBeReady",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsReadyForNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentEpochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receivedEpochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "SignaledReadyForWrongEpochNumber",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "address[]",
+ "name": "validatorsInNextEpoch",
+ "type": "address[]"
+ }
+ ],
+ "name": "ValidatorIsNotInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "valueName",
+ "type": "string"
+ }
+ ],
+ "name": "ValueMustBeNonzero",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "attestedAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "attestedPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "AttestedWalletRegistered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "ReadyForNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Recovered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToJoin",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToLeave",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newDuration",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardsDurationUpdated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "reporter",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "VotedToKickValidatorInNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "advanceEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "exit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "kickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockValidatorsForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "attestedAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "attestedPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "registerAttestedWallet",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "requestToJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeave",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeaveAsNode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "setIpPortNodeAddressAndCommunicationPubKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "signalReadyForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "stakeAndJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "VersionRequirementsUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "checkVersion",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMaxVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMinVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "complaintConfig",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "config",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfCurrentValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfNextValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKeyTypes",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeAttestedPubKeyMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "pubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.PubKeyMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeStakerAddressMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.AddressMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingBalancesAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpochLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInNextEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getValidatorsStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInCurrentEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInNextEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "voterStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "getVotingStatusToKickValidator",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidatorByNodeAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isRecentValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "kickPenaltyPercentByReason",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "nodeAddressToStakerAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "readyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "shouldKickValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "state",
+ "outputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "validators",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Multisender",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0xD4e3D27d21D6D6d596b6524610C486F8A9c70958",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ }
+ ],
+ "name": "sendEth",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "sendTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "withdrawTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LITToken",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x53695556f8a1a064EdFf91767f15652BbfaFaD04",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "cap",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "InvalidShortString",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "str",
+ "type": "string"
+ }
+ ],
+ "name": "StringTooLong",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "fromDelegate",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "toDelegate",
+ "type": "address"
+ }
+ ],
+ "name": "DelegateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegate",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "previousBalance",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newBalance",
+ "type": "uint256"
+ }
+ ],
+ "name": "DelegateVotesChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "EIP712DomainChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Paused",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Unpaused",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CLOCK_MODE",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "MINTER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PAUSER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "cap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint32",
+ "name": "pos",
+ "type": "uint32"
+ }
+ ],
+ "name": "checkpoints",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "fromBlock",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint224",
+ "name": "votes",
+ "type": "uint224"
+ }
+ ],
+ "internalType": "struct ERC20Votes.Checkpoint",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "clock",
+ "outputs": [
+ {
+ "internalType": "uint48",
+ "name": "",
+ "type": "uint48"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ }
+ ],
+ "name": "delegate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "delegateBySig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "delegates",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "eip712Domain",
+ "outputs": [
+ {
+ "internalType": "bytes1",
+ "name": "fields",
+ "type": "bytes1"
+ },
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "version",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "chainId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "verifyingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "salt",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "extensions",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastTotalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "nonces",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "numCheckpoints",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "paused",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unpause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PubkeyRouter",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x4B5E97F2D811520e031A8F924e698B329ad83E29",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "PubkeyRoutingDataSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IPubkeyRouter.RootKey",
+ "name": "rootKey",
+ "type": "tuple"
+ }
+ ],
+ "name": "RootKeySet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "adminResetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "rootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "adminSetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "signedMessage",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "checkNodeSignatures",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "deriveEthAddressFromPubkey",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ethAddressToPkpId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getDerivedPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "getRootKeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRoutingData",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isRouted",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "pubkeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingDataAsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "newRootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "voteForRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFT",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x58582b93d978F30b4c4E812A16a7b31C035A69f7",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PKPMinted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "claimAndMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "exists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getNextDerivedKeyId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftMetadataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "mintGrantAndBurnNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "redeemedFreeMintIds",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMintCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RateLimitNFT",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x19593CbBC56Ddd339Fde26278A544a25166C2388",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "AdditionalRequestsPerKilosecondCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "FreeRequestsPerRateLimitWindowSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RLIHolderRateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setAdditionalRequestsPerKilosecondCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "setFreeRequestsPerRateLimitWindow",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxExpirationSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxExpirationSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxRequestsPerKilosecond",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRLIHolderRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "RLIHolderRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "additionalRequestsPerKilosecondCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "payingAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "capacity",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibRateLimitNFTStorage.RateLimit",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestedRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "checkBelowMaxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentSoldRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "defaultRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMintSigTest",
+ "outputs": [],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeRequestsPerRateLimitWindow",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isExpired",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxExpirationSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "redeemedFreeMints",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tokenIdCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenSVG",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "totalSoldRequestsPerKilosecondByExpirationTime",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPHelper",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0xF02b6D6b0970DB3810963300a6Ad38D8429c4cdb",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterialV2",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypesV2",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getDomainWalletRegistry",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPKPNftMetdataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddDomainWalletMetadata",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "name": "onERC721Received",
+ "outputs": [
+ {
+ "internalType": "bytes4",
+ "name": "",
+ "type": "bytes4"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ }
+ ],
+ "name": "setPkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPPermissions",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0xD01c9C30f8F6fa443721629775e1CC7DD9c9e209",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RootHashUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod",
+ "name": "authMethod",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "addPermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToAdd",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeysToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopesToAdd",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToRemove",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToRemove",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "batchAddRemoveAuthMethods",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getAuthMethodId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getPKPPubKeysByAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedActions",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxScopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethodScopes",
+ "outputs": [
+ {
+ "internalType": "bool[]",
+ "name": "",
+ "type": "bool[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethods",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getTokenIdsForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getUserPubkeyForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAction",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isPermittedAuthMethodScopePresent",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRootHash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "leaf",
+ "type": "bytes32"
+ }
+ ],
+ "name": "verifyState",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bool[]",
+ "name": "proofFlags",
+ "type": "bool[]"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "leaves",
+ "type": "bytes32[]"
+ }
+ ],
+ "name": "verifyStates",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFTMetadata",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0xeD46dDcbFF662ad89b0987E0DFE2949901498Da6",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "buffer",
+ "type": "bytes"
+ }
+ ],
+ "name": "bytesToHex",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeProfileForPkp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "imgUrl",
+ "type": "string"
+ }
+ ],
+ "name": "setProfileForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "url",
+ "type": "string"
+ }
+ ],
+ "name": "setUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubKey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Allowlist",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x6fc7834a538cDfF7B937490D9D11b4018692c5d5",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemNotAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "allowAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "allowedItems",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "isAllowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "removeAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "_allowAll",
+ "type": "bool"
+ }
+ ],
+ "name": "setAllowAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setNotAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PaymentDelegation",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x30a5456Ea0D81FB81b82C2949eE1c798EBC933AC",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "restriction",
+ "type": "tuple"
+ }
+ ],
+ "name": "RestrictionSet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "delegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "delegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "getPayers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "getPayersAndRestrictions",
+ "outputs": [
+ {
+ "internalType": "address[][]",
+ "name": "",
+ "type": "address[][]"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction[][]",
+ "name": "",
+ "type": "tuple[][]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getRestriction",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getUsers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "r",
+ "type": "tuple"
+ }
+ ],
+ "name": "setRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "undelegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "undelegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts/dist/dev/habanero.cjs
+var require_habanero = __commonJS({
+ "node_modules/@lit-protocol/contracts/dist/dev/habanero.cjs"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ "config": {
+ "chainId": "175177",
+ "rpcUrl": "https://lit-protocol.calderachain.xyz/http",
+ "chainName": "lit",
+ "litNodeDomainName": "127.0.0.1",
+ "litNodePort": 7470,
+ "rocketPort": 7470
+ },
+ "data": [
+ {
+ "name": "StakingBalances",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x50f6722544937b72EcaDFDE3386BfdDbdBB3103B",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "AliasNotOwnedBySender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRemoveAliasOfActiveValidator",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "aliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountReached",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "OnlyStakingContract",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeGreaterThanMinimumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeLessThanMaximumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaximumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MinimumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "permittedStakersOn",
+ "type": "bool"
+ }
+ ],
+ "name": "PermittedStakersOnChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Staked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ }
+ ],
+ "name": "TokenRewardPerTokenPerEpochSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorNotRewardedBecauseAlias",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorRewarded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorTokensPenalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrawn",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "addAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "addPermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "stakers",
+ "type": "address[]"
+ }
+ ],
+ "name": "addPermittedStakers",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "checkStakingAmounts",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedStaker",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maximumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "minimumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "penalizeTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "permittedStakersOn",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "removeAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "restakePenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxAliasCount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaximumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMinimumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "permitted",
+ "type": "bool"
+ }
+ ],
+ "name": "setPermittedStakersOn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "stakeForValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalStaked",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "transferPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdrawPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Staking",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0xde8627067188C0063384eC682D9187c7d7673934",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwnerOrDevopsAdmin",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedOrPausedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "ComplaintConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256[]",
+ "name": "newKeyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newPeerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "newRpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "name": "ConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newDevopsAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "DevopsAdminSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochEndTimeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochLengthSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochTimeoutSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "KickPenaltyPercentSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newStakingTokenAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakingTokenSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "StateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBurned",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorKickedFromNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorRejoinedNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminKickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "adminRejoinValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "adminResetEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "validators",
+ "type": "address[]"
+ }
+ ],
+ "name": "adminSetValidatorsInCurrentEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountToPenalize",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminSlashValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminStakeForValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "setComplaintConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "newConfig",
+ "type": "tuple"
+ }
+ ],
+ "name": "setConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newDevopsAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "setDevopsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochLength",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "setEpochState",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochTimeout",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setKickPenaltyPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotKickBelowCurrentValidatorThreshold",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRejoinUntilNextEpochBecauseKicked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "CannotReuseCommsKeys",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotVoteTwice",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CouldNotMapNodeAddressToStakerAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "MustBeValidatorInNextEpochToKick",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "validatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nextReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCountToBeReady",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsReadyForNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentEpochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receivedEpochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "SignaledReadyForWrongEpochNumber",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "address[]",
+ "name": "validatorsInNextEpoch",
+ "type": "address[]"
+ }
+ ],
+ "name": "ValidatorIsNotInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "valueName",
+ "type": "string"
+ }
+ ],
+ "name": "ValueMustBeNonzero",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "attestedAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "attestedPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "AttestedWalletRegistered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "ReadyForNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Recovered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToJoin",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToLeave",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newDuration",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardsDurationUpdated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "reporter",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "VotedToKickValidatorInNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "advanceEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "exit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "kickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockValidatorsForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "attestedAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "attestedPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "registerAttestedWallet",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "requestToJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeave",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeaveAsNode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "setIpPortNodeAddressAndCommunicationPubKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "signalReadyForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "stakeAndJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "VersionRequirementsUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "checkVersion",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMaxVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMinVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "complaintConfig",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "config",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfCurrentValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfNextValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKeyTypes",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeAttestedPubKeyMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "pubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.PubKeyMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeStakerAddressMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.AddressMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingBalancesAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpochLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInNextEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getValidatorsStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInCurrentEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInNextEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "voterStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "getVotingStatusToKickValidator",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidatorByNodeAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isRecentValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "kickPenaltyPercentByReason",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "nodeAddressToStakerAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "readyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "shouldKickValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "state",
+ "outputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "validators",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Multisender",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x8c14AB9cF3edca9D28Ddef54bE895078352EDF83",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ }
+ ],
+ "name": "sendEth",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "sendTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "withdrawTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LITToken",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x53695556f8a1a064EdFf91767f15652BbfaFaD04",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "cap",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "InvalidShortString",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "str",
+ "type": "string"
+ }
+ ],
+ "name": "StringTooLong",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "fromDelegate",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "toDelegate",
+ "type": "address"
+ }
+ ],
+ "name": "DelegateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegate",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "previousBalance",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newBalance",
+ "type": "uint256"
+ }
+ ],
+ "name": "DelegateVotesChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "EIP712DomainChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Paused",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Unpaused",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CLOCK_MODE",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "MINTER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PAUSER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "cap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint32",
+ "name": "pos",
+ "type": "uint32"
+ }
+ ],
+ "name": "checkpoints",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "fromBlock",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint224",
+ "name": "votes",
+ "type": "uint224"
+ }
+ ],
+ "internalType": "struct ERC20Votes.Checkpoint",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "clock",
+ "outputs": [
+ {
+ "internalType": "uint48",
+ "name": "",
+ "type": "uint48"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ }
+ ],
+ "name": "delegate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "delegateBySig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "delegates",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "eip712Domain",
+ "outputs": [
+ {
+ "internalType": "bytes1",
+ "name": "fields",
+ "type": "bytes1"
+ },
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "version",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "chainId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "verifyingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "salt",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "extensions",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastTotalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "nonces",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "numCheckpoints",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "paused",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unpause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PubkeyRouter",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0xaaFc41e3615108E558ECf1d873e1500e375b2328",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "PubkeyRoutingDataSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IPubkeyRouter.RootKey",
+ "name": "rootKey",
+ "type": "tuple"
+ }
+ ],
+ "name": "RootKeySet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "adminResetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "rootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "adminSetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "signedMessage",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "checkNodeSignatures",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "deriveEthAddressFromPubkey",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ethAddressToPkpId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getDerivedPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "getRootKeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRoutingData",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isRouted",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "pubkeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingDataAsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "newRootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "voteForRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFT",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x80182Ec46E3dD7Bb8fa4f89b48d303bD769465B2",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PKPMinted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "claimAndMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "exists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getNextDerivedKeyId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftMetadataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "mintGrantAndBurnNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "redeemedFreeMintIds",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMintCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RateLimitNFT",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0xf8a84406aB814dc3a25Ea2e3608cCb632f672427",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "AdditionalRequestsPerKilosecondCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "FreeRequestsPerRateLimitWindowSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RLIHolderRateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setAdditionalRequestsPerKilosecondCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "setFreeRequestsPerRateLimitWindow",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxExpirationSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxExpirationSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxRequestsPerKilosecond",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRLIHolderRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "RLIHolderRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "additionalRequestsPerKilosecondCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "payingAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "capacity",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibRateLimitNFTStorage.RateLimit",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestedRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "checkBelowMaxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentSoldRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "defaultRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMintSigTest",
+ "outputs": [],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeRequestsPerRateLimitWindow",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isExpired",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxExpirationSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "redeemedFreeMints",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tokenIdCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenSVG",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "totalSoldRequestsPerKilosecondByExpirationTime",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPHelper",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x087995cc8BE0Bd6C19b1c7A01F9DB6D2CfFe0c5C",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterialV2",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypesV2",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getDomainWalletRegistry",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPKPNftMetdataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddDomainWalletMetadata",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "name": "onERC721Received",
+ "outputs": [
+ {
+ "internalType": "bytes4",
+ "name": "",
+ "type": "bytes4"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ }
+ ],
+ "name": "setPkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPPermissions",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x1B76BFAA063A35c88c7e82066b32eEa91CB266C6",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RootHashUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod",
+ "name": "authMethod",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "addPermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToAdd",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeysToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopesToAdd",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToRemove",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToRemove",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "batchAddRemoveAuthMethods",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getAuthMethodId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getPKPPubKeysByAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedActions",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxScopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethodScopes",
+ "outputs": [
+ {
+ "internalType": "bool[]",
+ "name": "",
+ "type": "bool[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethods",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getTokenIdsForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getUserPubkeyForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAction",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isPermittedAuthMethodScopePresent",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRootHash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "leaf",
+ "type": "bytes32"
+ }
+ ],
+ "name": "verifyState",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bool[]",
+ "name": "proofFlags",
+ "type": "bool[]"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "leaves",
+ "type": "bytes32[]"
+ }
+ ],
+ "name": "verifyStates",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFTMetadata",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x728C10dA8A152b71eAB4F8adD6225080323B506E",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "buffer",
+ "type": "bytes"
+ }
+ ],
+ "name": "bytesToHex",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeProfileForPkp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "imgUrl",
+ "type": "string"
+ }
+ ],
+ "name": "setProfileForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "url",
+ "type": "string"
+ }
+ ],
+ "name": "setUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubKey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Allowlist",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0xEC97F162940883ed1feeccd9fb741f11a1F996e2",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemNotAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "allowAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "allowedItems",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "isAllowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "removeAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "_allowAll",
+ "type": "bool"
+ }
+ ],
+ "name": "setAllowAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setNotAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PaymentDelegation",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x4AdDb026fbC0a329a75E77f179FFC78c896ac0e6",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "restriction",
+ "type": "tuple"
+ }
+ ],
+ "name": "RestrictionSet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "delegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "delegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "getPayers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "getPayersAndRestrictions",
+ "outputs": [
+ {
+ "internalType": "address[][]",
+ "name": "",
+ "type": "address[][]"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction[][]",
+ "name": "",
+ "type": "tuple[][]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getRestriction",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getUsers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "r",
+ "type": "tuple"
+ }
+ ],
+ "name": "setRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "undelegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "undelegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts/dist/dev/internalDev.cjs
+var require_internalDev = __commonJS({
+ "node_modules/@lit-protocol/contracts/dist/dev/internalDev.cjs"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ "config": {
+ "chainId": "175188",
+ "rpcUrl": "https://yellowstone-rpc.litprotocol.com",
+ "chainName": "yellowstone",
+ "litNodeDomainName": "127.0.0.1",
+ "litNodePort": 7470,
+ "rocketPort": 7470
+ },
+ "data": [
+ {
+ "name": "StakingBalances",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x8D96F8B16338aB9D12339A508b5a3a39E61F8D74",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "AliasNotOwnedBySender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRemoveAliasOfActiveValidator",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "aliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountReached",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "OnlyStakingContract",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeGreaterThanMinimumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeLessThanMaximumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaximumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MinimumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "permittedStakersOn",
+ "type": "bool"
+ }
+ ],
+ "name": "PermittedStakersOnChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Staked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ }
+ ],
+ "name": "TokenRewardPerTokenPerEpochSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorNotRewardedBecauseAlias",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorRewarded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorTokensPenalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrawn",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "addAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "addPermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "stakers",
+ "type": "address[]"
+ }
+ ],
+ "name": "addPermittedStakers",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "checkStakingAmounts",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedStaker",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maximumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "minimumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "penalizeTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "permittedStakersOn",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "removeAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "restakePenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxAliasCount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaximumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMinimumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "permitted",
+ "type": "bool"
+ }
+ ],
+ "name": "setPermittedStakersOn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "stakeForValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalStaked",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "transferPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdrawPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Staking",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x386150020B7AdD47B03D0cf9f4cdaA4451F7c1D4",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwnerOrDevopsAdmin",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedOrPausedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "ComplaintConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256[]",
+ "name": "newKeyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newPeerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "newRpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "name": "ConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newDevopsAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "DevopsAdminSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochEndTimeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochLengthSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochTimeoutSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "KickPenaltyPercentSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newStakingTokenAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakingTokenSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "StateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBurned",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorKickedFromNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorRejoinedNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminKickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "adminRejoinValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "adminResetEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "validators",
+ "type": "address[]"
+ }
+ ],
+ "name": "adminSetValidatorsInCurrentEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountToPenalize",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminSlashValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminStakeForValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "setComplaintConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "newConfig",
+ "type": "tuple"
+ }
+ ],
+ "name": "setConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newDevopsAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "setDevopsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochLength",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "setEpochState",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochTimeout",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setKickPenaltyPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotKickBelowCurrentValidatorThreshold",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRejoinUntilNextEpochBecauseKicked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "CannotReuseCommsKeys",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotVoteTwice",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CouldNotMapNodeAddressToStakerAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "MustBeValidatorInNextEpochToKick",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "validatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nextReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCountToBeReady",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsReadyForNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentEpochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receivedEpochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "SignaledReadyForWrongEpochNumber",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "address[]",
+ "name": "validatorsInNextEpoch",
+ "type": "address[]"
+ }
+ ],
+ "name": "ValidatorIsNotInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "valueName",
+ "type": "string"
+ }
+ ],
+ "name": "ValueMustBeNonzero",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "attestedAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "attestedPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "AttestedWalletRegistered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "ReadyForNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Recovered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToJoin",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToLeave",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newDuration",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardsDurationUpdated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "reporter",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "VotedToKickValidatorInNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "advanceEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "exit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "kickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockValidatorsForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "attestedAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "attestedPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "registerAttestedWallet",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "requestToJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeave",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeaveAsNode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "setIpPortNodeAddressAndCommunicationPubKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "signalReadyForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "stakeAndJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "VersionRequirementsUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "checkVersion",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMaxVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMinVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "complaintConfig",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "config",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfCurrentValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfNextValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKeyTypes",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeAttestedPubKeyMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "pubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.PubKeyMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeStakerAddressMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.AddressMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingBalancesAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpochLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInNextEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getValidatorsStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInCurrentEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInNextEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "voterStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "getVotingStatusToKickValidator",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidatorByNodeAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isRecentValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "kickPenaltyPercentByReason",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "nodeAddressToStakerAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "readyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "shouldKickValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "state",
+ "outputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "validators",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Multisender",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x7007C19435F504AF7a60f85862b9E756806aBF5A",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ }
+ ],
+ "name": "sendEth",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "sendTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "withdrawTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LITToken",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0xd78089bAAe410f5d0eae31D0D56157c73a3Ff98B",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "cap",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "InvalidShortString",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "str",
+ "type": "string"
+ }
+ ],
+ "name": "StringTooLong",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "fromDelegate",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "toDelegate",
+ "type": "address"
+ }
+ ],
+ "name": "DelegateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegate",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "previousBalance",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newBalance",
+ "type": "uint256"
+ }
+ ],
+ "name": "DelegateVotesChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "EIP712DomainChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Paused",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Unpaused",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CLOCK_MODE",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "MINTER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PAUSER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "cap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint32",
+ "name": "pos",
+ "type": "uint32"
+ }
+ ],
+ "name": "checkpoints",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "fromBlock",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint224",
+ "name": "votes",
+ "type": "uint224"
+ }
+ ],
+ "internalType": "struct ERC20Votes.Checkpoint",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "clock",
+ "outputs": [
+ {
+ "internalType": "uint48",
+ "name": "",
+ "type": "uint48"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ }
+ ],
+ "name": "delegate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "delegateBySig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "delegates",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "eip712Domain",
+ "outputs": [
+ {
+ "internalType": "bytes1",
+ "name": "fields",
+ "type": "bytes1"
+ },
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "version",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "chainId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "verifyingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "salt",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "extensions",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastTotalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "nonces",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "numCheckpoints",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "paused",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unpause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PubkeyRouter",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0xBCb7EFc7FDB0b95Ce7C76a3D7faE12217828337D",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "PubkeyRoutingDataSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IPubkeyRouter.RootKey",
+ "name": "rootKey",
+ "type": "tuple"
+ }
+ ],
+ "name": "RootKeySet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "adminResetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "rootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "adminSetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "signedMessage",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "checkNodeSignatures",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "deriveEthAddressFromPubkey",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ethAddressToPkpId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getDerivedPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "getRootKeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRoutingData",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isRouted",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "pubkeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingDataAsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "newRootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "voteForRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFT",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x1CaE44eD5e298C420142F5Bfdd5A72a0AFd2C95d",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PKPMinted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "claimAndMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "exists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getNextDerivedKeyId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftMetadataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "mintGrantAndBurnNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "redeemedFreeMintIds",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMintCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RateLimitNFT",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0xa24EEee69493F5364d7A8de809c3547420616206",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "AdditionalRequestsPerKilosecondCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "FreeRequestsPerRateLimitWindowSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RLIHolderRateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setAdditionalRequestsPerKilosecondCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "setFreeRequestsPerRateLimitWindow",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxExpirationSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxExpirationSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxRequestsPerKilosecond",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRLIHolderRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "RLIHolderRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "additionalRequestsPerKilosecondCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "payingAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "capacity",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibRateLimitNFTStorage.RateLimit",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestedRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "checkBelowMaxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentSoldRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "defaultRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMintSigTest",
+ "outputs": [],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeRequestsPerRateLimitWindow",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isExpired",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxExpirationSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "redeemedFreeMints",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tokenIdCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenSVG",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "totalSoldRequestsPerKilosecondByExpirationTime",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPHelper",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x361Dc112F388c1c0F2a6954b6b2da0461791bB80",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterialV2",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypesV2",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getDomainWalletRegistry",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPKPNftMetdataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddDomainWalletMetadata",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "name": "onERC721Received",
+ "outputs": [
+ {
+ "internalType": "bytes4",
+ "name": "",
+ "type": "bytes4"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ }
+ ],
+ "name": "setPkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPPermissions",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x8087D9fcBC839ff6B493e47FD02A15F4EF460b75",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RootHashUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod",
+ "name": "authMethod",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "addPermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToAdd",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeysToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopesToAdd",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToRemove",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToRemove",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "batchAddRemoveAuthMethods",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getAuthMethodId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getPKPPubKeysByAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedActions",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxScopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethodScopes",
+ "outputs": [
+ {
+ "internalType": "bool[]",
+ "name": "",
+ "type": "bool[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethods",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getTokenIdsForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getUserPubkeyForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAction",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isPermittedAuthMethodScopePresent",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRootHash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "leaf",
+ "type": "bytes32"
+ }
+ ],
+ "name": "verifyState",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bool[]",
+ "name": "proofFlags",
+ "type": "bool[]"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "leaves",
+ "type": "bytes32[]"
+ }
+ ],
+ "name": "verifyStates",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFTMetadata",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x9189D2C972373D8769F0e343d994204babb7197C",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "buffer",
+ "type": "bytes"
+ }
+ ],
+ "name": "bytesToHex",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeProfileForPkp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "imgUrl",
+ "type": "string"
+ }
+ ],
+ "name": "setProfileForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "url",
+ "type": "string"
+ }
+ ],
+ "name": "setUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubKey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Allowlist",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0xF473cd925e7A3D6804fB74CE2F484CA8BCa35Bfb",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemNotAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "allowAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "allowedItems",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "isAllowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "removeAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "_allowAll",
+ "type": "bool"
+ }
+ ],
+ "name": "setAllowAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setNotAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PaymentDelegation",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x49A8a438AAFF2D3EfD22993ECfb58923C28155A3",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "restriction",
+ "type": "tuple"
+ }
+ ],
+ "name": "RestrictionSet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "delegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "delegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "getPayers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "getPayersAndRestrictions",
+ "outputs": [
+ {
+ "internalType": "address[][]",
+ "name": "",
+ "type": "address[][]"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction[][]",
+ "name": "",
+ "type": "tuple[][]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getRestriction",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getUsers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "r",
+ "type": "tuple"
+ }
+ ],
+ "name": "setRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "undelegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "undelegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts/dist/dev/manzano.cjs
+var require_manzano = __commonJS({
+ "node_modules/@lit-protocol/contracts/dist/dev/manzano.cjs"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ "config": {
+ "chainId": "175177",
+ "rpcUrl": "https://lit-protocol.calderachain.xyz/http",
+ "chainName": "lit",
+ "litNodeDomainName": "127.0.0.1",
+ "litNodePort": 7470,
+ "rocketPort": 7470
+ },
+ "data": [
+ {
+ "name": "StakingBalances",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0x82F0a170CEDFAaab623513EE558DB19f5D787C8D",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "AliasNotOwnedBySender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRemoveAliasOfActiveValidator",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "aliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountReached",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "OnlyStakingContract",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeGreaterThanMinimumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeLessThanMaximumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaximumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MinimumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "permittedStakersOn",
+ "type": "bool"
+ }
+ ],
+ "name": "PermittedStakersOnChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Staked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ }
+ ],
+ "name": "TokenRewardPerTokenPerEpochSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorNotRewardedBecauseAlias",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorRewarded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorTokensPenalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrawn",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "addAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "addPermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "stakers",
+ "type": "address[]"
+ }
+ ],
+ "name": "addPermittedStakers",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "checkStakingAmounts",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedStaker",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maximumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "minimumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "penalizeTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "permittedStakersOn",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "removeAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "restakePenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxAliasCount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaximumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMinimumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "permitted",
+ "type": "bool"
+ }
+ ],
+ "name": "setPermittedStakersOn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "stakeForValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalStaked",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "transferPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdrawPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Staking",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0xBC7F8d7864002b6629Ab49781D5199C8dD1DDcE1",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwnerOrDevopsAdmin",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedOrPausedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "ComplaintConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256[]",
+ "name": "newKeyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newPeerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "newRpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "name": "ConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newDevopsAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "DevopsAdminSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochEndTimeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochLengthSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochTimeoutSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "KickPenaltyPercentSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newStakingTokenAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakingTokenSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "StateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBurned",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorKickedFromNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorRejoinedNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminKickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "adminRejoinValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "adminResetEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "validators",
+ "type": "address[]"
+ }
+ ],
+ "name": "adminSetValidatorsInCurrentEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountToPenalize",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminSlashValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminStakeForValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "setComplaintConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "newConfig",
+ "type": "tuple"
+ }
+ ],
+ "name": "setConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newDevopsAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "setDevopsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochLength",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "setEpochState",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochTimeout",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setKickPenaltyPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotKickBelowCurrentValidatorThreshold",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRejoinUntilNextEpochBecauseKicked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "CannotReuseCommsKeys",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotVoteTwice",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CouldNotMapNodeAddressToStakerAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "MustBeValidatorInNextEpochToKick",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "validatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nextReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCountToBeReady",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsReadyForNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentEpochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receivedEpochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "SignaledReadyForWrongEpochNumber",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "address[]",
+ "name": "validatorsInNextEpoch",
+ "type": "address[]"
+ }
+ ],
+ "name": "ValidatorIsNotInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "valueName",
+ "type": "string"
+ }
+ ],
+ "name": "ValueMustBeNonzero",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "attestedAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "attestedPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "AttestedWalletRegistered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "ReadyForNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Recovered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToJoin",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToLeave",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newDuration",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardsDurationUpdated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "reporter",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "VotedToKickValidatorInNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "advanceEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "exit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "kickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockValidatorsForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "attestedAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "attestedPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "registerAttestedWallet",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "requestToJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeave",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeaveAsNode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "setIpPortNodeAddressAndCommunicationPubKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "signalReadyForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "stakeAndJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "VersionRequirementsUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "checkVersion",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMaxVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMinVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "complaintConfig",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "config",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfCurrentValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfNextValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKeyTypes",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeAttestedPubKeyMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "pubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.PubKeyMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeStakerAddressMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.AddressMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingBalancesAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpochLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInNextEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getValidatorsStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInCurrentEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInNextEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "voterStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "getVotingStatusToKickValidator",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidatorByNodeAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isRecentValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "kickPenaltyPercentByReason",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "nodeAddressToStakerAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "readyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "shouldKickValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "state",
+ "outputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "validators",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Multisender",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0xBd119B72B52d58A7dDd771A2E4984d106Da0D1DB",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ }
+ ],
+ "name": "sendEth",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "sendTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "withdrawTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LITToken",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0x53695556f8a1a064EdFf91767f15652BbfaFaD04",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "cap",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "InvalidShortString",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "str",
+ "type": "string"
+ }
+ ],
+ "name": "StringTooLong",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "fromDelegate",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "toDelegate",
+ "type": "address"
+ }
+ ],
+ "name": "DelegateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegate",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "previousBalance",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newBalance",
+ "type": "uint256"
+ }
+ ],
+ "name": "DelegateVotesChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "EIP712DomainChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Paused",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Unpaused",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CLOCK_MODE",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "MINTER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PAUSER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "cap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint32",
+ "name": "pos",
+ "type": "uint32"
+ }
+ ],
+ "name": "checkpoints",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "fromBlock",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint224",
+ "name": "votes",
+ "type": "uint224"
+ }
+ ],
+ "internalType": "struct ERC20Votes.Checkpoint",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "clock",
+ "outputs": [
+ {
+ "internalType": "uint48",
+ "name": "",
+ "type": "uint48"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ }
+ ],
+ "name": "delegate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "delegateBySig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "delegates",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "eip712Domain",
+ "outputs": [
+ {
+ "internalType": "bytes1",
+ "name": "fields",
+ "type": "bytes1"
+ },
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "version",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "chainId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "verifyingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "salt",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "extensions",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastTotalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "nonces",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "numCheckpoints",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "paused",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unpause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PubkeyRouter",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0xF6b0fE0d0C27C855f7f2e021fAd028af02cC52cb",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "PubkeyRoutingDataSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IPubkeyRouter.RootKey",
+ "name": "rootKey",
+ "type": "tuple"
+ }
+ ],
+ "name": "RootKeySet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "adminResetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "rootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "adminSetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "signedMessage",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "checkNodeSignatures",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "deriveEthAddressFromPubkey",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ethAddressToPkpId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getDerivedPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "getRootKeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRoutingData",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isRouted",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "pubkeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingDataAsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "newRootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "voteForRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFT",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0x3c3ad2d238757Ea4AF87A8624c716B11455c1F9A",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PKPMinted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "claimAndMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "exists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getNextDerivedKeyId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftMetadataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "mintGrantAndBurnNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "redeemedFreeMintIds",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMintCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RateLimitNFT",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0x9b1B8aD8A4144Be9F8Fb5C4766eE37CE0754AEAb",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "AdditionalRequestsPerKilosecondCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "FreeRequestsPerRateLimitWindowSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RLIHolderRateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setAdditionalRequestsPerKilosecondCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "setFreeRequestsPerRateLimitWindow",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxExpirationSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxExpirationSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxRequestsPerKilosecond",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRLIHolderRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "RLIHolderRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "additionalRequestsPerKilosecondCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "payingAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "capacity",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibRateLimitNFTStorage.RateLimit",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestedRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "checkBelowMaxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentSoldRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "defaultRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMintSigTest",
+ "outputs": [],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeRequestsPerRateLimitWindow",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isExpired",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxExpirationSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "redeemedFreeMints",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tokenIdCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenSVG",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "totalSoldRequestsPerKilosecondByExpirationTime",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPHelper",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0x24d646b9510e56af8B15de759331d897C4d66044",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterialV2",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypesV2",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getDomainWalletRegistry",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPKPNftMetdataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddDomainWalletMetadata",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "name": "onERC721Received",
+ "outputs": [
+ {
+ "internalType": "bytes4",
+ "name": "",
+ "type": "bytes4"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ }
+ ],
+ "name": "setPkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPPermissions",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0x974856dB1C4259915b709E6BcA26A002fbdd31ea",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RootHashUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod",
+ "name": "authMethod",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "addPermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToAdd",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeysToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopesToAdd",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToRemove",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToRemove",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "batchAddRemoveAuthMethods",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getAuthMethodId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getPKPPubKeysByAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedActions",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxScopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethodScopes",
+ "outputs": [
+ {
+ "internalType": "bool[]",
+ "name": "",
+ "type": "bool[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethods",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getTokenIdsForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getUserPubkeyForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAction",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isPermittedAuthMethodScopePresent",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRootHash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "leaf",
+ "type": "bytes32"
+ }
+ ],
+ "name": "verifyState",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bool[]",
+ "name": "proofFlags",
+ "type": "bool[]"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "leaves",
+ "type": "bytes32[]"
+ }
+ ],
+ "name": "verifyStates",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFTMetadata",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0xa87fe043AD341A1Dc8c5E48d75BA9f712256fe7e",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "buffer",
+ "type": "bytes"
+ }
+ ],
+ "name": "bytesToHex",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeProfileForPkp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "imgUrl",
+ "type": "string"
+ }
+ ],
+ "name": "setProfileForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "url",
+ "type": "string"
+ }
+ ],
+ "name": "setUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubKey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PaymentDelegation",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0x180BA6Ec983019c578004D91c08897c12d78F516",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "restriction",
+ "type": "tuple"
+ }
+ ],
+ "name": "RestrictionSet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "delegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "delegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "getPayers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "getPayersAndRestrictions",
+ "outputs": [
+ {
+ "internalType": "address[][]",
+ "name": "",
+ "type": "address[][]"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction[][]",
+ "name": "",
+ "type": "tuple[][]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getRestriction",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getUsers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint128",
+ "name": "totalMaxPrice",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "r",
+ "type": "tuple"
+ }
+ ],
+ "name": "setRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "undelegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "undelegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Allowlist",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0xC52b72E2AD3dC58B7d23197575fb48A4523fa734",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemNotAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "allowAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "allowedItems",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "isAllowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "removeAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "_allowAll",
+ "type": "bool"
+ }
+ ],
+ "name": "setAllowAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setNotAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts/dist/prod/datil.cjs
+var require_datil2 = __commonJS({
+ "node_modules/@lit-protocol/contracts/dist/prod/datil.cjs"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ "config": {
+ "chainId": "175188",
+ "rpcUrl": "https://yellowstone-rpc.litprotocol.com",
+ "chainName": "yellowstone",
+ "litNodeDomainName": "127.0.0.1",
+ "litNodePort": 7470,
+ "rocketPort": 7470
+ },
+ "data": [
+ {
+ "name": "StakingBalances",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0x9c9D147dad75D8B9Bd327405098D65C727296B54",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "AliasNotOwnedBySender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRemoveAliasOfActiveValidator",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "aliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountReached",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "OnlyStakingContract",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeGreaterThanMinimumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeLessThanMaximumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaximumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MinimumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "permittedStakersOn",
+ "type": "bool"
+ }
+ ],
+ "name": "PermittedStakersOnChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Staked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ }
+ ],
+ "name": "TokenRewardPerTokenPerEpochSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorNotRewardedBecauseAlias",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorRewarded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorTokensPenalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrawn",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "addAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "addPermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "stakers",
+ "type": "address[]"
+ }
+ ],
+ "name": "addPermittedStakers",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "checkStakingAmounts",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedStaker",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maximumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "minimumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "penalizeTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "permittedStakersOn",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "removeAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "restakePenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxAliasCount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaximumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMinimumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "permitted",
+ "type": "bool"
+ }
+ ],
+ "name": "setPermittedStakersOn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalStaked",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "transferPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdrawPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Staking",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0x21d636d95eE71150c0c3Ffa79268c989a329d1CE",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotKickBelowCurrentValidatorThreshold",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRejoinUntilNextEpochBecauseKicked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "CannotReuseCommsKeys",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotVoteTwice",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CouldNotMapNodeAddressToStakerAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedOrPausedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "MustBeValidatorInNextEpochToKick",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "validatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nextReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCountToBeReady",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsReadyForNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentEpochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receivedEpochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "SignaledReadyForWrongEpochNumber",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "address[]",
+ "name": "validatorsInNextEpoch",
+ "type": "address[]"
+ }
+ ],
+ "name": "ValidatorIsNotInNextEpoch",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "ComplaintConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256[]",
+ "name": "newKeyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newPeerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "newRpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "name": "ConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochEndTimeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochLengthSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochTimeoutSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "KickPenaltyPercentSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "ReadyForNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Recovered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToJoin",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToLeave",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newDuration",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardsDurationUpdated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newStakingTokenAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakingTokenSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "StateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBurned",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorKickedFromNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorRejoinedNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "reporter",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "VotedToKickValidatorInNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminKickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "adminRejoinValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "adminResetEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountToPenalize",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminSlashValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "advanceEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "exit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "kickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockValidatorsForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "requestToJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeave",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeaveAsNode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "setComplaintConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "newConfig",
+ "type": "tuple"
+ }
+ ],
+ "name": "setConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochLength",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "setEpochState",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochTimeout",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "setIpPortNodeAddressAndCommunicationPubKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setKickPenaltyPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "signalReadyForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "stakeAndJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "VersionRequirementsUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "checkVersion",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMaxVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMinVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "complaintConfig",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "config",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfCurrentValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfNextValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKeyTypes",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeStakerAddressMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.AddressMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingBalancesAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpochLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInNextEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getValidatorsStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInCurrentEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInNextEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "voterStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "getVotingStatusToKickValidator",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidatorByNodeAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "kickPenaltyPercentByReason",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "nodeAddressToStakerAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "readyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "shouldKickValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "state",
+ "outputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "validators",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Multisender",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0xB87CcFf487B84b60c09DBE15337a46bf5a9e0680",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ }
+ ],
+ "name": "sendEth",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "sendTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "withdrawTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LITToken",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0xd78089bAAe410f5d0eae31D0D56157c73a3Ff98B",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "cap",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "InvalidShortString",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "str",
+ "type": "string"
+ }
+ ],
+ "name": "StringTooLong",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "fromDelegate",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "toDelegate",
+ "type": "address"
+ }
+ ],
+ "name": "DelegateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegate",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "previousBalance",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newBalance",
+ "type": "uint256"
+ }
+ ],
+ "name": "DelegateVotesChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "EIP712DomainChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Paused",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Unpaused",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CLOCK_MODE",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "MINTER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PAUSER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "cap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint32",
+ "name": "pos",
+ "type": "uint32"
+ }
+ ],
+ "name": "checkpoints",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "fromBlock",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint224",
+ "name": "votes",
+ "type": "uint224"
+ }
+ ],
+ "internalType": "struct ERC20Votes.Checkpoint",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "clock",
+ "outputs": [
+ {
+ "internalType": "uint48",
+ "name": "",
+ "type": "uint48"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ }
+ ],
+ "name": "delegate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "delegateBySig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "delegates",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "eip712Domain",
+ "outputs": [
+ {
+ "internalType": "bytes1",
+ "name": "fields",
+ "type": "bytes1"
+ },
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "version",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "chainId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "verifyingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "salt",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "extensions",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastTotalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "nonces",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "numCheckpoints",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "paused",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unpause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PubkeyRouter",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0xF182d6bEf16Ba77e69372dD096D8B70Bc3d5B475",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "PubkeyRoutingDataSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IPubkeyRouter.RootKey",
+ "name": "rootKey",
+ "type": "tuple"
+ }
+ ],
+ "name": "RootKeySet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "adminResetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "signedMessage",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "checkNodeSignatures",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "deriveEthAddressFromPubkey",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ethAddressToPkpId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getDerivedPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "getRootKeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRoutingData",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isRouted",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "pubkeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingDataAsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "newRootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "voteForRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFT",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0x487A9D096BB4B7Ac1520Cb12370e31e677B175EA",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PKPMinted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "claimAndMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "exists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getNextDerivedKeyId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftMetadataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "mintGrantAndBurnNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "redeemedFreeMintIds",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMintCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RateLimitNFT",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0x01205d94Fee4d9F59A4aB24bf80D11d4DdAf6Eed",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "AdditionalRequestsPerKilosecondCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "FreeRequestsPerRateLimitWindowSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RLIHolderRateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setAdditionalRequestsPerKilosecondCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "setFreeRequestsPerRateLimitWindow",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxExpirationSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxExpirationSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxRequestsPerKilosecond",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRLIHolderRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "RLIHolderRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "additionalRequestsPerKilosecondCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "payingAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "capacity",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibRateLimitNFTStorage.RateLimit",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestedRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "checkBelowMaxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentSoldRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "defaultRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMintSigTest",
+ "outputs": [],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeRequestsPerRateLimitWindow",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isExpired",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxExpirationSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "redeemedFreeMints",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tokenIdCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenSVG",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "totalSoldRequestsPerKilosecondByExpirationTime",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPHelper",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0x5B55ee57C459a31072145F2Fc00b35de20520adD",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getDomainWalletRegistry",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPKPNftMetdataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddDomainWalletMetadata",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "name": "onERC721Received",
+ "outputs": [
+ {
+ "internalType": "bytes4",
+ "name": "",
+ "type": "bytes4"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ }
+ ],
+ "name": "setPkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPPermissions",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0x213Db6E1446928E19588269bEF7dFc9187c4829A",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RootHashUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod",
+ "name": "authMethod",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "addPermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToAdd",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeysToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopesToAdd",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToRemove",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToRemove",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "batchAddRemoveAuthMethods",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getAuthMethodId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedActions",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxScopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethodScopes",
+ "outputs": [
+ {
+ "internalType": "bool[]",
+ "name": "",
+ "type": "bool[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethods",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getTokenIdsForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getUserPubkeyForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAction",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isPermittedAuthMethodScopePresent",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRootHash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "leaf",
+ "type": "bytes32"
+ }
+ ],
+ "name": "verifyState",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bool[]",
+ "name": "proofFlags",
+ "type": "bool[]"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "leaves",
+ "type": "bytes32[]"
+ }
+ ],
+ "name": "verifyStates",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFTMetadata",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0x4BB8681d3a24F130cC746C7DC31167C93D72d32b",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "buffer",
+ "type": "bytes"
+ }
+ ],
+ "name": "bytesToHex",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeProfileForPkp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "imgUrl",
+ "type": "string"
+ }
+ ],
+ "name": "setProfileForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "url",
+ "type": "string"
+ }
+ ],
+ "name": "setUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubKey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Allowlist",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0xE393BCD2a9099C903D28949Bac2C4cEd21E55415",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemNotAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "allowAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "allowedItems",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "isAllowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "removeAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "_allowAll",
+ "type": "bool"
+ }
+ ],
+ "name": "setAllowAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setNotAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PaymentDelegation",
+ "contracts": [
+ {
+ "network": "datil",
+ "address_hash": "0xF19ea8634969730cB51BFEe2E2A5353062053C14",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "restriction",
+ "type": "tuple"
+ }
+ ],
+ "name": "RestrictionSet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "delegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "delegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "getPayers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "getPayersAndRestrictions",
+ "outputs": [
+ {
+ "internalType": "address[][]",
+ "name": "",
+ "type": "address[][]"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction[][]",
+ "name": "",
+ "type": "tuple[][]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getRestriction",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getUsers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "setDefaultRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "r",
+ "type": "tuple"
+ }
+ ],
+ "name": "setRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "undelegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "undelegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts/dist/prod/cayenne.cjs
+var require_cayenne2 = __commonJS({
+ "node_modules/@lit-protocol/contracts/dist/prod/cayenne.cjs"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ "data": [
+ {
+ "name": "StakingBalances",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x523642999938B5e9085E1e7dF38Eac96DC3fdD91",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "AliasNotOwnedBySender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRemoveAliasOfActiveValidator",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "aliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountReached",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "OnlyStakingContract",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeGreaterThanMinimumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeLessThanMaximumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaximumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MinimumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "permittedStakersOn",
+ "type": "bool"
+ }
+ ],
+ "name": "PermittedStakersOnChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Staked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ }
+ ],
+ "name": "TokenRewardPerTokenPerEpochSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorNotRewardedBecauseAlias",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorRewarded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorTokensPenalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrawn",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "addAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "addPermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "stakers",
+ "type": "address[]"
+ }
+ ],
+ "name": "addPermittedStakers",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "checkStakingAmounts",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedStaker",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maximumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "minimumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "penalizeTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "permittedStakersOn",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "removeAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "restakePenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxAliasCount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaximumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMinimumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "permitted",
+ "type": "bool"
+ }
+ ],
+ "name": "setPermittedStakersOn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalStaked",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "transferPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdrawPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Staking",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x5bFa704aF947b3b0f966e4248DED7bfa6edeF952",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotKickBelowCurrentValidatorThreshold",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRejoinUntilNextEpochBecauseKicked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "CannotReuseCommsKeys",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotVoteTwice",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CouldNotMapNodeAddressToStakerAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedOrPausedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "MustBeValidatorInNextEpochToKick",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "validatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nextReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCountToBeReady",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsReadyForNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentEpochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receivedEpochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "SignaledReadyForWrongEpochNumber",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "address[]",
+ "name": "validatorsInNextEpoch",
+ "type": "address[]"
+ }
+ ],
+ "name": "ValidatorIsNotInNextEpoch",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "ComplaintConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256[]",
+ "name": "newKeyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newPeerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "newRpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "name": "ConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochEndTimeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochLengthSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochTimeoutSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "KickPenaltyPercentSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "ReadyForNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Recovered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToJoin",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToLeave",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newDuration",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardsDurationUpdated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newStakingTokenAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakingTokenSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "StateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBurned",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorKickedFromNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorRejoinedNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "reporter",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "VotedToKickValidatorInNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminKickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "adminRejoinValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "adminResetEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountToPenalize",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminSlashValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "advanceEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "exit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "kickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockValidatorsForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "requestToJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeave",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeaveAsNode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "setComplaintConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "newConfig",
+ "type": "tuple"
+ }
+ ],
+ "name": "setConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochLength",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "setEpochState",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochTimeout",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "setIpPortNodeAddressAndCommunicationPubKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setKickPenaltyPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "signalReadyForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "stakeAndJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "VersionRequirementsUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "checkVersion",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMaxVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMinVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "complaintConfig",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "config",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfCurrentValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfNextValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKeyTypes",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeStakerAddressMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.AddressMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingBalancesAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpochLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInNextEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getValidatorsStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInCurrentEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInNextEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "voterStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "getVotingStatusToKickValidator",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidatorByNodeAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "kickPenaltyPercentByReason",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "nodeAddressToStakerAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "readyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "shouldKickValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "state",
+ "outputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "validators",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Multisender",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0xD4e3D27d21D6D6d596b6524610C486F8A9c70958",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ }
+ ],
+ "name": "sendEth",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "sendTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "withdrawTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LITToken",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x53695556f8a1a064EdFf91767f15652BbfaFaD04",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "cap",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "InvalidShortString",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "str",
+ "type": "string"
+ }
+ ],
+ "name": "StringTooLong",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "fromDelegate",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "toDelegate",
+ "type": "address"
+ }
+ ],
+ "name": "DelegateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegate",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "previousBalance",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newBalance",
+ "type": "uint256"
+ }
+ ],
+ "name": "DelegateVotesChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "EIP712DomainChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Paused",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Unpaused",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CLOCK_MODE",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "MINTER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PAUSER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "cap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint32",
+ "name": "pos",
+ "type": "uint32"
+ }
+ ],
+ "name": "checkpoints",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "fromBlock",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint224",
+ "name": "votes",
+ "type": "uint224"
+ }
+ ],
+ "internalType": "struct ERC20Votes.Checkpoint",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "clock",
+ "outputs": [
+ {
+ "internalType": "uint48",
+ "name": "",
+ "type": "uint48"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ }
+ ],
+ "name": "delegate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "delegateBySig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "delegates",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "eip712Domain",
+ "outputs": [
+ {
+ "internalType": "bytes1",
+ "name": "fields",
+ "type": "bytes1"
+ },
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "version",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "chainId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "verifyingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "salt",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "extensions",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastTotalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "nonces",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "numCheckpoints",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "paused",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unpause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PubkeyRouter",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x4B5E97F2D811520e031A8F924e698B329ad83E29",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "PubkeyRoutingDataSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IPubkeyRouter.RootKey",
+ "name": "rootKey",
+ "type": "tuple"
+ }
+ ],
+ "name": "RootKeySet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "adminResetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "signedMessage",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "checkNodeSignatures",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "deriveEthAddressFromPubkey",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ethAddressToPkpId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getDerivedPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "getRootKeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRoutingData",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isRouted",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "pubkeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingDataAsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "newRootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "voteForRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFT",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x58582b93d978F30b4c4E812A16a7b31C035A69f7",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PKPMinted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "claimAndMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "exists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getNextDerivedKeyId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftMetadataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "mintGrantAndBurnNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "redeemedFreeMintIds",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMintCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RateLimitNFT",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x19593CbBC56Ddd339Fde26278A544a25166C2388",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "AdditionalRequestsPerKilosecondCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "FreeRequestsPerRateLimitWindowSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RLIHolderRateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setAdditionalRequestsPerKilosecondCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "setFreeRequestsPerRateLimitWindow",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxExpirationSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxExpirationSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxRequestsPerKilosecond",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRLIHolderRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "RLIHolderRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "additionalRequestsPerKilosecondCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "payingAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "capacity",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibRateLimitNFTStorage.RateLimit",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestedRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "checkBelowMaxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentSoldRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "defaultRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMintSigTest",
+ "outputs": [],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeRequestsPerRateLimitWindow",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isExpired",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxExpirationSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "redeemedFreeMints",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tokenIdCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenSVG",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "totalSoldRequestsPerKilosecondByExpirationTime",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPHelper",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0xF02b6D6b0970DB3810963300a6Ad38D8429c4cdb",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getDomainWalletRegistry",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPKPNftMetdataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddDomainWalletMetadata",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "name": "onERC721Received",
+ "outputs": [
+ {
+ "internalType": "bytes4",
+ "name": "",
+ "type": "bytes4"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ }
+ ],
+ "name": "setPkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPPermissions",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0xD01c9C30f8F6fa443721629775e1CC7DD9c9e209",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RootHashUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod",
+ "name": "authMethod",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "addPermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToAdd",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeysToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopesToAdd",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToRemove",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToRemove",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "batchAddRemoveAuthMethods",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getAuthMethodId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedActions",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxScopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethodScopes",
+ "outputs": [
+ {
+ "internalType": "bool[]",
+ "name": "",
+ "type": "bool[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethods",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getTokenIdsForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getUserPubkeyForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAction",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isPermittedAuthMethodScopePresent",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRootHash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "leaf",
+ "type": "bytes32"
+ }
+ ],
+ "name": "verifyState",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bool[]",
+ "name": "proofFlags",
+ "type": "bool[]"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "leaves",
+ "type": "bytes32[]"
+ }
+ ],
+ "name": "verifyStates",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFTMetadata",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0xeD46dDcbFF662ad89b0987E0DFE2949901498Da6",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "buffer",
+ "type": "bytes"
+ }
+ ],
+ "name": "bytesToHex",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeProfileForPkp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "imgUrl",
+ "type": "string"
+ }
+ ],
+ "name": "setProfileForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "url",
+ "type": "string"
+ }
+ ],
+ "name": "setUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubKey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Allowlist",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x6fc7834a538cDfF7B937490D9D11b4018692c5d5",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemNotAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "allowAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "allowedItems",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "isAllowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "removeAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "_allowAll",
+ "type": "bool"
+ }
+ ],
+ "name": "setAllowAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setNotAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PaymentDelegation",
+ "contracts": [
+ {
+ "network": "cayenne",
+ "address_hash": "0x30a5456Ea0D81FB81b82C2949eE1c798EBC933AC",
+ "inserted_at": "2024-05-02T21:29:06Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "restriction",
+ "type": "tuple"
+ }
+ ],
+ "name": "RestrictionSet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "delegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "delegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "getPayers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "getPayersAndRestrictions",
+ "outputs": [
+ {
+ "internalType": "address[][]",
+ "name": "",
+ "type": "address[][]"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction[][]",
+ "name": "",
+ "type": "tuple[][]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getRestriction",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getUsers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "setDefaultRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "r",
+ "type": "tuple"
+ }
+ ],
+ "name": "setRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "undelegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "undelegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts/dist/prod/datil-dev.cjs
+var require_datil_dev2 = __commonJS({
+ "node_modules/@lit-protocol/contracts/dist/prod/datil-dev.cjs"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ "config": {
+ "chainId": "175188",
+ "rpcUrl": "https://yellowstone-rpc.litprotocol.com",
+ "chainName": "yellowstone",
+ "litNodeDomainName": "127.0.0.1",
+ "litNodePort": 7470,
+ "rocketPort": 7470
+ },
+ "data": [
+ {
+ "name": "StakingBalances",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0x77F277D4858Ae589b2263FEfd50CaD7838fE4741",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "AliasNotOwnedBySender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRemoveAliasOfActiveValidator",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "aliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountReached",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "OnlyStakingContract",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeGreaterThanMinimumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeLessThanMaximumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaximumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MinimumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "permittedStakersOn",
+ "type": "bool"
+ }
+ ],
+ "name": "PermittedStakersOnChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Staked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ }
+ ],
+ "name": "TokenRewardPerTokenPerEpochSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorNotRewardedBecauseAlias",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorRewarded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorTokensPenalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrawn",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "addAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "addPermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "stakers",
+ "type": "address[]"
+ }
+ ],
+ "name": "addPermittedStakers",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "checkStakingAmounts",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedStaker",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maximumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "minimumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "penalizeTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "permittedStakersOn",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "removeAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "restakePenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxAliasCount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaximumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMinimumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "permitted",
+ "type": "bool"
+ }
+ ],
+ "name": "setPermittedStakersOn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalStaked",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "transferPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdrawPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Staking",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0xD4507CD392Af2c80919219d7896508728f6A623F",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotKickBelowCurrentValidatorThreshold",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRejoinUntilNextEpochBecauseKicked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "CannotReuseCommsKeys",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotVoteTwice",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CouldNotMapNodeAddressToStakerAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedOrPausedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "MustBeValidatorInNextEpochToKick",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "validatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nextReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCountToBeReady",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsReadyForNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentEpochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receivedEpochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "SignaledReadyForWrongEpochNumber",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "address[]",
+ "name": "validatorsInNextEpoch",
+ "type": "address[]"
+ }
+ ],
+ "name": "ValidatorIsNotInNextEpoch",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "ComplaintConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256[]",
+ "name": "newKeyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newPeerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "newRpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "name": "ConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochEndTimeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochLengthSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochTimeoutSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "KickPenaltyPercentSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "ReadyForNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Recovered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToJoin",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToLeave",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newDuration",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardsDurationUpdated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newStakingTokenAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakingTokenSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "StateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBurned",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorKickedFromNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorRejoinedNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "reporter",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "VotedToKickValidatorInNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminKickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "adminRejoinValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "adminResetEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountToPenalize",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminSlashValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "advanceEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "exit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "kickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockValidatorsForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "requestToJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeave",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeaveAsNode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "setComplaintConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "newConfig",
+ "type": "tuple"
+ }
+ ],
+ "name": "setConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochLength",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "setEpochState",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochTimeout",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "setIpPortNodeAddressAndCommunicationPubKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setKickPenaltyPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "signalReadyForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "stakeAndJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "VersionRequirementsUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "checkVersion",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMaxVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMinVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "complaintConfig",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "config",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfCurrentValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfNextValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKeyTypes",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeStakerAddressMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.AddressMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingBalancesAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpochLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInNextEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getValidatorsStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInCurrentEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInNextEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "voterStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "getVotingStatusToKickValidator",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidatorByNodeAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "kickPenaltyPercentByReason",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "nodeAddressToStakerAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "readyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "shouldKickValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "state",
+ "outputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "validators",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Multisender",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0x116eBFb474C6aa13e1B8b19253fd0E3f226A982f",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ }
+ ],
+ "name": "sendEth",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "sendTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "withdrawTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LITToken",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0x81d8f0e945E3Bdc735dA3E19C4Df77a8B91046Cd",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "cap",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "InvalidShortString",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "str",
+ "type": "string"
+ }
+ ],
+ "name": "StringTooLong",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "fromDelegate",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "toDelegate",
+ "type": "address"
+ }
+ ],
+ "name": "DelegateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegate",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "previousBalance",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newBalance",
+ "type": "uint256"
+ }
+ ],
+ "name": "DelegateVotesChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "EIP712DomainChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Paused",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Unpaused",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CLOCK_MODE",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "MINTER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PAUSER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "cap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint32",
+ "name": "pos",
+ "type": "uint32"
+ }
+ ],
+ "name": "checkpoints",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "fromBlock",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint224",
+ "name": "votes",
+ "type": "uint224"
+ }
+ ],
+ "internalType": "struct ERC20Votes.Checkpoint",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "clock",
+ "outputs": [
+ {
+ "internalType": "uint48",
+ "name": "",
+ "type": "uint48"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ }
+ ],
+ "name": "delegate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "delegateBySig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "delegates",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "eip712Domain",
+ "outputs": [
+ {
+ "internalType": "bytes1",
+ "name": "fields",
+ "type": "bytes1"
+ },
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "version",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "chainId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "verifyingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "salt",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "extensions",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastTotalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "nonces",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "numCheckpoints",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "paused",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unpause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PubkeyRouter",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0xbc01f21C58Ca83f25b09338401D53D4c2344D1d9",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "PubkeyRoutingDataSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IPubkeyRouter.RootKey",
+ "name": "rootKey",
+ "type": "tuple"
+ }
+ ],
+ "name": "RootKeySet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "adminResetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "signedMessage",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "checkNodeSignatures",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "deriveEthAddressFromPubkey",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ethAddressToPkpId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getDerivedPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "getRootKeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRoutingData",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isRouted",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "pubkeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingDataAsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "newRootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "voteForRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFT",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0x02C4242F72d62c8fEF2b2DB088A35a9F4ec741C7",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PKPMinted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "claimAndMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "exists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getNextDerivedKeyId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftMetadataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "mintGrantAndBurnNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "redeemedFreeMintIds",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMintCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RateLimitNFT",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0x1A12D5B3D6A52B3bDe0468900795D35ce994ac2b",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "AdditionalRequestsPerKilosecondCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "FreeRequestsPerRateLimitWindowSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RLIHolderRateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setAdditionalRequestsPerKilosecondCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "setFreeRequestsPerRateLimitWindow",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxExpirationSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxExpirationSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxRequestsPerKilosecond",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRLIHolderRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "RLIHolderRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "additionalRequestsPerKilosecondCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "payingAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "capacity",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibRateLimitNFTStorage.RateLimit",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestedRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "checkBelowMaxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentSoldRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "defaultRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMintSigTest",
+ "outputs": [],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeRequestsPerRateLimitWindow",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isExpired",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxExpirationSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "redeemedFreeMints",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tokenIdCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenSVG",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "totalSoldRequestsPerKilosecondByExpirationTime",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPHelper",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0xCa9C62fB4ceA8831eBb6fD9fE747Cc372515CF7f",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getDomainWalletRegistry",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPKPNftMetdataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddDomainWalletMetadata",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "name": "onERC721Received",
+ "outputs": [
+ {
+ "internalType": "bytes4",
+ "name": "",
+ "type": "bytes4"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ }
+ ],
+ "name": "setPkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPPermissions",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0xf64638F1eb3b064f5443F7c9e2Dc050ed535D891",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RootHashUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod",
+ "name": "authMethod",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "addPermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToAdd",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeysToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopesToAdd",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToRemove",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToRemove",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "batchAddRemoveAuthMethods",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getAuthMethodId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedActions",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxScopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethodScopes",
+ "outputs": [
+ {
+ "internalType": "bool[]",
+ "name": "",
+ "type": "bool[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethods",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getTokenIdsForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getUserPubkeyForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAction",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isPermittedAuthMethodScopePresent",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRootHash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "leaf",
+ "type": "bytes32"
+ }
+ ],
+ "name": "verifyState",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bool[]",
+ "name": "proofFlags",
+ "type": "bool[]"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "leaves",
+ "type": "bytes32[]"
+ }
+ ],
+ "name": "verifyStates",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFTMetadata",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0x784A743bBBB5f5225CeC7979A3304179be17D66d",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "buffer",
+ "type": "bytes"
+ }
+ ],
+ "name": "bytesToHex",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeProfileForPkp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "imgUrl",
+ "type": "string"
+ }
+ ],
+ "name": "setProfileForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "url",
+ "type": "string"
+ }
+ ],
+ "name": "setUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubKey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Allowlist",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0xC60051658E346554C1F572ef3Aa4bD8596E026b6",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemNotAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "allowAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "allowedItems",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "isAllowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "removeAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "_allowAll",
+ "type": "bool"
+ }
+ ],
+ "name": "setAllowAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setNotAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PaymentDelegation",
+ "contracts": [
+ {
+ "network": "datil-dev",
+ "address_hash": "0xbB23168855efe735cE9e6fD6877bAf13E02c410f",
+ "inserted_at": "2024-11-27T01:57:28Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "restriction",
+ "type": "tuple"
+ }
+ ],
+ "name": "RestrictionSet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "delegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "delegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "getPayers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "getPayersAndRestrictions",
+ "outputs": [
+ {
+ "internalType": "address[][]",
+ "name": "",
+ "type": "address[][]"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction[][]",
+ "name": "",
+ "type": "tuple[][]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getRestriction",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getUsers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "setDefaultRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "r",
+ "type": "tuple"
+ }
+ ],
+ "name": "setRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "undelegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "undelegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts/dist/prod/datil-test.cjs
+var require_datil_test2 = __commonJS({
+ "node_modules/@lit-protocol/contracts/dist/prod/datil-test.cjs"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ "config": {
+ "chainId": "175188",
+ "rpcUrl": "https://yellowstone-rpc.litprotocol.com",
+ "chainName": "yellowstone",
+ "litNodeDomainName": "127.0.0.1",
+ "litNodePort": 7470,
+ "rocketPort": 7470
+ },
+ "data": [
+ {
+ "name": "StakingBalances",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0xCa3c64e7D8cA743aeD2B2d20DCA3233f400710E2",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "AliasNotOwnedBySender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRemoveAliasOfActiveValidator",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "aliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountReached",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "OnlyStakingContract",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeGreaterThanMinimumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeLessThanMaximumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaximumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MinimumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "permittedStakersOn",
+ "type": "bool"
+ }
+ ],
+ "name": "PermittedStakersOnChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Staked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ }
+ ],
+ "name": "TokenRewardPerTokenPerEpochSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorNotRewardedBecauseAlias",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorRewarded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorTokensPenalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrawn",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "addAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "addPermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "stakers",
+ "type": "address[]"
+ }
+ ],
+ "name": "addPermittedStakers",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "checkStakingAmounts",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedStaker",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maximumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "minimumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "penalizeTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "permittedStakersOn",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "removeAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "restakePenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxAliasCount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaximumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMinimumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "permitted",
+ "type": "bool"
+ }
+ ],
+ "name": "setPermittedStakersOn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalStaked",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "transferPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdrawPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Staking",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0xdec37933239846834b3BfD408913Ed3dbEf6588F",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotKickBelowCurrentValidatorThreshold",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRejoinUntilNextEpochBecauseKicked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "CannotReuseCommsKeys",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotVoteTwice",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CouldNotMapNodeAddressToStakerAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedOrPausedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "MustBeValidatorInNextEpochToKick",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "validatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nextReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCountToBeReady",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsReadyForNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentEpochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receivedEpochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "SignaledReadyForWrongEpochNumber",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "address[]",
+ "name": "validatorsInNextEpoch",
+ "type": "address[]"
+ }
+ ],
+ "name": "ValidatorIsNotInNextEpoch",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "ComplaintConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256[]",
+ "name": "newKeyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newPeerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "newRpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "name": "ConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochEndTimeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochLengthSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochTimeoutSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "KickPenaltyPercentSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "ReadyForNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Recovered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToJoin",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToLeave",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newDuration",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardsDurationUpdated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newStakingTokenAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakingTokenSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "StateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBurned",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorKickedFromNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorRejoinedNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "reporter",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "VotedToKickValidatorInNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminKickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "adminRejoinValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "adminResetEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountToPenalize",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminSlashValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "advanceEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "exit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "kickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockValidatorsForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "requestToJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeave",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeaveAsNode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "setComplaintConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "newConfig",
+ "type": "tuple"
+ }
+ ],
+ "name": "setConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochLength",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "setEpochState",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochTimeout",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "setIpPortNodeAddressAndCommunicationPubKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setKickPenaltyPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "signalReadyForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "stakeAndJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "VersionRequirementsUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "checkVersion",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMaxVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMinVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "complaintConfig",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "config",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfCurrentValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfNextValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKeyTypes",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeStakerAddressMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.AddressMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingBalancesAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpochLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInNextEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getValidatorsStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInCurrentEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInNextEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "voterStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "getVotingStatusToKickValidator",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidatorByNodeAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "kickPenaltyPercentByReason",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "nodeAddressToStakerAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "readyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "shouldKickValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "state",
+ "outputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "validators",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "CloneNet",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0x1f4233b6C5b84978c458FA66412E4ae6d0561104",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminAddActiveStakingContract",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminRemoveActiveStakingContract",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveStakingContracts",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getAllActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "startTime",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "epoch",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "currentValidatorCountForConsensus",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "lastActiveEpoch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "activeUnkickedValidators",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.StakingAggregateDetails",
+ "name": "details",
+ "type": "tuple"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.KeyedStakingAggregateDetails[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "numActiveStakingContracts",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Multisender",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0x8281f3A62f7de320B3a634e6814BeC36a1AA92bd",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ }
+ ],
+ "name": "sendEth",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "sendTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "withdrawTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LITToken",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0xFA1208f5275a01Be1b4A6F6764d388FDcF5Bf85e",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "cap",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "InvalidShortString",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "str",
+ "type": "string"
+ }
+ ],
+ "name": "StringTooLong",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "fromDelegate",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "toDelegate",
+ "type": "address"
+ }
+ ],
+ "name": "DelegateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegate",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "previousBalance",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newBalance",
+ "type": "uint256"
+ }
+ ],
+ "name": "DelegateVotesChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "EIP712DomainChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Paused",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Unpaused",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CLOCK_MODE",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "MINTER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PAUSER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "cap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint32",
+ "name": "pos",
+ "type": "uint32"
+ }
+ ],
+ "name": "checkpoints",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "fromBlock",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint224",
+ "name": "votes",
+ "type": "uint224"
+ }
+ ],
+ "internalType": "struct ERC20Votes.Checkpoint",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "clock",
+ "outputs": [
+ {
+ "internalType": "uint48",
+ "name": "",
+ "type": "uint48"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ }
+ ],
+ "name": "delegate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "delegateBySig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "delegates",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "eip712Domain",
+ "outputs": [
+ {
+ "internalType": "bytes1",
+ "name": "fields",
+ "type": "bytes1"
+ },
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "version",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "chainId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "verifyingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "salt",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "extensions",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastTotalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "nonces",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "numCheckpoints",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "paused",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unpause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PubkeyRouter",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0x65C3d057aef28175AfaC61a74cc6b27E88405583",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "PubkeyRoutingDataSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IPubkeyRouter.RootKey",
+ "name": "rootKey",
+ "type": "tuple"
+ }
+ ],
+ "name": "RootKeySet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "adminResetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "signedMessage",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "checkNodeSignatures",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "deriveEthAddressFromPubkey",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ethAddressToPkpId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getDerivedPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "getRootKeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRoutingData",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isRouted",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "pubkeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingDataAsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "newRootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "voteForRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFT",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0x6a0f439f064B7167A8Ea6B22AcC07ae5360ee0d1",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PKPMinted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "claimAndMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "exists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getNextDerivedKeyId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftMetadataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "mintGrantAndBurnNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "redeemedFreeMintIds",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMintCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RateLimitNFT",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0xa17f11B7f828EEc97926E56D98D5AB63A0231b77",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "AdditionalRequestsPerKilosecondCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "FreeRequestsPerRateLimitWindowSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RLIHolderRateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setAdditionalRequestsPerKilosecondCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "setFreeRequestsPerRateLimitWindow",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxExpirationSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxExpirationSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxRequestsPerKilosecond",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRLIHolderRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "RLIHolderRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "additionalRequestsPerKilosecondCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "payingAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "capacity",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibRateLimitNFTStorage.RateLimit",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestedRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "checkBelowMaxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentSoldRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "defaultRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMintSigTest",
+ "outputs": [],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeRequestsPerRateLimitWindow",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isExpired",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxExpirationSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "redeemedFreeMints",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tokenIdCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenSVG",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "totalSoldRequestsPerKilosecondByExpirationTime",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPHelper",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0x341E5273E2E2ea3c4aDa4101F008b1261E58510D",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getDomainWalletRegistry",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPKPNftMetdataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddDomainWalletMetadata",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "name": "onERC721Received",
+ "outputs": [
+ {
+ "internalType": "bytes4",
+ "name": "",
+ "type": "bytes4"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ }
+ ],
+ "name": "setPkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPPermissions",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0x60C1ddC8b9e38F730F0e7B70A2F84C1A98A69167",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RootHashUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod",
+ "name": "authMethod",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "addPermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToAdd",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeysToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopesToAdd",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToRemove",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToRemove",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "batchAddRemoveAuthMethods",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getAuthMethodId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedActions",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxScopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethodScopes",
+ "outputs": [
+ {
+ "internalType": "bool[]",
+ "name": "",
+ "type": "bool[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethods",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getTokenIdsForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getUserPubkeyForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAction",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isPermittedAuthMethodScopePresent",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRootHash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "leaf",
+ "type": "bytes32"
+ }
+ ],
+ "name": "verifyState",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bool[]",
+ "name": "proofFlags",
+ "type": "bool[]"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "leaves",
+ "type": "bytes32[]"
+ }
+ ],
+ "name": "verifyStates",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFTMetadata",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0xaC1d01692EBA0E457134Eb7EB8bb96ee9D91FcdD",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "buffer",
+ "type": "bytes"
+ }
+ ],
+ "name": "bytesToHex",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeProfileForPkp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "imgUrl",
+ "type": "string"
+ }
+ ],
+ "name": "setProfileForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "url",
+ "type": "string"
+ }
+ ],
+ "name": "setUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubKey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Allowlist",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0x5DD7a0FD581aB11a5720bE7E388e63346bC266fe",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemNotAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "allowAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "allowedItems",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "isAllowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "removeAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "_allowAll",
+ "type": "bool"
+ }
+ ],
+ "name": "setAllowAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setNotAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PaymentDelegation",
+ "contracts": [
+ {
+ "network": "datil-test",
+ "address_hash": "0xd7188e0348F1dA8c9b3d6e614844cbA22329B99E",
+ "inserted_at": "2024-11-02T02:50:47Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "restriction",
+ "type": "tuple"
+ }
+ ],
+ "name": "RestrictionSet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "delegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "delegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "getPayers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "getPayersAndRestrictions",
+ "outputs": [
+ {
+ "internalType": "address[][]",
+ "name": "",
+ "type": "address[][]"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction[][]",
+ "name": "",
+ "type": "tuple[][]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getRestriction",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getUsers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "setDefaultRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "r",
+ "type": "tuple"
+ }
+ ],
+ "name": "setRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "undelegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "undelegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts/dist/prod/habanero.cjs
+var require_habanero2 = __commonJS({
+ "node_modules/@lit-protocol/contracts/dist/prod/habanero.cjs"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ "config": {
+ "chainId": "175177",
+ "rpcUrl": "https://lit-protocol.calderachain.xyz/http",
+ "chainName": "lit",
+ "litNodeDomainName": "127.0.0.1",
+ "litNodePort": 7470,
+ "rocketPort": 7470
+ },
+ "data": [
+ {
+ "name": "StakingBalances",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x50f6722544937b72EcaDFDE3386BfdDbdBB3103B",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "AliasNotOwnedBySender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRemoveAliasOfActiveValidator",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "aliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountReached",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "OnlyStakingContract",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeGreaterThanMinimumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeLessThanMaximumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaximumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MinimumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "permittedStakersOn",
+ "type": "bool"
+ }
+ ],
+ "name": "PermittedStakersOnChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Staked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ }
+ ],
+ "name": "TokenRewardPerTokenPerEpochSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorNotRewardedBecauseAlias",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorRewarded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorTokensPenalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrawn",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "addAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "addPermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "stakers",
+ "type": "address[]"
+ }
+ ],
+ "name": "addPermittedStakers",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "checkStakingAmounts",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedStaker",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maximumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "minimumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "penalizeTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "permittedStakersOn",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "removeAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "restakePenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxAliasCount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaximumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMinimumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "permitted",
+ "type": "bool"
+ }
+ ],
+ "name": "setPermittedStakersOn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalStaked",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "transferPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdrawPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Staking",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0xde8627067188C0063384eC682D9187c7d7673934",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotKickBelowCurrentValidatorThreshold",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRejoinUntilNextEpochBecauseKicked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "CannotReuseCommsKeys",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotVoteTwice",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CouldNotMapNodeAddressToStakerAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedOrPausedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "MustBeValidatorInNextEpochToKick",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "validatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nextReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCountToBeReady",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsReadyForNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentEpochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receivedEpochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "SignaledReadyForWrongEpochNumber",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "address[]",
+ "name": "validatorsInNextEpoch",
+ "type": "address[]"
+ }
+ ],
+ "name": "ValidatorIsNotInNextEpoch",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "ComplaintConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256[]",
+ "name": "newKeyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newPeerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "newRpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "name": "ConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochEndTimeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochLengthSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochTimeoutSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "KickPenaltyPercentSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "ReadyForNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Recovered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToJoin",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToLeave",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newDuration",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardsDurationUpdated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newStakingTokenAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakingTokenSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "StateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBurned",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorKickedFromNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorRejoinedNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "reporter",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "VotedToKickValidatorInNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminKickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "adminRejoinValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "adminResetEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountToPenalize",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminSlashValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "advanceEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "exit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "kickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockValidatorsForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "requestToJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeave",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeaveAsNode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "setComplaintConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "newConfig",
+ "type": "tuple"
+ }
+ ],
+ "name": "setConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochLength",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "setEpochState",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochTimeout",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "setIpPortNodeAddressAndCommunicationPubKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setKickPenaltyPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "signalReadyForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "stakeAndJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "VersionRequirementsUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "checkVersion",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMaxVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMinVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "complaintConfig",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "config",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfCurrentValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfNextValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKeyTypes",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeStakerAddressMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.AddressMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingBalancesAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpochLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInNextEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getValidatorsStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInCurrentEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInNextEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "voterStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "getVotingStatusToKickValidator",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidatorByNodeAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "kickPenaltyPercentByReason",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "nodeAddressToStakerAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "readyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "shouldKickValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "state",
+ "outputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "validators",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Multisender",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x8c14AB9cF3edca9D28Ddef54bE895078352EDF83",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ }
+ ],
+ "name": "sendEth",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "sendTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "withdrawTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LITToken",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x53695556f8a1a064EdFf91767f15652BbfaFaD04",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "cap",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "InvalidShortString",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "str",
+ "type": "string"
+ }
+ ],
+ "name": "StringTooLong",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "fromDelegate",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "toDelegate",
+ "type": "address"
+ }
+ ],
+ "name": "DelegateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegate",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "previousBalance",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newBalance",
+ "type": "uint256"
+ }
+ ],
+ "name": "DelegateVotesChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "EIP712DomainChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Paused",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Unpaused",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CLOCK_MODE",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "MINTER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PAUSER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "cap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint32",
+ "name": "pos",
+ "type": "uint32"
+ }
+ ],
+ "name": "checkpoints",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "fromBlock",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint224",
+ "name": "votes",
+ "type": "uint224"
+ }
+ ],
+ "internalType": "struct ERC20Votes.Checkpoint",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "clock",
+ "outputs": [
+ {
+ "internalType": "uint48",
+ "name": "",
+ "type": "uint48"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ }
+ ],
+ "name": "delegate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "delegateBySig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "delegates",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "eip712Domain",
+ "outputs": [
+ {
+ "internalType": "bytes1",
+ "name": "fields",
+ "type": "bytes1"
+ },
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "version",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "chainId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "verifyingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "salt",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "extensions",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastTotalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "nonces",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "numCheckpoints",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "paused",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unpause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PubkeyRouter",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0xaaFc41e3615108E558ECf1d873e1500e375b2328",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "PubkeyRoutingDataSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IPubkeyRouter.RootKey",
+ "name": "rootKey",
+ "type": "tuple"
+ }
+ ],
+ "name": "RootKeySet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "adminResetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "signedMessage",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "checkNodeSignatures",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "deriveEthAddressFromPubkey",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ethAddressToPkpId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getDerivedPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "getRootKeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRoutingData",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isRouted",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "pubkeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingDataAsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "newRootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "voteForRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFT",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x80182Ec46E3dD7Bb8fa4f89b48d303bD769465B2",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PKPMinted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "claimAndMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "exists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getNextDerivedKeyId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftMetadataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "mintGrantAndBurnNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "redeemedFreeMintIds",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMintCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RateLimitNFT",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0xf8a84406aB814dc3a25Ea2e3608cCb632f672427",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "AdditionalRequestsPerKilosecondCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "FreeRequestsPerRateLimitWindowSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RLIHolderRateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setAdditionalRequestsPerKilosecondCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "setFreeRequestsPerRateLimitWindow",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxExpirationSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxExpirationSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxRequestsPerKilosecond",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRLIHolderRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "RLIHolderRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "additionalRequestsPerKilosecondCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "payingAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "capacity",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibRateLimitNFTStorage.RateLimit",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestedRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "checkBelowMaxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentSoldRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "defaultRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMintSigTest",
+ "outputs": [],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeRequestsPerRateLimitWindow",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isExpired",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxExpirationSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "redeemedFreeMints",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tokenIdCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenSVG",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "totalSoldRequestsPerKilosecondByExpirationTime",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPHelper",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x087995cc8BE0Bd6C19b1c7A01F9DB6D2CfFe0c5C",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getDomainWalletRegistry",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPKPNftMetdataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddDomainWalletMetadata",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "name": "onERC721Received",
+ "outputs": [
+ {
+ "internalType": "bytes4",
+ "name": "",
+ "type": "bytes4"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ }
+ ],
+ "name": "setPkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPPermissions",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x1B76BFAA063A35c88c7e82066b32eEa91CB266C6",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RootHashUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod",
+ "name": "authMethod",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "addPermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToAdd",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeysToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopesToAdd",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToRemove",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToRemove",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "batchAddRemoveAuthMethods",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getAuthMethodId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedActions",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxScopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethodScopes",
+ "outputs": [
+ {
+ "internalType": "bool[]",
+ "name": "",
+ "type": "bool[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethods",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getTokenIdsForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getUserPubkeyForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAction",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isPermittedAuthMethodScopePresent",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRootHash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "leaf",
+ "type": "bytes32"
+ }
+ ],
+ "name": "verifyState",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bool[]",
+ "name": "proofFlags",
+ "type": "bool[]"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "leaves",
+ "type": "bytes32[]"
+ }
+ ],
+ "name": "verifyStates",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFTMetadata",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x728C10dA8A152b71eAB4F8adD6225080323B506E",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "buffer",
+ "type": "bytes"
+ }
+ ],
+ "name": "bytesToHex",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeProfileForPkp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "imgUrl",
+ "type": "string"
+ }
+ ],
+ "name": "setProfileForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "url",
+ "type": "string"
+ }
+ ],
+ "name": "setUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubKey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Allowlist",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0xEC97F162940883ed1feeccd9fb741f11a1F996e2",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemNotAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "allowAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "allowedItems",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "isAllowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "removeAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "_allowAll",
+ "type": "bool"
+ }
+ ],
+ "name": "setAllowAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setNotAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PaymentDelegation",
+ "contracts": [
+ {
+ "network": "habanero",
+ "address_hash": "0x4AdDb026fbC0a329a75E77f179FFC78c896ac0e6",
+ "inserted_at": "2024-10-24T23:27:16Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "restriction",
+ "type": "tuple"
+ }
+ ],
+ "name": "RestrictionSet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "delegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "delegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "getPayers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "getPayersAndRestrictions",
+ "outputs": [
+ {
+ "internalType": "address[][]",
+ "name": "",
+ "type": "address[][]"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction[][]",
+ "name": "",
+ "type": "tuple[][]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getRestriction",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getUsers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "setDefaultRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "r",
+ "type": "tuple"
+ }
+ ],
+ "name": "setRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "undelegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "undelegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts/dist/prod/internalDev.cjs
+var require_internalDev2 = __commonJS({
+ "node_modules/@lit-protocol/contracts/dist/prod/internalDev.cjs"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ "config": {
+ "chainId": "175188",
+ "rpcUrl": "https://yellowstone-rpc.litprotocol.com",
+ "chainName": "yellowstone",
+ "litNodeDomainName": "127.0.0.1",
+ "litNodePort": 7470,
+ "rocketPort": 7470
+ },
+ "data": [
+ {
+ "name": "StakingBalances",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x8D96F8B16338aB9D12339A508b5a3a39E61F8D74",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "AliasNotOwnedBySender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRemoveAliasOfActiveValidator",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "aliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountReached",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "OnlyStakingContract",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeGreaterThanMinimumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeLessThanMaximumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaximumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MinimumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "permittedStakersOn",
+ "type": "bool"
+ }
+ ],
+ "name": "PermittedStakersOnChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Staked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ }
+ ],
+ "name": "TokenRewardPerTokenPerEpochSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorNotRewardedBecauseAlias",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorRewarded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorTokensPenalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrawn",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "addAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "addPermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "stakers",
+ "type": "address[]"
+ }
+ ],
+ "name": "addPermittedStakers",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "checkStakingAmounts",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedStaker",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maximumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "minimumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "penalizeTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "permittedStakersOn",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "removeAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "restakePenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxAliasCount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaximumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMinimumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "permitted",
+ "type": "bool"
+ }
+ ],
+ "name": "setPermittedStakersOn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalStaked",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "transferPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdrawPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Staking",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x386150020B7AdD47B03D0cf9f4cdaA4451F7c1D4",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotKickBelowCurrentValidatorThreshold",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRejoinUntilNextEpochBecauseKicked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "CannotReuseCommsKeys",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotVoteTwice",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CouldNotMapNodeAddressToStakerAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedOrPausedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "MustBeValidatorInNextEpochToKick",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "validatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nextReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCountToBeReady",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsReadyForNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentEpochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receivedEpochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "SignaledReadyForWrongEpochNumber",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "address[]",
+ "name": "validatorsInNextEpoch",
+ "type": "address[]"
+ }
+ ],
+ "name": "ValidatorIsNotInNextEpoch",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "ComplaintConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256[]",
+ "name": "newKeyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newPeerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "newRpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "name": "ConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochEndTimeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochLengthSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochTimeoutSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "KickPenaltyPercentSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "ReadyForNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Recovered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToJoin",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToLeave",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newDuration",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardsDurationUpdated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newStakingTokenAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakingTokenSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "StateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBurned",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorKickedFromNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorRejoinedNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "reporter",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "VotedToKickValidatorInNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminKickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "adminRejoinValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "adminResetEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountToPenalize",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminSlashValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "advanceEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "exit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "kickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockValidatorsForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "requestToJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeave",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeaveAsNode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "setComplaintConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "newConfig",
+ "type": "tuple"
+ }
+ ],
+ "name": "setConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochLength",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "setEpochState",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochTimeout",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "setIpPortNodeAddressAndCommunicationPubKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setKickPenaltyPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "signalReadyForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "stakeAndJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "VersionRequirementsUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "checkVersion",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMaxVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMinVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "complaintConfig",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "config",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfCurrentValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfNextValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKeyTypes",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeStakerAddressMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.AddressMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingBalancesAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpochLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInNextEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getValidatorsStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInCurrentEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInNextEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "voterStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "getVotingStatusToKickValidator",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidatorByNodeAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "kickPenaltyPercentByReason",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "nodeAddressToStakerAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "readyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "shouldKickValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "state",
+ "outputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "validators",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Multisender",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x7007C19435F504AF7a60f85862b9E756806aBF5A",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ }
+ ],
+ "name": "sendEth",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "sendTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "withdrawTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LITToken",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0xd78089bAAe410f5d0eae31D0D56157c73a3Ff98B",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "cap",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "InvalidShortString",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "str",
+ "type": "string"
+ }
+ ],
+ "name": "StringTooLong",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "fromDelegate",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "toDelegate",
+ "type": "address"
+ }
+ ],
+ "name": "DelegateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegate",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "previousBalance",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newBalance",
+ "type": "uint256"
+ }
+ ],
+ "name": "DelegateVotesChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "EIP712DomainChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Paused",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Unpaused",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CLOCK_MODE",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "MINTER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PAUSER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "cap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint32",
+ "name": "pos",
+ "type": "uint32"
+ }
+ ],
+ "name": "checkpoints",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "fromBlock",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint224",
+ "name": "votes",
+ "type": "uint224"
+ }
+ ],
+ "internalType": "struct ERC20Votes.Checkpoint",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "clock",
+ "outputs": [
+ {
+ "internalType": "uint48",
+ "name": "",
+ "type": "uint48"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ }
+ ],
+ "name": "delegate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "delegateBySig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "delegates",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "eip712Domain",
+ "outputs": [
+ {
+ "internalType": "bytes1",
+ "name": "fields",
+ "type": "bytes1"
+ },
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "version",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "chainId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "verifyingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "salt",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "extensions",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastTotalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "nonces",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "numCheckpoints",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "paused",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unpause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PubkeyRouter",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0xBCb7EFc7FDB0b95Ce7C76a3D7faE12217828337D",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "PubkeyRoutingDataSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IPubkeyRouter.RootKey",
+ "name": "rootKey",
+ "type": "tuple"
+ }
+ ],
+ "name": "RootKeySet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "adminResetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "signedMessage",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "checkNodeSignatures",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "deriveEthAddressFromPubkey",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ethAddressToPkpId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getDerivedPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "getRootKeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRoutingData",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isRouted",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "pubkeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingDataAsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "newRootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "voteForRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFT",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x1CaE44eD5e298C420142F5Bfdd5A72a0AFd2C95d",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PKPMinted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "claimAndMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "exists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getNextDerivedKeyId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftMetadataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "mintGrantAndBurnNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "redeemedFreeMintIds",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMintCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RateLimitNFT",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0xa24EEee69493F5364d7A8de809c3547420616206",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "AdditionalRequestsPerKilosecondCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "FreeRequestsPerRateLimitWindowSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RLIHolderRateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setAdditionalRequestsPerKilosecondCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "setFreeRequestsPerRateLimitWindow",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxExpirationSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxExpirationSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxRequestsPerKilosecond",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRLIHolderRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "RLIHolderRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "additionalRequestsPerKilosecondCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "payingAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "capacity",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibRateLimitNFTStorage.RateLimit",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestedRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "checkBelowMaxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentSoldRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "defaultRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMintSigTest",
+ "outputs": [],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeRequestsPerRateLimitWindow",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isExpired",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxExpirationSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "redeemedFreeMints",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tokenIdCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenSVG",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "totalSoldRequestsPerKilosecondByExpirationTime",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPHelper",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x361Dc112F388c1c0F2a6954b6b2da0461791bB80",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getDomainWalletRegistry",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPKPNftMetdataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddDomainWalletMetadata",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "name": "onERC721Received",
+ "outputs": [
+ {
+ "internalType": "bytes4",
+ "name": "",
+ "type": "bytes4"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ }
+ ],
+ "name": "setPkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPPermissions",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x8087D9fcBC839ff6B493e47FD02A15F4EF460b75",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RootHashUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod",
+ "name": "authMethod",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "addPermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToAdd",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeysToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopesToAdd",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToRemove",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToRemove",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "batchAddRemoveAuthMethods",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getAuthMethodId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedActions",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxScopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethodScopes",
+ "outputs": [
+ {
+ "internalType": "bool[]",
+ "name": "",
+ "type": "bool[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethods",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getTokenIdsForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getUserPubkeyForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAction",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isPermittedAuthMethodScopePresent",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRootHash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "leaf",
+ "type": "bytes32"
+ }
+ ],
+ "name": "verifyState",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bool[]",
+ "name": "proofFlags",
+ "type": "bool[]"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "leaves",
+ "type": "bytes32[]"
+ }
+ ],
+ "name": "verifyStates",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFTMetadata",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x9189D2C972373D8769F0e343d994204babb7197C",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "buffer",
+ "type": "bytes"
+ }
+ ],
+ "name": "bytesToHex",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeProfileForPkp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "imgUrl",
+ "type": "string"
+ }
+ ],
+ "name": "setProfileForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "url",
+ "type": "string"
+ }
+ ],
+ "name": "setUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubKey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Allowlist",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0xF473cd925e7A3D6804fB74CE2F484CA8BCa35Bfb",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemNotAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "allowAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "allowedItems",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "isAllowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "removeAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "_allowAll",
+ "type": "bool"
+ }
+ ],
+ "name": "setAllowAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setNotAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PaymentDelegation",
+ "contracts": [
+ {
+ "network": "internalDev",
+ "address_hash": "0x49A8a438AAFF2D3EfD22993ECfb58923C28155A3",
+ "inserted_at": "2024-10-16T19:13:22Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "restriction",
+ "type": "tuple"
+ }
+ ],
+ "name": "RestrictionSet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "delegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "delegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "getPayers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "getPayersAndRestrictions",
+ "outputs": [
+ {
+ "internalType": "address[][]",
+ "name": "",
+ "type": "address[][]"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction[][]",
+ "name": "",
+ "type": "tuple[][]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getRestriction",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getUsers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "setDefaultRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "r",
+ "type": "tuple"
+ }
+ ],
+ "name": "setRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "undelegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "undelegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts/dist/prod/manzano.cjs
+var require_manzano2 = __commonJS({
+ "node_modules/@lit-protocol/contracts/dist/prod/manzano.cjs"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ "config": {
+ "chainId": "175177",
+ "rpcUrl": "https://lit-protocol.calderachain.xyz/http",
+ "chainName": "lit",
+ "litNodeDomainName": "127.0.0.1",
+ "litNodePort": 7470,
+ "rocketPort": 7470
+ },
+ "data": [
+ {
+ "name": "StakingBalances",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0x82F0a170CEDFAaab623513EE558DB19f5D787C8D",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "AliasNotOwnedBySender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRemoveAliasOfActiveValidator",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "aliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountReached",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "OnlyStakingContract",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeGreaterThanMinimumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountStaked",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "StakeMustBeLessThanMaximumStake",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "AliasRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaxAliasCountSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MaximumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "MinimumStakeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "PermittedStakerRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "permittedStakersOn",
+ "type": "bool"
+ }
+ ],
+ "name": "PermittedStakersOnChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardPaid",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Staked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ }
+ ],
+ "name": "TokenRewardPerTokenPerEpochSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorNotRewardedBecauseAlias",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorRewarded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorTokensPenalized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrawn",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "addAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "addPermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "stakers",
+ "type": "address[]"
+ }
+ ],
+ "name": "addPermittedStakers",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "checkStakingAmounts",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedStaker",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maximumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "minimumStake",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "penalizeTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "permittedStakersOn",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "aliasAccount",
+ "type": "address"
+ }
+ ],
+ "name": "removeAlias",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedStaker",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "restakePenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "rewardValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxAliasCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxAliasCount",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaximumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaximumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMinimumStake",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMinimumStake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "permitted",
+ "type": "bool"
+ }
+ ],
+ "name": "setPermittedStakersOn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalStaked",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "recipient",
+ "type": "address"
+ }
+ ],
+ "name": "transferPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdrawPenaltyTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Staking",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0xBC7F8d7864002b6629Ab49781D5199C8dD1DDcE1",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "ActiveValidatorsCannotLeave",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotKickBelowCurrentValidatorThreshold",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotRejoinUntilNextEpochBecauseKicked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "CannotReuseCommsKeys",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotStakeZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CannotVoteTwice",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "CannotWithdrawZero",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "CouldNotMapNodeAddressToStakerAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedOrPausedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInActiveOrUnlockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedOrReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInNextValidatorSetLockedState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "state",
+ "type": "uint8"
+ }
+ ],
+ "name": "MustBeInReadyForNextEpochState",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "MustBeValidatorInNextEpochToKick",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentTimestamp",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "epochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughTimeElapsedSinceLastEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "validatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsInNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nextReadyValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCountToBeReady",
+ "type": "uint256"
+ }
+ ],
+ "name": "NotEnoughValidatorsReadyForNextEpoch",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "currentEpochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receivedEpochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "SignaledReadyForWrongEpochNumber",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakerNotPermitted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "yourBalance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestedWithdrawlAmount",
+ "type": "uint256"
+ }
+ ],
+ "name": "TryingToWithdrawMoreThanStaked",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validator",
+ "type": "address"
+ },
+ {
+ "internalType": "address[]",
+ "name": "validatorsInNextEpoch",
+ "type": "address[]"
+ }
+ ],
+ "name": "ValidatorIsNotInNextEpoch",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "ComplaintConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newTokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256[]",
+ "name": "newKeyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMinTripleCount",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newPeerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMaxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "newRpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "name": "ConfigSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochEndTimeSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochLengthSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "EpochTimeoutSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "KickPenaltyPercentSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "ReadyForNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "token",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Recovered",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToJoin",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "RequestToLeave",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ResolverContractAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newDuration",
+ "type": "uint256"
+ }
+ ],
+ "name": "RewardsDurationUpdated",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newStakingTokenAddress",
+ "type": "address"
+ }
+ ],
+ "name": "StakingTokenSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "StateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amountBurned",
+ "type": "uint256"
+ }
+ ],
+ "name": "ValidatorKickedFromNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "ValidatorRejoinedNextEpoch",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "reporter",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "VotedToKickValidatorInNextEpoch",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "adminKickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "staker",
+ "type": "address"
+ }
+ ],
+ "name": "adminRejoinValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "adminResetEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountToPenalize",
+ "type": "uint256"
+ }
+ ],
+ "name": "adminSlashValidator",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "advanceEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "exit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getReward",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "kickValidatorInNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "lockValidatorsForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "requestToJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeave",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "requestToLeaveAsNode",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "config",
+ "type": "tuple"
+ }
+ ],
+ "name": "setComplaintConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "newConfig",
+ "type": "tuple"
+ }
+ ],
+ "name": "setConfig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochEndTime",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochEndTime",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochLength",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "newState",
+ "type": "uint8"
+ }
+ ],
+ "name": "setEpochState",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newEpochTimeout",
+ "type": "uint256"
+ }
+ ],
+ "name": "setEpochTimeout",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "setIpPortNodeAddressAndCommunicationPubKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "newKickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "name": "setKickPenaltyPercent",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ }
+ ],
+ "name": "signalReadyForNextEpoch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "stake",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "name": "stakeAndJoin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "VersionRequirementsUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "checkVersion",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMaxVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersion",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getMinVersionString",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMaxVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "major",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minor",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "patch",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Version",
+ "name": "version",
+ "type": "tuple"
+ }
+ ],
+ "name": "setMinVersion",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "complaintConfig",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "intervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "kickPenaltyPercent",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.ComplaintConfig",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "config",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "tokenRewardPerTokenPerEpoch",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintTolerance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "DEPRECATED_complaintIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "keyTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minimumValidatorCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxConcurrentRequests",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTripleCount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "peerCheckingIntervalSecs",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxTripleConcurrency",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "rpcHealthcheckEnabled",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Config",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfCurrentValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "countOfNextValidatorsReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "epoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidatorStructsAndCounts",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "epochLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "number",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "endTime",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "retries",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timeout",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Epoch",
+ "name": "",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getActiveUnkickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKeyTypes",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getKickedValidators",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getNodeStakerAddressMappings",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.AddressMapping[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingBalancesAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInCurrentEpochLength",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsInNextEpoch",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "addresses",
+ "type": "address[]"
+ }
+ ],
+ "name": "getValidatorsStructs",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInCurrentEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getValidatorsStructsInNextEpoch",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "epochNumber",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "validatorStakerAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "voterStakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "getVotingStatusToKickValidator",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "isActiveValidatorByNodeAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "isReadyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "reason",
+ "type": "uint256"
+ }
+ ],
+ "name": "kickPenaltyPercentByReason",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "nextValidatorCountForConsensus",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ }
+ ],
+ "name": "nodeAddressToStakerAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "readyForNextEpoch",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "shouldKickValidator",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "state",
+ "outputs": [
+ {
+ "internalType": "enum LibStakingStorage.States",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakerAddress",
+ "type": "address"
+ }
+ ],
+ "name": "validators",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "ip",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint128",
+ "name": "ipv6",
+ "type": "uint128"
+ },
+ {
+ "internalType": "uint32",
+ "name": "port",
+ "type": "uint32"
+ },
+ {
+ "internalType": "address",
+ "name": "nodeAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "reward",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "senderPubKey",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "receiverPubKey",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibStakingStorage.Validator",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Multisender",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0xBd119B72B52d58A7dDd771A2E4984d106Da0D1DB",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ }
+ ],
+ "name": "sendEth",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "_recipients",
+ "type": "address[]"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "sendTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenContract",
+ "type": "address"
+ }
+ ],
+ "name": "withdrawTokens",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LITToken",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0x53695556f8a1a064EdFf91767f15652BbfaFaD04",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "cap",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "InvalidShortString",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "string",
+ "name": "str",
+ "type": "string"
+ }
+ ],
+ "name": "StringTooLong",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegator",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "fromDelegate",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "toDelegate",
+ "type": "address"
+ }
+ ],
+ "name": "DelegateChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "delegate",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "previousBalance",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newBalance",
+ "type": "uint256"
+ }
+ ],
+ "name": "DelegateVotesChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [],
+ "name": "EIP712DomainChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Paused",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "Unpaused",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CLOCK_MODE",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "DOMAIN_SEPARATOR",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "MINTER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "PAUSER_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "burnFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "cap",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint32",
+ "name": "pos",
+ "type": "uint32"
+ }
+ ],
+ "name": "checkpoints",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint32",
+ "name": "fromBlock",
+ "type": "uint32"
+ },
+ {
+ "internalType": "uint224",
+ "name": "votes",
+ "type": "uint224"
+ }
+ ],
+ "internalType": "struct ERC20Votes.Checkpoint",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "clock",
+ "outputs": [
+ {
+ "internalType": "uint48",
+ "name": "",
+ "type": "uint48"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "subtractedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "decreaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ }
+ ],
+ "name": "delegate",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "delegatee",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "nonce",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiry",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "delegateBySig",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "delegates",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "eip712Domain",
+ "outputs": [
+ {
+ "internalType": "bytes1",
+ "name": "fields",
+ "type": "bytes1"
+ },
+ {
+ "internalType": "string",
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "internalType": "string",
+ "name": "version",
+ "type": "string"
+ },
+ {
+ "internalType": "uint256",
+ "name": "chainId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "verifyingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "salt",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "extensions",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastTotalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "timepoint",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPastVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "getVotes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "addedValue",
+ "type": "uint256"
+ }
+ ],
+ "name": "increaseAllowance",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_recipient",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "_amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "nonces",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "numCheckpoints",
+ "outputs": [
+ {
+ "internalType": "uint32",
+ "name": "",
+ "type": "uint32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "pause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "paused",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "deadline",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ }
+ ],
+ "name": "permit",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "unpause",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PubkeyRouter",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0xF6b0fE0d0C27C855f7f2e021fAd028af02cC52cb",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "PubkeyRoutingDataSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IPubkeyRouter.RootKey",
+ "name": "rootKey",
+ "type": "tuple"
+ }
+ ],
+ "name": "RootKeySet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "adminResetRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "bytes",
+ "name": "signedMessage",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ }
+ ],
+ "name": "checkNodeSignatures",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "deriveEthAddressFromPubkey",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ethAddressToPkpId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getDerivedPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ }
+ ],
+ "name": "getRootKeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getRoutingData",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isRouted",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "pubkeys",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "internalType": "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingData",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "stakingContract",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRoutingDataAsAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "stakingContractAddress",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.RootKey[]",
+ "name": "newRootKeys",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "voteForRootKeys",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFT",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0x3c3ad2d238757Ea4AF87A8624c716B11455c1F9A",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "MintCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "pubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PKPMinted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "name": "claimAndMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "exists",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getNextDerivedKeyId",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftMetadataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getStakingAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "mintCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "mintGrantAndBurnNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ }
+ ],
+ "name": "mintNext",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "redeemedFreeMintIds",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMintCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMintCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RateLimitNFT",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0x9b1B8aD8A4144Be9F8Fb5C4766eE37CE0754AEAb",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "AdditionalRequestsPerKilosecondCostSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "approved",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "ApprovalForAll",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "FreeMintSignerSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "FreeRequestsPerRateLimitWindowSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint8",
+ "name": "version",
+ "type": "uint8"
+ }
+ ],
+ "name": "Initialized",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RLIHolderRateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "RateLimitWindowSecondsSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "Withdrew",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "burn",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getApproved",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "initialize",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "isApprovedForAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ownerOf",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "data",
+ "type": "bytes"
+ }
+ ],
+ "name": "safeTransferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newAdditionalRequestsPerKilosecondCost",
+ "type": "uint256"
+ }
+ ],
+ "name": "setAdditionalRequestsPerKilosecondCost",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "bool",
+ "name": "approved",
+ "type": "bool"
+ }
+ ],
+ "name": "setApprovalForAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newFreeMintSigner",
+ "type": "address"
+ }
+ ],
+ "name": "setFreeMintSigner",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newFreeRequestsPerRateLimitWindow",
+ "type": "uint256"
+ }
+ ],
+ "name": "setFreeRequestsPerRateLimitWindow",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxExpirationSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxExpirationSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newMaxRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "setMaxRequestsPerKilosecond",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRLIHolderRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRLIHolderRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "newRateLimitWindowSeconds",
+ "type": "uint256"
+ }
+ ],
+ "name": "setRateLimitWindowSeconds",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "index",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenOfOwnerByIndex",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "RLIHolderRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "additionalRequestsPerKilosecondCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateCost",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "payingAmount",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "calculateRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "capacity",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibRateLimitNFTStorage.RateLimit",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "requestedRequestsPerKilosecond",
+ "type": "uint256"
+ }
+ ],
+ "name": "checkBelowMaxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "currentSoldRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "defaultRateLimitWindowSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "requestsPerKilosecond",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "sVal",
+ "type": "bytes32"
+ }
+ ],
+ "name": "freeMintSigTest",
+ "outputs": [],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeMintSigner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "freeRequestsPerRateLimitWindow",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isExpired",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxExpirationSeconds",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "maxRequestsPerKilosecond",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "hash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "prefixed",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "msgHash",
+ "type": "bytes32"
+ }
+ ],
+ "name": "redeemedFreeMints",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "tokenIdCounter",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "tokenSVG",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "expiresAt",
+ "type": "uint256"
+ }
+ ],
+ "name": "totalSoldRequestsPerKilosecondByExpirationTime",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPHelper",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0x24d646b9510e56af8B15de759331d897C4d66044",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "previousAdminRole",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "newAdminRole",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RoleAdminChanged",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleGranted",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "RoleRevoked",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "DEFAULT_ADMIN_ROLE",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "derivedKeyId",
+ "type": "bytes32"
+ },
+ {
+ "components": [
+ {
+ "internalType": "bytes32",
+ "name": "r",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "s",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "uint8",
+ "name": "v",
+ "type": "uint8"
+ }
+ ],
+ "internalType": "struct IPubkeyRouter.Signature[]",
+ "name": "signatures",
+ "type": "tuple[]"
+ }
+ ],
+ "internalType": "struct LibPKPNFTStorage.ClaimMaterial",
+ "name": "claimMaterial",
+ "type": "tuple"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "internalType": "struct PKPHelper.AuthMethodData",
+ "name": "authMethodData",
+ "type": "tuple"
+ }
+ ],
+ "name": "claimAndMintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getDomainWalletRegistry",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPKPNftMetdataAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpPermissionsAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ }
+ ],
+ "name": "getRoleAdmin",
+ "outputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "grantRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "hasRole",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethods",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedIpfsCIDs",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedIpfsCIDScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "address[]",
+ "name": "permittedAddresses",
+ "type": "address[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAddressScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddAuthMethodsWithTypes",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "keyType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypes",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIds",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeys",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopes",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ },
+ {
+ "internalType": "bool",
+ "name": "addPkpEthAddressAsPermittedAddress",
+ "type": "bool"
+ },
+ {
+ "internalType": "bool",
+ "name": "sendPkpToItself",
+ "type": "bool"
+ }
+ ],
+ "name": "mintNextAndAddDomainWalletMetadata",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "name": "onERC721Received",
+ "outputs": [
+ {
+ "internalType": "bytes4",
+ "name": "",
+ "type": "bytes4"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "renounceRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "role",
+ "type": "bytes32"
+ },
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "revokeRole",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string[]",
+ "name": "nftMetadata",
+ "type": "string[]"
+ }
+ ],
+ "name": "setPkpMetadata",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPPermissions",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0x974856dB1C4259915b709E6BcA26A002fbdd31ea",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "CallerNotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "ContractResolverAddressSet",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "PermittedAuthMethodRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "PermittedAuthMethodScopeRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "indexed": true,
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "RootHashUpdated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod",
+ "name": "authMethod",
+ "type": "tuple"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "scopes",
+ "type": "uint256[]"
+ }
+ ],
+ "name": "addPermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "addPermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToAdd",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodPubkeysToAdd",
+ "type": "bytes[]"
+ },
+ {
+ "internalType": "uint256[][]",
+ "name": "permittedAuthMethodScopesToAdd",
+ "type": "uint256[][]"
+ },
+ {
+ "internalType": "uint256[]",
+ "name": "permittedAuthMethodTypesToRemove",
+ "type": "uint256[]"
+ },
+ {
+ "internalType": "bytes[]",
+ "name": "permittedAuthMethodIdsToRemove",
+ "type": "bytes[]"
+ }
+ ],
+ "name": "batchAddRemoveAuthMethods",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getAuthMethodId",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getEthAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedActions",
+ "outputs": [
+ {
+ "internalType": "bytes[]",
+ "name": "",
+ "type": "bytes[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "maxScopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethodScopes",
+ "outputs": [
+ {
+ "internalType": "bool[]",
+ "name": "",
+ "type": "bool[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPermittedAuthMethods",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "bytes",
+ "name": "userPubkey",
+ "type": "bytes"
+ }
+ ],
+ "internalType": "struct LibPKPPermissionsStorage.AuthMethod[]",
+ "name": "",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getPkpNftAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "getPubkey",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getRouterAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getTokenIdsForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "getUserPubkeyForAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bytes",
+ "name": "",
+ "type": "bytes"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAction",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "isPermittedAddress",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "isPermittedAuthMethod",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "isPermittedAuthMethodScopePresent",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "ipfsCID",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "removePermittedAddress",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ }
+ ],
+ "name": "removePermittedAuthMethod",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "authMethodType",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "id",
+ "type": "bytes"
+ },
+ {
+ "internalType": "uint256",
+ "name": "scopeId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removePermittedAuthMethodScope",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newResolverAddress",
+ "type": "address"
+ }
+ ],
+ "name": "setContractResolver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "root",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setRootHash",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bytes32",
+ "name": "leaf",
+ "type": "bytes32"
+ }
+ ],
+ "name": "verifyState",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "group",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "proof",
+ "type": "bytes32[]"
+ },
+ {
+ "internalType": "bool[]",
+ "name": "proofFlags",
+ "type": "bool[]"
+ },
+ {
+ "internalType": "bytes32[]",
+ "name": "leaves",
+ "type": "bytes32[]"
+ }
+ ],
+ "name": "verifyStates",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PKPNFTMetadata",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0xa87fe043AD341A1Dc8c5E48d75BA9f712256fe7e",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_resolver",
+ "type": "address"
+ },
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "_env",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes",
+ "name": "buffer",
+ "type": "bytes"
+ }
+ ],
+ "name": "bytesToHex",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "pure",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "contractResolver",
+ "outputs": [
+ {
+ "internalType": "contract ContractResolver",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "env",
+ "outputs": [
+ {
+ "internalType": "enum ContractResolver.Env",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeProfileForPkp",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "removeUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "imgUrl",
+ "type": "string"
+ }
+ ],
+ "name": "setProfileForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "string",
+ "name": "url",
+ "type": "string"
+ }
+ ],
+ "name": "setUrlForPKP",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "bytes",
+ "name": "pubKey",
+ "type": "bytes"
+ },
+ {
+ "internalType": "address",
+ "name": "ethAddress",
+ "type": "address"
+ }
+ ],
+ "name": "tokenURI",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PaymentDelegation",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0x180BA6Ec983019c578004D91c08897c12d78F516",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotAddFunctionToDiamondThatAlreadyExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotAddSelectorsToZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveFunctionThatDoesNotExist",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotRemoveImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionThatDoesNotExists",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_selectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "name": "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_selector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "CannotReplaceImmutableFunction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint8",
+ "name": "_action",
+ "type": "uint8"
+ }
+ ],
+ "name": "IncorrectFacetCutAction",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_initializationContractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "InitializationFunctionReverted",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_contractAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "string",
+ "name": "_message",
+ "type": "string"
+ }
+ ],
+ "name": "NoBytecodeAtAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "NoSelectorsProvidedForFacetForCut",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_user",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_contractOwner",
+ "type": "address"
+ }
+ ],
+ "name": "NotContractOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facetAddress",
+ "type": "address"
+ }
+ ],
+ "name": "RemoveFacetAddressMustBeZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "DiamondCut",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "enum IDiamond.FacetCutAction",
+ "name": "action",
+ "type": "uint8"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamond.FacetCut[]",
+ "name": "_diamondCut",
+ "type": "tuple[]"
+ },
+ {
+ "internalType": "address",
+ "name": "_init",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes",
+ "name": "_calldata",
+ "type": "bytes"
+ }
+ ],
+ "name": "diamondCut",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_functionSelector",
+ "type": "bytes4"
+ }
+ ],
+ "name": "facetAddress",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "facetAddress_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facetAddresses",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "facetAddresses_",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_facet",
+ "type": "address"
+ }
+ ],
+ "name": "facetFunctionSelectors",
+ "outputs": [
+ {
+ "internalType": "bytes4[]",
+ "name": "_facetFunctionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "facets",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "address",
+ "name": "facetAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "bytes4[]",
+ "name": "functionSelectors",
+ "type": "bytes4[]"
+ }
+ ],
+ "internalType": "struct IDiamondLoupe.Facet[]",
+ "name": "facets_",
+ "type": "tuple[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes4",
+ "name": "_interfaceId",
+ "type": "bytes4"
+ }
+ ],
+ "name": "supportsInterface",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "owner_",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "indexed": false,
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "restriction",
+ "type": "tuple"
+ }
+ ],
+ "name": "RestrictionSet",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "delegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "delegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "getPayers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "getPayersAndRestrictions",
+ "outputs": [
+ {
+ "internalType": "address[][]",
+ "name": "",
+ "type": "address[][]"
+ },
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction[][]",
+ "name": "",
+ "type": "tuple[][]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getRestriction",
+ "outputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "",
+ "type": "tuple"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "payer",
+ "type": "address"
+ }
+ ],
+ "name": "getUsers",
+ "outputs": [
+ {
+ "internalType": "address[]",
+ "name": "",
+ "type": "address[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "setDefaultRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "components": [
+ {
+ "internalType": "uint256",
+ "name": "requestsPerPeriod",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "periodSeconds",
+ "type": "uint256"
+ }
+ ],
+ "internalType": "struct LibPaymentDelegationStorage.Restriction",
+ "name": "r",
+ "type": "tuple"
+ }
+ ],
+ "name": "setRestriction",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "user",
+ "type": "address"
+ }
+ ],
+ "name": "undelegatePayments",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address[]",
+ "name": "users",
+ "type": "address[]"
+ }
+ ],
+ "name": "undelegatePaymentsBatch",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Allowlist",
+ "contracts": [
+ {
+ "network": "manzano",
+ "address_hash": "0xC52b72E2AD3dC58B7d23197575fb48A4523fa734",
+ "inserted_at": "2024-09-24T21:52:38Z",
+ "ABI": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminAdded",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "AdminRemoved",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "ItemNotAllowed",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "previousOwner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "OwnershipTransferred",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "addAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "allowAll",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "",
+ "type": "bytes32"
+ }
+ ],
+ "name": "allowedItems",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "isAllowed",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "owner",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newAdmin",
+ "type": "address"
+ }
+ ],
+ "name": "removeAdmin",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "renounceOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bool",
+ "name": "_allowAll",
+ "type": "bool"
+ }
+ ],
+ "name": "setAllowAll",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "bytes32",
+ "name": "key",
+ "type": "bytes32"
+ }
+ ],
+ "name": "setNotAllowed",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "newOwner",
+ "type": "address"
+ }
+ ],
+ "name": "transferOwnership",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts/dist/index.cjs
+var require_dist = __commonJS({
+ "node_modules/@lit-protocol/contracts/dist/index.cjs"(exports2, module2) {
+ var _datil = require_datil();
+ var _datilDev = require_datil_dev();
+ var _datilTest = require_datil_test();
+ var _cayenne = require_cayenne();
+ var _habanero = require_habanero();
+ var _internalDev = require_internalDev();
+ var _manzano = require_manzano();
+ var datil = require_datil2();
+ var cayenne = require_cayenne2();
+ var datilDev = require_datil_dev2();
+ var datilTest = require_datil_test2();
+ var habanero = require_habanero2();
+ var internalDev = require_internalDev2();
+ var manzano = require_manzano2();
+ module2.exports = {
+ _datil,
+ _datilDev,
+ _datilTest,
+ _cayenne,
+ _habanero,
+ _internalDev,
+ _manzano,
+ datil,
+ cayenne,
+ datilDev,
+ datilTest,
+ habanero,
+ internalDev,
+ manzano
+ };
+ }
+});
+
+// node_modules/@lit-protocol/constants/src/lib/constants/mappers.js
+var require_mappers = __commonJS({
+ "node_modules/@lit-protocol/constants/src/lib/constants/mappers.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.GLOBAL_OVERWRITE_IPFS_CODE_BY_NETWORK = exports2.NETWORK_CONTEXT_BY_NETWORK = void 0;
+ var tslib_1 = (init_tslib_es63(), __toCommonJS(tslib_es6_exports3));
+ var depd_1 = tslib_1.__importDefault(require_depd());
+ var contracts_1 = require_dist();
+ var deprecated = (0, depd_1.default)("lit-js-sdk:constants:mappers");
+ exports2.NETWORK_CONTEXT_BY_NETWORK = {
+ "datil-dev": contracts_1.datilDev,
+ "datil-test": contracts_1.datilTest,
+ datil: contracts_1.datil,
+ // just use datil dev abis for custom
+ custom: contracts_1.datilDev
+ };
+ exports2.GLOBAL_OVERWRITE_IPFS_CODE_BY_NETWORK = {
+ "datil-dev": false,
+ "datil-test": false,
+ datil: false,
+ custom: false
+ };
+ }
+});
+
+// node_modules/@lit-protocol/constants/src/lib/constants/endpoints.js
+var require_endpoints = __commonJS({
+ "node_modules/@lit-protocol/constants/src/lib/constants/endpoints.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.LIT_ENDPOINT = exports2.LIT_ENDPOINT_VERSION = void 0;
+ exports2.LIT_ENDPOINT_VERSION = {
+ V0: "/",
+ V1: "/v1"
+ };
+ exports2.LIT_ENDPOINT = {
+ HANDSHAKE: {
+ path: "/web/handshake",
+ version: exports2.LIT_ENDPOINT_VERSION.V0
+ },
+ SIGN_SESSION_KEY: {
+ path: "/web/sign_session_key",
+ version: exports2.LIT_ENDPOINT_VERSION.V1
+ },
+ EXECUTE_JS: {
+ path: "/web/execute",
+ version: exports2.LIT_ENDPOINT_VERSION.V1
+ },
+ PKP_SIGN: {
+ path: "/web/pkp/sign",
+ version: exports2.LIT_ENDPOINT_VERSION.V1
+ },
+ PKP_CLAIM: {
+ path: "/web/pkp/claim",
+ version: exports2.LIT_ENDPOINT_VERSION.V0
+ },
+ SIGN_ACCS: {
+ path: "/web/signing/access_control_condition",
+ version: exports2.LIT_ENDPOINT_VERSION.V0
+ },
+ ENCRYPTION_SIGN: {
+ path: "/web/encryption/sign",
+ version: exports2.LIT_ENDPOINT_VERSION.V0
+ }
+ };
+ }
+});
+
+// node_modules/@lit-protocol/constants/src/lib/interfaces/i-errors.js
+var require_i_errors = __commonJS({
+ "node_modules/@lit-protocol/constants/src/lib/interfaces/i-errors.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ }
+});
+
+// node_modules/assertion-error/index.js
+var require_assertion_error = __commonJS({
+ "node_modules/assertion-error/index.js"(exports2, module2) {
+ function exclude() {
+ var excludes = [].slice.call(arguments);
+ function excludeProps(res, obj) {
+ Object.keys(obj).forEach(function(key) {
+ if (!~excludes.indexOf(key))
+ res[key] = obj[key];
+ });
+ }
+ return function extendExclude() {
+ var args = [].slice.call(arguments), i = 0, res = {};
+ for (; i < args.length; i++) {
+ excludeProps(res, args[i]);
+ }
+ return res;
+ };
+ }
+ module2.exports = AssertionError;
+ function AssertionError(message, _props, ssf) {
+ var extend = exclude("name", "message", "stack", "constructor", "toJSON"), props = extend(_props || {});
+ this.message = message || "Unspecified AssertionError";
+ this.showDiff = false;
+ for (var key in props) {
+ this[key] = props[key];
+ }
+ ssf = ssf || AssertionError;
+ if (Error.captureStackTrace) {
+ Error.captureStackTrace(this, ssf);
+ } else {
+ try {
+ throw new Error();
+ } catch (e) {
+ this.stack = e.stack;
+ }
+ }
+ }
+ AssertionError.prototype = Object.create(Error.prototype);
+ AssertionError.prototype.name = "AssertionError";
+ AssertionError.prototype.constructor = AssertionError;
+ AssertionError.prototype.toJSON = function(stack) {
+ var extend = exclude("constructor", "toJSON", "stack"), props = extend({ name: this.name }, this);
+ if (false !== stack && this.stack) {
+ props.stack = this.stack;
+ }
+ return props;
+ };
+ }
+});
+
+// node_modules/sprintf-js/src/sprintf.js
+var require_sprintf = __commonJS({
+ "node_modules/sprintf-js/src/sprintf.js"(exports2) {
+ !function() {
+ "use strict";
+ var re = {
+ not_string: /[^s]/,
+ not_bool: /[^t]/,
+ not_type: /[^T]/,
+ not_primitive: /[^v]/,
+ number: /[diefg]/,
+ numeric_arg: /[bcdiefguxX]/,
+ json: /[j]/,
+ not_json: /[^j]/,
+ text: /^[^\x25]+/,
+ modulo: /^\x25{2}/,
+ placeholder: /^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,
+ key: /^([a-z_][a-z_\d]*)/i,
+ key_access: /^\.([a-z_][a-z_\d]*)/i,
+ index_access: /^\[(\d+)\]/,
+ sign: /^[+-]/
+ };
+ function sprintf(key) {
+ return sprintf_format(sprintf_parse(key), arguments);
+ }
+ function vsprintf(fmt, argv) {
+ return sprintf.apply(null, [fmt].concat(argv || []));
+ }
+ function sprintf_format(parse_tree, argv) {
+ var cursor = 1, tree_length = parse_tree.length, arg, output = "", i, k, ph, pad, pad_character, pad_length, is_positive, sign;
+ for (i = 0; i < tree_length; i++) {
+ if (typeof parse_tree[i] === "string") {
+ output += parse_tree[i];
+ } else if (typeof parse_tree[i] === "object") {
+ ph = parse_tree[i];
+ if (ph.keys) {
+ arg = argv[cursor];
+ for (k = 0; k < ph.keys.length; k++) {
+ if (arg == void 0) {
+ throw new Error(sprintf('[sprintf] Cannot access property "%s" of undefined value "%s"', ph.keys[k], ph.keys[k - 1]));
+ }
+ arg = arg[ph.keys[k]];
+ }
+ } else if (ph.param_no) {
+ arg = argv[ph.param_no];
+ } else {
+ arg = argv[cursor++];
+ }
+ if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {
+ arg = arg();
+ }
+ if (re.numeric_arg.test(ph.type) && (typeof arg !== "number" && isNaN(arg))) {
+ throw new TypeError(sprintf("[sprintf] expecting number but found %T", arg));
+ }
+ if (re.number.test(ph.type)) {
+ is_positive = arg >= 0;
+ }
+ switch (ph.type) {
+ case "b":
+ arg = parseInt(arg, 10).toString(2);
+ break;
+ case "c":
+ arg = String.fromCharCode(parseInt(arg, 10));
+ break;
+ case "d":
+ case "i":
+ arg = parseInt(arg, 10);
+ break;
+ case "j":
+ arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0);
+ break;
+ case "e":
+ arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential();
+ break;
+ case "f":
+ arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg);
+ break;
+ case "g":
+ arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg);
+ break;
+ case "o":
+ arg = (parseInt(arg, 10) >>> 0).toString(8);
+ break;
+ case "s":
+ arg = String(arg);
+ arg = ph.precision ? arg.substring(0, ph.precision) : arg;
+ break;
+ case "t":
+ arg = String(!!arg);
+ arg = ph.precision ? arg.substring(0, ph.precision) : arg;
+ break;
+ case "T":
+ arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase();
+ arg = ph.precision ? arg.substring(0, ph.precision) : arg;
+ break;
+ case "u":
+ arg = parseInt(arg, 10) >>> 0;
+ break;
+ case "v":
+ arg = arg.valueOf();
+ arg = ph.precision ? arg.substring(0, ph.precision) : arg;
+ break;
+ case "x":
+ arg = (parseInt(arg, 10) >>> 0).toString(16);
+ break;
+ case "X":
+ arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase();
+ break;
+ }
+ if (re.json.test(ph.type)) {
+ output += arg;
+ } else {
+ if (re.number.test(ph.type) && (!is_positive || ph.sign)) {
+ sign = is_positive ? "+" : "-";
+ arg = arg.toString().replace(re.sign, "");
+ } else {
+ sign = "";
+ }
+ pad_character = ph.pad_char ? ph.pad_char === "0" ? "0" : ph.pad_char.charAt(1) : " ";
+ pad_length = ph.width - (sign + arg).length;
+ pad = ph.width ? pad_length > 0 ? pad_character.repeat(pad_length) : "" : "";
+ output += ph.align ? sign + arg + pad : pad_character === "0" ? sign + pad + arg : pad + sign + arg;
+ }
+ }
+ }
+ return output;
+ }
+ var sprintf_cache = /* @__PURE__ */ Object.create(null);
+ function sprintf_parse(fmt) {
+ if (sprintf_cache[fmt]) {
+ return sprintf_cache[fmt];
+ }
+ var _fmt = fmt, match, parse_tree = [], arg_names = 0;
+ while (_fmt) {
+ if ((match = re.text.exec(_fmt)) !== null) {
+ parse_tree.push(match[0]);
+ } else if ((match = re.modulo.exec(_fmt)) !== null) {
+ parse_tree.push("%");
+ } else if ((match = re.placeholder.exec(_fmt)) !== null) {
+ if (match[2]) {
+ arg_names |= 1;
+ var field_list = [], replacement_field = match[2], field_match = [];
+ if ((field_match = re.key.exec(replacement_field)) !== null) {
+ field_list.push(field_match[1]);
+ while ((replacement_field = replacement_field.substring(field_match[0].length)) !== "") {
+ if ((field_match = re.key_access.exec(replacement_field)) !== null) {
+ field_list.push(field_match[1]);
+ } else if ((field_match = re.index_access.exec(replacement_field)) !== null) {
+ field_list.push(field_match[1]);
+ } else {
+ throw new SyntaxError("[sprintf] failed to parse named argument key");
+ }
+ }
+ } else {
+ throw new SyntaxError("[sprintf] failed to parse named argument key");
+ }
+ match[2] = field_list;
+ } else {
+ arg_names |= 2;
+ }
+ if (arg_names === 3) {
+ throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");
+ }
+ parse_tree.push(
+ {
+ placeholder: match[0],
+ param_no: match[1],
+ keys: match[2],
+ sign: match[3],
+ pad_char: match[4],
+ align: match[5],
+ width: match[6],
+ precision: match[7],
+ type: match[8]
+ }
+ );
+ } else {
+ throw new SyntaxError("[sprintf] unexpected placeholder");
+ }
+ _fmt = _fmt.substring(match[0].length);
+ }
+ return sprintf_cache[fmt] = parse_tree;
+ }
+ if (typeof exports2 !== "undefined") {
+ exports2["sprintf"] = sprintf;
+ exports2["vsprintf"] = vsprintf;
+ }
+ if (typeof window !== "undefined") {
+ window["sprintf"] = sprintf;
+ window["vsprintf"] = vsprintf;
+ if (typeof define === "function" && define["amd"]) {
+ define(function() {
+ return {
+ "sprintf": sprintf,
+ "vsprintf": vsprintf
+ };
+ });
+ }
+ }
+ }();
+ }
+});
+
+// node_modules/@openagenda/verror/dist/index.js
+var require_dist2 = __commonJS({
+ "node_modules/@openagenda/verror/dist/index.js"(exports2, module2) {
+ var __create = Object.create;
+ var __defProp2 = Object.defineProperty;
+ var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
+ var __getOwnPropNames2 = Object.getOwnPropertyNames;
+ var __getProtoOf = Object.getPrototypeOf;
+ var __hasOwnProp2 = Object.prototype.hasOwnProperty;
+ var __export2 = (target, all) => {
+ for (var name in all)
+ __defProp2(target, name, { get: all[name], enumerable: true });
+ };
+ var __copyProps2 = (to, from, except, desc) => {
+ if (from && typeof from === "object" || typeof from === "function") {
+ for (let key of __getOwnPropNames2(from))
+ if (!__hasOwnProp2.call(to, key) && key !== except)
+ __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc2(from, key)) || desc.enumerable });
+ }
+ return to;
+ };
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps2(
+ // If the importer is in node compatibility mode or this is not an ESM
+ // file that has been converted to a CommonJS file using a Babel-
+ // compatible transform (i.e. "__esModule" has not been set), then set
+ // "default" to the CommonJS "module.exports" for node compatibility.
+ isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
+ mod
+ ));
+ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
+ var src_exports = {};
+ __export2(src_exports, {
+ BadGateway: () => BadGateway,
+ BadRequest: () => BadRequest,
+ Conflict: () => Conflict,
+ Forbidden: () => Forbidden,
+ GeneralError: () => GeneralError,
+ Gone: () => Gone,
+ LengthRequired: () => LengthRequired,
+ MethodNotAllowed: () => MethodNotAllowed,
+ NotAcceptable: () => NotAcceptable,
+ NotAuthenticated: () => NotAuthenticated,
+ NotFound: () => NotFound,
+ NotImplemented: () => NotImplemented,
+ PaymentError: () => PaymentError,
+ Timeout: () => Timeout,
+ TooManyRequests: () => TooManyRequests,
+ Unavailable: () => Unavailable,
+ Unprocessable: () => Unprocessable,
+ VError: () => verror_default,
+ default: () => src_default
+ });
+ module2.exports = __toCommonJS2(src_exports);
+ var import_inherits = __toESM(require_inherits());
+ var import_assertion_error2 = __toESM(require_assertion_error());
+ function isError(arg) {
+ return Object.prototype.toString.call(arg) === "[object Error]" || arg instanceof Error;
+ }
+ function isObject(arg) {
+ return typeof arg === "object" && arg !== null;
+ }
+ function isString(arg) {
+ return typeof arg === "string";
+ }
+ function isFunc(arg) {
+ return typeof arg === "function";
+ }
+ var import_sprintf_js = require_sprintf();
+ var import_assertion_error = __toESM(require_assertion_error());
+ function parseConstructorArguments(...argv) {
+ let options;
+ let sprintfArgs;
+ if (argv.length === 0) {
+ options = {};
+ sprintfArgs = [];
+ } else if (isError(argv[0])) {
+ options = { cause: argv[0] };
+ sprintfArgs = argv.slice(1);
+ } else if (typeof argv[0] === "object") {
+ options = {};
+ for (const k in argv[0]) {
+ if (Object.prototype.hasOwnProperty.call(argv[0], k)) {
+ options[k] = argv[0][k];
+ }
+ }
+ sprintfArgs = argv.slice(1);
+ } else {
+ if (!isString(argv[0])) {
+ throw new import_assertion_error.default(
+ "first argument to VError, or WError constructor must be a string, object, or Error"
+ );
+ }
+ options = {};
+ sprintfArgs = argv;
+ }
+ if (!isObject(options))
+ throw new import_assertion_error.default("options (object) is required");
+ if (options.meta && !isObject(options.meta))
+ throw new import_assertion_error.default("options.meta must be an object");
+ return {
+ options,
+ shortMessage: sprintfArgs.length === 0 ? "" : import_sprintf_js.sprintf.apply(null, sprintfArgs)
+ };
+ }
+ function defineProperty(target, descriptor) {
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor)
+ descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ function defineProperties(target, props) {
+ for (let i = 0; i < props.length; i++) {
+ defineProperty(target, props[i]);
+ }
+ }
+ var META = "@@verror/meta";
+ var reserved = [
+ "name",
+ "message",
+ "shortMessage",
+ "cause",
+ "info",
+ "stack",
+ "fileName",
+ "lineNumber"
+ ];
+ function mergeMeta(instance, meta2) {
+ if (!meta2) {
+ return;
+ }
+ for (const k in meta2) {
+ if (Object.prototype.hasOwnProperty.call(meta2, k)) {
+ if (reserved.includes(k)) {
+ throw new import_assertion_error2.default(`"${k}" is a reserved meta`);
+ }
+ instance[META][k] = meta2[k];
+ instance[k] = meta2[k];
+ }
+ }
+ }
+ function VError(...args) {
+ if (!(this instanceof VError)) {
+ return new VError(...args);
+ }
+ const { options, shortMessage } = parseConstructorArguments(...args);
+ const { cause: cause2, constructorOpt, info: info2, name, skipCauseMessage, meta: meta2 } = options;
+ let message = shortMessage;
+ if (cause2) {
+ if (!isError(cause2))
+ throw new import_assertion_error2.default("cause is not an Error");
+ if (!skipCauseMessage && cause2.message) {
+ message = message === "" ? cause2.message : `${message}: ${cause2.message}`;
+ }
+ }
+ Error.call(this, message);
+ if (name) {
+ if (!isString(name))
+ throw new import_assertion_error2.default(`error's "name" must be a string`);
+ this.name = name;
+ }
+ this.message = message;
+ this.shortMessage = shortMessage;
+ if (cause2) {
+ this.cause = cause2;
+ }
+ this.info = {};
+ if (info2) {
+ for (const k in info2) {
+ if (Object.prototype.hasOwnProperty.call(info2, k)) {
+ this.info[k] = info2[k];
+ }
+ }
+ }
+ defineProperty(this, {
+ key: META,
+ value: {}
+ });
+ mergeMeta(this, VError.meta(this));
+ mergeMeta(this, meta2);
+ if (Error.captureStackTrace) {
+ Error.captureStackTrace(this, constructorOpt || this.constructor);
+ } else {
+ this.stack = new Error().stack;
+ }
+ }
+ (0, import_inherits.default)(VError, Error);
+ defineProperties(VError.prototype, [
+ {
+ key: "toString",
+ value: function toString2() {
+ let str = Object.prototype.hasOwnProperty.call(this, "name") && this.name || this.constructor.name || this.constructor.prototype.name;
+ if (this.message) {
+ str += `: ${this.message}`;
+ }
+ return str;
+ }
+ },
+ {
+ key: "toJSON",
+ value: function toJSON() {
+ const obj = {
+ name: this.name,
+ message: this.message,
+ shortMessage: this.shortMessage,
+ cause: this.cause,
+ info: this.info
+ };
+ for (const key in this[META]) {
+ if (Object.prototype.hasOwnProperty.call(this[META], key) && !(key in obj)) {
+ obj[key] = this[META][key];
+ }
+ }
+ return obj;
+ }
+ }
+ ]);
+ defineProperties(VError, [
+ {
+ key: "cause",
+ value: function cause(err) {
+ if (!isError(err))
+ throw new import_assertion_error2.default("err must be an Error");
+ return isError(err.cause) ? err.cause : null;
+ }
+ },
+ {
+ key: "info",
+ value: function info(err) {
+ if (!isError(err))
+ throw new import_assertion_error2.default("err must be an Error");
+ const cause2 = VError.cause(err);
+ const rv = cause2 !== null ? VError.info(cause2) : {};
+ if (isObject(err.info)) {
+ for (const k in err.info) {
+ if (Object.prototype.hasOwnProperty.call(err.info, k)) {
+ rv[k] = err.info[k];
+ }
+ }
+ }
+ return rv;
+ }
+ },
+ {
+ key: "meta",
+ value: function meta(err) {
+ if (!isError(err))
+ throw new import_assertion_error2.default("err must be an Error");
+ const cause2 = VError.cause(err);
+ const rv = cause2 !== null ? VError.meta(cause2) : {};
+ if (isObject(err[META])) {
+ for (const k in err[META]) {
+ if (Object.prototype.hasOwnProperty.call(err[META], k)) {
+ rv[k] = err[META][k];
+ }
+ }
+ }
+ return rv;
+ }
+ },
+ {
+ key: "findCauseByName",
+ value: function findCauseByName(err, name) {
+ if (!isError(err))
+ throw new import_assertion_error2.default("err must be an Error");
+ if (!isString(name))
+ throw new import_assertion_error2.default("name (string) is required");
+ if (name.length <= 0)
+ throw new import_assertion_error2.default("name cannot be empty");
+ for (let cause2 = err; cause2 !== null; cause2 = VError.cause(cause2)) {
+ if (!isError(err))
+ throw new import_assertion_error2.default("cause must be an Error");
+ if (cause2.name === name) {
+ return cause2;
+ }
+ }
+ return null;
+ }
+ },
+ {
+ key: "findCauseByType",
+ value: function findCauseByType(err, type) {
+ if (!isError(err))
+ throw new import_assertion_error2.default("err must be an Error");
+ if (!isFunc(type))
+ throw new import_assertion_error2.default("type (func) is required");
+ for (let cause2 = err; cause2 !== null; cause2 = VError.cause(cause2)) {
+ if (!isError(err))
+ throw new import_assertion_error2.default("cause must be an Error");
+ if (cause2 instanceof type) {
+ return cause2;
+ }
+ }
+ return null;
+ }
+ },
+ {
+ key: "hasCauseWithName",
+ value: function hasCauseWithName(err, name) {
+ return VError.findCauseByName(err, name) !== null;
+ }
+ },
+ {
+ key: "hasCauseWithType",
+ value: function hasCauseWithType(err, type) {
+ return VError.findCauseByType(err, type) !== null;
+ }
+ },
+ {
+ key: "fullStack",
+ value: function fullStack(err) {
+ if (!isError(err))
+ throw new import_assertion_error2.default("err must be an Error");
+ const cause2 = VError.cause(err);
+ if (cause2) {
+ return `${err.stack}
+caused by: ${VError.fullStack(cause2)}`;
+ }
+ return err.stack;
+ }
+ },
+ {
+ key: "errorFromList",
+ value: function errorFromList(errors) {
+ if (!Array.isArray(errors)) {
+ throw new import_assertion_error2.default("list of errors (array) is required");
+ }
+ errors.forEach(function(error) {
+ if (!isObject(error)) {
+ throw new import_assertion_error2.default("errors ([object]) is required");
+ }
+ });
+ if (errors.length === 0) {
+ return null;
+ }
+ errors.forEach((e) => {
+ if (!isError(e))
+ throw new import_assertion_error2.default("error must be an Error");
+ });
+ if (errors.length === 1) {
+ return errors[0];
+ }
+ return new MultiError(errors);
+ }
+ },
+ {
+ key: "errorForEach",
+ value: function errorForEach(err, func) {
+ if (!isError(err))
+ throw new import_assertion_error2.default("err must be an Error");
+ if (!isFunc(func))
+ throw new import_assertion_error2.default("func (func) is required");
+ if (err instanceof MultiError) {
+ err.errors.forEach((e) => {
+ func(e);
+ });
+ } else {
+ func(err);
+ }
+ }
+ }
+ ]);
+ VError.prototype.name = "VError";
+ function MultiError(errors) {
+ if (!(this instanceof MultiError)) {
+ return new MultiError(errors);
+ }
+ if (!Array.isArray(errors)) {
+ throw new import_assertion_error2.default("list of errors (array) is required");
+ }
+ if (errors.length <= 0) {
+ throw new import_assertion_error2.default("must be at least one error is required");
+ }
+ VError.call(
+ this,
+ {
+ cause: errors[0],
+ meta: {
+ errors: [...errors]
+ }
+ },
+ "first of %d error%s",
+ errors.length,
+ errors.length === 1 ? "" : "s"
+ );
+ }
+ (0, import_inherits.default)(MultiError, VError);
+ MultiError.prototype.name = "MultiError";
+ function WError(...args) {
+ if (!(this instanceof WError)) {
+ return new WError(...args);
+ }
+ const { options, shortMessage } = parseConstructorArguments(...args);
+ options.skipCauseMessage = true;
+ VError.call(
+ this,
+ options,
+ "%s",
+ shortMessage
+ );
+ }
+ (0, import_inherits.default)(WError, VError);
+ defineProperties(WError.prototype, [
+ {
+ key: "toString",
+ value: function toString2() {
+ let str = Object.prototype.hasOwnProperty.call(this, "name") && this.name || this.constructor.name || this.constructor.prototype.name;
+ if (this.message) {
+ str += `: ${this.message}`;
+ }
+ if (this.cause && this.cause.message) {
+ str += `; caused by ${this.cause.toString()}`;
+ }
+ return str;
+ }
+ }
+ ]);
+ WError.prototype.name = "WError";
+ VError.VError = VError;
+ VError.WError = WError;
+ VError.MultiError = MultiError;
+ VError.META = META;
+ var verror_default = VError;
+ var http_exports = {};
+ __export2(http_exports, {
+ BadGateway: () => BadGateway,
+ BadRequest: () => BadRequest,
+ Conflict: () => Conflict,
+ Forbidden: () => Forbidden,
+ GeneralError: () => GeneralError,
+ Gone: () => Gone,
+ LengthRequired: () => LengthRequired,
+ MethodNotAllowed: () => MethodNotAllowed,
+ NotAcceptable: () => NotAcceptable,
+ NotAuthenticated: () => NotAuthenticated,
+ NotFound: () => NotFound,
+ NotImplemented: () => NotImplemented,
+ PaymentError: () => PaymentError,
+ Timeout: () => Timeout,
+ TooManyRequests: () => TooManyRequests,
+ Unavailable: () => Unavailable,
+ Unprocessable: () => Unprocessable,
+ VError: () => verror_default
+ });
+ var import_inherits2 = __toESM(require_inherits());
+ var import_depd = __toESM(require_depd());
+ var deprecate = (0, import_depd.default)("@openangeda/verror");
+ function createError(name, statusCode, className) {
+ const ExtendedError = function(...args) {
+ if (!(this instanceof ExtendedError)) {
+ return new ExtendedError(...args);
+ }
+ const { options, shortMessage } = parseConstructorArguments(...args);
+ options.meta = {
+ code: statusCode,
+ statusCode,
+ className,
+ ...options.meta
+ };
+ verror_default.call(
+ this,
+ options,
+ shortMessage
+ );
+ deprecate.property(this, "code", "use `statusCode` instead of `code`");
+ };
+ Object.defineProperty(ExtendedError, "name", { configurable: true, value: name });
+ (0, import_inherits2.default)(ExtendedError, verror_default);
+ ExtendedError.prototype.name = name;
+ return ExtendedError;
+ }
+ var BadRequest = createError("BadRequest", 400, "bad-request");
+ var NotAuthenticated = createError("NotAuthenticated", 401, "not-authenticated");
+ var PaymentError = createError("PaymentError", 402, "payment-error");
+ var Forbidden = createError("Forbidden", 403, "forbidden");
+ var NotFound = createError("NotFound", 404, "not-found");
+ var MethodNotAllowed = createError("MethodNotAllowed", 405, "method-not-allowed");
+ var NotAcceptable = createError("NotAcceptable", 406, "not-acceptable");
+ var Timeout = createError("Timeout", 408, "timeout");
+ var Conflict = createError("Conflict", 409, "conflict");
+ var Gone = createError("Gone", 410, "gone");
+ var LengthRequired = createError("LengthRequired", 411, "length-required");
+ var Unprocessable = createError("Unprocessable", 422, "unprocessable");
+ var TooManyRequests = createError("TooManyRequests", 429, "too-many-requests");
+ var GeneralError = createError("GeneralError", 500, "general-error");
+ var NotImplemented = createError("NotImplemented", 501, "not-implemented");
+ var BadGateway = createError("BadGateway", 502, "bad-gateway");
+ var Unavailable = createError("Unavailable", 503, "unavailable");
+ var httpAliases = {
+ 400: BadRequest,
+ 401: NotAuthenticated,
+ 402: PaymentError,
+ 403: Forbidden,
+ 404: NotFound,
+ 405: MethodNotAllowed,
+ 406: NotAcceptable,
+ 408: Timeout,
+ 409: Conflict,
+ 410: Gone,
+ 411: LengthRequired,
+ 422: Unprocessable,
+ 429: TooManyRequests,
+ 500: GeneralError,
+ 501: NotImplemented,
+ 502: BadGateway,
+ 503: Unavailable
+ };
+ Object.assign(verror_default, http_exports, httpAliases);
+ var src_default = verror_default;
+ }
+});
+
+// node_modules/@openagenda/verror/index.js
+var require_verror = __commonJS({
+ "node_modules/@openagenda/verror/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = require_dist2().default;
+ }
+});
+
+// node_modules/@lit-protocol/constants/src/lib/errors.js
+var require_errors = __commonJS({
+ "node_modules/@lit-protocol/constants/src/lib/errors.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.WrongParamFormat = exports2.WrongNetworkException = exports2.WasmInitError = exports2.WalletSignatureNotFoundError = exports2.UnsupportedMethodError = exports2.UnsupportedChainException = exports2.UnknownSignatureType = exports2.UnknownSignatureError = exports2.UnknownError = exports2.UnknownDecryptionAlgorithmTypeError = exports2.UnauthorizedException = exports2.TransactionError = exports2.RemovedFunctionError = exports2.ParamsMissingError = exports2.ParamNullError = exports2.NodejsException = exports2.NodeError = exports2.NoWalletException = exports2.NoValidShares = exports2.NetworkError = exports2.MintingNotSupported = exports2.LocalStorageItemNotSetException = exports2.LocalStorageItemNotRemovedException = exports2.LocalStorageItemNotFoundException = exports2.LitNodeClientNotReadyError = exports2.LitNodeClientBadConfigError = exports2.InvalidUnifiedConditionType = exports2.InvalidSignatureError = exports2.InvalidParamType = exports2.InvalidNodeAttestation = exports2.InvalidSessionSigs = exports2.InvalidEthBlockhash = exports2.InvalidBooleanException = exports2.InvalidArgumentException = exports2.InvalidAccessControlConditions = exports2.InitError = exports2.MultiError = exports2.LitError = exports2.LIT_ERROR_CODE = exports2.LIT_ERROR = exports2.LitErrorKind = exports2.LIT_ERROR_KIND = void 0;
+ var tslib_1 = (init_tslib_es63(), __toCommonJS(tslib_es6_exports3));
+ var verror_1 = require_verror();
+ var depd_1 = tslib_1.__importDefault(require_depd());
+ var deprecated = (0, depd_1.default)("lit-js-sdk:constants:errors");
+ exports2.LIT_ERROR_KIND = {
+ Unknown: "Unknown",
+ Unexpected: "Unexpected",
+ Generic: "Generic",
+ Config: "Config",
+ Validation: "Validation",
+ Conversion: "Conversion",
+ Parser: "Parser",
+ Serializer: "Serializer",
+ Timeout: "Timeout"
+ };
+ exports2.LitErrorKind = new Proxy(exports2.LIT_ERROR_KIND, {
+ get(target, prop, receiver) {
+ deprecated("LitErrorKind is deprecated and will be removed in a future version. Use LIT_ERROR_KIND instead.");
+ return Reflect.get(target, prop, receiver);
+ }
+ });
+ exports2.LIT_ERROR = {
+ INVALID_PARAM_TYPE: {
+ name: "InvalidParamType",
+ code: "invalid_param_type",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ INVALID_ACCESS_CONTROL_CONDITIONS: {
+ name: "InvalidAccessControlConditions",
+ code: "invalid_access_control_conditions",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ WRONG_NETWORK_EXCEPTION: {
+ name: "WrongNetworkException",
+ code: "wrong_network_exception",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ MINTING_NOT_SUPPORTED: {
+ name: "MintingNotSupported",
+ code: "minting_not_supported",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ UNSUPPORTED_CHAIN_EXCEPTION: {
+ name: "UnsupportedChainException",
+ code: "unsupported_chain_exception",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ INVALID_UNIFIED_CONDITION_TYPE: {
+ name: "InvalidUnifiedConditionType",
+ code: "invalid_unified_condition_type",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ LIT_NODE_CLIENT_NOT_READY_ERROR: {
+ name: "LitNodeClientNotReadyError",
+ code: "lit_node_client_not_ready_error",
+ kind: exports2.LIT_ERROR_KIND.Unexpected
+ },
+ UNAUTHORIZED_EXCEPTION: {
+ name: "UnauthorizedException",
+ code: "unauthorized_exception",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ INVALID_ARGUMENT_EXCEPTION: {
+ name: "InvalidArgumentException",
+ code: "invalid_argument_exception",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ INVALID_BOOLEAN_EXCEPTION: {
+ name: "InvalidBooleanException",
+ code: "invalid_boolean_exception",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ UNKNOWN_ERROR: {
+ name: "UnknownError",
+ code: "unknown_error",
+ kind: exports2.LIT_ERROR_KIND.Unknown
+ },
+ NO_WALLET_EXCEPTION: {
+ name: "NoWalletException",
+ code: "no_wallet_exception",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ WRONG_PARAM_FORMAT: {
+ name: "WrongParamFormat",
+ code: "wrong_param_format",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ LOCAL_STORAGE_ITEM_NOT_FOUND_EXCEPTION: {
+ name: "LocalStorageItemNotFoundException",
+ code: "local_storage_item_not_found_exception",
+ kind: exports2.LIT_ERROR_KIND.Unexpected
+ },
+ LOCAL_STORAGE_ITEM_NOT_SET_EXCEPTION: {
+ name: "LocalStorageItemNotSetException",
+ code: "local_storage_item_not_set_exception",
+ kind: exports2.LIT_ERROR_KIND.Unexpected
+ },
+ LOCAL_STORAGE_ITEM_NOT_REMOVED_EXCEPTION: {
+ name: "LocalStorageItemNotRemovedException",
+ code: "local_storage_item_not_removed_exception",
+ kind: exports2.LIT_ERROR_KIND.Unexpected
+ },
+ REMOVED_FUNCTION_ERROR: {
+ name: "RemovedFunctionError",
+ code: "removed_function_error",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ UNSUPPORTED_METHOD_ERROR: {
+ name: "UnsupportedMethodError",
+ code: "unsupported_method_error",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ LIT_NODE_CLIENT_BAD_CONFIG_ERROR: {
+ name: "LitNodeClientBadConfigError",
+ code: "lit_node_client_bad_config_error",
+ kind: exports2.LIT_ERROR_KIND.Config
+ },
+ PARAMS_MISSING_ERROR: {
+ name: "ParamsMissingError",
+ code: "params_missing_error",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ UNKNOWN_SIGNATURE_TYPE: {
+ name: "UnknownSignatureType",
+ code: "unknown_signature_type",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ UNKNOWN_SIGNATURE_ERROR: {
+ name: "UnknownSignatureError",
+ code: "unknown_signature_error",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ INVALID_SIGNATURE_ERROR: {
+ name: "InvalidSignatureError",
+ code: "invalid_signature_error",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ PARAM_NULL_ERROR: {
+ name: "ParamNullError",
+ code: "param_null_error",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ UNKNOWN_DECRYPTION_ALGORITHM_TYPE_ERROR: {
+ name: "UnknownDecryptionAlgorithmTypeError",
+ code: "unknown_decryption_algorithm_type_error",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ WASM_INIT_ERROR: {
+ name: "WasmInitError",
+ code: "wasm_init_error",
+ kind: exports2.LIT_ERROR_KIND.Unexpected
+ },
+ NODEJS_EXCEPTION: {
+ name: "NodejsException",
+ code: "nodejs_exception",
+ kind: exports2.LIT_ERROR_KIND.Unexpected
+ },
+ NODE_ERROR: {
+ name: "NodeError",
+ code: "node_error",
+ kind: exports2.LitErrorKind.Unknown
+ },
+ WALLET_SIGNATURE_NOT_FOUND_ERROR: {
+ name: "WalletSignatureNotFoundError",
+ code: "wallet_signature_not_found_error",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ NO_VALID_SHARES: {
+ name: "NoValidShares",
+ code: "no_valid_shares",
+ kind: exports2.LIT_ERROR_KIND.Unexpected
+ },
+ INVALID_NODE_ATTESTATION: {
+ name: "InvalidNodeAttestation",
+ code: "invalid_node_attestation",
+ kind: exports2.LIT_ERROR_KIND.Unexpected
+ },
+ INVALID_ETH_BLOCKHASH: {
+ name: "InvalidEthBlockhash",
+ code: "invalid_eth_blockhash",
+ kind: exports2.LIT_ERROR_KIND.Unexpected
+ },
+ INVALID_SESSION_SIGS: {
+ name: "InvalidSessionSigs",
+ code: "invalid_session_sigs",
+ kind: exports2.LIT_ERROR_KIND.Validation
+ },
+ INIT_ERROR: {
+ name: "InitError",
+ code: "init_error",
+ kind: exports2.LIT_ERROR_KIND.Unexpected
+ },
+ NETWORK_ERROR: {
+ name: "NetworkError",
+ code: "network_error",
+ kind: exports2.LitErrorKind.Unexpected
+ },
+ TRANSACTION_ERROR: {
+ name: "TransactionError",
+ code: "transaction_error",
+ kind: exports2.LitErrorKind.Unexpected
+ }
+ };
+ exports2.LIT_ERROR_CODE = {
+ NODE_NOT_AUTHORIZED: "NodeNotAuthorized"
+ };
+ var LitError = class extends verror_1.VError {
+ constructor(options, message, ...params) {
+ super(options, message, ...params);
+ }
+ };
+ exports2.LitError = LitError;
+ function createErrorClass({ name, code, kind }) {
+ return class extends LitError {
+ // VError has optional options parameter, but we make it required so thrower remembers to pass all the useful info
+ constructor(options, message, ...params) {
+ if (options instanceof Error) {
+ options = {
+ cause: options
+ };
+ }
+ if (!(options.cause instanceof Error)) {
+ options.cause = new Error(options.cause);
+ }
+ super({
+ name,
+ ...options,
+ meta: {
+ code,
+ kind,
+ ...options.meta
+ }
+ }, message, ...params);
+ }
+ };
+ }
+ var errorClasses = {};
+ for (const key in exports2.LIT_ERROR) {
+ if (key in exports2.LIT_ERROR) {
+ const errorDef = exports2.LIT_ERROR[key];
+ errorClasses[errorDef.name] = createErrorClass(errorDef);
+ }
+ }
+ var MultiError = verror_1.VError.MultiError;
+ exports2.MultiError = MultiError;
+ exports2.InitError = errorClasses.InitError, exports2.InvalidAccessControlConditions = errorClasses.InvalidAccessControlConditions, exports2.InvalidArgumentException = errorClasses.InvalidArgumentException, exports2.InvalidBooleanException = errorClasses.InvalidBooleanException, exports2.InvalidEthBlockhash = errorClasses.InvalidEthBlockhash, exports2.InvalidSessionSigs = errorClasses.InvalidSessionSigs, exports2.InvalidNodeAttestation = errorClasses.InvalidNodeAttestation, exports2.InvalidParamType = errorClasses.InvalidParamType, exports2.InvalidSignatureError = errorClasses.InvalidSignatureError, exports2.InvalidUnifiedConditionType = errorClasses.InvalidUnifiedConditionType, exports2.LitNodeClientBadConfigError = errorClasses.LitNodeClientBadConfigError, exports2.LitNodeClientNotReadyError = errorClasses.LitNodeClientNotReadyError, exports2.LocalStorageItemNotFoundException = errorClasses.LocalStorageItemNotFoundException, exports2.LocalStorageItemNotRemovedException = errorClasses.LocalStorageItemNotRemovedException, exports2.LocalStorageItemNotSetException = errorClasses.LocalStorageItemNotSetException, exports2.MintingNotSupported = errorClasses.MintingNotSupported, exports2.NetworkError = errorClasses.NetworkError, exports2.NoValidShares = errorClasses.NoValidShares, exports2.NoWalletException = errorClasses.NoWalletException, exports2.NodeError = errorClasses.NodeError, exports2.NodejsException = errorClasses.NodejsException, exports2.ParamNullError = errorClasses.ParamNullError, exports2.ParamsMissingError = errorClasses.ParamsMissingError, exports2.RemovedFunctionError = errorClasses.RemovedFunctionError, exports2.TransactionError = errorClasses.TransactionError, exports2.UnauthorizedException = errorClasses.UnauthorizedException, exports2.UnknownDecryptionAlgorithmTypeError = errorClasses.UnknownDecryptionAlgorithmTypeError, exports2.UnknownError = errorClasses.UnknownError, exports2.UnknownSignatureError = errorClasses.UnknownSignatureError, exports2.UnknownSignatureType = errorClasses.UnknownSignatureType, exports2.UnsupportedChainException = errorClasses.UnsupportedChainException, exports2.UnsupportedMethodError = errorClasses.UnsupportedMethodError, exports2.WalletSignatureNotFoundError = errorClasses.WalletSignatureNotFoundError, exports2.WasmInitError = errorClasses.WasmInitError, exports2.WrongNetworkException = errorClasses.WrongNetworkException, exports2.WrongParamFormat = errorClasses.WrongParamFormat;
+ }
+});
+
+// node_modules/@lit-protocol/constants/src/lib/utils/utils.js
+var require_utils12 = __commonJS({
+ "node_modules/@lit-protocol/constants/src/lib/utils/utils.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.ELeft = ELeft;
+ exports2.ERight = ERight;
+ var constants_1 = require_constants2();
+ function ELeft(error) {
+ return {
+ type: constants_1.EITHER_TYPE.ERROR,
+ result: error
+ };
+ }
+ function ERight(result) {
+ return {
+ type: constants_1.EITHER_TYPE.SUCCESS,
+ result
+ };
+ }
+ }
+});
+
+// node_modules/@lit-protocol/constants/src/lib/abis/ERC20.json
+var require_ERC20 = __commonJS({
+ "node_modules/@lit-protocol/constants/src/lib/abis/ERC20.json"(exports2, module2) {
+ module2.exports = {
+ abi: [
+ {
+ constant: true,
+ inputs: [],
+ name: "name",
+ outputs: [
+ {
+ name: "",
+ type: "string"
+ }
+ ],
+ payable: false,
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ constant: false,
+ inputs: [
+ {
+ name: "_spender",
+ type: "address"
+ },
+ {
+ name: "_value",
+ type: "uint256"
+ }
+ ],
+ name: "approve",
+ outputs: [
+ {
+ name: "",
+ type: "bool"
+ }
+ ],
+ payable: false,
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ constant: true,
+ inputs: [],
+ name: "totalSupply",
+ outputs: [
+ {
+ name: "",
+ type: "uint256"
+ }
+ ],
+ payable: false,
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ constant: false,
+ inputs: [
+ {
+ name: "_from",
+ type: "address"
+ },
+ {
+ name: "_to",
+ type: "address"
+ },
+ {
+ name: "_value",
+ type: "uint256"
+ }
+ ],
+ name: "transferFrom",
+ outputs: [
+ {
+ name: "",
+ type: "bool"
+ }
+ ],
+ payable: false,
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ constant: true,
+ inputs: [],
+ name: "decimals",
+ outputs: [
+ {
+ name: "",
+ type: "uint8"
+ }
+ ],
+ payable: false,
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ constant: true,
+ inputs: [
+ {
+ name: "_owner",
+ type: "address"
+ }
+ ],
+ name: "balanceOf",
+ outputs: [
+ {
+ name: "balance",
+ type: "uint256"
+ }
+ ],
+ payable: false,
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ constant: true,
+ inputs: [],
+ name: "symbol",
+ outputs: [
+ {
+ name: "",
+ type: "string"
+ }
+ ],
+ payable: false,
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ constant: false,
+ inputs: [
+ {
+ name: "_to",
+ type: "address"
+ },
+ {
+ name: "_value",
+ type: "uint256"
+ }
+ ],
+ name: "transfer",
+ outputs: [
+ {
+ name: "",
+ type: "bool"
+ }
+ ],
+ payable: false,
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ constant: true,
+ inputs: [
+ {
+ name: "_owner",
+ type: "address"
+ },
+ {
+ name: "_spender",
+ type: "address"
+ }
+ ],
+ name: "allowance",
+ outputs: [
+ {
+ name: "",
+ type: "uint256"
+ }
+ ],
+ payable: false,
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ payable: true,
+ stateMutability: "payable",
+ type: "fallback"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ name: "owner",
+ type: "address"
+ },
+ {
+ indexed: true,
+ name: "spender",
+ type: "address"
+ },
+ {
+ indexed: false,
+ name: "value",
+ type: "uint256"
+ }
+ ],
+ name: "Approval",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ name: "from",
+ type: "address"
+ },
+ {
+ indexed: true,
+ name: "to",
+ type: "address"
+ },
+ {
+ indexed: false,
+ name: "value",
+ type: "uint256"
+ }
+ ],
+ name: "Transfer",
+ type: "event"
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/constants/src/lib/abis/LIT.json
+var require_LIT = __commonJS({
+ "node_modules/@lit-protocol/constants/src/lib/abis/LIT.json"(exports2, module2) {
+ module2.exports = {
+ contractName: "LIT",
+ abi: [
+ {
+ inputs: [],
+ stateMutability: "nonpayable",
+ type: "constructor"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "account",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "operator",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "bool",
+ name: "approved",
+ type: "bool"
+ }
+ ],
+ name: "ApprovalForAll",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "address",
+ name: "userAddress",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "address payable",
+ name: "relayerAddress",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "bytes",
+ name: "functionSignature",
+ type: "bytes"
+ }
+ ],
+ name: "MetaTransactionExecuted",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "operator",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "from",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "uint256[]",
+ name: "ids",
+ type: "uint256[]"
+ },
+ {
+ indexed: false,
+ internalType: "uint256[]",
+ name: "values",
+ type: "uint256[]"
+ }
+ ],
+ name: "TransferBatch",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "operator",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "from",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "id",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "value",
+ type: "uint256"
+ }
+ ],
+ name: "TransferSingle",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "string",
+ name: "value",
+ type: "string"
+ },
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "id",
+ type: "uint256"
+ }
+ ],
+ name: "URI",
+ type: "event"
+ },
+ {
+ inputs: [],
+ name: "ERC712_VERSION",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "id",
+ type: "uint256"
+ }
+ ],
+ name: "balanceOf",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true
+ },
+ {
+ inputs: [
+ {
+ internalType: "address[]",
+ name: "accounts",
+ type: "address[]"
+ },
+ {
+ internalType: "uint256[]",
+ name: "ids",
+ type: "uint256[]"
+ }
+ ],
+ name: "balanceOfBatch",
+ outputs: [
+ {
+ internalType: "uint256[]",
+ name: "",
+ type: "uint256[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "userAddress",
+ type: "address"
+ },
+ {
+ internalType: "bytes",
+ name: "functionSignature",
+ type: "bytes"
+ },
+ {
+ internalType: "bytes32",
+ name: "sigR",
+ type: "bytes32"
+ },
+ {
+ internalType: "bytes32",
+ name: "sigS",
+ type: "bytes32"
+ },
+ {
+ internalType: "uint8",
+ name: "sigV",
+ type: "uint8"
+ }
+ ],
+ name: "executeMetaTransaction",
+ outputs: [
+ {
+ internalType: "bytes",
+ name: "",
+ type: "bytes"
+ }
+ ],
+ stateMutability: "payable",
+ type: "function",
+ payable: true
+ },
+ {
+ inputs: [],
+ name: "getChainId",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function",
+ constant: true
+ },
+ {
+ inputs: [],
+ name: "getDomainSeperator",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "user",
+ type: "address"
+ }
+ ],
+ name: "getNonce",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "nonce",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "from",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ internalType: "uint256[]",
+ name: "ids",
+ type: "uint256[]"
+ },
+ {
+ internalType: "uint256[]",
+ name: "amounts",
+ type: "uint256[]"
+ },
+ {
+ internalType: "bytes",
+ name: "data",
+ type: "bytes"
+ }
+ ],
+ name: "safeBatchTransferFrom",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "from",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "id",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "data",
+ type: "bytes"
+ }
+ ],
+ name: "safeTransferFrom",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "operator",
+ type: "address"
+ },
+ {
+ internalType: "bool",
+ name: "approved",
+ type: "bool"
+ }
+ ],
+ name: "setApprovalForAll",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "interfaceId",
+ type: "bytes4"
+ }
+ ],
+ name: "supportsInterface",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true
+ },
+ {
+ inputs: [],
+ name: "tokenIds",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ name: "uri",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "quantity",
+ type: "uint256"
+ }
+ ],
+ name: "mint",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_owner",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "_operator",
+ type: "address"
+ }
+ ],
+ name: "isApprovedForAll",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "isOperator",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true
+ },
+ {
+ inputs: [
+ {
+ internalType: "bool",
+ name: "enabled",
+ type: "bool"
+ }
+ ],
+ name: "setOpenseaProxyEnabled",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "newAdmin",
+ type: "address"
+ }
+ ],
+ name: "changeAdmin",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "string",
+ name: "uri",
+ type: "string"
+ }
+ ],
+ name: "setURI",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getAdmin",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function",
+ constant: true
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/constants/src/index.js
+var require_src2 = __commonJS({
+ "node_modules/@lit-protocol/constants/src/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.ABI_ERC20 = exports2.ABI_LIT = void 0;
+ var tslib_1 = (init_tslib_es63(), __toCommonJS(tslib_es6_exports3));
+ tslib_1.__exportStar(require_version26(), exports2);
+ tslib_1.__exportStar(require_constants2(), exports2);
+ tslib_1.__exportStar(require_mappers(), exports2);
+ tslib_1.__exportStar(require_endpoints(), exports2);
+ tslib_1.__exportStar(require_mappers(), exports2);
+ tslib_1.__exportStar(require_i_errors(), exports2);
+ tslib_1.__exportStar(require_errors(), exports2);
+ tslib_1.__exportStar(require_utils12(), exports2);
+ var ABI_ERC20 = tslib_1.__importStar(require_ERC20());
+ exports2.ABI_ERC20 = ABI_ERC20;
+ var ABI_LIT = tslib_1.__importStar(require_LIT());
+ exports2.ABI_LIT = ABI_LIT;
+ }
+});
+
+// node_modules/siwe-recap/dist/index.cjs
+var require_dist3 = __commonJS({
+ "node_modules/siwe-recap/dist/index.cjs"(exports2, module2) {
+ "use strict";
+ var __create = Object.create;
+ var __defProp2 = Object.defineProperty;
+ var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor;
+ var __getOwnPropNames2 = Object.getOwnPropertyNames;
+ var __getProtoOf = Object.getPrototypeOf;
+ var __hasOwnProp2 = Object.prototype.hasOwnProperty;
+ var __commonJS2 = (cb, mod) => function __require() {
+ return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
+ };
+ var __export2 = (target, all) => {
+ for (var name in all)
+ __defProp2(target, name, { get: all[name], enumerable: true });
+ };
+ var __copyProps2 = (to, from2, except, desc) => {
+ if (from2 && typeof from2 === "object" || typeof from2 === "function") {
+ for (let key of __getOwnPropNames2(from2))
+ if (!__hasOwnProp2.call(to, key) && key !== except)
+ __defProp2(to, key, { get: () => from2[key], enumerable: !(desc = __getOwnPropDesc2(from2, key)) || desc.enumerable });
+ }
+ return to;
+ };
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps2(
+ // If the importer is in node compatibility mode or this is not an ESM
+ // file that has been converted to a CommonJS file using a Babel-
+ // compatible transform (i.e. "__esModule" has not been set), then set
+ // "default" to the CommonJS "module.exports" for node compatibility.
+ isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target,
+ mod
+ ));
+ var __toCommonJS2 = (mod) => __copyProps2(__defProp2({}, "__esModule", { value: true }), mod);
+ var __accessCheck = (obj, member, msg) => {
+ if (!member.has(obj))
+ throw TypeError("Cannot " + msg);
+ };
+ var __privateGet = (obj, member, getter) => {
+ __accessCheck(obj, member, "read from private field");
+ return getter ? getter.call(obj) : member.get(obj);
+ };
+ var __privateAdd = (obj, member, value) => {
+ if (member.has(obj))
+ throw TypeError("Cannot add the same private member more than once");
+ member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
+ };
+ var __privateSet = (obj, member, value, setter) => {
+ __accessCheck(obj, member, "write to private field");
+ setter ? setter.call(obj, value) : member.set(obj, value);
+ return value;
+ };
+ var require_canonicalize = __commonJS2({
+ "node_modules/canonicalize/lib/canonicalize.js"(exports3, module22) {
+ "use strict";
+ module22.exports = function serialize2(object) {
+ if (typeof object === "number" && isNaN(object)) {
+ throw new Error("NaN is not allowed");
+ }
+ if (typeof object === "number" && !isFinite(object)) {
+ throw new Error("Infinity is not allowed");
+ }
+ if (object === null || typeof object !== "object") {
+ return JSON.stringify(object);
+ }
+ if (object.toJSON instanceof Function) {
+ return serialize2(object.toJSON());
+ }
+ if (Array.isArray(object)) {
+ const values2 = object.reduce((t, cv, ci) => {
+ const comma = ci === 0 ? "" : ",";
+ const value = cv === void 0 || typeof cv === "symbol" ? null : cv;
+ return `${t}${comma}${serialize2(value)}`;
+ }, "");
+ return `[${values2}]`;
+ }
+ const values = Object.keys(object).sort().reduce((t, cv) => {
+ if (object[cv] === void 0 || typeof object[cv] === "symbol") {
+ return t;
+ }
+ const comma = t.length === 0 ? "" : ",";
+ return `${t}${comma}${serialize2(cv)}:${serialize2(object[cv])}`;
+ }, "");
+ return `{${values}}`;
+ };
+ }
+ });
+ var src_exports = {};
+ __export2(src_exports, {
+ CID: () => CID,
+ Recap: () => Recap,
+ checkAtt: () => checkAtt,
+ decodeRecap: () => decodeRecap,
+ encodeRecap: () => encodeRecap,
+ isSorted: () => isSorted,
+ validAbString: () => validAbString,
+ validString: () => validString
+ });
+ module2.exports = __toCommonJS2(src_exports);
+ var encode_1 = encode;
+ var MSB = 128;
+ var REST = 127;
+ var MSBALL = ~REST;
+ var INT = Math.pow(2, 31);
+ function encode(num, out, offset) {
+ out = out || [];
+ offset = offset || 0;
+ var oldOffset = offset;
+ while (num >= INT) {
+ out[offset++] = num & 255 | MSB;
+ num /= 128;
+ }
+ while (num & MSBALL) {
+ out[offset++] = num & 255 | MSB;
+ num >>>= 7;
+ }
+ out[offset] = num | 0;
+ encode.bytes = offset - oldOffset + 1;
+ return out;
+ }
+ var decode = read;
+ var MSB$1 = 128;
+ var REST$1 = 127;
+ function read(buf, offset) {
+ var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf.length;
+ do {
+ if (counter >= l) {
+ read.bytes = 0;
+ throw new RangeError("Could not decode varint");
+ }
+ b = buf[counter++];
+ res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);
+ shift += 7;
+ } while (b >= MSB$1);
+ read.bytes = counter - offset;
+ return res;
+ }
+ var N1 = Math.pow(2, 7);
+ var N2 = Math.pow(2, 14);
+ var N3 = Math.pow(2, 21);
+ var N4 = Math.pow(2, 28);
+ var N5 = Math.pow(2, 35);
+ var N6 = Math.pow(2, 42);
+ var N7 = Math.pow(2, 49);
+ var N8 = Math.pow(2, 56);
+ var N9 = Math.pow(2, 63);
+ var length = function(value) {
+ return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;
+ };
+ var varint = {
+ encode: encode_1,
+ decode,
+ encodingLength: length
+ };
+ var _brrp_varint = varint;
+ var varint_default = _brrp_varint;
+ var decode2 = (data, offset = 0) => {
+ const code = varint_default.decode(data, offset);
+ return [code, varint_default.decode.bytes];
+ };
+ var encodeTo = (int, target, offset = 0) => {
+ varint_default.encode(int, target, offset);
+ return target;
+ };
+ var encodingLength = (int) => {
+ return varint_default.encodingLength(int);
+ };
+ var empty = new Uint8Array(0);
+ var equals = (aa, bb) => {
+ if (aa === bb)
+ return true;
+ if (aa.byteLength !== bb.byteLength) {
+ return false;
+ }
+ for (let ii = 0; ii < aa.byteLength; ii++) {
+ if (aa[ii] !== bb[ii]) {
+ return false;
+ }
+ }
+ return true;
+ };
+ var coerce = (o) => {
+ if (o instanceof Uint8Array && o.constructor.name === "Uint8Array")
+ return o;
+ if (o instanceof ArrayBuffer)
+ return new Uint8Array(o);
+ if (ArrayBuffer.isView(o)) {
+ return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);
+ }
+ throw new Error("Unknown type, must be binary type");
+ };
+ var create = (code, digest) => {
+ const size = digest.byteLength;
+ const sizeOffset = encodingLength(code);
+ const digestOffset = sizeOffset + encodingLength(size);
+ const bytes = new Uint8Array(digestOffset + size);
+ encodeTo(code, bytes, 0);
+ encodeTo(size, bytes, sizeOffset);
+ bytes.set(digest, digestOffset);
+ return new Digest(code, size, digest, bytes);
+ };
+ var decode3 = (multihash) => {
+ const bytes = coerce(multihash);
+ const [code, sizeOffset] = decode2(bytes);
+ const [size, digestOffset] = decode2(bytes.subarray(sizeOffset));
+ const digest = bytes.subarray(sizeOffset + digestOffset);
+ if (digest.byteLength !== size) {
+ throw new Error("Incorrect length");
+ }
+ return new Digest(code, size, digest, bytes);
+ };
+ var equals2 = (a, b) => {
+ if (a === b) {
+ return true;
+ } else {
+ const data = (
+ /** @type {{code?:unknown, size?:unknown, bytes?:unknown}} */
+ b
+ );
+ return a.code === data.code && a.size === data.size && data.bytes instanceof Uint8Array && equals(a.bytes, data.bytes);
+ }
+ };
+ var Digest = class {
+ /**
+ * Creates a multihash digest.
+ *
+ * @param {Code} code
+ * @param {Size} size
+ * @param {Uint8Array} digest
+ * @param {Uint8Array} bytes
+ */
+ constructor(code, size, digest, bytes) {
+ this.code = code;
+ this.size = size;
+ this.digest = digest;
+ this.bytes = bytes;
+ }
+ };
+ function base(ALPHABET, name) {
+ if (ALPHABET.length >= 255) {
+ throw new TypeError("Alphabet too long");
+ }
+ var BASE_MAP = new Uint8Array(256);
+ for (var j = 0; j < BASE_MAP.length; j++) {
+ BASE_MAP[j] = 255;
+ }
+ for (var i = 0; i < ALPHABET.length; i++) {
+ var x = ALPHABET.charAt(i);
+ var xc = x.charCodeAt(0);
+ if (BASE_MAP[xc] !== 255) {
+ throw new TypeError(x + " is ambiguous");
+ }
+ BASE_MAP[xc] = i;
+ }
+ var BASE = ALPHABET.length;
+ var LEADER = ALPHABET.charAt(0);
+ var FACTOR = Math.log(BASE) / Math.log(256);
+ var iFACTOR = Math.log(256) / Math.log(BASE);
+ function encode3(source) {
+ if (source instanceof Uint8Array)
+ ;
+ else if (ArrayBuffer.isView(source)) {
+ source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);
+ } else if (Array.isArray(source)) {
+ source = Uint8Array.from(source);
+ }
+ if (!(source instanceof Uint8Array)) {
+ throw new TypeError("Expected Uint8Array");
+ }
+ if (source.length === 0) {
+ return "";
+ }
+ var zeroes = 0;
+ var length2 = 0;
+ var pbegin = 0;
+ var pend = source.length;
+ while (pbegin !== pend && source[pbegin] === 0) {
+ pbegin++;
+ zeroes++;
+ }
+ var size = (pend - pbegin) * iFACTOR + 1 >>> 0;
+ var b58 = new Uint8Array(size);
+ while (pbegin !== pend) {
+ var carry = source[pbegin];
+ var i2 = 0;
+ for (var it1 = size - 1; (carry !== 0 || i2 < length2) && it1 !== -1; it1--, i2++) {
+ carry += 256 * b58[it1] >>> 0;
+ b58[it1] = carry % BASE >>> 0;
+ carry = carry / BASE >>> 0;
+ }
+ if (carry !== 0) {
+ throw new Error("Non-zero carry");
+ }
+ length2 = i2;
+ pbegin++;
+ }
+ var it2 = size - length2;
+ while (it2 !== size && b58[it2] === 0) {
+ it2++;
+ }
+ var str = LEADER.repeat(zeroes);
+ for (; it2 < size; ++it2) {
+ str += ALPHABET.charAt(b58[it2]);
+ }
+ return str;
+ }
+ function decodeUnsafe(source) {
+ if (typeof source !== "string") {
+ throw new TypeError("Expected String");
+ }
+ if (source.length === 0) {
+ return new Uint8Array();
+ }
+ var psz = 0;
+ if (source[psz] === " ") {
+ return;
+ }
+ var zeroes = 0;
+ var length2 = 0;
+ while (source[psz] === LEADER) {
+ zeroes++;
+ psz++;
+ }
+ var size = (source.length - psz) * FACTOR + 1 >>> 0;
+ var b256 = new Uint8Array(size);
+ while (source[psz]) {
+ var carry = BASE_MAP[source.charCodeAt(psz)];
+ if (carry === 255) {
+ return;
+ }
+ var i2 = 0;
+ for (var it3 = size - 1; (carry !== 0 || i2 < length2) && it3 !== -1; it3--, i2++) {
+ carry += BASE * b256[it3] >>> 0;
+ b256[it3] = carry % 256 >>> 0;
+ carry = carry / 256 >>> 0;
+ }
+ if (carry !== 0) {
+ throw new Error("Non-zero carry");
+ }
+ length2 = i2;
+ psz++;
+ }
+ if (source[psz] === " ") {
+ return;
+ }
+ var it4 = size - length2;
+ while (it4 !== size && b256[it4] === 0) {
+ it4++;
+ }
+ var vch = new Uint8Array(zeroes + (size - it4));
+ var j2 = zeroes;
+ while (it4 !== size) {
+ vch[j2++] = b256[it4++];
+ }
+ return vch;
+ }
+ function decode5(string) {
+ var buffer = decodeUnsafe(string);
+ if (buffer) {
+ return buffer;
+ }
+ throw new Error(`Non-${name} character`);
+ }
+ return {
+ encode: encode3,
+ decodeUnsafe,
+ decode: decode5
+ };
+ }
+ var src = base;
+ var _brrp__multiformats_scope_baseX = src;
+ var base_x_default = _brrp__multiformats_scope_baseX;
+ var Encoder = class {
+ /**
+ * @param {Base} name
+ * @param {Prefix} prefix
+ * @param {(bytes:Uint8Array) => string} baseEncode
+ */
+ constructor(name, prefix, baseEncode) {
+ this.name = name;
+ this.prefix = prefix;
+ this.baseEncode = baseEncode;
+ }
+ /**
+ * @param {Uint8Array} bytes
+ * @returns {API.Multibase}
+ */
+ encode(bytes) {
+ if (bytes instanceof Uint8Array) {
+ return `${this.prefix}${this.baseEncode(bytes)}`;
+ } else {
+ throw Error("Unknown type, must be binary type");
+ }
+ }
+ };
+ var Decoder = class {
+ /**
+ * @param {Base} name
+ * @param {Prefix} prefix
+ * @param {(text:string) => Uint8Array} baseDecode
+ */
+ constructor(name, prefix, baseDecode) {
+ this.name = name;
+ this.prefix = prefix;
+ if (prefix.codePointAt(0) === void 0) {
+ throw new Error("Invalid prefix character");
+ }
+ this.prefixCodePoint = /** @type {number} */
+ prefix.codePointAt(0);
+ this.baseDecode = baseDecode;
+ }
+ /**
+ * @param {string} text
+ */
+ decode(text) {
+ if (typeof text === "string") {
+ if (text.codePointAt(0) !== this.prefixCodePoint) {
+ throw Error(`Unable to decode multibase string ${JSON.stringify(text)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);
+ }
+ return this.baseDecode(text.slice(this.prefix.length));
+ } else {
+ throw Error("Can only multibase decode strings");
+ }
+ }
+ /**
+ * @template {string} OtherPrefix
+ * @param {API.UnibaseDecoder|ComposedDecoder} decoder
+ * @returns {ComposedDecoder}
+ */
+ or(decoder) {
+ return or(this, decoder);
+ }
+ };
+ var ComposedDecoder = class {
+ /**
+ * @param {Decoders} decoders
+ */
+ constructor(decoders) {
+ this.decoders = decoders;
+ }
+ /**
+ * @template {string} OtherPrefix
+ * @param {API.UnibaseDecoder|ComposedDecoder} decoder
+ * @returns {ComposedDecoder}
+ */
+ or(decoder) {
+ return or(this, decoder);
+ }
+ /**
+ * @param {string} input
+ * @returns {Uint8Array}
+ */
+ decode(input) {
+ const prefix = (
+ /** @type {Prefix} */
+ input[0]
+ );
+ const decoder = this.decoders[prefix];
+ if (decoder) {
+ return decoder.decode(input);
+ } else {
+ throw RangeError(`Unable to decode multibase string ${JSON.stringify(input)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`);
+ }
+ }
+ };
+ var or = (left, right) => new ComposedDecoder(
+ /** @type {Decoders} */
+ {
+ ...left.decoders || { [
+ /** @type API.UnibaseDecoder */
+ left.prefix
+ ]: left },
+ ...right.decoders || { [
+ /** @type API.UnibaseDecoder */
+ right.prefix
+ ]: right }
+ }
+ );
+ var Codec = class {
+ /**
+ * @param {Base} name
+ * @param {Prefix} prefix
+ * @param {(bytes:Uint8Array) => string} baseEncode
+ * @param {(text:string) => Uint8Array} baseDecode
+ */
+ constructor(name, prefix, baseEncode, baseDecode) {
+ this.name = name;
+ this.prefix = prefix;
+ this.baseEncode = baseEncode;
+ this.baseDecode = baseDecode;
+ this.encoder = new Encoder(name, prefix, baseEncode);
+ this.decoder = new Decoder(name, prefix, baseDecode);
+ }
+ /**
+ * @param {Uint8Array} input
+ */
+ encode(input) {
+ return this.encoder.encode(input);
+ }
+ /**
+ * @param {string} input
+ */
+ decode(input) {
+ return this.decoder.decode(input);
+ }
+ };
+ var from = ({ name, prefix, encode: encode3, decode: decode5 }) => new Codec(name, prefix, encode3, decode5);
+ var baseX = ({ prefix, name, alphabet }) => {
+ const { encode: encode3, decode: decode5 } = base_x_default(alphabet, name);
+ return from({
+ prefix,
+ name,
+ encode: encode3,
+ /**
+ * @param {string} text
+ */
+ decode: (text) => coerce(decode5(text))
+ });
+ };
+ var decode4 = (string, alphabet, bitsPerChar, name) => {
+ const codes = {};
+ for (let i = 0; i < alphabet.length; ++i) {
+ codes[alphabet[i]] = i;
+ }
+ let end = string.length;
+ while (string[end - 1] === "=") {
+ --end;
+ }
+ const out = new Uint8Array(end * bitsPerChar / 8 | 0);
+ let bits = 0;
+ let buffer = 0;
+ let written = 0;
+ for (let i = 0; i < end; ++i) {
+ const value = codes[string[i]];
+ if (value === void 0) {
+ throw new SyntaxError(`Non-${name} character`);
+ }
+ buffer = buffer << bitsPerChar | value;
+ bits += bitsPerChar;
+ if (bits >= 8) {
+ bits -= 8;
+ out[written++] = 255 & buffer >> bits;
+ }
+ }
+ if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {
+ throw new SyntaxError("Unexpected end of data");
+ }
+ return out;
+ };
+ var encode2 = (data, alphabet, bitsPerChar) => {
+ const pad = alphabet[alphabet.length - 1] === "=";
+ const mask = (1 << bitsPerChar) - 1;
+ let out = "";
+ let bits = 0;
+ let buffer = 0;
+ for (let i = 0; i < data.length; ++i) {
+ buffer = buffer << 8 | data[i];
+ bits += 8;
+ while (bits > bitsPerChar) {
+ bits -= bitsPerChar;
+ out += alphabet[mask & buffer >> bits];
+ }
+ }
+ if (bits) {
+ out += alphabet[mask & buffer << bitsPerChar - bits];
+ }
+ if (pad) {
+ while (out.length * bitsPerChar & 7) {
+ out += "=";
+ }
+ }
+ return out;
+ };
+ var rfc4648 = ({ name, prefix, bitsPerChar, alphabet }) => {
+ return from({
+ prefix,
+ name,
+ encode(input) {
+ return encode2(input, alphabet, bitsPerChar);
+ },
+ decode(input) {
+ return decode4(input, alphabet, bitsPerChar, name);
+ }
+ });
+ };
+ var base58btc = baseX({
+ name: "base58btc",
+ prefix: "z",
+ alphabet: "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
+ });
+ var base58flickr = baseX({
+ name: "base58flickr",
+ prefix: "Z",
+ alphabet: "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"
+ });
+ var base32 = rfc4648({
+ prefix: "b",
+ name: "base32",
+ alphabet: "abcdefghijklmnopqrstuvwxyz234567",
+ bitsPerChar: 5
+ });
+ var base32upper = rfc4648({
+ prefix: "B",
+ name: "base32upper",
+ alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",
+ bitsPerChar: 5
+ });
+ var base32pad = rfc4648({
+ prefix: "c",
+ name: "base32pad",
+ alphabet: "abcdefghijklmnopqrstuvwxyz234567=",
+ bitsPerChar: 5
+ });
+ var base32padupper = rfc4648({
+ prefix: "C",
+ name: "base32padupper",
+ alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",
+ bitsPerChar: 5
+ });
+ var base32hex = rfc4648({
+ prefix: "v",
+ name: "base32hex",
+ alphabet: "0123456789abcdefghijklmnopqrstuv",
+ bitsPerChar: 5
+ });
+ var base32hexupper = rfc4648({
+ prefix: "V",
+ name: "base32hexupper",
+ alphabet: "0123456789ABCDEFGHIJKLMNOPQRSTUV",
+ bitsPerChar: 5
+ });
+ var base32hexpad = rfc4648({
+ prefix: "t",
+ name: "base32hexpad",
+ alphabet: "0123456789abcdefghijklmnopqrstuv=",
+ bitsPerChar: 5
+ });
+ var base32hexpadupper = rfc4648({
+ prefix: "T",
+ name: "base32hexpadupper",
+ alphabet: "0123456789ABCDEFGHIJKLMNOPQRSTUV=",
+ bitsPerChar: 5
+ });
+ var base32z = rfc4648({
+ prefix: "h",
+ name: "base32z",
+ alphabet: "ybndrfg8ejkmcpqxot1uwisza345h769",
+ bitsPerChar: 5
+ });
+ var format = (link, base2) => {
+ const { bytes, version } = link;
+ switch (version) {
+ case 0:
+ return toStringV0(
+ bytes,
+ baseCache(link),
+ /** @type {API.MultibaseEncoder<"z">} */
+ base2 || base58btc.encoder
+ );
+ default:
+ return toStringV1(
+ bytes,
+ baseCache(link),
+ /** @type {API.MultibaseEncoder} */
+ base2 || base32.encoder
+ );
+ }
+ };
+ var cache = /* @__PURE__ */ new WeakMap();
+ var baseCache = (cid) => {
+ const baseCache2 = cache.get(cid);
+ if (baseCache2 == null) {
+ const baseCache3 = /* @__PURE__ */ new Map();
+ cache.set(cid, baseCache3);
+ return baseCache3;
+ }
+ return baseCache2;
+ };
+ var CID = class {
+ /**
+ * @param {Version} version - Version of the CID
+ * @param {Format} code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv
+ * @param {API.MultihashDigest} multihash - (Multi)hash of the of the content.
+ * @param {Uint8Array} bytes
+ *
+ */
+ constructor(version, code, multihash, bytes) {
+ this.code = code;
+ this.version = version;
+ this.multihash = multihash;
+ this.bytes = bytes;
+ this["/"] = bytes;
+ }
+ /**
+ * Signalling `cid.asCID === cid` has been replaced with `cid['/'] === cid.bytes`
+ * please either use `CID.asCID(cid)` or switch to new signalling mechanism
+ *
+ * @deprecated
+ */
+ get asCID() {
+ return this;
+ }
+ // ArrayBufferView
+ get byteOffset() {
+ return this.bytes.byteOffset;
+ }
+ // ArrayBufferView
+ get byteLength() {
+ return this.bytes.byteLength;
+ }
+ /**
+ * @returns {CID}
+ */
+ toV0() {
+ switch (this.version) {
+ case 0: {
+ return (
+ /** @type {CID} */
+ this
+ );
+ }
+ case 1: {
+ const { code, multihash } = this;
+ if (code !== DAG_PB_CODE) {
+ throw new Error("Cannot convert a non dag-pb CID to CIDv0");
+ }
+ if (multihash.code !== SHA_256_CODE) {
+ throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");
+ }
+ return (
+ /** @type {CID} */
+ CID.createV0(
+ /** @type {API.MultihashDigest} */
+ multihash
+ )
+ );
+ }
+ default: {
+ throw Error(
+ `Can not convert CID version ${this.version} to version 0. This is a bug please report`
+ );
+ }
+ }
+ }
+ /**
+ * @returns {CID}
+ */
+ toV1() {
+ switch (this.version) {
+ case 0: {
+ const { code, digest } = this.multihash;
+ const multihash = create(code, digest);
+ return (
+ /** @type {CID} */
+ CID.createV1(this.code, multihash)
+ );
+ }
+ case 1: {
+ return (
+ /** @type {CID} */
+ this
+ );
+ }
+ default: {
+ throw Error(
+ `Can not convert CID version ${this.version} to version 1. This is a bug please report`
+ );
+ }
+ }
+ }
+ /**
+ * @param {unknown} other
+ * @returns {other is CID}
+ */
+ equals(other) {
+ return CID.equals(this, other);
+ }
+ /**
+ * @template {unknown} Data
+ * @template {number} Format
+ * @template {number} Alg
+ * @template {API.Version} Version
+ * @param {API.Link} self
+ * @param {unknown} other
+ * @returns {other is CID}
+ */
+ static equals(self2, other) {
+ const unknown = (
+ /** @type {{code?:unknown, version?:unknown, multihash?:unknown}} */
+ other
+ );
+ return unknown && self2.code === unknown.code && self2.version === unknown.version && equals2(self2.multihash, unknown.multihash);
+ }
+ /**
+ * @param {API.MultibaseEncoder} [base]
+ * @returns {string}
+ */
+ toString(base2) {
+ return format(this, base2);
+ }
+ toJSON() {
+ return { "/": format(this) };
+ }
+ link() {
+ return this;
+ }
+ get [Symbol.toStringTag]() {
+ return "CID";
+ }
+ // Legacy
+ [Symbol.for("nodejs.util.inspect.custom")]() {
+ return `CID(${this.toString()})`;
+ }
+ /**
+ * Takes any input `value` and returns a `CID` instance if it was
+ * a `CID` otherwise returns `null`. If `value` is instanceof `CID`
+ * it will return value back. If `value` is not instance of this CID
+ * class, but is compatible CID it will return new instance of this
+ * `CID` class. Otherwise returns null.
+ *
+ * This allows two different incompatible versions of CID library to
+ * co-exist and interop as long as binary interface is compatible.
+ *
+ * @template {unknown} Data
+ * @template {number} Format
+ * @template {number} Alg
+ * @template {API.Version} Version
+ * @template {unknown} U
+ * @param {API.Link|U} input
+ * @returns {CID|null}
+ */
+ static asCID(input) {
+ if (input == null) {
+ return null;
+ }
+ const value = (
+ /** @type {any} */
+ input
+ );
+ if (value instanceof CID) {
+ return value;
+ } else if (value["/"] != null && value["/"] === value.bytes || value.asCID === value) {
+ const { version, code, multihash, bytes } = value;
+ return new CID(
+ version,
+ code,
+ /** @type {API.MultihashDigest} */
+ multihash,
+ bytes || encodeCID(version, code, multihash.bytes)
+ );
+ } else if (value[cidSymbol] === true) {
+ const { version, multihash, code } = value;
+ const digest = (
+ /** @type {API.MultihashDigest} */
+ decode3(multihash)
+ );
+ return CID.create(version, code, digest);
+ } else {
+ return null;
+ }
+ }
+ /**
+ *
+ * @template {unknown} Data
+ * @template {number} Format
+ * @template {number} Alg
+ * @template {API.Version} Version
+ * @param {Version} version - Version of the CID
+ * @param {Format} code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv
+ * @param {API.MultihashDigest} digest - (Multi)hash of the of the content.
+ * @returns {CID}
+ */
+ static create(version, code, digest) {
+ if (typeof code !== "number") {
+ throw new Error("String codecs are no longer supported");
+ }
+ if (!(digest.bytes instanceof Uint8Array)) {
+ throw new Error("Invalid digest");
+ }
+ switch (version) {
+ case 0: {
+ if (code !== DAG_PB_CODE) {
+ throw new Error(
+ `Version 0 CID must use dag-pb (code: ${DAG_PB_CODE}) block encoding`
+ );
+ } else {
+ return new CID(version, code, digest, digest.bytes);
+ }
+ }
+ case 1: {
+ const bytes = encodeCID(version, code, digest.bytes);
+ return new CID(version, code, digest, bytes);
+ }
+ default: {
+ throw new Error("Invalid version");
+ }
+ }
+ }
+ /**
+ * Simplified version of `create` for CIDv0.
+ *
+ * @template {unknown} [T=unknown]
+ * @param {API.MultihashDigest} digest - Multihash.
+ * @returns {CID}
+ */
+ static createV0(digest) {
+ return CID.create(0, DAG_PB_CODE, digest);
+ }
+ /**
+ * Simplified version of `create` for CIDv1.
+ *
+ * @template {unknown} Data
+ * @template {number} Code
+ * @template {number} Alg
+ * @param {Code} code - Content encoding format code.
+ * @param {API.MultihashDigest} digest - Miltihash of the content.
+ * @returns {CID}
+ */
+ static createV1(code, digest) {
+ return CID.create(1, code, digest);
+ }
+ /**
+ * Decoded a CID from its binary representation. The byte array must contain
+ * only the CID with no additional bytes.
+ *
+ * An error will be thrown if the bytes provided do not contain a valid
+ * binary representation of a CID.
+ *
+ * @template {unknown} Data
+ * @template {number} Code
+ * @template {number} Alg
+ * @template {API.Version} Ver
+ * @param {API.ByteView>} bytes
+ * @returns {CID}
+ */
+ static decode(bytes) {
+ const [cid, remainder] = CID.decodeFirst(bytes);
+ if (remainder.length) {
+ throw new Error("Incorrect length");
+ }
+ return cid;
+ }
+ /**
+ * Decoded a CID from its binary representation at the beginning of a byte
+ * array.
+ *
+ * Returns an array with the first element containing the CID and the second
+ * element containing the remainder of the original byte array. The remainder
+ * will be a zero-length byte array if the provided bytes only contained a
+ * binary CID representation.
+ *
+ * @template {unknown} T
+ * @template {number} C
+ * @template {number} A
+ * @template {API.Version} V
+ * @param {API.ByteView>} bytes
+ * @returns {[CID, Uint8Array]}
+ */
+ static decodeFirst(bytes) {
+ const specs = CID.inspectBytes(bytes);
+ const prefixSize = specs.size - specs.multihashSize;
+ const multihashBytes = coerce(
+ bytes.subarray(prefixSize, prefixSize + specs.multihashSize)
+ );
+ if (multihashBytes.byteLength !== specs.multihashSize) {
+ throw new Error("Incorrect length");
+ }
+ const digestBytes = multihashBytes.subarray(
+ specs.multihashSize - specs.digestSize
+ );
+ const digest = new Digest(
+ specs.multihashCode,
+ specs.digestSize,
+ digestBytes,
+ multihashBytes
+ );
+ const cid = specs.version === 0 ? CID.createV0(
+ /** @type {API.MultihashDigest} */
+ digest
+ ) : CID.createV1(specs.codec, digest);
+ return [
+ /** @type {CID} */
+ cid,
+ bytes.subarray(specs.size)
+ ];
+ }
+ /**
+ * Inspect the initial bytes of a CID to determine its properties.
+ *
+ * Involves decoding up to 4 varints. Typically this will require only 4 to 6
+ * bytes but for larger multicodec code values and larger multihash digest
+ * lengths these varints can be quite large. It is recommended that at least
+ * 10 bytes be made available in the `initialBytes` argument for a complete
+ * inspection.
+ *
+ * @template {unknown} T
+ * @template {number} C
+ * @template {number} A
+ * @template {API.Version} V
+ * @param {API.ByteView>} initialBytes
+ * @returns {{ version:V, codec:C, multihashCode:A, digestSize:number, multihashSize:number, size:number }}
+ */
+ static inspectBytes(initialBytes) {
+ let offset = 0;
+ const next = () => {
+ const [i, length2] = decode2(initialBytes.subarray(offset));
+ offset += length2;
+ return i;
+ };
+ let version = (
+ /** @type {V} */
+ next()
+ );
+ let codec = (
+ /** @type {C} */
+ DAG_PB_CODE
+ );
+ if (
+ /** @type {number} */
+ version === 18
+ ) {
+ version = /** @type {V} */
+ 0;
+ offset = 0;
+ } else {
+ codec = /** @type {C} */
+ next();
+ }
+ if (version !== 0 && version !== 1) {
+ throw new RangeError(`Invalid CID version ${version}`);
+ }
+ const prefixSize = offset;
+ const multihashCode = (
+ /** @type {A} */
+ next()
+ );
+ const digestSize = next();
+ const size = offset + digestSize;
+ const multihashSize = size - prefixSize;
+ return { version, codec, multihashCode, digestSize, multihashSize, size };
+ }
+ /**
+ * Takes cid in a string representation and creates an instance. If `base`
+ * decoder is not provided will use a default from the configuration. It will
+ * throw an error if encoding of the CID is not compatible with supplied (or
+ * a default decoder).
+ *
+ * @template {string} Prefix
+ * @template {unknown} Data
+ * @template {number} Code
+ * @template {number} Alg
+ * @template {API.Version} Ver
+ * @param {API.ToString, Prefix>} source
+ * @param {API.MultibaseDecoder} [base]
+ * @returns {CID}
+ */
+ static parse(source, base2) {
+ const [prefix, bytes] = parseCIDtoBytes(source, base2);
+ const cid = CID.decode(bytes);
+ if (cid.version === 0 && source[0] !== "Q") {
+ throw Error("Version 0 CID string must not include multibase prefix");
+ }
+ baseCache(cid).set(prefix, source);
+ return cid;
+ }
+ };
+ var parseCIDtoBytes = (source, base2) => {
+ switch (source[0]) {
+ case "Q": {
+ const decoder = base2 || base58btc;
+ return [
+ /** @type {Prefix} */
+ base58btc.prefix,
+ decoder.decode(`${base58btc.prefix}${source}`)
+ ];
+ }
+ case base58btc.prefix: {
+ const decoder = base2 || base58btc;
+ return [
+ /** @type {Prefix} */
+ base58btc.prefix,
+ decoder.decode(source)
+ ];
+ }
+ case base32.prefix: {
+ const decoder = base2 || base32;
+ return [
+ /** @type {Prefix} */
+ base32.prefix,
+ decoder.decode(source)
+ ];
+ }
+ default: {
+ if (base2 == null) {
+ throw Error(
+ "To parse non base32 or base58btc encoded CID multibase decoder must be provided"
+ );
+ }
+ return [
+ /** @type {Prefix} */
+ source[0],
+ base2.decode(source)
+ ];
+ }
+ }
+ };
+ var toStringV0 = (bytes, cache2, base2) => {
+ const { prefix } = base2;
+ if (prefix !== base58btc.prefix) {
+ throw Error(`Cannot string encode V0 in ${base2.name} encoding`);
+ }
+ const cid = cache2.get(prefix);
+ if (cid == null) {
+ const cid2 = base2.encode(bytes).slice(1);
+ cache2.set(prefix, cid2);
+ return cid2;
+ } else {
+ return cid;
+ }
+ };
+ var toStringV1 = (bytes, cache2, base2) => {
+ const { prefix } = base2;
+ const cid = cache2.get(prefix);
+ if (cid == null) {
+ const cid2 = base2.encode(bytes);
+ cache2.set(prefix, cid2);
+ return cid2;
+ } else {
+ return cid;
+ }
+ };
+ var DAG_PB_CODE = 112;
+ var SHA_256_CODE = 18;
+ var encodeCID = (version, code, multihash) => {
+ const codeOffset = encodingLength(version);
+ const hashOffset = codeOffset + encodingLength(code);
+ const bytes = new Uint8Array(hashOffset + multihash.byteLength);
+ encodeTo(version, bytes, 0);
+ encodeTo(code, bytes, codeOffset);
+ bytes.set(multihash, hashOffset);
+ return bytes;
+ };
+ var cidSymbol = Symbol.for("@ipld/js-cid/CID");
+ var base64 = rfc4648({
+ prefix: "m",
+ name: "base64",
+ alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
+ bitsPerChar: 6
+ });
+ var base64pad = rfc4648({
+ prefix: "M",
+ name: "base64pad",
+ alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
+ bitsPerChar: 6
+ });
+ var base64url = rfc4648({
+ prefix: "u",
+ name: "base64url",
+ alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",
+ bitsPerChar: 6
+ });
+ var base64urlpad = rfc4648({
+ prefix: "U",
+ name: "base64urlpad",
+ alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",
+ bitsPerChar: 6
+ });
+ var import_canonicalize = __toESM(require_canonicalize(), 1);
+ var stringRegex = /^[a-zA-Z0-9.*_+-]+$/g;
+ var abilityStringRegex = /^[a-zA-Z0-9.*_+-]+\/[a-zA-Z0-9.*_+-]+$/g;
+ var validString = (str) => str.match(stringRegex) !== null;
+ var validAbString = (str) => str.match(abilityStringRegex) !== null;
+ var encodeRecap = (att, prf) => base64url.encoder.baseEncode(
+ new TextEncoder().encode(
+ (0, import_canonicalize.default)({
+ att,
+ prf: prf.map((cid) => cid.toV1().toString(base58btc.encoder))
+ })
+ )
+ );
+ var decodeRecap = (recap) => {
+ const { att, prf } = JSON.parse(
+ new TextDecoder().decode(base64url.decoder.baseDecode(recap))
+ );
+ if (!(att instanceof Object) || Array.isArray(att)) {
+ throw new Error("Invalid attenuation object");
+ }
+ if (!Array.isArray(prf) || prf.some((cid) => typeof cid !== "string")) {
+ throw new Error("Invalid proof list");
+ }
+ checkAtt(att);
+ if (!isSorted(att)) {
+ throw new Error("Attenuation object is not properly sorted");
+ }
+ return {
+ att,
+ prf: prf.map((cid) => CID.parse(cid, base58btc))
+ };
+ };
+ var checkAtt = (att) => {
+ for (const ob of Object.values(att)) {
+ if (!(ob instanceof Object)) {
+ throw new Error("Invalid attenuation object");
+ }
+ for (const [ab, nb] of Object.entries(ob)) {
+ if (!validAbString(ab)) {
+ throw new Error(`Invalid ability string: ${ab}`);
+ }
+ if (!Array.isArray(nb) || nb.some((n) => !(n instanceof Object) || Array.isArray(n))) {
+ throw new Error(`Invalid nota-bene list for ${ab}`);
+ }
+ }
+ }
+ return true;
+ };
+ var isSorted = (obj) => {
+ if (Array.isArray(obj)) {
+ return obj.every(isSorted);
+ } else if (obj instanceof Object) {
+ const keys = Object.keys(obj);
+ return Object.keys(obj).sort().every((v, i) => v === keys[i]) && Object.values(obj).every(isSorted);
+ } else {
+ return true;
+ }
+ };
+ var urnRecapPrefix = "urn:recap:";
+ var _prf;
+ var _att;
+ var _Recap = class {
+ /**
+ * Constructs a Recap instance
+ *
+ * @param att - The input attenuation object (default is an empty object {})
+ * @param prf - The input proof array (default is an empty array [])
+ */
+ constructor(att = {}, prf = []) {
+ __privateAdd(this, _prf, void 0);
+ __privateAdd(this, _att, void 0);
+ checkAtt(att);
+ __privateSet(this, _att, att);
+ __privateSet(this, _prf, prf.map(
+ (cid) => typeof cid === "string" ? CID.parse(cid) : cid
+ ));
+ }
+ /**
+ * Gets the proofs array of the Recap object
+ *
+ * @returns An Array of CID objects
+ */
+ get proofs() {
+ return __privateGet(this, _prf);
+ }
+ /**
+ * Gets the attenuation object of the Recap object
+ *
+ * @returns An attenuation object (AttObj)
+ */
+ get attenuations() {
+ return __privateGet(this, _att);
+ }
+ /**
+ * Calculates the statement field of a SIWE recap-transformed-statement
+ *
+ * @returns A string representing the statement constructed from the Recap object
+ */
+ get statement() {
+ let statement = "I further authorize the stated URI to perform the following actions on my behalf: ";
+ let section = 1;
+ for (const resource of Object.keys(this.attenuations).sort()) {
+ const resourceAbilities = Object.keys(this.attenuations[resource]).sort().reduce((acc, cur) => {
+ const [namespace, name] = cur.split("/");
+ if (acc[namespace] === void 0) {
+ acc[namespace] = [name];
+ } else {
+ acc[namespace].push(name);
+ }
+ return acc;
+ }, {});
+ for (const [namespace, names] of Object.entries(resourceAbilities)) {
+ statement += `(${section}) '${namespace}': ${names.map((n) => `'${n}'`).join(", ")} for '${resource}'. `;
+ section += 1;
+ }
+ }
+ statement = statement.slice(0, -1);
+ return statement;
+ }
+ /**
+ * Adds a new proof to the proofs collection of the Recap object
+ *
+ * @param cid - A CID (Content Identifier) object or its string representation
+ */
+ addProof(cid) {
+ if (typeof cid === "string") {
+ __privateGet(this, _prf).push(CID.parse(cid));
+ } else {
+ __privateGet(this, _prf).push(cid);
+ }
+ }
+ /**
+ * Adds a new attenuation to the attenuations object of the Recap object
+ *
+ * @param resource - The resource URI
+ * @param namespace - The ability namespace (default is *)
+ * @param name - The ability name (default is *)
+ * @param restriction - A JSON object containing restrictions or requirements for the action (default is {})
+ */
+ addAttenuation(resource, namespace = "*", name = "*", restriction = {}) {
+ if (!validString(namespace)) {
+ throw new Error("Invalid ability namespace");
+ }
+ if (!validString(name)) {
+ throw new Error("Invalid ability name");
+ }
+ const abString = `${namespace}/${name}`;
+ const ex = __privateGet(this, _att)[resource];
+ if (ex !== void 0) {
+ if (ex[abString] !== void 0) {
+ ex[abString].push(restriction);
+ } else {
+ ex[abString] = [restriction];
+ }
+ } else {
+ __privateGet(this, _att)[resource] = { [abString]: [restriction] };
+ }
+ }
+ /**
+ * Merges another Recap object with the current Recap object
+ *
+ * @param other - The other Recap object to be merged
+ */
+ merge(other) {
+ __privateGet(this, _prf).push(...other.proofs.filter((cid) => !__privateGet(this, _prf).includes(cid)));
+ for (const [resource, abilities] of Object.entries(other.attenuations)) {
+ if (__privateGet(this, _att)[resource] !== void 0) {
+ const ex = __privateGet(this, _att)[resource];
+ for (const [ability, restrictions] of Object.entries(abilities)) {
+ if (ex[ability] === void 0 || ex[ability].length === 0 || ex[ability].every((r) => Object.keys(r).length === 0)) {
+ ex[ability] = restrictions;
+ } else {
+ ex[ability].push(...restrictions);
+ }
+ }
+ } else {
+ __privateGet(this, _att)[resource] = abilities;
+ }
+ }
+ }
+ /**
+ * Decodes a Recap URI into a Recap object
+ *
+ * @param recap - The input Recap URI string
+ * @returns A Recap object decoded from the input Recap URI
+ * @throws Will throw an error if the input string is not a valid Recap URI
+ */
+ static decode_urn(recap) {
+ if (!recap.startsWith(urnRecapPrefix)) {
+ throw new Error("Invalid recap urn");
+ }
+ const { att, prf } = decodeRecap(recap.slice(urnRecapPrefix.length));
+ return new _Recap(att, prf);
+ }
+ /**
+ * Extracts the Recap object from a SiweMessage instance
+ *
+ * @param siwe - A SiweMessage instance
+ * @returns A Recap object extracted from the input SiweMessage
+ * @throws Will throw an error if the SiweMessage doesn't have any resources
+ */
+ static extract(siwe) {
+ if (siwe.resources === void 0) {
+ throw new Error("No resources in SiweMessage");
+ }
+ const last_index = siwe.resources.length - 1;
+ return _Recap.decode_urn(siwe.resources[last_index]);
+ }
+ /**
+ * Extracts and verifies a Recap object from a SiweMessage instance
+ *
+ * @param siwe - A SiweMessage instance
+ * @returns A verified Recap object extracted from the input SiweMessage
+ * @throws Will throw an error if the SiweMessage has an invalid statement
+ */
+ static extract_and_verify(siwe) {
+ const recap = _Recap.extract(siwe);
+ if (siwe.statement === void 0 || !siwe.statement.endsWith(recap.statement)) {
+ throw new Error("Invalid statement");
+ }
+ return recap;
+ }
+ /**
+ * Adds a Recap object to a SiweMessage
+ *
+ * @param siwe - The input SiweMessage instance to be modified
+ * @returns A modified SiweMessage instance with the Recap object added
+ */
+ add_to_siwe_message(siwe) {
+ try {
+ if (siwe.statement === void 0 || siwe.resources === void 0 || siwe.resources.length === 0) {
+ throw new Error("no recap");
+ }
+ const other = _Recap.extract_and_verify(siwe);
+ const previousStatement = other.statement;
+ other.merge(this);
+ siwe.statement = siwe.statement.slice(0, -previousStatement.length) + other.statement;
+ siwe.resources[siwe.resources.length - 1] = other.encode();
+ return siwe;
+ } catch (e) {
+ siwe.statement = siwe.statement === void 0 ? this.statement : siwe.statement + " " + this.statement;
+ siwe.resources = siwe.resources === void 0 ? [this.encode()] : [...siwe.resources, this.encode()];
+ return siwe;
+ }
+ }
+ /**
+ * Encodes a Recap object into a Recap URI
+ *
+ * @returns A Recap URI string
+ */
+ encode() {
+ return `${urnRecapPrefix}${encodeRecap(__privateGet(this, _att), __privateGet(this, _prf))}`;
+ }
+ };
+ var Recap = _Recap;
+ _prf = /* @__PURE__ */ new WeakMap();
+ _att = /* @__PURE__ */ new WeakMap();
+ }
+});
+
+// node_modules/@lit-protocol/auth-helpers/src/lib/recap/utils.js
+var require_utils13 = __commonJS({
+ "node_modules/@lit-protocol/auth-helpers/src/lib/recap/utils.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getRecapNamespaceAndAbility = getRecapNamespaceAndAbility;
+ var constants_1 = require_src2();
+ function getRecapNamespaceAndAbility(litAbility) {
+ switch (litAbility) {
+ case constants_1.LIT_ABILITY.AccessControlConditionDecryption:
+ return {
+ recapNamespace: constants_1.LIT_NAMESPACE.Threshold,
+ recapAbility: constants_1.LIT_RECAP_ABILITY.Decryption
+ };
+ case constants_1.LIT_ABILITY.AccessControlConditionSigning:
+ return {
+ recapNamespace: constants_1.LIT_NAMESPACE.Threshold,
+ recapAbility: constants_1.LIT_RECAP_ABILITY.Signing
+ };
+ case constants_1.LIT_ABILITY.PKPSigning:
+ return {
+ recapNamespace: constants_1.LIT_NAMESPACE.Threshold,
+ recapAbility: constants_1.LIT_RECAP_ABILITY.Signing
+ };
+ case constants_1.LIT_ABILITY.RateLimitIncreaseAuth:
+ return {
+ recapNamespace: constants_1.LIT_NAMESPACE.Auth,
+ recapAbility: constants_1.LIT_RECAP_ABILITY.Auth
+ };
+ case constants_1.LIT_ABILITY.LitActionExecution:
+ return {
+ recapNamespace: constants_1.LIT_NAMESPACE.Threshold,
+ recapAbility: constants_1.LIT_RECAP_ABILITY.Execution
+ };
+ default:
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ litAbility
+ }
+ }, `Unknown LitAbility`);
+ }
+ }
+ }
+});
+
+// node_modules/@lit-protocol/auth-helpers/src/lib/siwe/siwe-helper.js
+var require_siwe_helper = __commonJS({
+ "node_modules/@lit-protocol/auth-helpers/src/lib/siwe/siwe-helper.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.addRecapToSiweMessage = exports2.createCapacityCreditsResourceData = void 0;
+ exports2.sanitizeSiweMessage = sanitizeSiweMessage;
+ function sanitizeSiweMessage(message) {
+ let sanitizedMessage = message.replace(/\\\\n/g, "\\n");
+ sanitizedMessage = sanitizedMessage.replace(/\\"/g, "'");
+ return sanitizedMessage;
+ }
+ var createCapacityCreditsResourceData = (params) => {
+ return {
+ ...params.capacityTokenId ? { nft_id: [params.capacityTokenId] } : {},
+ // Conditionally include nft_id
+ ...params.delegateeAddresses ? {
+ delegate_to: params.delegateeAddresses.map((address) => address.startsWith("0x") ? address.slice(2) : address)
+ } : {},
+ ...params.uses !== void 0 ? { uses: params.uses.toString() } : {}
+ };
+ };
+ exports2.createCapacityCreditsResourceData = createCapacityCreditsResourceData;
+ var addRecapToSiweMessage = async ({ siweMessage, resources, litNodeClient }) => {
+ if (!resources || resources.length < 1) {
+ throw new Error("resources is required");
+ }
+ if (!litNodeClient) {
+ throw new Error("litNodeClient is required");
+ }
+ for (const request of resources) {
+ const recapObject = await litNodeClient.generateSessionCapabilityObjectWithWildcards([
+ request.resource
+ ]);
+ recapObject.addCapabilityForResource(request.resource, request.ability, request.data || null);
+ const verified = recapObject.verifyCapabilitiesForResource(request.resource, request.ability);
+ if (!verified) {
+ throw new Error(`Failed to verify capabilities for resource: "${request.resource}" and ability: "${request.ability}`);
+ }
+ siweMessage = recapObject.addToSiweMessage(siweMessage);
+ }
+ return siweMessage;
+ };
+ exports2.addRecapToSiweMessage = addRecapToSiweMessage;
+ }
+});
+
+// node_modules/@lit-protocol/auth-helpers/src/lib/recap/recap-session-capability-object.js
+var require_recap_session_capability_object = __commonJS({
+ "node_modules/@lit-protocol/auth-helpers/src/lib/recap/recap-session-capability-object.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.RecapSessionCapabilityObject = void 0;
+ var tslib_1 = (init_tslib_es62(), __toCommonJS(tslib_es6_exports2));
+ var constants_1 = require_src2();
+ var depd_1 = tslib_1.__importDefault(require_depd());
+ var siwe_recap_1 = require_dist3();
+ var utils_1 = require_utils13();
+ var siwe_helper_1 = require_siwe_helper();
+ var deprecated = (0, depd_1.default)("lit-js-sdk:auth-recap:session-capability-object");
+ var RecapSessionCapabilityObject = class {
+ constructor(att = {}, prf = []) {
+ this._inner = new siwe_recap_1.Recap(att, prf);
+ }
+ static decode(encoded) {
+ const recap = siwe_recap_1.Recap.decode_urn(encoded);
+ return new this(recap.attenuations, recap.proofs.map((cid) => cid.toString()));
+ }
+ static extract(siwe) {
+ const recap = siwe_recap_1.Recap.extract_and_verify(siwe);
+ return new this(recap.attenuations, recap.proofs.map((cid) => cid.toString()));
+ }
+ get attenuations() {
+ return this._inner.attenuations;
+ }
+ get proofs() {
+ return this._inner.proofs.map((cid) => cid.toString());
+ }
+ get statement() {
+ return (0, siwe_helper_1.sanitizeSiweMessage)(this._inner.statement);
+ }
+ addProof(proof) {
+ return this._inner.addProof(proof);
+ }
+ addAttenuation(resource, namespace = "*", name = "*", restriction = {}) {
+ return this._inner.addAttenuation(resource, namespace, name, restriction);
+ }
+ addToSiweMessage(siwe) {
+ return this._inner.add_to_siwe_message(siwe);
+ }
+ encodeAsSiweResource() {
+ return this._inner.encode();
+ }
+ /** LIT specific methods */
+ addCapabilityForResource(litResource, ability, data = {}) {
+ if (!litResource.isValidLitAbility(ability)) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ litResource,
+ ability
+ }
+ }, `The specified Lit resource does not support the specified ability.`);
+ }
+ const { recapNamespace, recapAbility } = (0, utils_1.getRecapNamespaceAndAbility)(ability);
+ if (!data) {
+ return this.addAttenuation(litResource.getResourceKey(), recapNamespace, recapAbility);
+ }
+ return this.addAttenuation(litResource.getResourceKey(), recapNamespace, recapAbility, data);
+ }
+ verifyCapabilitiesForResource(litResource, ability) {
+ if (!litResource.isValidLitAbility(ability)) {
+ return false;
+ }
+ const attenuations = this.attenuations;
+ const { recapNamespace, recapAbility } = (0, utils_1.getRecapNamespaceAndAbility)(ability);
+ const recapAbilityToCheckFor = `${recapNamespace}/${recapAbility}`;
+ const attenuatedResourceKey = this._getResourceKeyToMatchAgainst(litResource);
+ if (!attenuations[attenuatedResourceKey]) {
+ return false;
+ }
+ const attenuatedRecapAbilities = Object.keys(attenuations[attenuatedResourceKey]);
+ for (const attenuatedRecapAbility of attenuatedRecapAbilities) {
+ if (attenuatedRecapAbility === "*/*") {
+ return true;
+ }
+ if (attenuatedRecapAbility === recapAbilityToCheckFor) {
+ return true;
+ }
+ }
+ return false;
+ }
+ /**
+ * Returns the attenuated resource key to match against. This supports matching
+ * against a wildcard resource key too.
+ *
+ * @example If the attenuations object contains the following:
+ *
+ * ```
+ * {
+ * 'lit-acc://*': {
+ * '*\/*': {}
+ * }
+ * }
+ * ```
+ *
+ * Then, if the provided litResource is 'lit-acc://123', the method will return 'lit-acc://*'.
+ */
+ _getResourceKeyToMatchAgainst(litResource) {
+ const attenuatedResourceKeysToMatchAgainst = [
+ `${litResource.resourcePrefix}://*`,
+ litResource.getResourceKey()
+ ];
+ for (const attenuatedResourceKeyToMatchAgainst of attenuatedResourceKeysToMatchAgainst) {
+ if (this.attenuations[attenuatedResourceKeyToMatchAgainst]) {
+ return attenuatedResourceKeyToMatchAgainst;
+ }
+ }
+ return "";
+ }
+ addAllCapabilitiesForResource(litResource) {
+ return this.addAttenuation(litResource.getResourceKey(), "*", "*");
+ }
+ };
+ exports2.RecapSessionCapabilityObject = RecapSessionCapabilityObject;
+ }
+});
+
+// node_modules/@lit-protocol/auth-helpers/src/lib/session-capability-object.js
+var require_session_capability_object = __commonJS({
+ "node_modules/@lit-protocol/auth-helpers/src/lib/session-capability-object.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.newSessionCapabilityObject = newSessionCapabilityObject;
+ exports2.decode = decode;
+ exports2.extract = extract;
+ var recap_session_capability_object_1 = require_recap_session_capability_object();
+ function newSessionCapabilityObject(attenuations = {}, proof = []) {
+ return new recap_session_capability_object_1.RecapSessionCapabilityObject(attenuations, proof);
+ }
+ function decode(encoded) {
+ return recap_session_capability_object_1.RecapSessionCapabilityObject.decode(encoded);
+ }
+ function extract(siwe) {
+ return recap_session_capability_object_1.RecapSessionCapabilityObject.extract(siwe);
+ }
+ }
+});
+
+// node_modules/@lit-protocol/access-control-conditions/node_modules/tslib/tslib.es6.js
+var tslib_es6_exports4 = {};
+__export(tslib_es6_exports4, {
+ __assign: () => __assign4,
+ __asyncDelegator: () => __asyncDelegator4,
+ __asyncGenerator: () => __asyncGenerator4,
+ __asyncValues: () => __asyncValues4,
+ __await: () => __await4,
+ __awaiter: () => __awaiter4,
+ __classPrivateFieldGet: () => __classPrivateFieldGet4,
+ __classPrivateFieldSet: () => __classPrivateFieldSet4,
+ __createBinding: () => __createBinding4,
+ __decorate: () => __decorate4,
+ __exportStar: () => __exportStar4,
+ __extends: () => __extends4,
+ __generator: () => __generator4,
+ __importDefault: () => __importDefault4,
+ __importStar: () => __importStar4,
+ __makeTemplateObject: () => __makeTemplateObject4,
+ __metadata: () => __metadata4,
+ __param: () => __param4,
+ __read: () => __read4,
+ __rest: () => __rest4,
+ __spread: () => __spread4,
+ __spreadArrays: () => __spreadArrays4,
+ __values: () => __values4
+});
+function __extends4(d, b) {
+ extendStatics4(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+function __rest4(s, e) {
+ var t = {};
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+}
+function __decorate4(decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ r = Reflect.decorate(decorators, target, key, desc);
+ else
+ for (var i = decorators.length - 1; i >= 0; i--)
+ if (d = decorators[i])
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+function __param4(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+}
+function __metadata4(metadataKey, metadataValue) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(metadataKey, metadataValue);
+}
+function __awaiter4(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+}
+function __generator4(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+}
+function __createBinding4(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+}
+function __exportStar4(m, exports2) {
+ for (var p in m)
+ if (p !== "default" && !exports2.hasOwnProperty(p))
+ exports2[p] = m[p];
+}
+function __values4(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m)
+ return m.call(o);
+ if (o && typeof o.length === "number")
+ return {
+ next: function() {
+ if (o && i >= o.length)
+ o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+}
+function __read4(o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m)
+ return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
+ ar.push(r.value);
+ } catch (error) {
+ e = { error };
+ } finally {
+ try {
+ if (r && !r.done && (m = i["return"]))
+ m.call(i);
+ } finally {
+ if (e)
+ throw e.error;
+ }
+ }
+ return ar;
+}
+function __spread4() {
+ for (var ar = [], i = 0; i < arguments.length; i++)
+ ar = ar.concat(__read4(arguments[i]));
+ return ar;
+}
+function __spreadArrays4() {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
+ s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+}
+function __await4(v) {
+ return this instanceof __await4 ? (this.v = v, this) : new __await4(v);
+}
+function __asyncGenerator4(thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i;
+ function verb(n) {
+ if (g[n])
+ i[n] = function(v) {
+ return new Promise(function(a, b) {
+ q.push([n, v, a, b]) > 1 || resume(n, v);
+ });
+ };
+ }
+ function resume(n, v) {
+ try {
+ step(g[n](v));
+ } catch (e) {
+ settle(q[0][3], e);
+ }
+ }
+ function step(r) {
+ r.value instanceof __await4 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
+ }
+ function fulfill(value) {
+ resume("next", value);
+ }
+ function reject(value) {
+ resume("throw", value);
+ }
+ function settle(f, v) {
+ if (f(v), q.shift(), q.length)
+ resume(q[0][0], q[0][1]);
+ }
+}
+function __asyncDelegator4(o) {
+ var i, p;
+ return i = {}, verb("next"), verb("throw", function(e) {
+ throw e;
+ }), verb("return"), i[Symbol.iterator] = function() {
+ return this;
+ }, i;
+ function verb(n, f) {
+ i[n] = o[n] ? function(v) {
+ return (p = !p) ? { value: __await4(o[n](v)), done: n === "return" } : f ? f(v) : v;
+ } : f;
+ }
+}
+function __asyncValues4(o) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator], i;
+ return m ? m.call(o) : (o = typeof __values4 === "function" ? __values4(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i);
+ function verb(n) {
+ i[n] = o[n] && function(v) {
+ return new Promise(function(resolve, reject) {
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
+ });
+ };
+ }
+ function settle(resolve, reject, d, v) {
+ Promise.resolve(v).then(function(v2) {
+ resolve({ value: v2, done: d });
+ }, reject);
+ }
+}
+function __makeTemplateObject4(cooked, raw) {
+ if (Object.defineProperty) {
+ Object.defineProperty(cooked, "raw", { value: raw });
+ } else {
+ cooked.raw = raw;
+ }
+ return cooked;
+}
+function __importStar4(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (Object.hasOwnProperty.call(mod, k))
+ result[k] = mod[k];
+ }
+ result.default = mod;
+ return result;
+}
+function __importDefault4(mod) {
+ return mod && mod.__esModule ? mod : { default: mod };
+}
+function __classPrivateFieldGet4(receiver, privateMap) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to get private field on non-instance");
+ }
+ return privateMap.get(receiver);
+}
+function __classPrivateFieldSet4(receiver, privateMap, value) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to set private field on non-instance");
+ }
+ privateMap.set(receiver, value);
+ return value;
+}
+var extendStatics4, __assign4;
+var init_tslib_es64 = __esm({
+ "node_modules/@lit-protocol/access-control-conditions/node_modules/tslib/tslib.es6.js"() {
+ extendStatics4 = function(d, b) {
+ extendStatics4 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (b2.hasOwnProperty(p))
+ d2[p] = b2[p];
+ };
+ return extendStatics4(d, b);
+ };
+ __assign4 = function() {
+ __assign4 = Object.assign || function __assign13(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign4.apply(this, arguments);
+ };
+ }
+});
+
+// node_modules/@lit-protocol/access-control-conditions/src/lib/canonicalFormatter.js
+var require_canonicalFormatter = __commonJS({
+ "node_modules/@lit-protocol/access-control-conditions/src/lib/canonicalFormatter.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.canonicalResourceIdFormatter = exports2.canonicalCosmosConditionFormatter = exports2.canonicalEVMContractConditionFormatter = exports2.canonicalAccessControlConditionFormatter = exports2.canonicalSolRpcConditionFormatter = exports2.canonicalUnifiedAccessControlConditionFormatter = void 0;
+ var constants_1 = require_src2();
+ var getOperatorParam = (cond) => {
+ const _cond = cond;
+ return {
+ operator: _cond.operator
+ };
+ };
+ var canonicalAbiParamss = (params) => {
+ return params.map((param) => ({
+ name: param.name,
+ type: param.type
+ }));
+ };
+ var canonicalUnifiedAccessControlConditionFormatter = (cond) => {
+ if (Array.isArray(cond)) {
+ return cond.map((c) => (0, exports2.canonicalUnifiedAccessControlConditionFormatter)(c));
+ }
+ if ("operator" in cond) {
+ return getOperatorParam(cond);
+ }
+ if ("returnValueTest" in cond) {
+ const _cond = cond;
+ const _conditionType = _cond.conditionType;
+ switch (_conditionType) {
+ case "solRpc":
+ return (0, exports2.canonicalSolRpcConditionFormatter)(cond, true);
+ case "evmBasic":
+ return (0, exports2.canonicalAccessControlConditionFormatter)(cond);
+ case "evmContract":
+ return (0, exports2.canonicalEVMContractConditionFormatter)(cond);
+ case "cosmos":
+ return (0, exports2.canonicalCosmosConditionFormatter)(cond);
+ default:
+ throw new constants_1.InvalidAccessControlConditions({
+ info: {
+ cond
+ }
+ }, 'You passed an invalid access control condition that is missing or has a wrong "conditionType"');
+ }
+ }
+ throw new constants_1.InvalidAccessControlConditions({
+ info: {
+ cond
+ }
+ }, "You passed an invalid access control condition");
+ };
+ exports2.canonicalUnifiedAccessControlConditionFormatter = canonicalUnifiedAccessControlConditionFormatter;
+ var canonicalSolRpcConditionFormatter = (cond, requireV2Conditions = false) => {
+ if (Array.isArray(cond)) {
+ return cond.map((c) => (0, exports2.canonicalSolRpcConditionFormatter)(c, requireV2Conditions));
+ }
+ if ("operator" in cond) {
+ return getOperatorParam(cond);
+ }
+ if ("returnValueTest" in cond) {
+ const { returnValueTest } = cond;
+ const canonicalReturnValueTest = {
+ // @ts-ignore
+ key: returnValueTest.key,
+ comparator: returnValueTest.comparator,
+ value: returnValueTest.value
+ };
+ if ("pdaParams" in cond || requireV2Conditions) {
+ const _assumedV2Cond = cond;
+ if (!("pdaInterface" in _assumedV2Cond) || !("pdaKey" in _assumedV2Cond) || !("offset" in _assumedV2Cond.pdaInterface) || !("fields" in _assumedV2Cond.pdaInterface)) {
+ throw new constants_1.InvalidAccessControlConditions({
+ info: {
+ cond
+ }
+ }, "Solana RPC Conditions have changed and there are some new fields you must include in your condition. Check the docs here: https://developer.litprotocol.com/AccessControlConditions/solRpcConditions");
+ }
+ const canonicalPdaInterface = {
+ offset: _assumedV2Cond.pdaInterface.offset,
+ fields: _assumedV2Cond.pdaInterface.fields
+ };
+ const _solV2Cond = cond;
+ const _requiredParams = {
+ method: _solV2Cond.method,
+ params: _solV2Cond.params,
+ pdaParams: _solV2Cond.pdaParams,
+ pdaInterface: canonicalPdaInterface,
+ pdaKey: _solV2Cond.pdaKey,
+ chain: _solV2Cond.chain,
+ returnValueTest: canonicalReturnValueTest
+ };
+ return _requiredParams;
+ } else {
+ const _solV1Cond = cond;
+ const _requiredParams = {
+ // @ts-ignore
+ method: _solV1Cond.method,
+ // @ts-ignore
+ params: _solV1Cond.params,
+ chain: _solV1Cond.chain,
+ returnValueTest: canonicalReturnValueTest
+ };
+ return _requiredParams;
+ }
+ }
+ throw new constants_1.InvalidAccessControlConditions({
+ info: {
+ cond
+ }
+ }, "You passed an invalid access control condition");
+ };
+ exports2.canonicalSolRpcConditionFormatter = canonicalSolRpcConditionFormatter;
+ var canonicalAccessControlConditionFormatter = (cond) => {
+ if (Array.isArray(cond)) {
+ return cond.map((c) => (0, exports2.canonicalAccessControlConditionFormatter)(c));
+ }
+ if ("operator" in cond) {
+ return getOperatorParam(cond);
+ }
+ if ("returnValueTest" in cond) {
+ const _cond = cond;
+ const _return = {
+ contractAddress: _cond.contractAddress,
+ chain: _cond.chain,
+ standardContractType: _cond.standardContractType,
+ method: _cond.method,
+ parameters: _cond.parameters,
+ returnValueTest: {
+ comparator: _cond.returnValueTest.comparator,
+ value: _cond.returnValueTest.value
+ }
+ };
+ return _return;
+ }
+ throw new constants_1.InvalidAccessControlConditions({
+ info: {
+ cond
+ }
+ }, "You passed an invalid access control condition");
+ };
+ exports2.canonicalAccessControlConditionFormatter = canonicalAccessControlConditionFormatter;
+ var canonicalEVMContractConditionFormatter = (cond) => {
+ if (Array.isArray(cond)) {
+ return cond.map((c) => (0, exports2.canonicalEVMContractConditionFormatter)(c));
+ }
+ if ("operator" in cond) {
+ const _cond = cond;
+ return {
+ operator: _cond.operator
+ };
+ }
+ if ("returnValueTest" in cond) {
+ const evmCond = cond;
+ const { functionAbi, returnValueTest } = evmCond;
+ const canonicalAbi = {
+ name: functionAbi.name,
+ inputs: canonicalAbiParamss(functionAbi.inputs),
+ outputs: canonicalAbiParamss(functionAbi.outputs),
+ constant: typeof functionAbi.constant === "undefined" ? false : functionAbi.constant,
+ stateMutability: functionAbi.stateMutability
+ };
+ const canonicalReturnValueTest = {
+ key: returnValueTest.key,
+ comparator: returnValueTest.comparator,
+ value: returnValueTest.value
+ };
+ const _return = {
+ contractAddress: evmCond.contractAddress,
+ functionName: evmCond.functionName,
+ functionParams: evmCond.functionParams,
+ functionAbi: canonicalAbi,
+ chain: evmCond.chain,
+ returnValueTest: canonicalReturnValueTest
+ };
+ return _return;
+ }
+ throw new constants_1.InvalidAccessControlConditions({
+ info: {
+ cond
+ }
+ }, "You passed an invalid access control condition");
+ };
+ exports2.canonicalEVMContractConditionFormatter = canonicalEVMContractConditionFormatter;
+ var canonicalCosmosConditionFormatter = (cond) => {
+ if (Array.isArray(cond)) {
+ return cond.map((c) => (0, exports2.canonicalCosmosConditionFormatter)(c));
+ }
+ if ("operator" in cond) {
+ const _cond = cond;
+ return {
+ operator: _cond.operator
+ };
+ }
+ if ("returnValueTest" in cond) {
+ const _cosmosCond = cond;
+ const { returnValueTest } = _cosmosCond;
+ const canonicalReturnValueTest = {
+ key: returnValueTest.key,
+ comparator: returnValueTest.comparator,
+ value: returnValueTest.value
+ };
+ return {
+ path: _cosmosCond.path,
+ chain: _cosmosCond.chain,
+ method: _cosmosCond?.method,
+ parameters: _cosmosCond?.parameters,
+ returnValueTest: canonicalReturnValueTest
+ };
+ }
+ throw new constants_1.InvalidAccessControlConditions({
+ info: {
+ cond
+ }
+ }, "You passed an invalid access control condition");
+ };
+ exports2.canonicalCosmosConditionFormatter = canonicalCosmosConditionFormatter;
+ var canonicalResourceIdFormatter = (resId) => {
+ return {
+ baseUrl: resId.baseUrl,
+ path: resId.path,
+ orgId: resId.orgId,
+ role: resId.role,
+ extraData: resId.extraData
+ };
+ };
+ exports2.canonicalResourceIdFormatter = canonicalResourceIdFormatter;
+ }
+});
+
+// node_modules/@lit-protocol/misc/node_modules/tslib/tslib.es6.js
+var tslib_es6_exports5 = {};
+__export(tslib_es6_exports5, {
+ __assign: () => __assign5,
+ __asyncDelegator: () => __asyncDelegator5,
+ __asyncGenerator: () => __asyncGenerator5,
+ __asyncValues: () => __asyncValues5,
+ __await: () => __await5,
+ __awaiter: () => __awaiter5,
+ __classPrivateFieldGet: () => __classPrivateFieldGet5,
+ __classPrivateFieldSet: () => __classPrivateFieldSet5,
+ __createBinding: () => __createBinding5,
+ __decorate: () => __decorate5,
+ __exportStar: () => __exportStar5,
+ __extends: () => __extends5,
+ __generator: () => __generator5,
+ __importDefault: () => __importDefault5,
+ __importStar: () => __importStar5,
+ __makeTemplateObject: () => __makeTemplateObject5,
+ __metadata: () => __metadata5,
+ __param: () => __param5,
+ __read: () => __read5,
+ __rest: () => __rest5,
+ __spread: () => __spread5,
+ __spreadArrays: () => __spreadArrays5,
+ __values: () => __values5
+});
+function __extends5(d, b) {
+ extendStatics5(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+function __rest5(s, e) {
+ var t = {};
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+}
+function __decorate5(decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ r = Reflect.decorate(decorators, target, key, desc);
+ else
+ for (var i = decorators.length - 1; i >= 0; i--)
+ if (d = decorators[i])
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+function __param5(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+}
+function __metadata5(metadataKey, metadataValue) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(metadataKey, metadataValue);
+}
+function __awaiter5(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+}
+function __generator5(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+}
+function __createBinding5(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+}
+function __exportStar5(m, exports2) {
+ for (var p in m)
+ if (p !== "default" && !exports2.hasOwnProperty(p))
+ exports2[p] = m[p];
+}
+function __values5(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m)
+ return m.call(o);
+ if (o && typeof o.length === "number")
+ return {
+ next: function() {
+ if (o && i >= o.length)
+ o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+}
+function __read5(o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m)
+ return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
+ ar.push(r.value);
+ } catch (error) {
+ e = { error };
+ } finally {
+ try {
+ if (r && !r.done && (m = i["return"]))
+ m.call(i);
+ } finally {
+ if (e)
+ throw e.error;
+ }
+ }
+ return ar;
+}
+function __spread5() {
+ for (var ar = [], i = 0; i < arguments.length; i++)
+ ar = ar.concat(__read5(arguments[i]));
+ return ar;
+}
+function __spreadArrays5() {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
+ s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+}
+function __await5(v) {
+ return this instanceof __await5 ? (this.v = v, this) : new __await5(v);
+}
+function __asyncGenerator5(thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i;
+ function verb(n) {
+ if (g[n])
+ i[n] = function(v) {
+ return new Promise(function(a, b) {
+ q.push([n, v, a, b]) > 1 || resume(n, v);
+ });
+ };
+ }
+ function resume(n, v) {
+ try {
+ step(g[n](v));
+ } catch (e) {
+ settle(q[0][3], e);
+ }
+ }
+ function step(r) {
+ r.value instanceof __await5 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
+ }
+ function fulfill(value) {
+ resume("next", value);
+ }
+ function reject(value) {
+ resume("throw", value);
+ }
+ function settle(f, v) {
+ if (f(v), q.shift(), q.length)
+ resume(q[0][0], q[0][1]);
+ }
+}
+function __asyncDelegator5(o) {
+ var i, p;
+ return i = {}, verb("next"), verb("throw", function(e) {
+ throw e;
+ }), verb("return"), i[Symbol.iterator] = function() {
+ return this;
+ }, i;
+ function verb(n, f) {
+ i[n] = o[n] ? function(v) {
+ return (p = !p) ? { value: __await5(o[n](v)), done: n === "return" } : f ? f(v) : v;
+ } : f;
+ }
+}
+function __asyncValues5(o) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator], i;
+ return m ? m.call(o) : (o = typeof __values5 === "function" ? __values5(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i);
+ function verb(n) {
+ i[n] = o[n] && function(v) {
+ return new Promise(function(resolve, reject) {
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
+ });
+ };
+ }
+ function settle(resolve, reject, d, v) {
+ Promise.resolve(v).then(function(v2) {
+ resolve({ value: v2, done: d });
+ }, reject);
+ }
+}
+function __makeTemplateObject5(cooked, raw) {
+ if (Object.defineProperty) {
+ Object.defineProperty(cooked, "raw", { value: raw });
+ } else {
+ cooked.raw = raw;
+ }
+ return cooked;
+}
+function __importStar5(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (Object.hasOwnProperty.call(mod, k))
+ result[k] = mod[k];
+ }
+ result.default = mod;
+ return result;
+}
+function __importDefault5(mod) {
+ return mod && mod.__esModule ? mod : { default: mod };
+}
+function __classPrivateFieldGet5(receiver, privateMap) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to get private field on non-instance");
+ }
+ return privateMap.get(receiver);
+}
+function __classPrivateFieldSet5(receiver, privateMap, value) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to set private field on non-instance");
+ }
+ privateMap.set(receiver, value);
+ return value;
+}
+var extendStatics5, __assign5;
+var init_tslib_es65 = __esm({
+ "node_modules/@lit-protocol/misc/node_modules/tslib/tslib.es6.js"() {
+ extendStatics5 = function(d, b) {
+ extendStatics5 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (b2.hasOwnProperty(p))
+ d2[p] = b2[p];
+ };
+ return extendStatics5(d, b);
+ };
+ __assign5 = function() {
+ __assign5 = Object.assign || function __assign13(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign5.apply(this, arguments);
+ };
+ }
+});
+
+// node_modules/@lit-protocol/misc/node_modules/bech32/dist/index.js
+var require_dist4 = __commonJS({
+ "node_modules/@lit-protocol/misc/node_modules/bech32/dist/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.bech32m = exports2.bech32 = void 0;
+ var ALPHABET = "qpzry9x8gf2tvdw0s3jn54khce6mua7l";
+ var ALPHABET_MAP = {};
+ for (let z = 0; z < ALPHABET.length; z++) {
+ const x = ALPHABET.charAt(z);
+ ALPHABET_MAP[x] = z;
+ }
+ function polymodStep(pre) {
+ const b = pre >> 25;
+ return (pre & 33554431) << 5 ^ -(b >> 0 & 1) & 996825010 ^ -(b >> 1 & 1) & 642813549 ^ -(b >> 2 & 1) & 513874426 ^ -(b >> 3 & 1) & 1027748829 ^ -(b >> 4 & 1) & 705979059;
+ }
+ function prefixChk(prefix) {
+ let chk = 1;
+ for (let i = 0; i < prefix.length; ++i) {
+ const c = prefix.charCodeAt(i);
+ if (c < 33 || c > 126)
+ return "Invalid prefix (" + prefix + ")";
+ chk = polymodStep(chk) ^ c >> 5;
+ }
+ chk = polymodStep(chk);
+ for (let i = 0; i < prefix.length; ++i) {
+ const v = prefix.charCodeAt(i);
+ chk = polymodStep(chk) ^ v & 31;
+ }
+ return chk;
+ }
+ function convert(data, inBits, outBits, pad) {
+ let value = 0;
+ let bits = 0;
+ const maxV = (1 << outBits) - 1;
+ const result = [];
+ for (let i = 0; i < data.length; ++i) {
+ value = value << inBits | data[i];
+ bits += inBits;
+ while (bits >= outBits) {
+ bits -= outBits;
+ result.push(value >> bits & maxV);
+ }
+ }
+ if (pad) {
+ if (bits > 0) {
+ result.push(value << outBits - bits & maxV);
+ }
+ } else {
+ if (bits >= inBits)
+ return "Excess padding";
+ if (value << outBits - bits & maxV)
+ return "Non-zero padding";
+ }
+ return result;
+ }
+ function toWords(bytes) {
+ return convert(bytes, 8, 5, true);
+ }
+ function fromWordsUnsafe(words) {
+ const res = convert(words, 5, 8, false);
+ if (Array.isArray(res))
+ return res;
+ }
+ function fromWords(words) {
+ const res = convert(words, 5, 8, false);
+ if (Array.isArray(res))
+ return res;
+ throw new Error(res);
+ }
+ function getLibraryFromEncoding(encoding) {
+ let ENCODING_CONST;
+ if (encoding === "bech32") {
+ ENCODING_CONST = 1;
+ } else {
+ ENCODING_CONST = 734539939;
+ }
+ function encode(prefix, words, LIMIT) {
+ LIMIT = LIMIT || 90;
+ if (prefix.length + 7 + words.length > LIMIT)
+ throw new TypeError("Exceeds length limit");
+ prefix = prefix.toLowerCase();
+ let chk = prefixChk(prefix);
+ if (typeof chk === "string")
+ throw new Error(chk);
+ let result = prefix + "1";
+ for (let i = 0; i < words.length; ++i) {
+ const x = words[i];
+ if (x >> 5 !== 0)
+ throw new Error("Non 5-bit word");
+ chk = polymodStep(chk) ^ x;
+ result += ALPHABET.charAt(x);
+ }
+ for (let i = 0; i < 6; ++i) {
+ chk = polymodStep(chk);
+ }
+ chk ^= ENCODING_CONST;
+ for (let i = 0; i < 6; ++i) {
+ const v = chk >> (5 - i) * 5 & 31;
+ result += ALPHABET.charAt(v);
+ }
+ return result;
+ }
+ function __decode(str, LIMIT) {
+ LIMIT = LIMIT || 90;
+ if (str.length < 8)
+ return str + " too short";
+ if (str.length > LIMIT)
+ return "Exceeds length limit";
+ const lowered = str.toLowerCase();
+ const uppered = str.toUpperCase();
+ if (str !== lowered && str !== uppered)
+ return "Mixed-case string " + str;
+ str = lowered;
+ const split = str.lastIndexOf("1");
+ if (split === -1)
+ return "No separator character for " + str;
+ if (split === 0)
+ return "Missing prefix for " + str;
+ const prefix = str.slice(0, split);
+ const wordChars = str.slice(split + 1);
+ if (wordChars.length < 6)
+ return "Data too short";
+ let chk = prefixChk(prefix);
+ if (typeof chk === "string")
+ return chk;
+ const words = [];
+ for (let i = 0; i < wordChars.length; ++i) {
+ const c = wordChars.charAt(i);
+ const v = ALPHABET_MAP[c];
+ if (v === void 0)
+ return "Unknown character " + c;
+ chk = polymodStep(chk) ^ v;
+ if (i + 6 >= wordChars.length)
+ continue;
+ words.push(v);
+ }
+ if (chk !== ENCODING_CONST)
+ return "Invalid checksum for " + str;
+ return { prefix, words };
+ }
+ function decodeUnsafe(str, LIMIT) {
+ const res = __decode(str, LIMIT);
+ if (typeof res === "object")
+ return res;
+ }
+ function decode(str, LIMIT) {
+ const res = __decode(str, LIMIT);
+ if (typeof res === "object")
+ return res;
+ throw new Error(res);
+ }
+ return {
+ decodeUnsafe,
+ decode,
+ encode,
+ toWords,
+ fromWordsUnsafe,
+ fromWords
+ };
+ }
+ exports2.bech32 = getLibraryFromEncoding("bech32");
+ exports2.bech32m = getLibraryFromEncoding("bech32m");
+ }
+});
+
+// node_modules/@lit-protocol/misc/src/lib/addresses.js
+var require_addresses2 = __commonJS({
+ "node_modules/@lit-protocol/misc/src/lib/addresses.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.derivedAddresses = void 0;
+ exports2.publicKeyConvert = publicKeyConvert;
+ var constants_1 = require_src2();
+ var bech32_1 = require_dist4();
+ var crypto_1 = require("crypto");
+ var ethers_1 = require_lib36();
+ var utils_1 = require_utils8();
+ function publicKeyConvert(publicKey, compressed = true) {
+ if (compressed) {
+ if (publicKey.length === 65 && publicKey[0] === 4) {
+ const x = publicKey.subarray(1, 33);
+ const y = publicKey.subarray(33, 65);
+ const prefix = y[y.length - 1] % 2 === 0 ? 2 : 3;
+ return Buffer.concat([Buffer.from([prefix]), x]);
+ }
+ } else {
+ if (publicKey.length === 33 && (publicKey[0] === 2 || publicKey[0] === 3)) {
+ const x = publicKey.subarray(1);
+ const y = decompressY(publicKey[0], x);
+ return Buffer.concat([Buffer.from([4]), x, y]);
+ }
+ }
+ return publicKey;
+ }
+ function decompressY(prefix, x) {
+ const p = BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F");
+ const a = BigInt("0");
+ const b = BigInt("7");
+ const xBigInt = BigInt("0x" + x.toString("hex"));
+ const rhs = (xBigInt ** 3n + a * xBigInt + b) % p;
+ const yBigInt = modSqrt(rhs, p);
+ const isEven = yBigInt % 2n === 0n;
+ const y = isEven === (prefix === 2) ? yBigInt : p - yBigInt;
+ return Buffer.from(y.toString(16).padStart(64, "0"), "hex");
+ }
+ function modSqrt(a, p) {
+ return a ** ((p + 1n) / 4n) % p;
+ }
+ function deriveBitcoinAddress(ethPubKey) {
+ if (ethPubKey.startsWith("0x")) {
+ ethPubKey = ethPubKey.slice(2);
+ }
+ const pubkeyBuffer = Buffer.from(ethPubKey, "hex");
+ const sha256Hash = (0, crypto_1.createHash)("sha256").update(pubkeyBuffer).digest();
+ const ripemd160Hash = (0, crypto_1.createHash)("ripemd160").update(sha256Hash).digest();
+ const versionedPayload = Buffer.concat([Buffer.from([0]), ripemd160Hash]);
+ const checksum = (0, crypto_1.createHash)("sha256").update((0, crypto_1.createHash)("sha256").update(versionedPayload).digest()).digest().subarray(0, 4);
+ const binaryBitcoinAddress = Buffer.concat([versionedPayload, checksum]);
+ return ethers_1.ethers.utils.base58.encode(binaryBitcoinAddress);
+ }
+ function deriveCosmosAddress(ethPubKey, prefix = "cosmos") {
+ let pubKeyBuffer = Buffer.from(ethPubKey, "hex");
+ if (pubKeyBuffer.length === 65 && pubKeyBuffer[0] === 4) {
+ pubKeyBuffer = Buffer.from(publicKeyConvert(pubKeyBuffer, true));
+ }
+ const sha256Hash = (0, crypto_1.createHash)("sha256").update(pubKeyBuffer).digest();
+ const ripemd160Hash = (0, crypto_1.createHash)("ripemd160").update(sha256Hash).digest();
+ return bech32_1.bech32.encode(prefix, bech32_1.bech32.toWords(ripemd160Hash));
+ }
+ var derivedAddresses = async ({ publicKey, pkpTokenId, pkpContractAddress, defaultRPCUrl, options = {
+ cacheContractCall: false
+ } }) => {
+ if (!publicKey && !pkpTokenId) {
+ throw new constants_1.ParamsMissingError({
+ info: {
+ publicKey,
+ pkpTokenId
+ }
+ }, "publicKey or pkpTokenId must be provided");
+ }
+ let isNewPKP = false;
+ if (pkpTokenId) {
+ const CACHE_KEY = "lit-cached-pkps";
+ let cachedPkpJSON;
+ try {
+ const cachedPkp = localStorage.getItem(CACHE_KEY);
+ if (cachedPkp) {
+ cachedPkpJSON = JSON.parse(cachedPkp);
+ publicKey = cachedPkpJSON[pkpTokenId];
+ }
+ } catch (e) {
+ console.error(e);
+ }
+ if (!publicKey) {
+ if (!defaultRPCUrl || !pkpContractAddress) {
+ throw new constants_1.NoWalletException({
+ info: {
+ publicKey,
+ pkpTokenId,
+ pkpContractAddress,
+ defaultRPCUrl
+ }
+ }, "defaultRPCUrl or pkpContractAddress was not provided");
+ }
+ const provider = new ethers_1.ethers.providers.StaticJsonRpcProvider(defaultRPCUrl);
+ const contract = new ethers_1.Contract(pkpContractAddress, ["function getPubkey(uint256 tokenId) view returns (bytes memory)"], provider);
+ publicKey = await contract["getPubkey"](pkpTokenId);
+ isNewPKP = true;
+ }
+ if (options.cacheContractCall) {
+ try {
+ const cachedPkp = localStorage.getItem(CACHE_KEY);
+ if (cachedPkp) {
+ const cachedPkpJSON2 = JSON.parse(cachedPkp);
+ cachedPkpJSON2[pkpTokenId] = publicKey;
+ localStorage.setItem(CACHE_KEY, JSON.stringify(cachedPkpJSON2));
+ } else {
+ const cachedPkpJSON2 = {};
+ cachedPkpJSON2[pkpTokenId] = publicKey;
+ localStorage.setItem(CACHE_KEY, JSON.stringify(cachedPkpJSON2));
+ }
+ } catch (e) {
+ console.error(e);
+ }
+ }
+ }
+ if (!publicKey) {
+ throw new constants_1.NoWalletException({
+ info: {
+ publicKey,
+ pkpTokenId,
+ pkpContractAddress,
+ defaultRPCUrl
+ }
+ }, "publicKey was not provided or could not be obtained from the pkpTokenId");
+ }
+ if (publicKey.startsWith("0x")) {
+ publicKey = publicKey.slice(2);
+ }
+ const pubkeyBuffer = Buffer.from(publicKey, "hex");
+ const ethAddress = (0, utils_1.computeAddress)(pubkeyBuffer);
+ const btcAddress = deriveBitcoinAddress(publicKey);
+ const cosmosAddress = deriveCosmosAddress(publicKey);
+ if (!btcAddress || !ethAddress || !cosmosAddress) {
+ const errors = [];
+ if (!btcAddress) {
+ errors.push(new constants_1.NoWalletException({
+ info: {
+ publicKey
+ }
+ }, "btcAddress is undefined"));
+ }
+ if (!ethAddress) {
+ errors.push(new constants_1.NoWalletException({
+ info: {
+ publicKey
+ }
+ }, "ethAddress is undefined"));
+ }
+ if (!cosmosAddress) {
+ errors.push(new constants_1.NoWalletException({
+ info: {
+ publicKey
+ }
+ }, "cosmosAddress is undefined"));
+ }
+ throw new constants_1.MultiError(errors);
+ }
+ return {
+ tokenId: pkpTokenId,
+ publicKey: `0x${publicKey}`,
+ publicKeyBuffer: pubkeyBuffer,
+ ethAddress,
+ btcAddress,
+ cosmosAddress,
+ isNewPKP
+ };
+ };
+ exports2.derivedAddresses = derivedAddresses;
+ }
+});
+
+// node_modules/ajv/dist/compile/codegen/code.js
+var require_code = __commonJS({
+ "node_modules/ajv/dist/compile/codegen/code.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.regexpCode = exports2.getEsmExportName = exports2.getProperty = exports2.safeStringify = exports2.stringify = exports2.strConcat = exports2.addCodeArg = exports2.str = exports2._ = exports2.nil = exports2._Code = exports2.Name = exports2.IDENTIFIER = exports2._CodeOrName = void 0;
+ var _CodeOrName = class {
+ };
+ exports2._CodeOrName = _CodeOrName;
+ exports2.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;
+ var Name = class extends _CodeOrName {
+ constructor(s) {
+ super();
+ if (!exports2.IDENTIFIER.test(s))
+ throw new Error("CodeGen: name must be a valid identifier");
+ this.str = s;
+ }
+ toString() {
+ return this.str;
+ }
+ emptyStr() {
+ return false;
+ }
+ get names() {
+ return { [this.str]: 1 };
+ }
+ };
+ exports2.Name = Name;
+ var _Code = class extends _CodeOrName {
+ constructor(code) {
+ super();
+ this._items = typeof code === "string" ? [code] : code;
+ }
+ toString() {
+ return this.str;
+ }
+ emptyStr() {
+ if (this._items.length > 1)
+ return false;
+ const item = this._items[0];
+ return item === "" || item === '""';
+ }
+ get str() {
+ var _a;
+ return (_a = this._str) !== null && _a !== void 0 ? _a : this._str = this._items.reduce((s, c) => `${s}${c}`, "");
+ }
+ get names() {
+ var _a;
+ return (_a = this._names) !== null && _a !== void 0 ? _a : this._names = this._items.reduce((names, c) => {
+ if (c instanceof Name)
+ names[c.str] = (names[c.str] || 0) + 1;
+ return names;
+ }, {});
+ }
+ };
+ exports2._Code = _Code;
+ exports2.nil = new _Code("");
+ function _(strs, ...args) {
+ const code = [strs[0]];
+ let i = 0;
+ while (i < args.length) {
+ addCodeArg(code, args[i]);
+ code.push(strs[++i]);
+ }
+ return new _Code(code);
+ }
+ exports2._ = _;
+ var plus = new _Code("+");
+ function str(strs, ...args) {
+ const expr = [safeStringify(strs[0])];
+ let i = 0;
+ while (i < args.length) {
+ expr.push(plus);
+ addCodeArg(expr, args[i]);
+ expr.push(plus, safeStringify(strs[++i]));
+ }
+ optimize(expr);
+ return new _Code(expr);
+ }
+ exports2.str = str;
+ function addCodeArg(code, arg) {
+ if (arg instanceof _Code)
+ code.push(...arg._items);
+ else if (arg instanceof Name)
+ code.push(arg);
+ else
+ code.push(interpolate(arg));
+ }
+ exports2.addCodeArg = addCodeArg;
+ function optimize(expr) {
+ let i = 1;
+ while (i < expr.length - 1) {
+ if (expr[i] === plus) {
+ const res = mergeExprItems(expr[i - 1], expr[i + 1]);
+ if (res !== void 0) {
+ expr.splice(i - 1, 3, res);
+ continue;
+ }
+ expr[i++] = "+";
+ }
+ i++;
+ }
+ }
+ function mergeExprItems(a, b) {
+ if (b === '""')
+ return a;
+ if (a === '""')
+ return b;
+ if (typeof a == "string") {
+ if (b instanceof Name || a[a.length - 1] !== '"')
+ return;
+ if (typeof b != "string")
+ return `${a.slice(0, -1)}${b}"`;
+ if (b[0] === '"')
+ return a.slice(0, -1) + b.slice(1);
+ return;
+ }
+ if (typeof b == "string" && b[0] === '"' && !(a instanceof Name))
+ return `"${a}${b.slice(1)}`;
+ return;
+ }
+ function strConcat(c1, c2) {
+ return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str`${c1}${c2}`;
+ }
+ exports2.strConcat = strConcat;
+ function interpolate(x) {
+ return typeof x == "number" || typeof x == "boolean" || x === null ? x : safeStringify(Array.isArray(x) ? x.join(",") : x);
+ }
+ function stringify(x) {
+ return new _Code(safeStringify(x));
+ }
+ exports2.stringify = stringify;
+ function safeStringify(x) {
+ return JSON.stringify(x).replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
+ }
+ exports2.safeStringify = safeStringify;
+ function getProperty(key) {
+ return typeof key == "string" && exports2.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _`[${key}]`;
+ }
+ exports2.getProperty = getProperty;
+ function getEsmExportName(key) {
+ if (typeof key == "string" && exports2.IDENTIFIER.test(key)) {
+ return new _Code(`${key}`);
+ }
+ throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);
+ }
+ exports2.getEsmExportName = getEsmExportName;
+ function regexpCode(rx) {
+ return new _Code(rx.toString());
+ }
+ exports2.regexpCode = regexpCode;
+ }
+});
+
+// node_modules/ajv/dist/compile/codegen/scope.js
+var require_scope = __commonJS({
+ "node_modules/ajv/dist/compile/codegen/scope.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.ValueScope = exports2.ValueScopeName = exports2.Scope = exports2.varKinds = exports2.UsedValueState = void 0;
+ var code_1 = require_code();
+ var ValueError = class extends Error {
+ constructor(name) {
+ super(`CodeGen: "code" for ${name} not defined`);
+ this.value = name.value;
+ }
+ };
+ var UsedValueState;
+ (function(UsedValueState2) {
+ UsedValueState2[UsedValueState2["Started"] = 0] = "Started";
+ UsedValueState2[UsedValueState2["Completed"] = 1] = "Completed";
+ })(UsedValueState || (exports2.UsedValueState = UsedValueState = {}));
+ exports2.varKinds = {
+ const: new code_1.Name("const"),
+ let: new code_1.Name("let"),
+ var: new code_1.Name("var")
+ };
+ var Scope = class {
+ constructor({ prefixes, parent } = {}) {
+ this._names = {};
+ this._prefixes = prefixes;
+ this._parent = parent;
+ }
+ toName(nameOrPrefix) {
+ return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);
+ }
+ name(prefix) {
+ return new code_1.Name(this._newName(prefix));
+ }
+ _newName(prefix) {
+ const ng = this._names[prefix] || this._nameGroup(prefix);
+ return `${prefix}${ng.index++}`;
+ }
+ _nameGroup(prefix) {
+ var _a, _b;
+ if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || this._prefixes && !this._prefixes.has(prefix)) {
+ throw new Error(`CodeGen: prefix "${prefix}" is not allowed in this scope`);
+ }
+ return this._names[prefix] = { prefix, index: 0 };
+ }
+ };
+ exports2.Scope = Scope;
+ var ValueScopeName = class extends code_1.Name {
+ constructor(prefix, nameStr) {
+ super(nameStr);
+ this.prefix = prefix;
+ }
+ setValue(value, { property, itemIndex }) {
+ this.value = value;
+ this.scopePath = (0, code_1._)`.${new code_1.Name(property)}[${itemIndex}]`;
+ }
+ };
+ exports2.ValueScopeName = ValueScopeName;
+ var line = (0, code_1._)`\n`;
+ var ValueScope = class extends Scope {
+ constructor(opts) {
+ super(opts);
+ this._values = {};
+ this._scope = opts.scope;
+ this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };
+ }
+ get() {
+ return this._scope;
+ }
+ name(prefix) {
+ return new ValueScopeName(prefix, this._newName(prefix));
+ }
+ value(nameOrPrefix, value) {
+ var _a;
+ if (value.ref === void 0)
+ throw new Error("CodeGen: ref must be passed in value");
+ const name = this.toName(nameOrPrefix);
+ const { prefix } = name;
+ const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;
+ let vs = this._values[prefix];
+ if (vs) {
+ const _name = vs.get(valueKey);
+ if (_name)
+ return _name;
+ } else {
+ vs = this._values[prefix] = /* @__PURE__ */ new Map();
+ }
+ vs.set(valueKey, name);
+ const s = this._scope[prefix] || (this._scope[prefix] = []);
+ const itemIndex = s.length;
+ s[itemIndex] = value.ref;
+ name.setValue(value, { property: prefix, itemIndex });
+ return name;
+ }
+ getValue(prefix, keyOrRef) {
+ const vs = this._values[prefix];
+ if (!vs)
+ return;
+ return vs.get(keyOrRef);
+ }
+ scopeRefs(scopeName, values = this._values) {
+ return this._reduceValues(values, (name) => {
+ if (name.scopePath === void 0)
+ throw new Error(`CodeGen: name "${name}" has no value`);
+ return (0, code_1._)`${scopeName}${name.scopePath}`;
+ });
+ }
+ scopeCode(values = this._values, usedValues, getCode) {
+ return this._reduceValues(values, (name) => {
+ if (name.value === void 0)
+ throw new Error(`CodeGen: name "${name}" has no value`);
+ return name.value.code;
+ }, usedValues, getCode);
+ }
+ _reduceValues(values, valueCode, usedValues = {}, getCode) {
+ let code = code_1.nil;
+ for (const prefix in values) {
+ const vs = values[prefix];
+ if (!vs)
+ continue;
+ const nameSet = usedValues[prefix] = usedValues[prefix] || /* @__PURE__ */ new Map();
+ vs.forEach((name) => {
+ if (nameSet.has(name))
+ return;
+ nameSet.set(name, UsedValueState.Started);
+ let c = valueCode(name);
+ if (c) {
+ const def = this.opts.es5 ? exports2.varKinds.var : exports2.varKinds.const;
+ code = (0, code_1._)`${code}${def} ${name} = ${c};${this.opts._n}`;
+ } else if (c = getCode === null || getCode === void 0 ? void 0 : getCode(name)) {
+ code = (0, code_1._)`${code}${c}${this.opts._n}`;
+ } else {
+ throw new ValueError(name);
+ }
+ nameSet.set(name, UsedValueState.Completed);
+ });
+ }
+ return code;
+ }
+ };
+ exports2.ValueScope = ValueScope;
+ }
+});
+
+// node_modules/ajv/dist/compile/codegen/index.js
+var require_codegen = __commonJS({
+ "node_modules/ajv/dist/compile/codegen/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.or = exports2.and = exports2.not = exports2.CodeGen = exports2.operators = exports2.varKinds = exports2.ValueScopeName = exports2.ValueScope = exports2.Scope = exports2.Name = exports2.regexpCode = exports2.stringify = exports2.getProperty = exports2.nil = exports2.strConcat = exports2.str = exports2._ = void 0;
+ var code_1 = require_code();
+ var scope_1 = require_scope();
+ var code_2 = require_code();
+ Object.defineProperty(exports2, "_", { enumerable: true, get: function() {
+ return code_2._;
+ } });
+ Object.defineProperty(exports2, "str", { enumerable: true, get: function() {
+ return code_2.str;
+ } });
+ Object.defineProperty(exports2, "strConcat", { enumerable: true, get: function() {
+ return code_2.strConcat;
+ } });
+ Object.defineProperty(exports2, "nil", { enumerable: true, get: function() {
+ return code_2.nil;
+ } });
+ Object.defineProperty(exports2, "getProperty", { enumerable: true, get: function() {
+ return code_2.getProperty;
+ } });
+ Object.defineProperty(exports2, "stringify", { enumerable: true, get: function() {
+ return code_2.stringify;
+ } });
+ Object.defineProperty(exports2, "regexpCode", { enumerable: true, get: function() {
+ return code_2.regexpCode;
+ } });
+ Object.defineProperty(exports2, "Name", { enumerable: true, get: function() {
+ return code_2.Name;
+ } });
+ var scope_2 = require_scope();
+ Object.defineProperty(exports2, "Scope", { enumerable: true, get: function() {
+ return scope_2.Scope;
+ } });
+ Object.defineProperty(exports2, "ValueScope", { enumerable: true, get: function() {
+ return scope_2.ValueScope;
+ } });
+ Object.defineProperty(exports2, "ValueScopeName", { enumerable: true, get: function() {
+ return scope_2.ValueScopeName;
+ } });
+ Object.defineProperty(exports2, "varKinds", { enumerable: true, get: function() {
+ return scope_2.varKinds;
+ } });
+ exports2.operators = {
+ GT: new code_1._Code(">"),
+ GTE: new code_1._Code(">="),
+ LT: new code_1._Code("<"),
+ LTE: new code_1._Code("<="),
+ EQ: new code_1._Code("==="),
+ NEQ: new code_1._Code("!=="),
+ NOT: new code_1._Code("!"),
+ OR: new code_1._Code("||"),
+ AND: new code_1._Code("&&"),
+ ADD: new code_1._Code("+")
+ };
+ var Node = class {
+ optimizeNodes() {
+ return this;
+ }
+ optimizeNames(_names, _constants) {
+ return this;
+ }
+ };
+ var Def = class extends Node {
+ constructor(varKind, name, rhs) {
+ super();
+ this.varKind = varKind;
+ this.name = name;
+ this.rhs = rhs;
+ }
+ render({ es5, _n }) {
+ const varKind = es5 ? scope_1.varKinds.var : this.varKind;
+ const rhs = this.rhs === void 0 ? "" : ` = ${this.rhs}`;
+ return `${varKind} ${this.name}${rhs};` + _n;
+ }
+ optimizeNames(names, constants) {
+ if (!names[this.name.str])
+ return;
+ if (this.rhs)
+ this.rhs = optimizeExpr(this.rhs, names, constants);
+ return this;
+ }
+ get names() {
+ return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};
+ }
+ };
+ var Assign = class extends Node {
+ constructor(lhs, rhs, sideEffects) {
+ super();
+ this.lhs = lhs;
+ this.rhs = rhs;
+ this.sideEffects = sideEffects;
+ }
+ render({ _n }) {
+ return `${this.lhs} = ${this.rhs};` + _n;
+ }
+ optimizeNames(names, constants) {
+ if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)
+ return;
+ this.rhs = optimizeExpr(this.rhs, names, constants);
+ return this;
+ }
+ get names() {
+ const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };
+ return addExprNames(names, this.rhs);
+ }
+ };
+ var AssignOp = class extends Assign {
+ constructor(lhs, op, rhs, sideEffects) {
+ super(lhs, rhs, sideEffects);
+ this.op = op;
+ }
+ render({ _n }) {
+ return `${this.lhs} ${this.op}= ${this.rhs};` + _n;
+ }
+ };
+ var Label = class extends Node {
+ constructor(label) {
+ super();
+ this.label = label;
+ this.names = {};
+ }
+ render({ _n }) {
+ return `${this.label}:` + _n;
+ }
+ };
+ var Break = class extends Node {
+ constructor(label) {
+ super();
+ this.label = label;
+ this.names = {};
+ }
+ render({ _n }) {
+ const label = this.label ? ` ${this.label}` : "";
+ return `break${label};` + _n;
+ }
+ };
+ var Throw = class extends Node {
+ constructor(error) {
+ super();
+ this.error = error;
+ }
+ render({ _n }) {
+ return `throw ${this.error};` + _n;
+ }
+ get names() {
+ return this.error.names;
+ }
+ };
+ var AnyCode = class extends Node {
+ constructor(code) {
+ super();
+ this.code = code;
+ }
+ render({ _n }) {
+ return `${this.code};` + _n;
+ }
+ optimizeNodes() {
+ return `${this.code}` ? this : void 0;
+ }
+ optimizeNames(names, constants) {
+ this.code = optimizeExpr(this.code, names, constants);
+ return this;
+ }
+ get names() {
+ return this.code instanceof code_1._CodeOrName ? this.code.names : {};
+ }
+ };
+ var ParentNode = class extends Node {
+ constructor(nodes = []) {
+ super();
+ this.nodes = nodes;
+ }
+ render(opts) {
+ return this.nodes.reduce((code, n) => code + n.render(opts), "");
+ }
+ optimizeNodes() {
+ const { nodes } = this;
+ let i = nodes.length;
+ while (i--) {
+ const n = nodes[i].optimizeNodes();
+ if (Array.isArray(n))
+ nodes.splice(i, 1, ...n);
+ else if (n)
+ nodes[i] = n;
+ else
+ nodes.splice(i, 1);
+ }
+ return nodes.length > 0 ? this : void 0;
+ }
+ optimizeNames(names, constants) {
+ const { nodes } = this;
+ let i = nodes.length;
+ while (i--) {
+ const n = nodes[i];
+ if (n.optimizeNames(names, constants))
+ continue;
+ subtractNames(names, n.names);
+ nodes.splice(i, 1);
+ }
+ return nodes.length > 0 ? this : void 0;
+ }
+ get names() {
+ return this.nodes.reduce((names, n) => addNames(names, n.names), {});
+ }
+ };
+ var BlockNode = class extends ParentNode {
+ render(opts) {
+ return "{" + opts._n + super.render(opts) + "}" + opts._n;
+ }
+ };
+ var Root = class extends ParentNode {
+ };
+ var Else = class extends BlockNode {
+ };
+ Else.kind = "else";
+ var If = class _If extends BlockNode {
+ constructor(condition, nodes) {
+ super(nodes);
+ this.condition = condition;
+ }
+ render(opts) {
+ let code = `if(${this.condition})` + super.render(opts);
+ if (this.else)
+ code += "else " + this.else.render(opts);
+ return code;
+ }
+ optimizeNodes() {
+ super.optimizeNodes();
+ const cond = this.condition;
+ if (cond === true)
+ return this.nodes;
+ let e = this.else;
+ if (e) {
+ const ns = e.optimizeNodes();
+ e = this.else = Array.isArray(ns) ? new Else(ns) : ns;
+ }
+ if (e) {
+ if (cond === false)
+ return e instanceof _If ? e : e.nodes;
+ if (this.nodes.length)
+ return this;
+ return new _If(not(cond), e instanceof _If ? [e] : e.nodes);
+ }
+ if (cond === false || !this.nodes.length)
+ return void 0;
+ return this;
+ }
+ optimizeNames(names, constants) {
+ var _a;
+ this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);
+ if (!(super.optimizeNames(names, constants) || this.else))
+ return;
+ this.condition = optimizeExpr(this.condition, names, constants);
+ return this;
+ }
+ get names() {
+ const names = super.names;
+ addExprNames(names, this.condition);
+ if (this.else)
+ addNames(names, this.else.names);
+ return names;
+ }
+ };
+ If.kind = "if";
+ var For = class extends BlockNode {
+ };
+ For.kind = "for";
+ var ForLoop = class extends For {
+ constructor(iteration) {
+ super();
+ this.iteration = iteration;
+ }
+ render(opts) {
+ return `for(${this.iteration})` + super.render(opts);
+ }
+ optimizeNames(names, constants) {
+ if (!super.optimizeNames(names, constants))
+ return;
+ this.iteration = optimizeExpr(this.iteration, names, constants);
+ return this;
+ }
+ get names() {
+ return addNames(super.names, this.iteration.names);
+ }
+ };
+ var ForRange = class extends For {
+ constructor(varKind, name, from, to) {
+ super();
+ this.varKind = varKind;
+ this.name = name;
+ this.from = from;
+ this.to = to;
+ }
+ render(opts) {
+ const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;
+ const { name, from, to } = this;
+ return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);
+ }
+ get names() {
+ const names = addExprNames(super.names, this.from);
+ return addExprNames(names, this.to);
+ }
+ };
+ var ForIter = class extends For {
+ constructor(loop, varKind, name, iterable) {
+ super();
+ this.loop = loop;
+ this.varKind = varKind;
+ this.name = name;
+ this.iterable = iterable;
+ }
+ render(opts) {
+ return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);
+ }
+ optimizeNames(names, constants) {
+ if (!super.optimizeNames(names, constants))
+ return;
+ this.iterable = optimizeExpr(this.iterable, names, constants);
+ return this;
+ }
+ get names() {
+ return addNames(super.names, this.iterable.names);
+ }
+ };
+ var Func = class extends BlockNode {
+ constructor(name, args, async) {
+ super();
+ this.name = name;
+ this.args = args;
+ this.async = async;
+ }
+ render(opts) {
+ const _async = this.async ? "async " : "";
+ return `${_async}function ${this.name}(${this.args})` + super.render(opts);
+ }
+ };
+ Func.kind = "func";
+ var Return = class extends ParentNode {
+ render(opts) {
+ return "return " + super.render(opts);
+ }
+ };
+ Return.kind = "return";
+ var Try = class extends BlockNode {
+ render(opts) {
+ let code = "try" + super.render(opts);
+ if (this.catch)
+ code += this.catch.render(opts);
+ if (this.finally)
+ code += this.finally.render(opts);
+ return code;
+ }
+ optimizeNodes() {
+ var _a, _b;
+ super.optimizeNodes();
+ (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();
+ (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();
+ return this;
+ }
+ optimizeNames(names, constants) {
+ var _a, _b;
+ super.optimizeNames(names, constants);
+ (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);
+ (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);
+ return this;
+ }
+ get names() {
+ const names = super.names;
+ if (this.catch)
+ addNames(names, this.catch.names);
+ if (this.finally)
+ addNames(names, this.finally.names);
+ return names;
+ }
+ };
+ var Catch = class extends BlockNode {
+ constructor(error) {
+ super();
+ this.error = error;
+ }
+ render(opts) {
+ return `catch(${this.error})` + super.render(opts);
+ }
+ };
+ Catch.kind = "catch";
+ var Finally = class extends BlockNode {
+ render(opts) {
+ return "finally" + super.render(opts);
+ }
+ };
+ Finally.kind = "finally";
+ var CodeGen = class {
+ constructor(extScope, opts = {}) {
+ this._values = {};
+ this._blockStarts = [];
+ this._constants = {};
+ this.opts = { ...opts, _n: opts.lines ? "\n" : "" };
+ this._extScope = extScope;
+ this._scope = new scope_1.Scope({ parent: extScope });
+ this._nodes = [new Root()];
+ }
+ toString() {
+ return this._root.render(this.opts);
+ }
+ // returns unique name in the internal scope
+ name(prefix) {
+ return this._scope.name(prefix);
+ }
+ // reserves unique name in the external scope
+ scopeName(prefix) {
+ return this._extScope.name(prefix);
+ }
+ // reserves unique name in the external scope and assigns value to it
+ scopeValue(prefixOrName, value) {
+ const name = this._extScope.value(prefixOrName, value);
+ const vs = this._values[name.prefix] || (this._values[name.prefix] = /* @__PURE__ */ new Set());
+ vs.add(name);
+ return name;
+ }
+ getScopeValue(prefix, keyOrRef) {
+ return this._extScope.getValue(prefix, keyOrRef);
+ }
+ // return code that assigns values in the external scope to the names that are used internally
+ // (same names that were returned by gen.scopeName or gen.scopeValue)
+ scopeRefs(scopeName) {
+ return this._extScope.scopeRefs(scopeName, this._values);
+ }
+ scopeCode() {
+ return this._extScope.scopeCode(this._values);
+ }
+ _def(varKind, nameOrPrefix, rhs, constant) {
+ const name = this._scope.toName(nameOrPrefix);
+ if (rhs !== void 0 && constant)
+ this._constants[name.str] = rhs;
+ this._leafNode(new Def(varKind, name, rhs));
+ return name;
+ }
+ // `const` declaration (`var` in es5 mode)
+ const(nameOrPrefix, rhs, _constant) {
+ return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);
+ }
+ // `let` declaration with optional assignment (`var` in es5 mode)
+ let(nameOrPrefix, rhs, _constant) {
+ return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);
+ }
+ // `var` declaration with optional assignment
+ var(nameOrPrefix, rhs, _constant) {
+ return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);
+ }
+ // assignment code
+ assign(lhs, rhs, sideEffects) {
+ return this._leafNode(new Assign(lhs, rhs, sideEffects));
+ }
+ // `+=` code
+ add(lhs, rhs) {
+ return this._leafNode(new AssignOp(lhs, exports2.operators.ADD, rhs));
+ }
+ // appends passed SafeExpr to code or executes Block
+ code(c) {
+ if (typeof c == "function")
+ c();
+ else if (c !== code_1.nil)
+ this._leafNode(new AnyCode(c));
+ return this;
+ }
+ // returns code for object literal for the passed argument list of key-value pairs
+ object(...keyValues) {
+ const code = ["{"];
+ for (const [key, value] of keyValues) {
+ if (code.length > 1)
+ code.push(",");
+ code.push(key);
+ if (key !== value || this.opts.es5) {
+ code.push(":");
+ (0, code_1.addCodeArg)(code, value);
+ }
+ }
+ code.push("}");
+ return new code_1._Code(code);
+ }
+ // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)
+ if(condition, thenBody, elseBody) {
+ this._blockNode(new If(condition));
+ if (thenBody && elseBody) {
+ this.code(thenBody).else().code(elseBody).endIf();
+ } else if (thenBody) {
+ this.code(thenBody).endIf();
+ } else if (elseBody) {
+ throw new Error('CodeGen: "else" body without "then" body');
+ }
+ return this;
+ }
+ // `else if` clause - invalid without `if` or after `else` clauses
+ elseIf(condition) {
+ return this._elseNode(new If(condition));
+ }
+ // `else` clause - only valid after `if` or `else if` clauses
+ else() {
+ return this._elseNode(new Else());
+ }
+ // end `if` statement (needed if gen.if was used only with condition)
+ endIf() {
+ return this._endBlockNode(If, Else);
+ }
+ _for(node, forBody) {
+ this._blockNode(node);
+ if (forBody)
+ this.code(forBody).endFor();
+ return this;
+ }
+ // a generic `for` clause (or statement if `forBody` is passed)
+ for(iteration, forBody) {
+ return this._for(new ForLoop(iteration), forBody);
+ }
+ // `for` statement for a range of values
+ forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {
+ const name = this._scope.toName(nameOrPrefix);
+ return this._for(new ForRange(varKind, name, from, to), () => forBody(name));
+ }
+ // `for-of` statement (in es5 mode replace with a normal for loop)
+ forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {
+ const name = this._scope.toName(nameOrPrefix);
+ if (this.opts.es5) {
+ const arr = iterable instanceof code_1.Name ? iterable : this.var("_arr", iterable);
+ return this.forRange("_i", 0, (0, code_1._)`${arr}.length`, (i) => {
+ this.var(name, (0, code_1._)`${arr}[${i}]`);
+ forBody(name);
+ });
+ }
+ return this._for(new ForIter("of", varKind, name, iterable), () => forBody(name));
+ }
+ // `for-in` statement.
+ // With option `ownProperties` replaced with a `for-of` loop for object keys
+ forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {
+ if (this.opts.ownProperties) {
+ return this.forOf(nameOrPrefix, (0, code_1._)`Object.keys(${obj})`, forBody);
+ }
+ const name = this._scope.toName(nameOrPrefix);
+ return this._for(new ForIter("in", varKind, name, obj), () => forBody(name));
+ }
+ // end `for` loop
+ endFor() {
+ return this._endBlockNode(For);
+ }
+ // `label` statement
+ label(label) {
+ return this._leafNode(new Label(label));
+ }
+ // `break` statement
+ break(label) {
+ return this._leafNode(new Break(label));
+ }
+ // `return` statement
+ return(value) {
+ const node = new Return();
+ this._blockNode(node);
+ this.code(value);
+ if (node.nodes.length !== 1)
+ throw new Error('CodeGen: "return" should have one node');
+ return this._endBlockNode(Return);
+ }
+ // `try` statement
+ try(tryBody, catchCode, finallyCode) {
+ if (!catchCode && !finallyCode)
+ throw new Error('CodeGen: "try" without "catch" and "finally"');
+ const node = new Try();
+ this._blockNode(node);
+ this.code(tryBody);
+ if (catchCode) {
+ const error = this.name("e");
+ this._currNode = node.catch = new Catch(error);
+ catchCode(error);
+ }
+ if (finallyCode) {
+ this._currNode = node.finally = new Finally();
+ this.code(finallyCode);
+ }
+ return this._endBlockNode(Catch, Finally);
+ }
+ // `throw` statement
+ throw(error) {
+ return this._leafNode(new Throw(error));
+ }
+ // start self-balancing block
+ block(body, nodeCount) {
+ this._blockStarts.push(this._nodes.length);
+ if (body)
+ this.code(body).endBlock(nodeCount);
+ return this;
+ }
+ // end the current self-balancing block
+ endBlock(nodeCount) {
+ const len = this._blockStarts.pop();
+ if (len === void 0)
+ throw new Error("CodeGen: not in self-balancing block");
+ const toClose = this._nodes.length - len;
+ if (toClose < 0 || nodeCount !== void 0 && toClose !== nodeCount) {
+ throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);
+ }
+ this._nodes.length = len;
+ return this;
+ }
+ // `function` heading (or definition if funcBody is passed)
+ func(name, args = code_1.nil, async, funcBody) {
+ this._blockNode(new Func(name, args, async));
+ if (funcBody)
+ this.code(funcBody).endFunc();
+ return this;
+ }
+ // end function definition
+ endFunc() {
+ return this._endBlockNode(Func);
+ }
+ optimize(n = 1) {
+ while (n-- > 0) {
+ this._root.optimizeNodes();
+ this._root.optimizeNames(this._root.names, this._constants);
+ }
+ }
+ _leafNode(node) {
+ this._currNode.nodes.push(node);
+ return this;
+ }
+ _blockNode(node) {
+ this._currNode.nodes.push(node);
+ this._nodes.push(node);
+ }
+ _endBlockNode(N1, N2) {
+ const n = this._currNode;
+ if (n instanceof N1 || N2 && n instanceof N2) {
+ this._nodes.pop();
+ return this;
+ }
+ throw new Error(`CodeGen: not in block "${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}"`);
+ }
+ _elseNode(node) {
+ const n = this._currNode;
+ if (!(n instanceof If)) {
+ throw new Error('CodeGen: "else" without "if"');
+ }
+ this._currNode = n.else = node;
+ return this;
+ }
+ get _root() {
+ return this._nodes[0];
+ }
+ get _currNode() {
+ const ns = this._nodes;
+ return ns[ns.length - 1];
+ }
+ set _currNode(node) {
+ const ns = this._nodes;
+ ns[ns.length - 1] = node;
+ }
+ };
+ exports2.CodeGen = CodeGen;
+ function addNames(names, from) {
+ for (const n in from)
+ names[n] = (names[n] || 0) + (from[n] || 0);
+ return names;
+ }
+ function addExprNames(names, from) {
+ return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;
+ }
+ function optimizeExpr(expr, names, constants) {
+ if (expr instanceof code_1.Name)
+ return replaceName(expr);
+ if (!canOptimize(expr))
+ return expr;
+ return new code_1._Code(expr._items.reduce((items, c) => {
+ if (c instanceof code_1.Name)
+ c = replaceName(c);
+ if (c instanceof code_1._Code)
+ items.push(...c._items);
+ else
+ items.push(c);
+ return items;
+ }, []));
+ function replaceName(n) {
+ const c = constants[n.str];
+ if (c === void 0 || names[n.str] !== 1)
+ return n;
+ delete names[n.str];
+ return c;
+ }
+ function canOptimize(e) {
+ return e instanceof code_1._Code && e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== void 0);
+ }
+ }
+ function subtractNames(names, from) {
+ for (const n in from)
+ names[n] = (names[n] || 0) - (from[n] || 0);
+ }
+ function not(x) {
+ return typeof x == "boolean" || typeof x == "number" || x === null ? !x : (0, code_1._)`!${par(x)}`;
+ }
+ exports2.not = not;
+ var andCode = mappend(exports2.operators.AND);
+ function and(...args) {
+ return args.reduce(andCode);
+ }
+ exports2.and = and;
+ var orCode = mappend(exports2.operators.OR);
+ function or(...args) {
+ return args.reduce(orCode);
+ }
+ exports2.or = or;
+ function mappend(op) {
+ return (x, y) => x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._)`${par(x)} ${op} ${par(y)}`;
+ }
+ function par(x) {
+ return x instanceof code_1.Name ? x : (0, code_1._)`(${x})`;
+ }
+ }
+});
+
+// node_modules/ajv/dist/compile/util.js
+var require_util = __commonJS({
+ "node_modules/ajv/dist/compile/util.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.checkStrictMode = exports2.getErrorPath = exports2.Type = exports2.useFunc = exports2.setEvaluated = exports2.evaluatedPropsToName = exports2.mergeEvaluated = exports2.eachItem = exports2.unescapeJsonPointer = exports2.escapeJsonPointer = exports2.escapeFragment = exports2.unescapeFragment = exports2.schemaRefOrVal = exports2.schemaHasRulesButRef = exports2.schemaHasRules = exports2.checkUnknownRules = exports2.alwaysValidSchema = exports2.toHash = void 0;
+ var codegen_1 = require_codegen();
+ var code_1 = require_code();
+ function toHash(arr) {
+ const hash = {};
+ for (const item of arr)
+ hash[item] = true;
+ return hash;
+ }
+ exports2.toHash = toHash;
+ function alwaysValidSchema(it, schema) {
+ if (typeof schema == "boolean")
+ return schema;
+ if (Object.keys(schema).length === 0)
+ return true;
+ checkUnknownRules(it, schema);
+ return !schemaHasRules(schema, it.self.RULES.all);
+ }
+ exports2.alwaysValidSchema = alwaysValidSchema;
+ function checkUnknownRules(it, schema = it.schema) {
+ const { opts, self: self2 } = it;
+ if (!opts.strictSchema)
+ return;
+ if (typeof schema === "boolean")
+ return;
+ const rules = self2.RULES.keywords;
+ for (const key in schema) {
+ if (!rules[key])
+ checkStrictMode(it, `unknown keyword: "${key}"`);
+ }
+ }
+ exports2.checkUnknownRules = checkUnknownRules;
+ function schemaHasRules(schema, rules) {
+ if (typeof schema == "boolean")
+ return !schema;
+ for (const key in schema)
+ if (rules[key])
+ return true;
+ return false;
+ }
+ exports2.schemaHasRules = schemaHasRules;
+ function schemaHasRulesButRef(schema, RULES) {
+ if (typeof schema == "boolean")
+ return !schema;
+ for (const key in schema)
+ if (key !== "$ref" && RULES.all[key])
+ return true;
+ return false;
+ }
+ exports2.schemaHasRulesButRef = schemaHasRulesButRef;
+ function schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {
+ if (!$data) {
+ if (typeof schema == "number" || typeof schema == "boolean")
+ return schema;
+ if (typeof schema == "string")
+ return (0, codegen_1._)`${schema}`;
+ }
+ return (0, codegen_1._)`${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;
+ }
+ exports2.schemaRefOrVal = schemaRefOrVal;
+ function unescapeFragment(str) {
+ return unescapeJsonPointer(decodeURIComponent(str));
+ }
+ exports2.unescapeFragment = unescapeFragment;
+ function escapeFragment(str) {
+ return encodeURIComponent(escapeJsonPointer(str));
+ }
+ exports2.escapeFragment = escapeFragment;
+ function escapeJsonPointer(str) {
+ if (typeof str == "number")
+ return `${str}`;
+ return str.replace(/~/g, "~0").replace(/\//g, "~1");
+ }
+ exports2.escapeJsonPointer = escapeJsonPointer;
+ function unescapeJsonPointer(str) {
+ return str.replace(/~1/g, "/").replace(/~0/g, "~");
+ }
+ exports2.unescapeJsonPointer = unescapeJsonPointer;
+ function eachItem(xs, f) {
+ if (Array.isArray(xs)) {
+ for (const x of xs)
+ f(x);
+ } else {
+ f(xs);
+ }
+ }
+ exports2.eachItem = eachItem;
+ function makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName }) {
+ return (gen, from, to, toName) => {
+ const res = to === void 0 ? from : to instanceof codegen_1.Name ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to) : from instanceof codegen_1.Name ? (mergeToName(gen, to, from), from) : mergeValues(from, to);
+ return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;
+ };
+ }
+ exports2.mergeEvaluated = {
+ props: makeMergeEvaluated({
+ mergeNames: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true && ${from} !== undefined`, () => {
+ gen.if((0, codegen_1._)`${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._)`${to} || {}`).code((0, codegen_1._)`Object.assign(${to}, ${from})`));
+ }),
+ mergeToName: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true`, () => {
+ if (from === true) {
+ gen.assign(to, true);
+ } else {
+ gen.assign(to, (0, codegen_1._)`${to} || {}`);
+ setEvaluated(gen, to, from);
+ }
+ }),
+ mergeValues: (from, to) => from === true ? true : { ...from, ...to },
+ resultToName: evaluatedPropsToName
+ }),
+ items: makeMergeEvaluated({
+ mergeNames: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._)`${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),
+ mergeToName: (gen, from, to) => gen.if((0, codegen_1._)`${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._)`${to} > ${from} ? ${to} : ${from}`)),
+ mergeValues: (from, to) => from === true ? true : Math.max(from, to),
+ resultToName: (gen, items) => gen.var("items", items)
+ })
+ };
+ function evaluatedPropsToName(gen, ps) {
+ if (ps === true)
+ return gen.var("props", true);
+ const props = gen.var("props", (0, codegen_1._)`{}`);
+ if (ps !== void 0)
+ setEvaluated(gen, props, ps);
+ return props;
+ }
+ exports2.evaluatedPropsToName = evaluatedPropsToName;
+ function setEvaluated(gen, props, ps) {
+ Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._)`${props}${(0, codegen_1.getProperty)(p)}`, true));
+ }
+ exports2.setEvaluated = setEvaluated;
+ var snippets = {};
+ function useFunc(gen, f) {
+ return gen.scopeValue("func", {
+ ref: f,
+ code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code))
+ });
+ }
+ exports2.useFunc = useFunc;
+ var Type;
+ (function(Type2) {
+ Type2[Type2["Num"] = 0] = "Num";
+ Type2[Type2["Str"] = 1] = "Str";
+ })(Type || (exports2.Type = Type = {}));
+ function getErrorPath(dataProp, dataPropType, jsPropertySyntax) {
+ if (dataProp instanceof codegen_1.Name) {
+ const isNumber = dataPropType === Type.Num;
+ return jsPropertySyntax ? isNumber ? (0, codegen_1._)`"[" + ${dataProp} + "]"` : (0, codegen_1._)`"['" + ${dataProp} + "']"` : isNumber ? (0, codegen_1._)`"/" + ${dataProp}` : (0, codegen_1._)`"/" + ${dataProp}.replace(/~/g, "~0").replace(/\\//g, "~1")`;
+ }
+ return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : "/" + escapeJsonPointer(dataProp);
+ }
+ exports2.getErrorPath = getErrorPath;
+ function checkStrictMode(it, msg, mode = it.opts.strictSchema) {
+ if (!mode)
+ return;
+ msg = `strict mode: ${msg}`;
+ if (mode === true)
+ throw new Error(msg);
+ it.self.logger.warn(msg);
+ }
+ exports2.checkStrictMode = checkStrictMode;
+ }
+});
+
+// node_modules/ajv/dist/compile/names.js
+var require_names = __commonJS({
+ "node_modules/ajv/dist/compile/names.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var codegen_1 = require_codegen();
+ var names = {
+ // validation function arguments
+ data: new codegen_1.Name("data"),
+ // data passed to validation function
+ // args passed from referencing schema
+ valCxt: new codegen_1.Name("valCxt"),
+ // validation/data context - should not be used directly, it is destructured to the names below
+ instancePath: new codegen_1.Name("instancePath"),
+ parentData: new codegen_1.Name("parentData"),
+ parentDataProperty: new codegen_1.Name("parentDataProperty"),
+ rootData: new codegen_1.Name("rootData"),
+ // root data - same as the data passed to the first/top validation function
+ dynamicAnchors: new codegen_1.Name("dynamicAnchors"),
+ // used to support recursiveRef and dynamicRef
+ // function scoped variables
+ vErrors: new codegen_1.Name("vErrors"),
+ // null or array of validation errors
+ errors: new codegen_1.Name("errors"),
+ // counter of validation errors
+ this: new codegen_1.Name("this"),
+ // "globals"
+ self: new codegen_1.Name("self"),
+ scope: new codegen_1.Name("scope"),
+ // JTD serialize/parse name for JSON string and position
+ json: new codegen_1.Name("json"),
+ jsonPos: new codegen_1.Name("jsonPos"),
+ jsonLen: new codegen_1.Name("jsonLen"),
+ jsonPart: new codegen_1.Name("jsonPart")
+ };
+ exports2.default = names;
+ }
+});
+
+// node_modules/ajv/dist/compile/errors.js
+var require_errors2 = __commonJS({
+ "node_modules/ajv/dist/compile/errors.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.extendErrors = exports2.resetErrorsCount = exports2.reportExtraError = exports2.reportError = exports2.keyword$DataError = exports2.keywordError = void 0;
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var names_1 = require_names();
+ exports2.keywordError = {
+ message: ({ keyword }) => (0, codegen_1.str)`must pass "${keyword}" keyword validation`
+ };
+ exports2.keyword$DataError = {
+ message: ({ keyword, schemaType }) => schemaType ? (0, codegen_1.str)`"${keyword}" keyword must be ${schemaType} ($data)` : (0, codegen_1.str)`"${keyword}" keyword is invalid ($data)`
+ };
+ function reportError(cxt, error = exports2.keywordError, errorPaths, overrideAllErrors) {
+ const { it } = cxt;
+ const { gen, compositeRule, allErrors } = it;
+ const errObj = errorObjectCode(cxt, error, errorPaths);
+ if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : compositeRule || allErrors) {
+ addError(gen, errObj);
+ } else {
+ returnErrors(it, (0, codegen_1._)`[${errObj}]`);
+ }
+ }
+ exports2.reportError = reportError;
+ function reportExtraError(cxt, error = exports2.keywordError, errorPaths) {
+ const { it } = cxt;
+ const { gen, compositeRule, allErrors } = it;
+ const errObj = errorObjectCode(cxt, error, errorPaths);
+ addError(gen, errObj);
+ if (!(compositeRule || allErrors)) {
+ returnErrors(it, names_1.default.vErrors);
+ }
+ }
+ exports2.reportExtraError = reportExtraError;
+ function resetErrorsCount(gen, errsCount) {
+ gen.assign(names_1.default.errors, errsCount);
+ gen.if((0, codegen_1._)`${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._)`${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));
+ }
+ exports2.resetErrorsCount = resetErrorsCount;
+ function extendErrors({ gen, keyword, schemaValue, data, errsCount, it }) {
+ if (errsCount === void 0)
+ throw new Error("ajv implementation error");
+ const err = gen.name("err");
+ gen.forRange("i", errsCount, names_1.default.errors, (i) => {
+ gen.const(err, (0, codegen_1._)`${names_1.default.vErrors}[${i}]`);
+ gen.if((0, codegen_1._)`${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._)`${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));
+ gen.assign((0, codegen_1._)`${err}.schemaPath`, (0, codegen_1.str)`${it.errSchemaPath}/${keyword}`);
+ if (it.opts.verbose) {
+ gen.assign((0, codegen_1._)`${err}.schema`, schemaValue);
+ gen.assign((0, codegen_1._)`${err}.data`, data);
+ }
+ });
+ }
+ exports2.extendErrors = extendErrors;
+ function addError(gen, errObj) {
+ const err = gen.const("err", errObj);
+ gen.if((0, codegen_1._)`${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._)`[${err}]`), (0, codegen_1._)`${names_1.default.vErrors}.push(${err})`);
+ gen.code((0, codegen_1._)`${names_1.default.errors}++`);
+ }
+ function returnErrors(it, errs) {
+ const { gen, validateName, schemaEnv } = it;
+ if (schemaEnv.$async) {
+ gen.throw((0, codegen_1._)`new ${it.ValidationError}(${errs})`);
+ } else {
+ gen.assign((0, codegen_1._)`${validateName}.errors`, errs);
+ gen.return(false);
+ }
+ }
+ var E = {
+ keyword: new codegen_1.Name("keyword"),
+ schemaPath: new codegen_1.Name("schemaPath"),
+ // also used in JTD errors
+ params: new codegen_1.Name("params"),
+ propertyName: new codegen_1.Name("propertyName"),
+ message: new codegen_1.Name("message"),
+ schema: new codegen_1.Name("schema"),
+ parentSchema: new codegen_1.Name("parentSchema")
+ };
+ function errorObjectCode(cxt, error, errorPaths) {
+ const { createErrors } = cxt.it;
+ if (createErrors === false)
+ return (0, codegen_1._)`{}`;
+ return errorObject(cxt, error, errorPaths);
+ }
+ function errorObject(cxt, error, errorPaths = {}) {
+ const { gen, it } = cxt;
+ const keyValues = [
+ errorInstancePath(it, errorPaths),
+ errorSchemaPath(cxt, errorPaths)
+ ];
+ extraErrorProps(cxt, error, keyValues);
+ return gen.object(...keyValues);
+ }
+ function errorInstancePath({ errorPath }, { instancePath }) {
+ const instPath = instancePath ? (0, codegen_1.str)`${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}` : errorPath;
+ return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];
+ }
+ function errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {
+ let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str)`${errSchemaPath}/${keyword}`;
+ if (schemaPath) {
+ schPath = (0, codegen_1.str)`${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;
+ }
+ return [E.schemaPath, schPath];
+ }
+ function extraErrorProps(cxt, { params, message }, keyValues) {
+ const { keyword, data, schemaValue, it } = cxt;
+ const { opts, propertyName, topSchemaRef, schemaPath } = it;
+ keyValues.push([E.keyword, keyword], [E.params, typeof params == "function" ? params(cxt) : params || (0, codegen_1._)`{}`]);
+ if (opts.messages) {
+ keyValues.push([E.message, typeof message == "function" ? message(cxt) : message]);
+ }
+ if (opts.verbose) {
+ keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._)`${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);
+ }
+ if (propertyName)
+ keyValues.push([E.propertyName, propertyName]);
+ }
+ }
+});
+
+// node_modules/ajv/dist/compile/validate/boolSchema.js
+var require_boolSchema = __commonJS({
+ "node_modules/ajv/dist/compile/validate/boolSchema.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.boolOrEmptySchema = exports2.topBoolOrEmptySchema = void 0;
+ var errors_1 = require_errors2();
+ var codegen_1 = require_codegen();
+ var names_1 = require_names();
+ var boolError = {
+ message: "boolean schema is false"
+ };
+ function topBoolOrEmptySchema(it) {
+ const { gen, schema, validateName } = it;
+ if (schema === false) {
+ falseSchemaError(it, false);
+ } else if (typeof schema == "object" && schema.$async === true) {
+ gen.return(names_1.default.data);
+ } else {
+ gen.assign((0, codegen_1._)`${validateName}.errors`, null);
+ gen.return(true);
+ }
+ }
+ exports2.topBoolOrEmptySchema = topBoolOrEmptySchema;
+ function boolOrEmptySchema(it, valid) {
+ const { gen, schema } = it;
+ if (schema === false) {
+ gen.var(valid, false);
+ falseSchemaError(it);
+ } else {
+ gen.var(valid, true);
+ }
+ }
+ exports2.boolOrEmptySchema = boolOrEmptySchema;
+ function falseSchemaError(it, overrideAllErrors) {
+ const { gen, data } = it;
+ const cxt = {
+ gen,
+ keyword: "false schema",
+ data,
+ schema: false,
+ schemaCode: false,
+ schemaValue: false,
+ params: {},
+ it
+ };
+ (0, errors_1.reportError)(cxt, boolError, void 0, overrideAllErrors);
+ }
+ }
+});
+
+// node_modules/ajv/dist/compile/rules.js
+var require_rules = __commonJS({
+ "node_modules/ajv/dist/compile/rules.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getRules = exports2.isJSONType = void 0;
+ var _jsonTypes = ["string", "number", "integer", "boolean", "null", "object", "array"];
+ var jsonTypes = new Set(_jsonTypes);
+ function isJSONType(x) {
+ return typeof x == "string" && jsonTypes.has(x);
+ }
+ exports2.isJSONType = isJSONType;
+ function getRules() {
+ const groups = {
+ number: { type: "number", rules: [] },
+ string: { type: "string", rules: [] },
+ array: { type: "array", rules: [] },
+ object: { type: "object", rules: [] }
+ };
+ return {
+ types: { ...groups, integer: true, boolean: true, null: true },
+ rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],
+ post: { rules: [] },
+ all: {},
+ keywords: {}
+ };
+ }
+ exports2.getRules = getRules;
+ }
+});
+
+// node_modules/ajv/dist/compile/validate/applicability.js
+var require_applicability = __commonJS({
+ "node_modules/ajv/dist/compile/validate/applicability.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.shouldUseRule = exports2.shouldUseGroup = exports2.schemaHasRulesForType = void 0;
+ function schemaHasRulesForType({ schema, self: self2 }, type) {
+ const group = self2.RULES.types[type];
+ return group && group !== true && shouldUseGroup(schema, group);
+ }
+ exports2.schemaHasRulesForType = schemaHasRulesForType;
+ function shouldUseGroup(schema, group) {
+ return group.rules.some((rule) => shouldUseRule(schema, rule));
+ }
+ exports2.shouldUseGroup = shouldUseGroup;
+ function shouldUseRule(schema, rule) {
+ var _a;
+ return schema[rule.keyword] !== void 0 || ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== void 0));
+ }
+ exports2.shouldUseRule = shouldUseRule;
+ }
+});
+
+// node_modules/ajv/dist/compile/validate/dataType.js
+var require_dataType = __commonJS({
+ "node_modules/ajv/dist/compile/validate/dataType.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.reportTypeError = exports2.checkDataTypes = exports2.checkDataType = exports2.coerceAndCheckDataType = exports2.getJSONTypes = exports2.getSchemaTypes = exports2.DataType = void 0;
+ var rules_1 = require_rules();
+ var applicability_1 = require_applicability();
+ var errors_1 = require_errors2();
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var DataType;
+ (function(DataType2) {
+ DataType2[DataType2["Correct"] = 0] = "Correct";
+ DataType2[DataType2["Wrong"] = 1] = "Wrong";
+ })(DataType || (exports2.DataType = DataType = {}));
+ function getSchemaTypes(schema) {
+ const types = getJSONTypes(schema.type);
+ const hasNull = types.includes("null");
+ if (hasNull) {
+ if (schema.nullable === false)
+ throw new Error("type: null contradicts nullable: false");
+ } else {
+ if (!types.length && schema.nullable !== void 0) {
+ throw new Error('"nullable" cannot be used without "type"');
+ }
+ if (schema.nullable === true)
+ types.push("null");
+ }
+ return types;
+ }
+ exports2.getSchemaTypes = getSchemaTypes;
+ function getJSONTypes(ts) {
+ const types = Array.isArray(ts) ? ts : ts ? [ts] : [];
+ if (types.every(rules_1.isJSONType))
+ return types;
+ throw new Error("type must be JSONType or JSONType[]: " + types.join(","));
+ }
+ exports2.getJSONTypes = getJSONTypes;
+ function coerceAndCheckDataType(it, types) {
+ const { gen, data, opts } = it;
+ const coerceTo = coerceToTypes(types, opts.coerceTypes);
+ const checkTypes = types.length > 0 && !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));
+ if (checkTypes) {
+ const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);
+ gen.if(wrongType, () => {
+ if (coerceTo.length)
+ coerceData(it, types, coerceTo);
+ else
+ reportTypeError(it);
+ });
+ }
+ return checkTypes;
+ }
+ exports2.coerceAndCheckDataType = coerceAndCheckDataType;
+ var COERCIBLE = /* @__PURE__ */ new Set(["string", "number", "integer", "boolean", "null"]);
+ function coerceToTypes(types, coerceTypes) {
+ return coerceTypes ? types.filter((t) => COERCIBLE.has(t) || coerceTypes === "array" && t === "array") : [];
+ }
+ function coerceData(it, types, coerceTo) {
+ const { gen, data, opts } = it;
+ const dataType = gen.let("dataType", (0, codegen_1._)`typeof ${data}`);
+ const coerced = gen.let("coerced", (0, codegen_1._)`undefined`);
+ if (opts.coerceTypes === "array") {
+ gen.if((0, codegen_1._)`${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen.assign(data, (0, codegen_1._)`${data}[0]`).assign(dataType, (0, codegen_1._)`typeof ${data}`).if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));
+ }
+ gen.if((0, codegen_1._)`${coerced} !== undefined`);
+ for (const t of coerceTo) {
+ if (COERCIBLE.has(t) || t === "array" && opts.coerceTypes === "array") {
+ coerceSpecificType(t);
+ }
+ }
+ gen.else();
+ reportTypeError(it);
+ gen.endIf();
+ gen.if((0, codegen_1._)`${coerced} !== undefined`, () => {
+ gen.assign(data, coerced);
+ assignParentData(it, coerced);
+ });
+ function coerceSpecificType(t) {
+ switch (t) {
+ case "string":
+ gen.elseIf((0, codegen_1._)`${dataType} == "number" || ${dataType} == "boolean"`).assign(coerced, (0, codegen_1._)`"" + ${data}`).elseIf((0, codegen_1._)`${data} === null`).assign(coerced, (0, codegen_1._)`""`);
+ return;
+ case "number":
+ gen.elseIf((0, codegen_1._)`${dataType} == "boolean" || ${data} === null
+ || (${dataType} == "string" && ${data} && ${data} == +${data})`).assign(coerced, (0, codegen_1._)`+${data}`);
+ return;
+ case "integer":
+ gen.elseIf((0, codegen_1._)`${dataType} === "boolean" || ${data} === null
+ || (${dataType} === "string" && ${data} && ${data} == +${data} && !(${data} % 1))`).assign(coerced, (0, codegen_1._)`+${data}`);
+ return;
+ case "boolean":
+ gen.elseIf((0, codegen_1._)`${data} === "false" || ${data} === 0 || ${data} === null`).assign(coerced, false).elseIf((0, codegen_1._)`${data} === "true" || ${data} === 1`).assign(coerced, true);
+ return;
+ case "null":
+ gen.elseIf((0, codegen_1._)`${data} === "" || ${data} === 0 || ${data} === false`);
+ gen.assign(coerced, null);
+ return;
+ case "array":
+ gen.elseIf((0, codegen_1._)`${dataType} === "string" || ${dataType} === "number"
+ || ${dataType} === "boolean" || ${data} === null`).assign(coerced, (0, codegen_1._)`[${data}]`);
+ }
+ }
+ }
+ function assignParentData({ gen, parentData, parentDataProperty }, expr) {
+ gen.if((0, codegen_1._)`${parentData} !== undefined`, () => gen.assign((0, codegen_1._)`${parentData}[${parentDataProperty}]`, expr));
+ }
+ function checkDataType(dataType, data, strictNums, correct = DataType.Correct) {
+ const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;
+ let cond;
+ switch (dataType) {
+ case "null":
+ return (0, codegen_1._)`${data} ${EQ} null`;
+ case "array":
+ cond = (0, codegen_1._)`Array.isArray(${data})`;
+ break;
+ case "object":
+ cond = (0, codegen_1._)`${data} && typeof ${data} == "object" && !Array.isArray(${data})`;
+ break;
+ case "integer":
+ cond = numCond((0, codegen_1._)`!(${data} % 1) && !isNaN(${data})`);
+ break;
+ case "number":
+ cond = numCond();
+ break;
+ default:
+ return (0, codegen_1._)`typeof ${data} ${EQ} ${dataType}`;
+ }
+ return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);
+ function numCond(_cond = codegen_1.nil) {
+ return (0, codegen_1.and)((0, codegen_1._)`typeof ${data} == "number"`, _cond, strictNums ? (0, codegen_1._)`isFinite(${data})` : codegen_1.nil);
+ }
+ }
+ exports2.checkDataType = checkDataType;
+ function checkDataTypes(dataTypes, data, strictNums, correct) {
+ if (dataTypes.length === 1) {
+ return checkDataType(dataTypes[0], data, strictNums, correct);
+ }
+ let cond;
+ const types = (0, util_1.toHash)(dataTypes);
+ if (types.array && types.object) {
+ const notObj = (0, codegen_1._)`typeof ${data} != "object"`;
+ cond = types.null ? notObj : (0, codegen_1._)`!${data} || ${notObj}`;
+ delete types.null;
+ delete types.array;
+ delete types.object;
+ } else {
+ cond = codegen_1.nil;
+ }
+ if (types.number)
+ delete types.integer;
+ for (const t in types)
+ cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));
+ return cond;
+ }
+ exports2.checkDataTypes = checkDataTypes;
+ var typeError = {
+ message: ({ schema }) => `must be ${schema}`,
+ params: ({ schema, schemaValue }) => typeof schema == "string" ? (0, codegen_1._)`{type: ${schema}}` : (0, codegen_1._)`{type: ${schemaValue}}`
+ };
+ function reportTypeError(it) {
+ const cxt = getTypeErrorContext(it);
+ (0, errors_1.reportError)(cxt, typeError);
+ }
+ exports2.reportTypeError = reportTypeError;
+ function getTypeErrorContext(it) {
+ const { gen, data, schema } = it;
+ const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, "type");
+ return {
+ gen,
+ keyword: "type",
+ data,
+ schema: schema.type,
+ schemaCode,
+ schemaValue: schemaCode,
+ parentSchema: schema,
+ params: {},
+ it
+ };
+ }
+ }
+});
+
+// node_modules/ajv/dist/compile/validate/defaults.js
+var require_defaults = __commonJS({
+ "node_modules/ajv/dist/compile/validate/defaults.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.assignDefaults = void 0;
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ function assignDefaults(it, ty) {
+ const { properties, items } = it.schema;
+ if (ty === "object" && properties) {
+ for (const key in properties) {
+ assignDefault(it, key, properties[key].default);
+ }
+ } else if (ty === "array" && Array.isArray(items)) {
+ items.forEach((sch, i) => assignDefault(it, i, sch.default));
+ }
+ }
+ exports2.assignDefaults = assignDefaults;
+ function assignDefault(it, prop, defaultValue) {
+ const { gen, compositeRule, data, opts } = it;
+ if (defaultValue === void 0)
+ return;
+ const childData = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(prop)}`;
+ if (compositeRule) {
+ (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);
+ return;
+ }
+ let condition = (0, codegen_1._)`${childData} === undefined`;
+ if (opts.useDefaults === "empty") {
+ condition = (0, codegen_1._)`${condition} || ${childData} === null || ${childData} === ""`;
+ }
+ gen.if(condition, (0, codegen_1._)`${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);
+ }
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/code.js
+var require_code2 = __commonJS({
+ "node_modules/ajv/dist/vocabularies/code.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.validateUnion = exports2.validateArray = exports2.usePattern = exports2.callValidateCode = exports2.schemaProperties = exports2.allSchemaProperties = exports2.noPropertyInData = exports2.propertyInData = exports2.isOwnProperty = exports2.hasPropFunc = exports2.reportMissingProp = exports2.checkMissingProp = exports2.checkReportMissingProp = void 0;
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var names_1 = require_names();
+ var util_2 = require_util();
+ function checkReportMissingProp(cxt, prop) {
+ const { gen, data, it } = cxt;
+ gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {
+ cxt.setParams({ missingProperty: (0, codegen_1._)`${prop}` }, true);
+ cxt.error();
+ });
+ }
+ exports2.checkReportMissingProp = checkReportMissingProp;
+ function checkMissingProp({ gen, data, it: { opts } }, properties, missing) {
+ return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._)`${missing} = ${prop}`)));
+ }
+ exports2.checkMissingProp = checkMissingProp;
+ function reportMissingProp(cxt, missing) {
+ cxt.setParams({ missingProperty: missing }, true);
+ cxt.error();
+ }
+ exports2.reportMissingProp = reportMissingProp;
+ function hasPropFunc(gen) {
+ return gen.scopeValue("func", {
+ // eslint-disable-next-line @typescript-eslint/unbound-method
+ ref: Object.prototype.hasOwnProperty,
+ code: (0, codegen_1._)`Object.prototype.hasOwnProperty`
+ });
+ }
+ exports2.hasPropFunc = hasPropFunc;
+ function isOwnProperty(gen, data, property) {
+ return (0, codegen_1._)`${hasPropFunc(gen)}.call(${data}, ${property})`;
+ }
+ exports2.isOwnProperty = isOwnProperty;
+ function propertyInData(gen, data, property, ownProperties) {
+ const cond = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(property)} !== undefined`;
+ return ownProperties ? (0, codegen_1._)`${cond} && ${isOwnProperty(gen, data, property)}` : cond;
+ }
+ exports2.propertyInData = propertyInData;
+ function noPropertyInData(gen, data, property, ownProperties) {
+ const cond = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(property)} === undefined`;
+ return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;
+ }
+ exports2.noPropertyInData = noPropertyInData;
+ function allSchemaProperties(schemaMap) {
+ return schemaMap ? Object.keys(schemaMap).filter((p) => p !== "__proto__") : [];
+ }
+ exports2.allSchemaProperties = allSchemaProperties;
+ function schemaProperties(it, schemaMap) {
+ return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));
+ }
+ exports2.schemaProperties = schemaProperties;
+ function callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {
+ const dataAndSchema = passSchema ? (0, codegen_1._)`${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;
+ const valCxt = [
+ [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],
+ [names_1.default.parentData, it.parentData],
+ [names_1.default.parentDataProperty, it.parentDataProperty],
+ [names_1.default.rootData, names_1.default.rootData]
+ ];
+ if (it.opts.dynamicRef)
+ valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);
+ const args = (0, codegen_1._)`${dataAndSchema}, ${gen.object(...valCxt)}`;
+ return context !== codegen_1.nil ? (0, codegen_1._)`${func}.call(${context}, ${args})` : (0, codegen_1._)`${func}(${args})`;
+ }
+ exports2.callValidateCode = callValidateCode;
+ var newRegExp = (0, codegen_1._)`new RegExp`;
+ function usePattern({ gen, it: { opts } }, pattern) {
+ const u = opts.unicodeRegExp ? "u" : "";
+ const { regExp } = opts.code;
+ const rx = regExp(pattern, u);
+ return gen.scopeValue("pattern", {
+ key: rx.toString(),
+ ref: rx,
+ code: (0, codegen_1._)`${regExp.code === "new RegExp" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`
+ });
+ }
+ exports2.usePattern = usePattern;
+ function validateArray(cxt) {
+ const { gen, data, keyword, it } = cxt;
+ const valid = gen.name("valid");
+ if (it.allErrors) {
+ const validArr = gen.let("valid", true);
+ validateItems(() => gen.assign(validArr, false));
+ return validArr;
+ }
+ gen.var(valid, true);
+ validateItems(() => gen.break());
+ return valid;
+ function validateItems(notValid) {
+ const len = gen.const("len", (0, codegen_1._)`${data}.length`);
+ gen.forRange("i", 0, len, (i) => {
+ cxt.subschema({
+ keyword,
+ dataProp: i,
+ dataPropType: util_1.Type.Num
+ }, valid);
+ gen.if((0, codegen_1.not)(valid), notValid);
+ });
+ }
+ }
+ exports2.validateArray = validateArray;
+ function validateUnion(cxt) {
+ const { gen, schema, keyword, it } = cxt;
+ if (!Array.isArray(schema))
+ throw new Error("ajv implementation error");
+ const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));
+ if (alwaysValid && !it.opts.unevaluated)
+ return;
+ const valid = gen.let("valid", false);
+ const schValid = gen.name("_valid");
+ gen.block(() => schema.forEach((_sch, i) => {
+ const schCxt = cxt.subschema({
+ keyword,
+ schemaProp: i,
+ compositeRule: true
+ }, schValid);
+ gen.assign(valid, (0, codegen_1._)`${valid} || ${schValid}`);
+ const merged = cxt.mergeValidEvaluated(schCxt, schValid);
+ if (!merged)
+ gen.if((0, codegen_1.not)(valid));
+ }));
+ cxt.result(valid, () => cxt.reset(), () => cxt.error(true));
+ }
+ exports2.validateUnion = validateUnion;
+ }
+});
+
+// node_modules/ajv/dist/compile/validate/keyword.js
+var require_keyword = __commonJS({
+ "node_modules/ajv/dist/compile/validate/keyword.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.validateKeywordUsage = exports2.validSchemaType = exports2.funcKeywordCode = exports2.macroKeywordCode = void 0;
+ var codegen_1 = require_codegen();
+ var names_1 = require_names();
+ var code_1 = require_code2();
+ var errors_1 = require_errors2();
+ function macroKeywordCode(cxt, def) {
+ const { gen, keyword, schema, parentSchema, it } = cxt;
+ const macroSchema = def.macro.call(it.self, schema, parentSchema, it);
+ const schemaRef = useKeyword(gen, keyword, macroSchema);
+ if (it.opts.validateSchema !== false)
+ it.self.validateSchema(macroSchema, true);
+ const valid = gen.name("valid");
+ cxt.subschema({
+ schema: macroSchema,
+ schemaPath: codegen_1.nil,
+ errSchemaPath: `${it.errSchemaPath}/${keyword}`,
+ topSchemaRef: schemaRef,
+ compositeRule: true
+ }, valid);
+ cxt.pass(valid, () => cxt.error(true));
+ }
+ exports2.macroKeywordCode = macroKeywordCode;
+ function funcKeywordCode(cxt, def) {
+ var _a;
+ const { gen, keyword, schema, parentSchema, $data, it } = cxt;
+ checkAsyncKeyword(it, def);
+ const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;
+ const validateRef = useKeyword(gen, keyword, validate);
+ const valid = gen.let("valid");
+ cxt.block$data(valid, validateKeyword);
+ cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);
+ function validateKeyword() {
+ if (def.errors === false) {
+ assignValid();
+ if (def.modifying)
+ modifyData(cxt);
+ reportErrs(() => cxt.error());
+ } else {
+ const ruleErrs = def.async ? validateAsync() : validateSync();
+ if (def.modifying)
+ modifyData(cxt);
+ reportErrs(() => addErrs(cxt, ruleErrs));
+ }
+ }
+ function validateAsync() {
+ const ruleErrs = gen.let("ruleErrs", null);
+ gen.try(() => assignValid((0, codegen_1._)`await `), (e) => gen.assign(valid, false).if((0, codegen_1._)`${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._)`${e}.errors`), () => gen.throw(e)));
+ return ruleErrs;
+ }
+ function validateSync() {
+ const validateErrs = (0, codegen_1._)`${validateRef}.errors`;
+ gen.assign(validateErrs, null);
+ assignValid(codegen_1.nil);
+ return validateErrs;
+ }
+ function assignValid(_await = def.async ? (0, codegen_1._)`await ` : codegen_1.nil) {
+ const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;
+ const passSchema = !("compile" in def && !$data || def.schema === false);
+ gen.assign(valid, (0, codegen_1._)`${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);
+ }
+ function reportErrs(errors) {
+ var _a2;
+ gen.if((0, codegen_1.not)((_a2 = def.valid) !== null && _a2 !== void 0 ? _a2 : valid), errors);
+ }
+ }
+ exports2.funcKeywordCode = funcKeywordCode;
+ function modifyData(cxt) {
+ const { gen, data, it } = cxt;
+ gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._)`${it.parentData}[${it.parentDataProperty}]`));
+ }
+ function addErrs(cxt, errs) {
+ const { gen } = cxt;
+ gen.if((0, codegen_1._)`Array.isArray(${errs})`, () => {
+ gen.assign(names_1.default.vErrors, (0, codegen_1._)`${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`).assign(names_1.default.errors, (0, codegen_1._)`${names_1.default.vErrors}.length`);
+ (0, errors_1.extendErrors)(cxt);
+ }, () => cxt.error());
+ }
+ function checkAsyncKeyword({ schemaEnv }, def) {
+ if (def.async && !schemaEnv.$async)
+ throw new Error("async keyword in sync schema");
+ }
+ function useKeyword(gen, keyword, result) {
+ if (result === void 0)
+ throw new Error(`keyword "${keyword}" failed to compile`);
+ return gen.scopeValue("keyword", typeof result == "function" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });
+ }
+ function validSchemaType(schema, schemaType, allowUndefined = false) {
+ return !schemaType.length || schemaType.some((st) => st === "array" ? Array.isArray(schema) : st === "object" ? schema && typeof schema == "object" && !Array.isArray(schema) : typeof schema == st || allowUndefined && typeof schema == "undefined");
+ }
+ exports2.validSchemaType = validSchemaType;
+ function validateKeywordUsage({ schema, opts, self: self2, errSchemaPath }, def, keyword) {
+ if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {
+ throw new Error("ajv implementation error");
+ }
+ const deps = def.dependencies;
+ if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {
+ throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(",")}`);
+ }
+ if (def.validateSchema) {
+ const valid = def.validateSchema(schema[keyword]);
+ if (!valid) {
+ const msg = `keyword "${keyword}" value is invalid at path "${errSchemaPath}": ` + self2.errorsText(def.validateSchema.errors);
+ if (opts.validateSchema === "log")
+ self2.logger.error(msg);
+ else
+ throw new Error(msg);
+ }
+ }
+ }
+ exports2.validateKeywordUsage = validateKeywordUsage;
+ }
+});
+
+// node_modules/ajv/dist/compile/validate/subschema.js
+var require_subschema = __commonJS({
+ "node_modules/ajv/dist/compile/validate/subschema.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.extendSubschemaMode = exports2.extendSubschemaData = exports2.getSubschema = void 0;
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ function getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {
+ if (keyword !== void 0 && schema !== void 0) {
+ throw new Error('both "keyword" and "schema" passed, only one allowed');
+ }
+ if (keyword !== void 0) {
+ const sch = it.schema[keyword];
+ return schemaProp === void 0 ? {
+ schema: sch,
+ schemaPath: (0, codegen_1._)`${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,
+ errSchemaPath: `${it.errSchemaPath}/${keyword}`
+ } : {
+ schema: sch[schemaProp],
+ schemaPath: (0, codegen_1._)`${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,
+ errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`
+ };
+ }
+ if (schema !== void 0) {
+ if (schemaPath === void 0 || errSchemaPath === void 0 || topSchemaRef === void 0) {
+ throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');
+ }
+ return {
+ schema,
+ schemaPath,
+ topSchemaRef,
+ errSchemaPath
+ };
+ }
+ throw new Error('either "keyword" or "schema" must be passed');
+ }
+ exports2.getSubschema = getSubschema;
+ function extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {
+ if (data !== void 0 && dataProp !== void 0) {
+ throw new Error('both "data" and "dataProp" passed, only one allowed');
+ }
+ const { gen } = it;
+ if (dataProp !== void 0) {
+ const { errorPath, dataPathArr, opts } = it;
+ const nextData = gen.let("data", (0, codegen_1._)`${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);
+ dataContextProps(nextData);
+ subschema.errorPath = (0, codegen_1.str)`${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;
+ subschema.parentDataProperty = (0, codegen_1._)`${dataProp}`;
+ subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];
+ }
+ if (data !== void 0) {
+ const nextData = data instanceof codegen_1.Name ? data : gen.let("data", data, true);
+ dataContextProps(nextData);
+ if (propertyName !== void 0)
+ subschema.propertyName = propertyName;
+ }
+ if (dataTypes)
+ subschema.dataTypes = dataTypes;
+ function dataContextProps(_nextData) {
+ subschema.data = _nextData;
+ subschema.dataLevel = it.dataLevel + 1;
+ subschema.dataTypes = [];
+ it.definedProperties = /* @__PURE__ */ new Set();
+ subschema.parentData = it.data;
+ subschema.dataNames = [...it.dataNames, _nextData];
+ }
+ }
+ exports2.extendSubschemaData = extendSubschemaData;
+ function extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {
+ if (compositeRule !== void 0)
+ subschema.compositeRule = compositeRule;
+ if (createErrors !== void 0)
+ subschema.createErrors = createErrors;
+ if (allErrors !== void 0)
+ subschema.allErrors = allErrors;
+ subschema.jtdDiscriminator = jtdDiscriminator;
+ subschema.jtdMetadata = jtdMetadata;
+ }
+ exports2.extendSubschemaMode = extendSubschemaMode;
+ }
+});
+
+// node_modules/fast-deep-equal/index.js
+var require_fast_deep_equal = __commonJS({
+ "node_modules/fast-deep-equal/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = function equal(a, b) {
+ if (a === b)
+ return true;
+ if (a && b && typeof a == "object" && typeof b == "object") {
+ if (a.constructor !== b.constructor)
+ return false;
+ var length, i, keys;
+ if (Array.isArray(a)) {
+ length = a.length;
+ if (length != b.length)
+ return false;
+ for (i = length; i-- !== 0; )
+ if (!equal(a[i], b[i]))
+ return false;
+ return true;
+ }
+ if (a.constructor === RegExp)
+ return a.source === b.source && a.flags === b.flags;
+ if (a.valueOf !== Object.prototype.valueOf)
+ return a.valueOf() === b.valueOf();
+ if (a.toString !== Object.prototype.toString)
+ return a.toString() === b.toString();
+ keys = Object.keys(a);
+ length = keys.length;
+ if (length !== Object.keys(b).length)
+ return false;
+ for (i = length; i-- !== 0; )
+ if (!Object.prototype.hasOwnProperty.call(b, keys[i]))
+ return false;
+ for (i = length; i-- !== 0; ) {
+ var key = keys[i];
+ if (!equal(a[key], b[key]))
+ return false;
+ }
+ return true;
+ }
+ return a !== a && b !== b;
+ };
+ }
+});
+
+// node_modules/json-schema-traverse/index.js
+var require_json_schema_traverse = __commonJS({
+ "node_modules/json-schema-traverse/index.js"(exports2, module2) {
+ "use strict";
+ var traverse = module2.exports = function(schema, opts, cb) {
+ if (typeof opts == "function") {
+ cb = opts;
+ opts = {};
+ }
+ cb = opts.cb || cb;
+ var pre = typeof cb == "function" ? cb : cb.pre || function() {
+ };
+ var post = cb.post || function() {
+ };
+ _traverse(opts, pre, post, schema, "", schema);
+ };
+ traverse.keywords = {
+ additionalItems: true,
+ items: true,
+ contains: true,
+ additionalProperties: true,
+ propertyNames: true,
+ not: true,
+ if: true,
+ then: true,
+ else: true
+ };
+ traverse.arrayKeywords = {
+ items: true,
+ allOf: true,
+ anyOf: true,
+ oneOf: true
+ };
+ traverse.propsKeywords = {
+ $defs: true,
+ definitions: true,
+ properties: true,
+ patternProperties: true,
+ dependencies: true
+ };
+ traverse.skipKeywords = {
+ default: true,
+ enum: true,
+ const: true,
+ required: true,
+ maximum: true,
+ minimum: true,
+ exclusiveMaximum: true,
+ exclusiveMinimum: true,
+ multipleOf: true,
+ maxLength: true,
+ minLength: true,
+ pattern: true,
+ format: true,
+ maxItems: true,
+ minItems: true,
+ uniqueItems: true,
+ maxProperties: true,
+ minProperties: true
+ };
+ function _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {
+ if (schema && typeof schema == "object" && !Array.isArray(schema)) {
+ pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);
+ for (var key in schema) {
+ var sch = schema[key];
+ if (Array.isArray(sch)) {
+ if (key in traverse.arrayKeywords) {
+ for (var i = 0; i < sch.length; i++)
+ _traverse(opts, pre, post, sch[i], jsonPtr + "/" + key + "/" + i, rootSchema, jsonPtr, key, schema, i);
+ }
+ } else if (key in traverse.propsKeywords) {
+ if (sch && typeof sch == "object") {
+ for (var prop in sch)
+ _traverse(opts, pre, post, sch[prop], jsonPtr + "/" + key + "/" + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);
+ }
+ } else if (key in traverse.keywords || opts.allKeys && !(key in traverse.skipKeywords)) {
+ _traverse(opts, pre, post, sch, jsonPtr + "/" + key, rootSchema, jsonPtr, key, schema);
+ }
+ }
+ post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);
+ }
+ }
+ function escapeJsonPtr(str) {
+ return str.replace(/~/g, "~0").replace(/\//g, "~1");
+ }
+ }
+});
+
+// node_modules/ajv/dist/compile/resolve.js
+var require_resolve = __commonJS({
+ "node_modules/ajv/dist/compile/resolve.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getSchemaRefs = exports2.resolveUrl = exports2.normalizeId = exports2._getFullPath = exports2.getFullPath = exports2.inlineRef = void 0;
+ var util_1 = require_util();
+ var equal = require_fast_deep_equal();
+ var traverse = require_json_schema_traverse();
+ var SIMPLE_INLINED = /* @__PURE__ */ new Set([
+ "type",
+ "format",
+ "pattern",
+ "maxLength",
+ "minLength",
+ "maxProperties",
+ "minProperties",
+ "maxItems",
+ "minItems",
+ "maximum",
+ "minimum",
+ "uniqueItems",
+ "multipleOf",
+ "required",
+ "enum",
+ "const"
+ ]);
+ function inlineRef(schema, limit = true) {
+ if (typeof schema == "boolean")
+ return true;
+ if (limit === true)
+ return !hasRef(schema);
+ if (!limit)
+ return false;
+ return countKeys(schema) <= limit;
+ }
+ exports2.inlineRef = inlineRef;
+ var REF_KEYWORDS = /* @__PURE__ */ new Set([
+ "$ref",
+ "$recursiveRef",
+ "$recursiveAnchor",
+ "$dynamicRef",
+ "$dynamicAnchor"
+ ]);
+ function hasRef(schema) {
+ for (const key in schema) {
+ if (REF_KEYWORDS.has(key))
+ return true;
+ const sch = schema[key];
+ if (Array.isArray(sch) && sch.some(hasRef))
+ return true;
+ if (typeof sch == "object" && hasRef(sch))
+ return true;
+ }
+ return false;
+ }
+ function countKeys(schema) {
+ let count = 0;
+ for (const key in schema) {
+ if (key === "$ref")
+ return Infinity;
+ count++;
+ if (SIMPLE_INLINED.has(key))
+ continue;
+ if (typeof schema[key] == "object") {
+ (0, util_1.eachItem)(schema[key], (sch) => count += countKeys(sch));
+ }
+ if (count === Infinity)
+ return Infinity;
+ }
+ return count;
+ }
+ function getFullPath(resolver, id = "", normalize) {
+ if (normalize !== false)
+ id = normalizeId(id);
+ const p = resolver.parse(id);
+ return _getFullPath(resolver, p);
+ }
+ exports2.getFullPath = getFullPath;
+ function _getFullPath(resolver, p) {
+ const serialized = resolver.serialize(p);
+ return serialized.split("#")[0] + "#";
+ }
+ exports2._getFullPath = _getFullPath;
+ var TRAILING_SLASH_HASH = /#\/?$/;
+ function normalizeId(id) {
+ return id ? id.replace(TRAILING_SLASH_HASH, "") : "";
+ }
+ exports2.normalizeId = normalizeId;
+ function resolveUrl(resolver, baseId, id) {
+ id = normalizeId(id);
+ return resolver.resolve(baseId, id);
+ }
+ exports2.resolveUrl = resolveUrl;
+ var ANCHOR = /^[a-z_][-a-z0-9._]*$/i;
+ function getSchemaRefs(schema, baseId) {
+ if (typeof schema == "boolean")
+ return {};
+ const { schemaId, uriResolver } = this.opts;
+ const schId = normalizeId(schema[schemaId] || baseId);
+ const baseIds = { "": schId };
+ const pathPrefix = getFullPath(uriResolver, schId, false);
+ const localRefs = {};
+ const schemaRefs = /* @__PURE__ */ new Set();
+ traverse(schema, { allKeys: true }, (sch, jsonPtr, _, parentJsonPtr) => {
+ if (parentJsonPtr === void 0)
+ return;
+ const fullPath = pathPrefix + jsonPtr;
+ let innerBaseId = baseIds[parentJsonPtr];
+ if (typeof sch[schemaId] == "string")
+ innerBaseId = addRef.call(this, sch[schemaId]);
+ addAnchor.call(this, sch.$anchor);
+ addAnchor.call(this, sch.$dynamicAnchor);
+ baseIds[jsonPtr] = innerBaseId;
+ function addRef(ref) {
+ const _resolve = this.opts.uriResolver.resolve;
+ ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref);
+ if (schemaRefs.has(ref))
+ throw ambiguos(ref);
+ schemaRefs.add(ref);
+ let schOrRef = this.refs[ref];
+ if (typeof schOrRef == "string")
+ schOrRef = this.refs[schOrRef];
+ if (typeof schOrRef == "object") {
+ checkAmbiguosRef(sch, schOrRef.schema, ref);
+ } else if (ref !== normalizeId(fullPath)) {
+ if (ref[0] === "#") {
+ checkAmbiguosRef(sch, localRefs[ref], ref);
+ localRefs[ref] = sch;
+ } else {
+ this.refs[ref] = fullPath;
+ }
+ }
+ return ref;
+ }
+ function addAnchor(anchor) {
+ if (typeof anchor == "string") {
+ if (!ANCHOR.test(anchor))
+ throw new Error(`invalid anchor "${anchor}"`);
+ addRef.call(this, `#${anchor}`);
+ }
+ }
+ });
+ return localRefs;
+ function checkAmbiguosRef(sch1, sch2, ref) {
+ if (sch2 !== void 0 && !equal(sch1, sch2))
+ throw ambiguos(ref);
+ }
+ function ambiguos(ref) {
+ return new Error(`reference "${ref}" resolves to more than one schema`);
+ }
+ }
+ exports2.getSchemaRefs = getSchemaRefs;
+ }
+});
+
+// node_modules/ajv/dist/compile/validate/index.js
+var require_validate = __commonJS({
+ "node_modules/ajv/dist/compile/validate/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getData = exports2.KeywordCxt = exports2.validateFunctionCode = void 0;
+ var boolSchema_1 = require_boolSchema();
+ var dataType_1 = require_dataType();
+ var applicability_1 = require_applicability();
+ var dataType_2 = require_dataType();
+ var defaults_1 = require_defaults();
+ var keyword_1 = require_keyword();
+ var subschema_1 = require_subschema();
+ var codegen_1 = require_codegen();
+ var names_1 = require_names();
+ var resolve_1 = require_resolve();
+ var util_1 = require_util();
+ var errors_1 = require_errors2();
+ function validateFunctionCode(it) {
+ if (isSchemaObj(it)) {
+ checkKeywords(it);
+ if (schemaCxtHasRules(it)) {
+ topSchemaObjCode(it);
+ return;
+ }
+ }
+ validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));
+ }
+ exports2.validateFunctionCode = validateFunctionCode;
+ function validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {
+ if (opts.code.es5) {
+ gen.func(validateName, (0, codegen_1._)`${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {
+ gen.code((0, codegen_1._)`"use strict"; ${funcSourceUrl(schema, opts)}`);
+ destructureValCxtES5(gen, opts);
+ gen.code(body);
+ });
+ } else {
+ gen.func(validateName, (0, codegen_1._)`${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));
+ }
+ }
+ function destructureValCxt(opts) {
+ return (0, codegen_1._)`{${names_1.default.instancePath}="", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._)`, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;
+ }
+ function destructureValCxtES5(gen, opts) {
+ gen.if(names_1.default.valCxt, () => {
+ gen.var(names_1.default.instancePath, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.instancePath}`);
+ gen.var(names_1.default.parentData, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.parentData}`);
+ gen.var(names_1.default.parentDataProperty, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);
+ gen.var(names_1.default.rootData, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.rootData}`);
+ if (opts.dynamicRef)
+ gen.var(names_1.default.dynamicAnchors, (0, codegen_1._)`${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);
+ }, () => {
+ gen.var(names_1.default.instancePath, (0, codegen_1._)`""`);
+ gen.var(names_1.default.parentData, (0, codegen_1._)`undefined`);
+ gen.var(names_1.default.parentDataProperty, (0, codegen_1._)`undefined`);
+ gen.var(names_1.default.rootData, names_1.default.data);
+ if (opts.dynamicRef)
+ gen.var(names_1.default.dynamicAnchors, (0, codegen_1._)`{}`);
+ });
+ }
+ function topSchemaObjCode(it) {
+ const { schema, opts, gen } = it;
+ validateFunction(it, () => {
+ if (opts.$comment && schema.$comment)
+ commentKeyword(it);
+ checkNoDefault(it);
+ gen.let(names_1.default.vErrors, null);
+ gen.let(names_1.default.errors, 0);
+ if (opts.unevaluated)
+ resetEvaluated(it);
+ typeAndKeywords(it);
+ returnResults(it);
+ });
+ return;
+ }
+ function resetEvaluated(it) {
+ const { gen, validateName } = it;
+ it.evaluated = gen.const("evaluated", (0, codegen_1._)`${validateName}.evaluated`);
+ gen.if((0, codegen_1._)`${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._)`${it.evaluated}.props`, (0, codegen_1._)`undefined`));
+ gen.if((0, codegen_1._)`${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._)`${it.evaluated}.items`, (0, codegen_1._)`undefined`));
+ }
+ function funcSourceUrl(schema, opts) {
+ const schId = typeof schema == "object" && schema[opts.schemaId];
+ return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._)`/*# sourceURL=${schId} */` : codegen_1.nil;
+ }
+ function subschemaCode(it, valid) {
+ if (isSchemaObj(it)) {
+ checkKeywords(it);
+ if (schemaCxtHasRules(it)) {
+ subSchemaObjCode(it, valid);
+ return;
+ }
+ }
+ (0, boolSchema_1.boolOrEmptySchema)(it, valid);
+ }
+ function schemaCxtHasRules({ schema, self: self2 }) {
+ if (typeof schema == "boolean")
+ return !schema;
+ for (const key in schema)
+ if (self2.RULES.all[key])
+ return true;
+ return false;
+ }
+ function isSchemaObj(it) {
+ return typeof it.schema != "boolean";
+ }
+ function subSchemaObjCode(it, valid) {
+ const { schema, gen, opts } = it;
+ if (opts.$comment && schema.$comment)
+ commentKeyword(it);
+ updateContext(it);
+ checkAsyncSchema(it);
+ const errsCount = gen.const("_errs", names_1.default.errors);
+ typeAndKeywords(it, errsCount);
+ gen.var(valid, (0, codegen_1._)`${errsCount} === ${names_1.default.errors}`);
+ }
+ function checkKeywords(it) {
+ (0, util_1.checkUnknownRules)(it);
+ checkRefsAndKeywords(it);
+ }
+ function typeAndKeywords(it, errsCount) {
+ if (it.opts.jtd)
+ return schemaKeywords(it, [], false, errsCount);
+ const types = (0, dataType_1.getSchemaTypes)(it.schema);
+ const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);
+ schemaKeywords(it, types, !checkedTypes, errsCount);
+ }
+ function checkRefsAndKeywords(it) {
+ const { schema, errSchemaPath, opts, self: self2 } = it;
+ if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self2.RULES)) {
+ self2.logger.warn(`$ref: keywords ignored in schema at path "${errSchemaPath}"`);
+ }
+ }
+ function checkNoDefault(it) {
+ const { schema, opts } = it;
+ if (schema.default !== void 0 && opts.useDefaults && opts.strictSchema) {
+ (0, util_1.checkStrictMode)(it, "default is ignored in the schema root");
+ }
+ }
+ function updateContext(it) {
+ const schId = it.schema[it.opts.schemaId];
+ if (schId)
+ it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);
+ }
+ function checkAsyncSchema(it) {
+ if (it.schema.$async && !it.schemaEnv.$async)
+ throw new Error("async schema in sync schema");
+ }
+ function commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {
+ const msg = schema.$comment;
+ if (opts.$comment === true) {
+ gen.code((0, codegen_1._)`${names_1.default.self}.logger.log(${msg})`);
+ } else if (typeof opts.$comment == "function") {
+ const schemaPath = (0, codegen_1.str)`${errSchemaPath}/$comment`;
+ const rootName = gen.scopeValue("root", { ref: schemaEnv.root });
+ gen.code((0, codegen_1._)`${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);
+ }
+ }
+ function returnResults(it) {
+ const { gen, schemaEnv, validateName, ValidationError, opts } = it;
+ if (schemaEnv.$async) {
+ gen.if((0, codegen_1._)`${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._)`new ${ValidationError}(${names_1.default.vErrors})`));
+ } else {
+ gen.assign((0, codegen_1._)`${validateName}.errors`, names_1.default.vErrors);
+ if (opts.unevaluated)
+ assignEvaluated(it);
+ gen.return((0, codegen_1._)`${names_1.default.errors} === 0`);
+ }
+ }
+ function assignEvaluated({ gen, evaluated, props, items }) {
+ if (props instanceof codegen_1.Name)
+ gen.assign((0, codegen_1._)`${evaluated}.props`, props);
+ if (items instanceof codegen_1.Name)
+ gen.assign((0, codegen_1._)`${evaluated}.items`, items);
+ }
+ function schemaKeywords(it, types, typeErrors, errsCount) {
+ const { gen, schema, data, allErrors, opts, self: self2 } = it;
+ const { RULES } = self2;
+ if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {
+ gen.block(() => keywordCode(it, "$ref", RULES.all.$ref.definition));
+ return;
+ }
+ if (!opts.jtd)
+ checkStrictTypes(it, types);
+ gen.block(() => {
+ for (const group of RULES.rules)
+ groupKeywords(group);
+ groupKeywords(RULES.post);
+ });
+ function groupKeywords(group) {
+ if (!(0, applicability_1.shouldUseGroup)(schema, group))
+ return;
+ if (group.type) {
+ gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));
+ iterateKeywords(it, group);
+ if (types.length === 1 && types[0] === group.type && typeErrors) {
+ gen.else();
+ (0, dataType_2.reportTypeError)(it);
+ }
+ gen.endIf();
+ } else {
+ iterateKeywords(it, group);
+ }
+ if (!allErrors)
+ gen.if((0, codegen_1._)`${names_1.default.errors} === ${errsCount || 0}`);
+ }
+ }
+ function iterateKeywords(it, group) {
+ const { gen, schema, opts: { useDefaults } } = it;
+ if (useDefaults)
+ (0, defaults_1.assignDefaults)(it, group.type);
+ gen.block(() => {
+ for (const rule of group.rules) {
+ if ((0, applicability_1.shouldUseRule)(schema, rule)) {
+ keywordCode(it, rule.keyword, rule.definition, group.type);
+ }
+ }
+ });
+ }
+ function checkStrictTypes(it, types) {
+ if (it.schemaEnv.meta || !it.opts.strictTypes)
+ return;
+ checkContextTypes(it, types);
+ if (!it.opts.allowUnionTypes)
+ checkMultipleTypes(it, types);
+ checkKeywordTypes(it, it.dataTypes);
+ }
+ function checkContextTypes(it, types) {
+ if (!types.length)
+ return;
+ if (!it.dataTypes.length) {
+ it.dataTypes = types;
+ return;
+ }
+ types.forEach((t) => {
+ if (!includesType(it.dataTypes, t)) {
+ strictTypesError(it, `type "${t}" not allowed by context "${it.dataTypes.join(",")}"`);
+ }
+ });
+ narrowSchemaTypes(it, types);
+ }
+ function checkMultipleTypes(it, ts) {
+ if (ts.length > 1 && !(ts.length === 2 && ts.includes("null"))) {
+ strictTypesError(it, "use allowUnionTypes to allow union type keyword");
+ }
+ }
+ function checkKeywordTypes(it, ts) {
+ const rules = it.self.RULES.all;
+ for (const keyword in rules) {
+ const rule = rules[keyword];
+ if (typeof rule == "object" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {
+ const { type } = rule.definition;
+ if (type.length && !type.some((t) => hasApplicableType(ts, t))) {
+ strictTypesError(it, `missing type "${type.join(",")}" for keyword "${keyword}"`);
+ }
+ }
+ }
+ }
+ function hasApplicableType(schTs, kwdT) {
+ return schTs.includes(kwdT) || kwdT === "number" && schTs.includes("integer");
+ }
+ function includesType(ts, t) {
+ return ts.includes(t) || t === "integer" && ts.includes("number");
+ }
+ function narrowSchemaTypes(it, withTypes) {
+ const ts = [];
+ for (const t of it.dataTypes) {
+ if (includesType(withTypes, t))
+ ts.push(t);
+ else if (withTypes.includes("integer") && t === "number")
+ ts.push("integer");
+ }
+ it.dataTypes = ts;
+ }
+ function strictTypesError(it, msg) {
+ const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;
+ msg += ` at "${schemaPath}" (strictTypes)`;
+ (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);
+ }
+ var KeywordCxt = class {
+ constructor(it, def, keyword) {
+ (0, keyword_1.validateKeywordUsage)(it, def, keyword);
+ this.gen = it.gen;
+ this.allErrors = it.allErrors;
+ this.keyword = keyword;
+ this.data = it.data;
+ this.schema = it.schema[keyword];
+ this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;
+ this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);
+ this.schemaType = def.schemaType;
+ this.parentSchema = it.schema;
+ this.params = {};
+ this.it = it;
+ this.def = def;
+ if (this.$data) {
+ this.schemaCode = it.gen.const("vSchema", getData(this.$data, it));
+ } else {
+ this.schemaCode = this.schemaValue;
+ if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {
+ throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);
+ }
+ }
+ if ("code" in def ? def.trackErrors : def.errors !== false) {
+ this.errsCount = it.gen.const("_errs", names_1.default.errors);
+ }
+ }
+ result(condition, successAction, failAction) {
+ this.failResult((0, codegen_1.not)(condition), successAction, failAction);
+ }
+ failResult(condition, successAction, failAction) {
+ this.gen.if(condition);
+ if (failAction)
+ failAction();
+ else
+ this.error();
+ if (successAction) {
+ this.gen.else();
+ successAction();
+ if (this.allErrors)
+ this.gen.endIf();
+ } else {
+ if (this.allErrors)
+ this.gen.endIf();
+ else
+ this.gen.else();
+ }
+ }
+ pass(condition, failAction) {
+ this.failResult((0, codegen_1.not)(condition), void 0, failAction);
+ }
+ fail(condition) {
+ if (condition === void 0) {
+ this.error();
+ if (!this.allErrors)
+ this.gen.if(false);
+ return;
+ }
+ this.gen.if(condition);
+ this.error();
+ if (this.allErrors)
+ this.gen.endIf();
+ else
+ this.gen.else();
+ }
+ fail$data(condition) {
+ if (!this.$data)
+ return this.fail(condition);
+ const { schemaCode } = this;
+ this.fail((0, codegen_1._)`${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);
+ }
+ error(append, errorParams, errorPaths) {
+ if (errorParams) {
+ this.setParams(errorParams);
+ this._error(append, errorPaths);
+ this.setParams({});
+ return;
+ }
+ this._error(append, errorPaths);
+ }
+ _error(append, errorPaths) {
+ ;
+ (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);
+ }
+ $dataError() {
+ (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);
+ }
+ reset() {
+ if (this.errsCount === void 0)
+ throw new Error('add "trackErrors" to keyword definition');
+ (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);
+ }
+ ok(cond) {
+ if (!this.allErrors)
+ this.gen.if(cond);
+ }
+ setParams(obj, assign) {
+ if (assign)
+ Object.assign(this.params, obj);
+ else
+ this.params = obj;
+ }
+ block$data(valid, codeBlock, $dataValid = codegen_1.nil) {
+ this.gen.block(() => {
+ this.check$data(valid, $dataValid);
+ codeBlock();
+ });
+ }
+ check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {
+ if (!this.$data)
+ return;
+ const { gen, schemaCode, schemaType, def } = this;
+ gen.if((0, codegen_1.or)((0, codegen_1._)`${schemaCode} === undefined`, $dataValid));
+ if (valid !== codegen_1.nil)
+ gen.assign(valid, true);
+ if (schemaType.length || def.validateSchema) {
+ gen.elseIf(this.invalid$data());
+ this.$dataError();
+ if (valid !== codegen_1.nil)
+ gen.assign(valid, false);
+ }
+ gen.else();
+ }
+ invalid$data() {
+ const { gen, schemaCode, schemaType, def, it } = this;
+ return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());
+ function wrong$DataType() {
+ if (schemaType.length) {
+ if (!(schemaCode instanceof codegen_1.Name))
+ throw new Error("ajv implementation error");
+ const st = Array.isArray(schemaType) ? schemaType : [schemaType];
+ return (0, codegen_1._)`${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;
+ }
+ return codegen_1.nil;
+ }
+ function invalid$DataSchema() {
+ if (def.validateSchema) {
+ const validateSchemaRef = gen.scopeValue("validate$data", { ref: def.validateSchema });
+ return (0, codegen_1._)`!${validateSchemaRef}(${schemaCode})`;
+ }
+ return codegen_1.nil;
+ }
+ }
+ subschema(appl, valid) {
+ const subschema = (0, subschema_1.getSubschema)(this.it, appl);
+ (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);
+ (0, subschema_1.extendSubschemaMode)(subschema, appl);
+ const nextContext = { ...this.it, ...subschema, items: void 0, props: void 0 };
+ subschemaCode(nextContext, valid);
+ return nextContext;
+ }
+ mergeEvaluated(schemaCxt, toName) {
+ const { it, gen } = this;
+ if (!it.opts.unevaluated)
+ return;
+ if (it.props !== true && schemaCxt.props !== void 0) {
+ it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);
+ }
+ if (it.items !== true && schemaCxt.items !== void 0) {
+ it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);
+ }
+ }
+ mergeValidEvaluated(schemaCxt, valid) {
+ const { it, gen } = this;
+ if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {
+ gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));
+ return true;
+ }
+ }
+ };
+ exports2.KeywordCxt = KeywordCxt;
+ function keywordCode(it, keyword, def, ruleType) {
+ const cxt = new KeywordCxt(it, def, keyword);
+ if ("code" in def) {
+ def.code(cxt, ruleType);
+ } else if (cxt.$data && def.validate) {
+ (0, keyword_1.funcKeywordCode)(cxt, def);
+ } else if ("macro" in def) {
+ (0, keyword_1.macroKeywordCode)(cxt, def);
+ } else if (def.compile || def.validate) {
+ (0, keyword_1.funcKeywordCode)(cxt, def);
+ }
+ }
+ var JSON_POINTER = /^\/(?:[^~]|~0|~1)*$/;
+ var RELATIVE_JSON_POINTER = /^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;
+ function getData($data, { dataLevel, dataNames, dataPathArr }) {
+ let jsonPointer;
+ let data;
+ if ($data === "")
+ return names_1.default.rootData;
+ if ($data[0] === "/") {
+ if (!JSON_POINTER.test($data))
+ throw new Error(`Invalid JSON-pointer: ${$data}`);
+ jsonPointer = $data;
+ data = names_1.default.rootData;
+ } else {
+ const matches = RELATIVE_JSON_POINTER.exec($data);
+ if (!matches)
+ throw new Error(`Invalid JSON-pointer: ${$data}`);
+ const up = +matches[1];
+ jsonPointer = matches[2];
+ if (jsonPointer === "#") {
+ if (up >= dataLevel)
+ throw new Error(errorMsg("property/index", up));
+ return dataPathArr[dataLevel - up];
+ }
+ if (up > dataLevel)
+ throw new Error(errorMsg("data", up));
+ data = dataNames[dataLevel - up];
+ if (!jsonPointer)
+ return data;
+ }
+ let expr = data;
+ const segments = jsonPointer.split("/");
+ for (const segment of segments) {
+ if (segment) {
+ data = (0, codegen_1._)`${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;
+ expr = (0, codegen_1._)`${expr} && ${data}`;
+ }
+ }
+ return expr;
+ function errorMsg(pointerType, up) {
+ return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;
+ }
+ }
+ exports2.getData = getData;
+ }
+});
+
+// node_modules/ajv/dist/runtime/validation_error.js
+var require_validation_error = __commonJS({
+ "node_modules/ajv/dist/runtime/validation_error.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var ValidationError = class extends Error {
+ constructor(errors) {
+ super("validation failed");
+ this.errors = errors;
+ this.ajv = this.validation = true;
+ }
+ };
+ exports2.default = ValidationError;
+ }
+});
+
+// node_modules/ajv/dist/compile/ref_error.js
+var require_ref_error = __commonJS({
+ "node_modules/ajv/dist/compile/ref_error.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var resolve_1 = require_resolve();
+ var MissingRefError = class extends Error {
+ constructor(resolver, baseId, ref, msg) {
+ super(msg || `can't resolve reference ${ref} from id ${baseId}`);
+ this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);
+ this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));
+ }
+ };
+ exports2.default = MissingRefError;
+ }
+});
+
+// node_modules/ajv/dist/compile/index.js
+var require_compile = __commonJS({
+ "node_modules/ajv/dist/compile/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.resolveSchema = exports2.getCompilingSchema = exports2.resolveRef = exports2.compileSchema = exports2.SchemaEnv = void 0;
+ var codegen_1 = require_codegen();
+ var validation_error_1 = require_validation_error();
+ var names_1 = require_names();
+ var resolve_1 = require_resolve();
+ var util_1 = require_util();
+ var validate_1 = require_validate();
+ var SchemaEnv = class {
+ constructor(env) {
+ var _a;
+ this.refs = {};
+ this.dynamicAnchors = {};
+ let schema;
+ if (typeof env.schema == "object")
+ schema = env.schema;
+ this.schema = env.schema;
+ this.schemaId = env.schemaId;
+ this.root = env.root || this;
+ this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || "$id"]);
+ this.schemaPath = env.schemaPath;
+ this.localRefs = env.localRefs;
+ this.meta = env.meta;
+ this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;
+ this.refs = {};
+ }
+ };
+ exports2.SchemaEnv = SchemaEnv;
+ function compileSchema(sch) {
+ const _sch = getCompilingSchema.call(this, sch);
+ if (_sch)
+ return _sch;
+ const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId);
+ const { es5, lines } = this.opts.code;
+ const { ownProperties } = this.opts;
+ const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });
+ let _ValidationError;
+ if (sch.$async) {
+ _ValidationError = gen.scopeValue("Error", {
+ ref: validation_error_1.default,
+ code: (0, codegen_1._)`require("ajv/dist/runtime/validation_error").default`
+ });
+ }
+ const validateName = gen.scopeName("validate");
+ sch.validateName = validateName;
+ const schemaCxt = {
+ gen,
+ allErrors: this.opts.allErrors,
+ data: names_1.default.data,
+ parentData: names_1.default.parentData,
+ parentDataProperty: names_1.default.parentDataProperty,
+ dataNames: [names_1.default.data],
+ dataPathArr: [codegen_1.nil],
+ // TODO can its length be used as dataLevel if nil is removed?
+ dataLevel: 0,
+ dataTypes: [],
+ definedProperties: /* @__PURE__ */ new Set(),
+ topSchemaRef: gen.scopeValue("schema", this.opts.code.source === true ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) } : { ref: sch.schema }),
+ validateName,
+ ValidationError: _ValidationError,
+ schema: sch.schema,
+ schemaEnv: sch,
+ rootId,
+ baseId: sch.baseId || rootId,
+ schemaPath: codegen_1.nil,
+ errSchemaPath: sch.schemaPath || (this.opts.jtd ? "" : "#"),
+ errorPath: (0, codegen_1._)`""`,
+ opts: this.opts,
+ self: this
+ };
+ let sourceCode;
+ try {
+ this._compilations.add(sch);
+ (0, validate_1.validateFunctionCode)(schemaCxt);
+ gen.optimize(this.opts.code.optimize);
+ const validateCode = gen.toString();
+ sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;
+ if (this.opts.code.process)
+ sourceCode = this.opts.code.process(sourceCode, sch);
+ const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);
+ const validate = makeValidate(this, this.scope.get());
+ this.scope.value(validateName, { ref: validate });
+ validate.errors = null;
+ validate.schema = sch.schema;
+ validate.schemaEnv = sch;
+ if (sch.$async)
+ validate.$async = true;
+ if (this.opts.code.source === true) {
+ validate.source = { validateName, validateCode, scopeValues: gen._values };
+ }
+ if (this.opts.unevaluated) {
+ const { props, items } = schemaCxt;
+ validate.evaluated = {
+ props: props instanceof codegen_1.Name ? void 0 : props,
+ items: items instanceof codegen_1.Name ? void 0 : items,
+ dynamicProps: props instanceof codegen_1.Name,
+ dynamicItems: items instanceof codegen_1.Name
+ };
+ if (validate.source)
+ validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);
+ }
+ sch.validate = validate;
+ return sch;
+ } catch (e) {
+ delete sch.validate;
+ delete sch.validateName;
+ if (sourceCode)
+ this.logger.error("Error compiling schema, function code:", sourceCode);
+ throw e;
+ } finally {
+ this._compilations.delete(sch);
+ }
+ }
+ exports2.compileSchema = compileSchema;
+ function resolveRef(root, baseId, ref) {
+ var _a;
+ ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);
+ const schOrFunc = root.refs[ref];
+ if (schOrFunc)
+ return schOrFunc;
+ let _sch = resolve.call(this, root, ref);
+ if (_sch === void 0) {
+ const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref];
+ const { schemaId } = this.opts;
+ if (schema)
+ _sch = new SchemaEnv({ schema, schemaId, root, baseId });
+ }
+ if (_sch === void 0)
+ return;
+ return root.refs[ref] = inlineOrCompile.call(this, _sch);
+ }
+ exports2.resolveRef = resolveRef;
+ function inlineOrCompile(sch) {
+ if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))
+ return sch.schema;
+ return sch.validate ? sch : compileSchema.call(this, sch);
+ }
+ function getCompilingSchema(schEnv) {
+ for (const sch of this._compilations) {
+ if (sameSchemaEnv(sch, schEnv))
+ return sch;
+ }
+ }
+ exports2.getCompilingSchema = getCompilingSchema;
+ function sameSchemaEnv(s1, s2) {
+ return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;
+ }
+ function resolve(root, ref) {
+ let sch;
+ while (typeof (sch = this.refs[ref]) == "string")
+ ref = sch;
+ return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);
+ }
+ function resolveSchema(root, ref) {
+ const p = this.opts.uriResolver.parse(ref);
+ const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);
+ let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, void 0);
+ if (Object.keys(root.schema).length > 0 && refPath === baseId) {
+ return getJsonPointer.call(this, p, root);
+ }
+ const id = (0, resolve_1.normalizeId)(refPath);
+ const schOrRef = this.refs[id] || this.schemas[id];
+ if (typeof schOrRef == "string") {
+ const sch = resolveSchema.call(this, root, schOrRef);
+ if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== "object")
+ return;
+ return getJsonPointer.call(this, p, sch);
+ }
+ if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== "object")
+ return;
+ if (!schOrRef.validate)
+ compileSchema.call(this, schOrRef);
+ if (id === (0, resolve_1.normalizeId)(ref)) {
+ const { schema } = schOrRef;
+ const { schemaId } = this.opts;
+ const schId = schema[schemaId];
+ if (schId)
+ baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);
+ return new SchemaEnv({ schema, schemaId, root, baseId });
+ }
+ return getJsonPointer.call(this, p, schOrRef);
+ }
+ exports2.resolveSchema = resolveSchema;
+ var PREVENT_SCOPE_CHANGE = /* @__PURE__ */ new Set([
+ "properties",
+ "patternProperties",
+ "enum",
+ "dependencies",
+ "definitions"
+ ]);
+ function getJsonPointer(parsedRef, { baseId, schema, root }) {
+ var _a;
+ if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== "/")
+ return;
+ for (const part of parsedRef.fragment.slice(1).split("/")) {
+ if (typeof schema === "boolean")
+ return;
+ const partSchema = schema[(0, util_1.unescapeFragment)(part)];
+ if (partSchema === void 0)
+ return;
+ schema = partSchema;
+ const schId = typeof schema === "object" && schema[this.opts.schemaId];
+ if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {
+ baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);
+ }
+ }
+ let env;
+ if (typeof schema != "boolean" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {
+ const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);
+ env = resolveSchema.call(this, root, $ref);
+ }
+ const { schemaId } = this.opts;
+ env = env || new SchemaEnv({ schema, schemaId, root, baseId });
+ if (env.schema !== env.root.schema)
+ return env;
+ return void 0;
+ }
+ }
+});
+
+// node_modules/ajv/dist/refs/data.json
+var require_data = __commonJS({
+ "node_modules/ajv/dist/refs/data.json"(exports2, module2) {
+ module2.exports = {
+ $id: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",
+ description: "Meta-schema for $data reference (JSON AnySchema extension proposal)",
+ type: "object",
+ required: ["$data"],
+ properties: {
+ $data: {
+ type: "string",
+ anyOf: [{ format: "relative-json-pointer" }, { format: "json-pointer" }]
+ }
+ },
+ additionalProperties: false
+ };
+ }
+});
+
+// node_modules/fast-uri/lib/scopedChars.js
+var require_scopedChars = __commonJS({
+ "node_modules/fast-uri/lib/scopedChars.js"(exports2, module2) {
+ "use strict";
+ var HEX = {
+ 0: 0,
+ 1: 1,
+ 2: 2,
+ 3: 3,
+ 4: 4,
+ 5: 5,
+ 6: 6,
+ 7: 7,
+ 8: 8,
+ 9: 9,
+ a: 10,
+ A: 10,
+ b: 11,
+ B: 11,
+ c: 12,
+ C: 12,
+ d: 13,
+ D: 13,
+ e: 14,
+ E: 14,
+ f: 15,
+ F: 15
+ };
+ module2.exports = {
+ HEX
+ };
+ }
+});
+
+// node_modules/fast-uri/lib/utils.js
+var require_utils14 = __commonJS({
+ "node_modules/fast-uri/lib/utils.js"(exports2, module2) {
+ "use strict";
+ var { HEX } = require_scopedChars();
+ function normalizeIPv4(host) {
+ if (findToken(host, ".") < 3) {
+ return { host, isIPV4: false };
+ }
+ const matches = host.match(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u) || [];
+ const [address] = matches;
+ if (address) {
+ return { host: stripLeadingZeros(address, "."), isIPV4: true };
+ } else {
+ return { host, isIPV4: false };
+ }
+ }
+ function stringArrayToHexStripped(input, keepZero = false) {
+ let acc = "";
+ let strip = true;
+ for (const c of input) {
+ if (HEX[c] === void 0)
+ return void 0;
+ if (c !== "0" && strip === true)
+ strip = false;
+ if (!strip)
+ acc += c;
+ }
+ if (keepZero && acc.length === 0)
+ acc = "0";
+ return acc;
+ }
+ function getIPV6(input) {
+ let tokenCount = 0;
+ const output = { error: false, address: "", zone: "" };
+ const address = [];
+ const buffer = [];
+ let isZone = false;
+ let endipv6Encountered = false;
+ let endIpv6 = false;
+ function consume() {
+ if (buffer.length) {
+ if (isZone === false) {
+ const hex = stringArrayToHexStripped(buffer);
+ if (hex !== void 0) {
+ address.push(hex);
+ } else {
+ output.error = true;
+ return false;
+ }
+ }
+ buffer.length = 0;
+ }
+ return true;
+ }
+ for (let i = 0; i < input.length; i++) {
+ const cursor = input[i];
+ if (cursor === "[" || cursor === "]") {
+ continue;
+ }
+ if (cursor === ":") {
+ if (endipv6Encountered === true) {
+ endIpv6 = true;
+ }
+ if (!consume()) {
+ break;
+ }
+ tokenCount++;
+ address.push(":");
+ if (tokenCount > 7) {
+ output.error = true;
+ break;
+ }
+ if (i - 1 >= 0 && input[i - 1] === ":") {
+ endipv6Encountered = true;
+ }
+ continue;
+ } else if (cursor === "%") {
+ if (!consume()) {
+ break;
+ }
+ isZone = true;
+ } else {
+ buffer.push(cursor);
+ continue;
+ }
+ }
+ if (buffer.length) {
+ if (isZone) {
+ output.zone = buffer.join("");
+ } else if (endIpv6) {
+ address.push(buffer.join(""));
+ } else {
+ address.push(stringArrayToHexStripped(buffer));
+ }
+ }
+ output.address = address.join("");
+ return output;
+ }
+ function normalizeIPv6(host, opts = {}) {
+ if (findToken(host, ":") < 2) {
+ return { host, isIPV6: false };
+ }
+ const ipv6 = getIPV6(host);
+ if (!ipv6.error) {
+ let newHost = ipv6.address;
+ let escapedHost = ipv6.address;
+ if (ipv6.zone) {
+ newHost += "%" + ipv6.zone;
+ escapedHost += "%25" + ipv6.zone;
+ }
+ return { host: newHost, escapedHost, isIPV6: true };
+ } else {
+ return { host, isIPV6: false };
+ }
+ }
+ function stripLeadingZeros(str, token) {
+ let out = "";
+ let skip = true;
+ const l = str.length;
+ for (let i = 0; i < l; i++) {
+ const c = str[i];
+ if (c === "0" && skip) {
+ if (i + 1 <= l && str[i + 1] === token || i + 1 === l) {
+ out += c;
+ skip = false;
+ }
+ } else {
+ if (c === token) {
+ skip = true;
+ } else {
+ skip = false;
+ }
+ out += c;
+ }
+ }
+ return out;
+ }
+ function findToken(str, token) {
+ let ind = 0;
+ for (let i = 0; i < str.length; i++) {
+ if (str[i] === token)
+ ind++;
+ }
+ return ind;
+ }
+ var RDS1 = /^\.\.?\//u;
+ var RDS2 = /^\/\.(?:\/|$)/u;
+ var RDS3 = /^\/\.\.(?:\/|$)/u;
+ var RDS5 = /^\/?(?:.|\n)*?(?=\/|$)/u;
+ function removeDotSegments(input) {
+ const output = [];
+ while (input.length) {
+ if (input.match(RDS1)) {
+ input = input.replace(RDS1, "");
+ } else if (input.match(RDS2)) {
+ input = input.replace(RDS2, "/");
+ } else if (input.match(RDS3)) {
+ input = input.replace(RDS3, "/");
+ output.pop();
+ } else if (input === "." || input === "..") {
+ input = "";
+ } else {
+ const im = input.match(RDS5);
+ if (im) {
+ const s = im[0];
+ input = input.slice(s.length);
+ output.push(s);
+ } else {
+ throw new Error("Unexpected dot segment condition");
+ }
+ }
+ }
+ return output.join("");
+ }
+ function normalizeComponentEncoding(components, esc) {
+ const func = esc !== true ? escape : unescape;
+ if (components.scheme !== void 0) {
+ components.scheme = func(components.scheme);
+ }
+ if (components.userinfo !== void 0) {
+ components.userinfo = func(components.userinfo);
+ }
+ if (components.host !== void 0) {
+ components.host = func(components.host);
+ }
+ if (components.path !== void 0) {
+ components.path = func(components.path);
+ }
+ if (components.query !== void 0) {
+ components.query = func(components.query);
+ }
+ if (components.fragment !== void 0) {
+ components.fragment = func(components.fragment);
+ }
+ return components;
+ }
+ function recomposeAuthority(components, options) {
+ const uriTokens = [];
+ if (components.userinfo !== void 0) {
+ uriTokens.push(components.userinfo);
+ uriTokens.push("@");
+ }
+ if (components.host !== void 0) {
+ let host = unescape(components.host);
+ const ipV4res = normalizeIPv4(host);
+ if (ipV4res.isIPV4) {
+ host = ipV4res.host;
+ } else {
+ const ipV6res = normalizeIPv6(ipV4res.host, { isIPV4: false });
+ if (ipV6res.isIPV6 === true) {
+ host = `[${ipV6res.escapedHost}]`;
+ } else {
+ host = components.host;
+ }
+ }
+ uriTokens.push(host);
+ }
+ if (typeof components.port === "number" || typeof components.port === "string") {
+ uriTokens.push(":");
+ uriTokens.push(String(components.port));
+ }
+ return uriTokens.length ? uriTokens.join("") : void 0;
+ }
+ module2.exports = {
+ recomposeAuthority,
+ normalizeComponentEncoding,
+ removeDotSegments,
+ normalizeIPv4,
+ normalizeIPv6,
+ stringArrayToHexStripped
+ };
+ }
+});
+
+// node_modules/fast-uri/lib/schemes.js
+var require_schemes = __commonJS({
+ "node_modules/fast-uri/lib/schemes.js"(exports2, module2) {
+ "use strict";
+ var UUID_REG = /^[\da-f]{8}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{12}$/iu;
+ var URN_REG = /([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;
+ function isSecure(wsComponents) {
+ return typeof wsComponents.secure === "boolean" ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === "wss";
+ }
+ function httpParse(components) {
+ if (!components.host) {
+ components.error = components.error || "HTTP URIs must have a host.";
+ }
+ return components;
+ }
+ function httpSerialize(components) {
+ const secure = String(components.scheme).toLowerCase() === "https";
+ if (components.port === (secure ? 443 : 80) || components.port === "") {
+ components.port = void 0;
+ }
+ if (!components.path) {
+ components.path = "/";
+ }
+ return components;
+ }
+ function wsParse(wsComponents) {
+ wsComponents.secure = isSecure(wsComponents);
+ wsComponents.resourceName = (wsComponents.path || "/") + (wsComponents.query ? "?" + wsComponents.query : "");
+ wsComponents.path = void 0;
+ wsComponents.query = void 0;
+ return wsComponents;
+ }
+ function wsSerialize(wsComponents) {
+ if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === "") {
+ wsComponents.port = void 0;
+ }
+ if (typeof wsComponents.secure === "boolean") {
+ wsComponents.scheme = wsComponents.secure ? "wss" : "ws";
+ wsComponents.secure = void 0;
+ }
+ if (wsComponents.resourceName) {
+ const [path, query] = wsComponents.resourceName.split("?");
+ wsComponents.path = path && path !== "/" ? path : void 0;
+ wsComponents.query = query;
+ wsComponents.resourceName = void 0;
+ }
+ wsComponents.fragment = void 0;
+ return wsComponents;
+ }
+ function urnParse(urnComponents, options) {
+ if (!urnComponents.path) {
+ urnComponents.error = "URN can not be parsed";
+ return urnComponents;
+ }
+ const matches = urnComponents.path.match(URN_REG);
+ if (matches) {
+ const scheme = options.scheme || urnComponents.scheme || "urn";
+ urnComponents.nid = matches[1].toLowerCase();
+ urnComponents.nss = matches[2];
+ const urnScheme = `${scheme}:${options.nid || urnComponents.nid}`;
+ const schemeHandler = SCHEMES[urnScheme];
+ urnComponents.path = void 0;
+ if (schemeHandler) {
+ urnComponents = schemeHandler.parse(urnComponents, options);
+ }
+ } else {
+ urnComponents.error = urnComponents.error || "URN can not be parsed.";
+ }
+ return urnComponents;
+ }
+ function urnSerialize(urnComponents, options) {
+ const scheme = options.scheme || urnComponents.scheme || "urn";
+ const nid = urnComponents.nid.toLowerCase();
+ const urnScheme = `${scheme}:${options.nid || nid}`;
+ const schemeHandler = SCHEMES[urnScheme];
+ if (schemeHandler) {
+ urnComponents = schemeHandler.serialize(urnComponents, options);
+ }
+ const uriComponents = urnComponents;
+ const nss = urnComponents.nss;
+ uriComponents.path = `${nid || options.nid}:${nss}`;
+ options.skipEscape = true;
+ return uriComponents;
+ }
+ function urnuuidParse(urnComponents, options) {
+ const uuidComponents = urnComponents;
+ uuidComponents.uuid = uuidComponents.nss;
+ uuidComponents.nss = void 0;
+ if (!options.tolerant && (!uuidComponents.uuid || !UUID_REG.test(uuidComponents.uuid))) {
+ uuidComponents.error = uuidComponents.error || "UUID is not valid.";
+ }
+ return uuidComponents;
+ }
+ function urnuuidSerialize(uuidComponents) {
+ const urnComponents = uuidComponents;
+ urnComponents.nss = (uuidComponents.uuid || "").toLowerCase();
+ return urnComponents;
+ }
+ var http = {
+ scheme: "http",
+ domainHost: true,
+ parse: httpParse,
+ serialize: httpSerialize
+ };
+ var https = {
+ scheme: "https",
+ domainHost: http.domainHost,
+ parse: httpParse,
+ serialize: httpSerialize
+ };
+ var ws = {
+ scheme: "ws",
+ domainHost: true,
+ parse: wsParse,
+ serialize: wsSerialize
+ };
+ var wss = {
+ scheme: "wss",
+ domainHost: ws.domainHost,
+ parse: ws.parse,
+ serialize: ws.serialize
+ };
+ var urn = {
+ scheme: "urn",
+ parse: urnParse,
+ serialize: urnSerialize,
+ skipNormalize: true
+ };
+ var urnuuid = {
+ scheme: "urn:uuid",
+ parse: urnuuidParse,
+ serialize: urnuuidSerialize,
+ skipNormalize: true
+ };
+ var SCHEMES = {
+ http,
+ https,
+ ws,
+ wss,
+ urn,
+ "urn:uuid": urnuuid
+ };
+ module2.exports = SCHEMES;
+ }
+});
+
+// node_modules/fast-uri/index.js
+var require_fast_uri = __commonJS({
+ "node_modules/fast-uri/index.js"(exports2, module2) {
+ "use strict";
+ var { normalizeIPv6, normalizeIPv4, removeDotSegments, recomposeAuthority, normalizeComponentEncoding } = require_utils14();
+ var SCHEMES = require_schemes();
+ function normalize(uri, options) {
+ if (typeof uri === "string") {
+ uri = serialize(parse(uri, options), options);
+ } else if (typeof uri === "object") {
+ uri = parse(serialize(uri, options), options);
+ }
+ return uri;
+ }
+ function resolve(baseURI, relativeURI, options) {
+ const schemelessOptions = Object.assign({ scheme: "null" }, options);
+ const resolved = resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true);
+ return serialize(resolved, { ...schemelessOptions, skipEscape: true });
+ }
+ function resolveComponents(base, relative, options, skipNormalization) {
+ const target = {};
+ if (!skipNormalization) {
+ base = parse(serialize(base, options), options);
+ relative = parse(serialize(relative, options), options);
+ }
+ options = options || {};
+ if (!options.tolerant && relative.scheme) {
+ target.scheme = relative.scheme;
+ target.userinfo = relative.userinfo;
+ target.host = relative.host;
+ target.port = relative.port;
+ target.path = removeDotSegments(relative.path || "");
+ target.query = relative.query;
+ } else {
+ if (relative.userinfo !== void 0 || relative.host !== void 0 || relative.port !== void 0) {
+ target.userinfo = relative.userinfo;
+ target.host = relative.host;
+ target.port = relative.port;
+ target.path = removeDotSegments(relative.path || "");
+ target.query = relative.query;
+ } else {
+ if (!relative.path) {
+ target.path = base.path;
+ if (relative.query !== void 0) {
+ target.query = relative.query;
+ } else {
+ target.query = base.query;
+ }
+ } else {
+ if (relative.path.charAt(0) === "/") {
+ target.path = removeDotSegments(relative.path);
+ } else {
+ if ((base.userinfo !== void 0 || base.host !== void 0 || base.port !== void 0) && !base.path) {
+ target.path = "/" + relative.path;
+ } else if (!base.path) {
+ target.path = relative.path;
+ } else {
+ target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative.path;
+ }
+ target.path = removeDotSegments(target.path);
+ }
+ target.query = relative.query;
+ }
+ target.userinfo = base.userinfo;
+ target.host = base.host;
+ target.port = base.port;
+ }
+ target.scheme = base.scheme;
+ }
+ target.fragment = relative.fragment;
+ return target;
+ }
+ function equal(uriA, uriB, options) {
+ if (typeof uriA === "string") {
+ uriA = unescape(uriA);
+ uriA = serialize(normalizeComponentEncoding(parse(uriA, options), true), { ...options, skipEscape: true });
+ } else if (typeof uriA === "object") {
+ uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true });
+ }
+ if (typeof uriB === "string") {
+ uriB = unescape(uriB);
+ uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), { ...options, skipEscape: true });
+ } else if (typeof uriB === "object") {
+ uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true });
+ }
+ return uriA.toLowerCase() === uriB.toLowerCase();
+ }
+ function serialize(cmpts, opts) {
+ const components = {
+ host: cmpts.host,
+ scheme: cmpts.scheme,
+ userinfo: cmpts.userinfo,
+ port: cmpts.port,
+ path: cmpts.path,
+ query: cmpts.query,
+ nid: cmpts.nid,
+ nss: cmpts.nss,
+ uuid: cmpts.uuid,
+ fragment: cmpts.fragment,
+ reference: cmpts.reference,
+ resourceName: cmpts.resourceName,
+ secure: cmpts.secure,
+ error: ""
+ };
+ const options = Object.assign({}, opts);
+ const uriTokens = [];
+ const schemeHandler = SCHEMES[(options.scheme || components.scheme || "").toLowerCase()];
+ if (schemeHandler && schemeHandler.serialize)
+ schemeHandler.serialize(components, options);
+ if (components.path !== void 0) {
+ if (!options.skipEscape) {
+ components.path = escape(components.path);
+ if (components.scheme !== void 0) {
+ components.path = components.path.split("%3A").join(":");
+ }
+ } else {
+ components.path = unescape(components.path);
+ }
+ }
+ if (options.reference !== "suffix" && components.scheme) {
+ uriTokens.push(components.scheme, ":");
+ }
+ const authority = recomposeAuthority(components, options);
+ if (authority !== void 0) {
+ if (options.reference !== "suffix") {
+ uriTokens.push("//");
+ }
+ uriTokens.push(authority);
+ if (components.path && components.path.charAt(0) !== "/") {
+ uriTokens.push("/");
+ }
+ }
+ if (components.path !== void 0) {
+ let s = components.path;
+ if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {
+ s = removeDotSegments(s);
+ }
+ if (authority === void 0) {
+ s = s.replace(/^\/\//u, "/%2F");
+ }
+ uriTokens.push(s);
+ }
+ if (components.query !== void 0) {
+ uriTokens.push("?", components.query);
+ }
+ if (components.fragment !== void 0) {
+ uriTokens.push("#", components.fragment);
+ }
+ return uriTokens.join("");
+ }
+ var hexLookUp = Array.from({ length: 127 }, (v, k) => /[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(k)));
+ function nonSimpleDomain(value) {
+ let code = 0;
+ for (let i = 0, len = value.length; i < len; ++i) {
+ code = value.charCodeAt(i);
+ if (code > 126 || hexLookUp[code]) {
+ return true;
+ }
+ }
+ return false;
+ }
+ var URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;
+ function parse(uri, opts) {
+ const options = Object.assign({}, opts);
+ const parsed = {
+ scheme: void 0,
+ userinfo: void 0,
+ host: "",
+ port: void 0,
+ path: "",
+ query: void 0,
+ fragment: void 0
+ };
+ const gotEncoding = uri.indexOf("%") !== -1;
+ let isIP = false;
+ if (options.reference === "suffix")
+ uri = (options.scheme ? options.scheme + ":" : "") + "//" + uri;
+ const matches = uri.match(URI_PARSE);
+ if (matches) {
+ parsed.scheme = matches[1];
+ parsed.userinfo = matches[3];
+ parsed.host = matches[4];
+ parsed.port = parseInt(matches[5], 10);
+ parsed.path = matches[6] || "";
+ parsed.query = matches[7];
+ parsed.fragment = matches[8];
+ if (isNaN(parsed.port)) {
+ parsed.port = matches[5];
+ }
+ if (parsed.host) {
+ const ipv4result = normalizeIPv4(parsed.host);
+ if (ipv4result.isIPV4 === false) {
+ const ipv6result = normalizeIPv6(ipv4result.host, { isIPV4: false });
+ parsed.host = ipv6result.host.toLowerCase();
+ isIP = ipv6result.isIPV6;
+ } else {
+ parsed.host = ipv4result.host;
+ isIP = true;
+ }
+ }
+ if (parsed.scheme === void 0 && parsed.userinfo === void 0 && parsed.host === void 0 && parsed.port === void 0 && !parsed.path && parsed.query === void 0) {
+ parsed.reference = "same-document";
+ } else if (parsed.scheme === void 0) {
+ parsed.reference = "relative";
+ } else if (parsed.fragment === void 0) {
+ parsed.reference = "absolute";
+ } else {
+ parsed.reference = "uri";
+ }
+ if (options.reference && options.reference !== "suffix" && options.reference !== parsed.reference) {
+ parsed.error = parsed.error || "URI is not a " + options.reference + " reference.";
+ }
+ const schemeHandler = SCHEMES[(options.scheme || parsed.scheme || "").toLowerCase()];
+ if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
+ if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
+ try {
+ parsed.host = URL.domainToASCII(parsed.host.toLowerCase());
+ } catch (e) {
+ parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
+ }
+ }
+ }
+ if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) {
+ if (gotEncoding && parsed.scheme !== void 0) {
+ parsed.scheme = unescape(parsed.scheme);
+ }
+ if (gotEncoding && parsed.host !== void 0) {
+ parsed.host = unescape(parsed.host);
+ }
+ if (parsed.path !== void 0 && parsed.path.length) {
+ parsed.path = escape(unescape(parsed.path));
+ }
+ if (parsed.fragment !== void 0 && parsed.fragment.length) {
+ parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment));
+ }
+ }
+ if (schemeHandler && schemeHandler.parse) {
+ schemeHandler.parse(parsed, options);
+ }
+ } else {
+ parsed.error = parsed.error || "URI can not be parsed.";
+ }
+ return parsed;
+ }
+ var fastUri = {
+ SCHEMES,
+ normalize,
+ resolve,
+ resolveComponents,
+ equal,
+ serialize,
+ parse
+ };
+ module2.exports = fastUri;
+ module2.exports.default = fastUri;
+ module2.exports.fastUri = fastUri;
+ }
+});
+
+// node_modules/ajv/dist/runtime/uri.js
+var require_uri2 = __commonJS({
+ "node_modules/ajv/dist/runtime/uri.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var uri = require_fast_uri();
+ uri.code = 'require("ajv/dist/runtime/uri").default';
+ exports2.default = uri;
+ }
+});
+
+// node_modules/ajv/dist/core.js
+var require_core = __commonJS({
+ "node_modules/ajv/dist/core.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.CodeGen = exports2.Name = exports2.nil = exports2.stringify = exports2.str = exports2._ = exports2.KeywordCxt = void 0;
+ var validate_1 = require_validate();
+ Object.defineProperty(exports2, "KeywordCxt", { enumerable: true, get: function() {
+ return validate_1.KeywordCxt;
+ } });
+ var codegen_1 = require_codegen();
+ Object.defineProperty(exports2, "_", { enumerable: true, get: function() {
+ return codegen_1._;
+ } });
+ Object.defineProperty(exports2, "str", { enumerable: true, get: function() {
+ return codegen_1.str;
+ } });
+ Object.defineProperty(exports2, "stringify", { enumerable: true, get: function() {
+ return codegen_1.stringify;
+ } });
+ Object.defineProperty(exports2, "nil", { enumerable: true, get: function() {
+ return codegen_1.nil;
+ } });
+ Object.defineProperty(exports2, "Name", { enumerable: true, get: function() {
+ return codegen_1.Name;
+ } });
+ Object.defineProperty(exports2, "CodeGen", { enumerable: true, get: function() {
+ return codegen_1.CodeGen;
+ } });
+ var validation_error_1 = require_validation_error();
+ var ref_error_1 = require_ref_error();
+ var rules_1 = require_rules();
+ var compile_1 = require_compile();
+ var codegen_2 = require_codegen();
+ var resolve_1 = require_resolve();
+ var dataType_1 = require_dataType();
+ var util_1 = require_util();
+ var $dataRefSchema = require_data();
+ var uri_1 = require_uri2();
+ var defaultRegExp = (str, flags) => new RegExp(str, flags);
+ defaultRegExp.code = "new RegExp";
+ var META_IGNORE_OPTIONS = ["removeAdditional", "useDefaults", "coerceTypes"];
+ var EXT_SCOPE_NAMES = /* @__PURE__ */ new Set([
+ "validate",
+ "serialize",
+ "parse",
+ "wrapper",
+ "root",
+ "schema",
+ "keyword",
+ "pattern",
+ "formats",
+ "validate$data",
+ "func",
+ "obj",
+ "Error"
+ ]);
+ var removedOptions = {
+ errorDataPath: "",
+ format: "`validateFormats: false` can be used instead.",
+ nullable: '"nullable" keyword is supported by default.',
+ jsonPointers: "Deprecated jsPropertySyntax can be used instead.",
+ extendRefs: "Deprecated ignoreKeywordsWithRef can be used instead.",
+ missingRefs: "Pass empty schema with $id that should be ignored to ajv.addSchema.",
+ processCode: "Use option `code: {process: (code, schemaEnv: object) => string}`",
+ sourceCode: "Use option `code: {source: true}`",
+ strictDefaults: "It is default now, see option `strict`.",
+ strictKeywords: "It is default now, see option `strict`.",
+ uniqueItems: '"uniqueItems" keyword is always validated.',
+ unknownFormats: "Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",
+ cache: "Map is used as cache, schema object as key.",
+ serialize: "Map is used as cache, schema object as key.",
+ ajvErrors: "It is default now."
+ };
+ var deprecatedOptions = {
+ ignoreKeywordsWithRef: "",
+ jsPropertySyntax: "",
+ unicode: '"minLength"/"maxLength" account for unicode characters by default.'
+ };
+ var MAX_EXPRESSION = 200;
+ function requiredOptions(o) {
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
+ const s = o.strict;
+ const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;
+ const optimize = _optz === true || _optz === void 0 ? 1 : _optz || 0;
+ const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;
+ const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;
+ return {
+ strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,
+ strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,
+ strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : "log",
+ strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : "log",
+ strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,
+ code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },
+ loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,
+ loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,
+ meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,
+ messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,
+ inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,
+ schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : "$id",
+ addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,
+ validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,
+ validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,
+ unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,
+ int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,
+ uriResolver
+ };
+ }
+ var Ajv = class {
+ constructor(opts = {}) {
+ this.schemas = {};
+ this.refs = {};
+ this.formats = {};
+ this._compilations = /* @__PURE__ */ new Set();
+ this._loading = {};
+ this._cache = /* @__PURE__ */ new Map();
+ opts = this.opts = { ...opts, ...requiredOptions(opts) };
+ const { es5, lines } = this.opts.code;
+ this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });
+ this.logger = getLogger(opts.logger);
+ const formatOpt = opts.validateFormats;
+ opts.validateFormats = false;
+ this.RULES = (0, rules_1.getRules)();
+ checkOptions.call(this, removedOptions, opts, "NOT SUPPORTED");
+ checkOptions.call(this, deprecatedOptions, opts, "DEPRECATED", "warn");
+ this._metaOpts = getMetaSchemaOptions.call(this);
+ if (opts.formats)
+ addInitialFormats.call(this);
+ this._addVocabularies();
+ this._addDefaultMetaSchema();
+ if (opts.keywords)
+ addInitialKeywords.call(this, opts.keywords);
+ if (typeof opts.meta == "object")
+ this.addMetaSchema(opts.meta);
+ addInitialSchemas.call(this);
+ opts.validateFormats = formatOpt;
+ }
+ _addVocabularies() {
+ this.addKeyword("$async");
+ }
+ _addDefaultMetaSchema() {
+ const { $data, meta, schemaId } = this.opts;
+ let _dataRefSchema = $dataRefSchema;
+ if (schemaId === "id") {
+ _dataRefSchema = { ...$dataRefSchema };
+ _dataRefSchema.id = _dataRefSchema.$id;
+ delete _dataRefSchema.$id;
+ }
+ if (meta && $data)
+ this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);
+ }
+ defaultMeta() {
+ const { meta, schemaId } = this.opts;
+ return this.opts.defaultMeta = typeof meta == "object" ? meta[schemaId] || meta : void 0;
+ }
+ validate(schemaKeyRef, data) {
+ let v;
+ if (typeof schemaKeyRef == "string") {
+ v = this.getSchema(schemaKeyRef);
+ if (!v)
+ throw new Error(`no schema with key or ref "${schemaKeyRef}"`);
+ } else {
+ v = this.compile(schemaKeyRef);
+ }
+ const valid = v(data);
+ if (!("$async" in v))
+ this.errors = v.errors;
+ return valid;
+ }
+ compile(schema, _meta) {
+ const sch = this._addSchema(schema, _meta);
+ return sch.validate || this._compileSchemaEnv(sch);
+ }
+ compileAsync(schema, meta) {
+ if (typeof this.opts.loadSchema != "function") {
+ throw new Error("options.loadSchema should be a function");
+ }
+ const { loadSchema } = this.opts;
+ return runCompileAsync.call(this, schema, meta);
+ async function runCompileAsync(_schema, _meta) {
+ await loadMetaSchema.call(this, _schema.$schema);
+ const sch = this._addSchema(_schema, _meta);
+ return sch.validate || _compileAsync.call(this, sch);
+ }
+ async function loadMetaSchema($ref) {
+ if ($ref && !this.getSchema($ref)) {
+ await runCompileAsync.call(this, { $ref }, true);
+ }
+ }
+ async function _compileAsync(sch) {
+ try {
+ return this._compileSchemaEnv(sch);
+ } catch (e) {
+ if (!(e instanceof ref_error_1.default))
+ throw e;
+ checkLoaded.call(this, e);
+ await loadMissingSchema.call(this, e.missingSchema);
+ return _compileAsync.call(this, sch);
+ }
+ }
+ function checkLoaded({ missingSchema: ref, missingRef }) {
+ if (this.refs[ref]) {
+ throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);
+ }
+ }
+ async function loadMissingSchema(ref) {
+ const _schema = await _loadSchema.call(this, ref);
+ if (!this.refs[ref])
+ await loadMetaSchema.call(this, _schema.$schema);
+ if (!this.refs[ref])
+ this.addSchema(_schema, ref, meta);
+ }
+ async function _loadSchema(ref) {
+ const p = this._loading[ref];
+ if (p)
+ return p;
+ try {
+ return await (this._loading[ref] = loadSchema(ref));
+ } finally {
+ delete this._loading[ref];
+ }
+ }
+ }
+ // Adds schema to the instance
+ addSchema(schema, key, _meta, _validateSchema = this.opts.validateSchema) {
+ if (Array.isArray(schema)) {
+ for (const sch of schema)
+ this.addSchema(sch, void 0, _meta, _validateSchema);
+ return this;
+ }
+ let id;
+ if (typeof schema === "object") {
+ const { schemaId } = this.opts;
+ id = schema[schemaId];
+ if (id !== void 0 && typeof id != "string") {
+ throw new Error(`schema ${schemaId} must be string`);
+ }
+ }
+ key = (0, resolve_1.normalizeId)(key || id);
+ this._checkUnique(key);
+ this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);
+ return this;
+ }
+ // Add schema that will be used to validate other schemas
+ // options in META_IGNORE_OPTIONS are alway set to false
+ addMetaSchema(schema, key, _validateSchema = this.opts.validateSchema) {
+ this.addSchema(schema, key, true, _validateSchema);
+ return this;
+ }
+ // Validate schema against its meta-schema
+ validateSchema(schema, throwOrLogError) {
+ if (typeof schema == "boolean")
+ return true;
+ let $schema;
+ $schema = schema.$schema;
+ if ($schema !== void 0 && typeof $schema != "string") {
+ throw new Error("$schema must be a string");
+ }
+ $schema = $schema || this.opts.defaultMeta || this.defaultMeta();
+ if (!$schema) {
+ this.logger.warn("meta-schema not available");
+ this.errors = null;
+ return true;
+ }
+ const valid = this.validate($schema, schema);
+ if (!valid && throwOrLogError) {
+ const message = "schema is invalid: " + this.errorsText();
+ if (this.opts.validateSchema === "log")
+ this.logger.error(message);
+ else
+ throw new Error(message);
+ }
+ return valid;
+ }
+ // Get compiled schema by `key` or `ref`.
+ // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)
+ getSchema(keyRef) {
+ let sch;
+ while (typeof (sch = getSchEnv.call(this, keyRef)) == "string")
+ keyRef = sch;
+ if (sch === void 0) {
+ const { schemaId } = this.opts;
+ const root = new compile_1.SchemaEnv({ schema: {}, schemaId });
+ sch = compile_1.resolveSchema.call(this, root, keyRef);
+ if (!sch)
+ return;
+ this.refs[keyRef] = sch;
+ }
+ return sch.validate || this._compileSchemaEnv(sch);
+ }
+ // Remove cached schema(s).
+ // If no parameter is passed all schemas but meta-schemas are removed.
+ // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.
+ // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.
+ removeSchema(schemaKeyRef) {
+ if (schemaKeyRef instanceof RegExp) {
+ this._removeAllSchemas(this.schemas, schemaKeyRef);
+ this._removeAllSchemas(this.refs, schemaKeyRef);
+ return this;
+ }
+ switch (typeof schemaKeyRef) {
+ case "undefined":
+ this._removeAllSchemas(this.schemas);
+ this._removeAllSchemas(this.refs);
+ this._cache.clear();
+ return this;
+ case "string": {
+ const sch = getSchEnv.call(this, schemaKeyRef);
+ if (typeof sch == "object")
+ this._cache.delete(sch.schema);
+ delete this.schemas[schemaKeyRef];
+ delete this.refs[schemaKeyRef];
+ return this;
+ }
+ case "object": {
+ const cacheKey = schemaKeyRef;
+ this._cache.delete(cacheKey);
+ let id = schemaKeyRef[this.opts.schemaId];
+ if (id) {
+ id = (0, resolve_1.normalizeId)(id);
+ delete this.schemas[id];
+ delete this.refs[id];
+ }
+ return this;
+ }
+ default:
+ throw new Error("ajv.removeSchema: invalid parameter");
+ }
+ }
+ // add "vocabulary" - a collection of keywords
+ addVocabulary(definitions) {
+ for (const def of definitions)
+ this.addKeyword(def);
+ return this;
+ }
+ addKeyword(kwdOrDef, def) {
+ let keyword;
+ if (typeof kwdOrDef == "string") {
+ keyword = kwdOrDef;
+ if (typeof def == "object") {
+ this.logger.warn("these parameters are deprecated, see docs for addKeyword");
+ def.keyword = keyword;
+ }
+ } else if (typeof kwdOrDef == "object" && def === void 0) {
+ def = kwdOrDef;
+ keyword = def.keyword;
+ if (Array.isArray(keyword) && !keyword.length) {
+ throw new Error("addKeywords: keyword must be string or non-empty array");
+ }
+ } else {
+ throw new Error("invalid addKeywords parameters");
+ }
+ checkKeyword.call(this, keyword, def);
+ if (!def) {
+ (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));
+ return this;
+ }
+ keywordMetaschema.call(this, def);
+ const definition = {
+ ...def,
+ type: (0, dataType_1.getJSONTypes)(def.type),
+ schemaType: (0, dataType_1.getJSONTypes)(def.schemaType)
+ };
+ (0, util_1.eachItem)(keyword, definition.type.length === 0 ? (k) => addRule.call(this, k, definition) : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));
+ return this;
+ }
+ getKeyword(keyword) {
+ const rule = this.RULES.all[keyword];
+ return typeof rule == "object" ? rule.definition : !!rule;
+ }
+ // Remove keyword
+ removeKeyword(keyword) {
+ const { RULES } = this;
+ delete RULES.keywords[keyword];
+ delete RULES.all[keyword];
+ for (const group of RULES.rules) {
+ const i = group.rules.findIndex((rule) => rule.keyword === keyword);
+ if (i >= 0)
+ group.rules.splice(i, 1);
+ }
+ return this;
+ }
+ // Add format
+ addFormat(name, format) {
+ if (typeof format == "string")
+ format = new RegExp(format);
+ this.formats[name] = format;
+ return this;
+ }
+ errorsText(errors = this.errors, { separator = ", ", dataVar = "data" } = {}) {
+ if (!errors || errors.length === 0)
+ return "No errors";
+ return errors.map((e) => `${dataVar}${e.instancePath} ${e.message}`).reduce((text, msg) => text + separator + msg);
+ }
+ $dataMetaSchema(metaSchema, keywordsJsonPointers) {
+ const rules = this.RULES.all;
+ metaSchema = JSON.parse(JSON.stringify(metaSchema));
+ for (const jsonPointer of keywordsJsonPointers) {
+ const segments = jsonPointer.split("/").slice(1);
+ let keywords = metaSchema;
+ for (const seg of segments)
+ keywords = keywords[seg];
+ for (const key in rules) {
+ const rule = rules[key];
+ if (typeof rule != "object")
+ continue;
+ const { $data } = rule.definition;
+ const schema = keywords[key];
+ if ($data && schema)
+ keywords[key] = schemaOrData(schema);
+ }
+ }
+ return metaSchema;
+ }
+ _removeAllSchemas(schemas, regex) {
+ for (const keyRef in schemas) {
+ const sch = schemas[keyRef];
+ if (!regex || regex.test(keyRef)) {
+ if (typeof sch == "string") {
+ delete schemas[keyRef];
+ } else if (sch && !sch.meta) {
+ this._cache.delete(sch.schema);
+ delete schemas[keyRef];
+ }
+ }
+ }
+ }
+ _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {
+ let id;
+ const { schemaId } = this.opts;
+ if (typeof schema == "object") {
+ id = schema[schemaId];
+ } else {
+ if (this.opts.jtd)
+ throw new Error("schema must be object");
+ else if (typeof schema != "boolean")
+ throw new Error("schema must be object or boolean");
+ }
+ let sch = this._cache.get(schema);
+ if (sch !== void 0)
+ return sch;
+ baseId = (0, resolve_1.normalizeId)(id || baseId);
+ const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);
+ sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });
+ this._cache.set(sch.schema, sch);
+ if (addSchema && !baseId.startsWith("#")) {
+ if (baseId)
+ this._checkUnique(baseId);
+ this.refs[baseId] = sch;
+ }
+ if (validateSchema)
+ this.validateSchema(schema, true);
+ return sch;
+ }
+ _checkUnique(id) {
+ if (this.schemas[id] || this.refs[id]) {
+ throw new Error(`schema with key or id "${id}" already exists`);
+ }
+ }
+ _compileSchemaEnv(sch) {
+ if (sch.meta)
+ this._compileMetaSchema(sch);
+ else
+ compile_1.compileSchema.call(this, sch);
+ if (!sch.validate)
+ throw new Error("ajv implementation error");
+ return sch.validate;
+ }
+ _compileMetaSchema(sch) {
+ const currentOpts = this.opts;
+ this.opts = this._metaOpts;
+ try {
+ compile_1.compileSchema.call(this, sch);
+ } finally {
+ this.opts = currentOpts;
+ }
+ }
+ };
+ Ajv.ValidationError = validation_error_1.default;
+ Ajv.MissingRefError = ref_error_1.default;
+ exports2.default = Ajv;
+ function checkOptions(checkOpts, options, msg, log = "error") {
+ for (const key in checkOpts) {
+ const opt = key;
+ if (opt in options)
+ this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);
+ }
+ }
+ function getSchEnv(keyRef) {
+ keyRef = (0, resolve_1.normalizeId)(keyRef);
+ return this.schemas[keyRef] || this.refs[keyRef];
+ }
+ function addInitialSchemas() {
+ const optsSchemas = this.opts.schemas;
+ if (!optsSchemas)
+ return;
+ if (Array.isArray(optsSchemas))
+ this.addSchema(optsSchemas);
+ else
+ for (const key in optsSchemas)
+ this.addSchema(optsSchemas[key], key);
+ }
+ function addInitialFormats() {
+ for (const name in this.opts.formats) {
+ const format = this.opts.formats[name];
+ if (format)
+ this.addFormat(name, format);
+ }
+ }
+ function addInitialKeywords(defs) {
+ if (Array.isArray(defs)) {
+ this.addVocabulary(defs);
+ return;
+ }
+ this.logger.warn("keywords option as map is deprecated, pass array");
+ for (const keyword in defs) {
+ const def = defs[keyword];
+ if (!def.keyword)
+ def.keyword = keyword;
+ this.addKeyword(def);
+ }
+ }
+ function getMetaSchemaOptions() {
+ const metaOpts = { ...this.opts };
+ for (const opt of META_IGNORE_OPTIONS)
+ delete metaOpts[opt];
+ return metaOpts;
+ }
+ var noLogs = { log() {
+ }, warn() {
+ }, error() {
+ } };
+ function getLogger(logger) {
+ if (logger === false)
+ return noLogs;
+ if (logger === void 0)
+ return console;
+ if (logger.log && logger.warn && logger.error)
+ return logger;
+ throw new Error("logger must implement log, warn and error methods");
+ }
+ var KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;
+ function checkKeyword(keyword, def) {
+ const { RULES } = this;
+ (0, util_1.eachItem)(keyword, (kwd) => {
+ if (RULES.keywords[kwd])
+ throw new Error(`Keyword ${kwd} is already defined`);
+ if (!KEYWORD_NAME.test(kwd))
+ throw new Error(`Keyword ${kwd} has invalid name`);
+ });
+ if (!def)
+ return;
+ if (def.$data && !("code" in def || "validate" in def)) {
+ throw new Error('$data keyword must have "code" or "validate" function');
+ }
+ }
+ function addRule(keyword, definition, dataType) {
+ var _a;
+ const post = definition === null || definition === void 0 ? void 0 : definition.post;
+ if (dataType && post)
+ throw new Error('keyword with "post" flag cannot have "type"');
+ const { RULES } = this;
+ let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);
+ if (!ruleGroup) {
+ ruleGroup = { type: dataType, rules: [] };
+ RULES.rules.push(ruleGroup);
+ }
+ RULES.keywords[keyword] = true;
+ if (!definition)
+ return;
+ const rule = {
+ keyword,
+ definition: {
+ ...definition,
+ type: (0, dataType_1.getJSONTypes)(definition.type),
+ schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType)
+ }
+ };
+ if (definition.before)
+ addBeforeRule.call(this, ruleGroup, rule, definition.before);
+ else
+ ruleGroup.rules.push(rule);
+ RULES.all[keyword] = rule;
+ (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));
+ }
+ function addBeforeRule(ruleGroup, rule, before) {
+ const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);
+ if (i >= 0) {
+ ruleGroup.rules.splice(i, 0, rule);
+ } else {
+ ruleGroup.rules.push(rule);
+ this.logger.warn(`rule ${before} is not defined`);
+ }
+ }
+ function keywordMetaschema(def) {
+ let { metaSchema } = def;
+ if (metaSchema === void 0)
+ return;
+ if (def.$data && this.opts.$data)
+ metaSchema = schemaOrData(metaSchema);
+ def.validateSchema = this.compile(metaSchema, true);
+ }
+ var $dataRef = {
+ $ref: "https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"
+ };
+ function schemaOrData(schema) {
+ return { anyOf: [schema, $dataRef] };
+ }
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/core/id.js
+var require_id2 = __commonJS({
+ "node_modules/ajv/dist/vocabularies/core/id.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var def = {
+ keyword: "id",
+ code() {
+ throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID');
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/core/ref.js
+var require_ref2 = __commonJS({
+ "node_modules/ajv/dist/vocabularies/core/ref.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.callRef = exports2.getValidate = void 0;
+ var ref_error_1 = require_ref_error();
+ var code_1 = require_code2();
+ var codegen_1 = require_codegen();
+ var names_1 = require_names();
+ var compile_1 = require_compile();
+ var util_1 = require_util();
+ var def = {
+ keyword: "$ref",
+ schemaType: "string",
+ code(cxt) {
+ const { gen, schema: $ref, it } = cxt;
+ const { baseId, schemaEnv: env, validateName, opts, self: self2 } = it;
+ const { root } = env;
+ if (($ref === "#" || $ref === "#/") && baseId === root.baseId)
+ return callRootRef();
+ const schOrEnv = compile_1.resolveRef.call(self2, root, baseId, $ref);
+ if (schOrEnv === void 0)
+ throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);
+ if (schOrEnv instanceof compile_1.SchemaEnv)
+ return callValidate(schOrEnv);
+ return inlineRefSchema(schOrEnv);
+ function callRootRef() {
+ if (env === root)
+ return callRef(cxt, validateName, env, env.$async);
+ const rootName = gen.scopeValue("root", { ref: root });
+ return callRef(cxt, (0, codegen_1._)`${rootName}.validate`, root, root.$async);
+ }
+ function callValidate(sch) {
+ const v = getValidate(cxt, sch);
+ callRef(cxt, v, sch, sch.$async);
+ }
+ function inlineRefSchema(sch) {
+ const schName = gen.scopeValue("schema", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });
+ const valid = gen.name("valid");
+ const schCxt = cxt.subschema({
+ schema: sch,
+ dataTypes: [],
+ schemaPath: codegen_1.nil,
+ topSchemaRef: schName,
+ errSchemaPath: $ref
+ }, valid);
+ cxt.mergeEvaluated(schCxt);
+ cxt.ok(valid);
+ }
+ }
+ };
+ function getValidate(cxt, sch) {
+ const { gen } = cxt;
+ return sch.validate ? gen.scopeValue("validate", { ref: sch.validate }) : (0, codegen_1._)`${gen.scopeValue("wrapper", { ref: sch })}.validate`;
+ }
+ exports2.getValidate = getValidate;
+ function callRef(cxt, v, sch, $async) {
+ const { gen, it } = cxt;
+ const { allErrors, schemaEnv: env, opts } = it;
+ const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;
+ if ($async)
+ callAsyncRef();
+ else
+ callSyncRef();
+ function callAsyncRef() {
+ if (!env.$async)
+ throw new Error("async schema referenced by sync schema");
+ const valid = gen.let("valid");
+ gen.try(() => {
+ gen.code((0, codegen_1._)`await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);
+ addEvaluatedFrom(v);
+ if (!allErrors)
+ gen.assign(valid, true);
+ }, (e) => {
+ gen.if((0, codegen_1._)`!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));
+ addErrorsFrom(e);
+ if (!allErrors)
+ gen.assign(valid, false);
+ });
+ cxt.ok(valid);
+ }
+ function callSyncRef() {
+ cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));
+ }
+ function addErrorsFrom(source) {
+ const errs = (0, codegen_1._)`${source}.errors`;
+ gen.assign(names_1.default.vErrors, (0, codegen_1._)`${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`);
+ gen.assign(names_1.default.errors, (0, codegen_1._)`${names_1.default.vErrors}.length`);
+ }
+ function addEvaluatedFrom(source) {
+ var _a;
+ if (!it.opts.unevaluated)
+ return;
+ const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;
+ if (it.props !== true) {
+ if (schEvaluated && !schEvaluated.dynamicProps) {
+ if (schEvaluated.props !== void 0) {
+ it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);
+ }
+ } else {
+ const props = gen.var("props", (0, codegen_1._)`${source}.evaluated.props`);
+ it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);
+ }
+ }
+ if (it.items !== true) {
+ if (schEvaluated && !schEvaluated.dynamicItems) {
+ if (schEvaluated.items !== void 0) {
+ it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);
+ }
+ } else {
+ const items = gen.var("items", (0, codegen_1._)`${source}.evaluated.items`);
+ it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);
+ }
+ }
+ }
+ }
+ exports2.callRef = callRef;
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/core/index.js
+var require_core2 = __commonJS({
+ "node_modules/ajv/dist/vocabularies/core/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var id_1 = require_id2();
+ var ref_1 = require_ref2();
+ var core = [
+ "$schema",
+ "$id",
+ "$defs",
+ "$vocabulary",
+ { keyword: "$comment" },
+ "definitions",
+ id_1.default,
+ ref_1.default
+ ];
+ exports2.default = core;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/validation/limitNumber.js
+var require_limitNumber = __commonJS({
+ "node_modules/ajv/dist/vocabularies/validation/limitNumber.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var codegen_1 = require_codegen();
+ var ops = codegen_1.operators;
+ var KWDs = {
+ maximum: { okStr: "<=", ok: ops.LTE, fail: ops.GT },
+ minimum: { okStr: ">=", ok: ops.GTE, fail: ops.LT },
+ exclusiveMaximum: { okStr: "<", ok: ops.LT, fail: ops.GTE },
+ exclusiveMinimum: { okStr: ">", ok: ops.GT, fail: ops.LTE }
+ };
+ var error = {
+ message: ({ keyword, schemaCode }) => (0, codegen_1.str)`must be ${KWDs[keyword].okStr} ${schemaCode}`,
+ params: ({ keyword, schemaCode }) => (0, codegen_1._)`{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`
+ };
+ var def = {
+ keyword: Object.keys(KWDs),
+ type: "number",
+ schemaType: "number",
+ $data: true,
+ error,
+ code(cxt) {
+ const { keyword, data, schemaCode } = cxt;
+ cxt.fail$data((0, codegen_1._)`${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/validation/multipleOf.js
+var require_multipleOf = __commonJS({
+ "node_modules/ajv/dist/vocabularies/validation/multipleOf.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var codegen_1 = require_codegen();
+ var error = {
+ message: ({ schemaCode }) => (0, codegen_1.str)`must be multiple of ${schemaCode}`,
+ params: ({ schemaCode }) => (0, codegen_1._)`{multipleOf: ${schemaCode}}`
+ };
+ var def = {
+ keyword: "multipleOf",
+ type: "number",
+ schemaType: "number",
+ $data: true,
+ error,
+ code(cxt) {
+ const { gen, data, schemaCode, it } = cxt;
+ const prec = it.opts.multipleOfPrecision;
+ const res = gen.let("res");
+ const invalid = prec ? (0, codegen_1._)`Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}` : (0, codegen_1._)`${res} !== parseInt(${res})`;
+ cxt.fail$data((0, codegen_1._)`(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/runtime/ucs2length.js
+var require_ucs2length = __commonJS({
+ "node_modules/ajv/dist/runtime/ucs2length.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ function ucs2length(str) {
+ const len = str.length;
+ let length = 0;
+ let pos = 0;
+ let value;
+ while (pos < len) {
+ length++;
+ value = str.charCodeAt(pos++);
+ if (value >= 55296 && value <= 56319 && pos < len) {
+ value = str.charCodeAt(pos);
+ if ((value & 64512) === 56320)
+ pos++;
+ }
+ }
+ return length;
+ }
+ exports2.default = ucs2length;
+ ucs2length.code = 'require("ajv/dist/runtime/ucs2length").default';
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/validation/limitLength.js
+var require_limitLength = __commonJS({
+ "node_modules/ajv/dist/vocabularies/validation/limitLength.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var ucs2length_1 = require_ucs2length();
+ var error = {
+ message({ keyword, schemaCode }) {
+ const comp = keyword === "maxLength" ? "more" : "fewer";
+ return (0, codegen_1.str)`must NOT have ${comp} than ${schemaCode} characters`;
+ },
+ params: ({ schemaCode }) => (0, codegen_1._)`{limit: ${schemaCode}}`
+ };
+ var def = {
+ keyword: ["maxLength", "minLength"],
+ type: "string",
+ schemaType: "number",
+ $data: true,
+ error,
+ code(cxt) {
+ const { keyword, data, schemaCode, it } = cxt;
+ const op = keyword === "maxLength" ? codegen_1.operators.GT : codegen_1.operators.LT;
+ const len = it.opts.unicode === false ? (0, codegen_1._)`${data}.length` : (0, codegen_1._)`${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;
+ cxt.fail$data((0, codegen_1._)`${len} ${op} ${schemaCode}`);
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/validation/pattern.js
+var require_pattern = __commonJS({
+ "node_modules/ajv/dist/vocabularies/validation/pattern.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var code_1 = require_code2();
+ var codegen_1 = require_codegen();
+ var error = {
+ message: ({ schemaCode }) => (0, codegen_1.str)`must match pattern "${schemaCode}"`,
+ params: ({ schemaCode }) => (0, codegen_1._)`{pattern: ${schemaCode}}`
+ };
+ var def = {
+ keyword: "pattern",
+ type: "string",
+ schemaType: "string",
+ $data: true,
+ error,
+ code(cxt) {
+ const { data, $data, schema, schemaCode, it } = cxt;
+ const u = it.opts.unicodeRegExp ? "u" : "";
+ const regExp = $data ? (0, codegen_1._)`(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema);
+ cxt.fail$data((0, codegen_1._)`!${regExp}.test(${data})`);
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/validation/limitProperties.js
+var require_limitProperties = __commonJS({
+ "node_modules/ajv/dist/vocabularies/validation/limitProperties.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var codegen_1 = require_codegen();
+ var error = {
+ message({ keyword, schemaCode }) {
+ const comp = keyword === "maxProperties" ? "more" : "fewer";
+ return (0, codegen_1.str)`must NOT have ${comp} than ${schemaCode} properties`;
+ },
+ params: ({ schemaCode }) => (0, codegen_1._)`{limit: ${schemaCode}}`
+ };
+ var def = {
+ keyword: ["maxProperties", "minProperties"],
+ type: "object",
+ schemaType: "number",
+ $data: true,
+ error,
+ code(cxt) {
+ const { keyword, data, schemaCode } = cxt;
+ const op = keyword === "maxProperties" ? codegen_1.operators.GT : codegen_1.operators.LT;
+ cxt.fail$data((0, codegen_1._)`Object.keys(${data}).length ${op} ${schemaCode}`);
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/validation/required.js
+var require_required = __commonJS({
+ "node_modules/ajv/dist/vocabularies/validation/required.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var code_1 = require_code2();
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var error = {
+ message: ({ params: { missingProperty } }) => (0, codegen_1.str)`must have required property '${missingProperty}'`,
+ params: ({ params: { missingProperty } }) => (0, codegen_1._)`{missingProperty: ${missingProperty}}`
+ };
+ var def = {
+ keyword: "required",
+ type: "object",
+ schemaType: "array",
+ $data: true,
+ error,
+ code(cxt) {
+ const { gen, schema, schemaCode, data, $data, it } = cxt;
+ const { opts } = it;
+ if (!$data && schema.length === 0)
+ return;
+ const useLoop = schema.length >= opts.loopRequired;
+ if (it.allErrors)
+ allErrorsMode();
+ else
+ exitOnErrorMode();
+ if (opts.strictRequired) {
+ const props = cxt.parentSchema.properties;
+ const { definedProperties } = cxt.it;
+ for (const requiredKey of schema) {
+ if ((props === null || props === void 0 ? void 0 : props[requiredKey]) === void 0 && !definedProperties.has(requiredKey)) {
+ const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;
+ const msg = `required property "${requiredKey}" is not defined at "${schemaPath}" (strictRequired)`;
+ (0, util_1.checkStrictMode)(it, msg, it.opts.strictRequired);
+ }
+ }
+ }
+ function allErrorsMode() {
+ if (useLoop || $data) {
+ cxt.block$data(codegen_1.nil, loopAllRequired);
+ } else {
+ for (const prop of schema) {
+ (0, code_1.checkReportMissingProp)(cxt, prop);
+ }
+ }
+ }
+ function exitOnErrorMode() {
+ const missing = gen.let("missing");
+ if (useLoop || $data) {
+ const valid = gen.let("valid", true);
+ cxt.block$data(valid, () => loopUntilMissing(missing, valid));
+ cxt.ok(valid);
+ } else {
+ gen.if((0, code_1.checkMissingProp)(cxt, schema, missing));
+ (0, code_1.reportMissingProp)(cxt, missing);
+ gen.else();
+ }
+ }
+ function loopAllRequired() {
+ gen.forOf("prop", schemaCode, (prop) => {
+ cxt.setParams({ missingProperty: prop });
+ gen.if((0, code_1.noPropertyInData)(gen, data, prop, opts.ownProperties), () => cxt.error());
+ });
+ }
+ function loopUntilMissing(missing, valid) {
+ cxt.setParams({ missingProperty: missing });
+ gen.forOf(missing, schemaCode, () => {
+ gen.assign(valid, (0, code_1.propertyInData)(gen, data, missing, opts.ownProperties));
+ gen.if((0, codegen_1.not)(valid), () => {
+ cxt.error();
+ gen.break();
+ });
+ }, codegen_1.nil);
+ }
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/validation/limitItems.js
+var require_limitItems = __commonJS({
+ "node_modules/ajv/dist/vocabularies/validation/limitItems.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var codegen_1 = require_codegen();
+ var error = {
+ message({ keyword, schemaCode }) {
+ const comp = keyword === "maxItems" ? "more" : "fewer";
+ return (0, codegen_1.str)`must NOT have ${comp} than ${schemaCode} items`;
+ },
+ params: ({ schemaCode }) => (0, codegen_1._)`{limit: ${schemaCode}}`
+ };
+ var def = {
+ keyword: ["maxItems", "minItems"],
+ type: "array",
+ schemaType: "number",
+ $data: true,
+ error,
+ code(cxt) {
+ const { keyword, data, schemaCode } = cxt;
+ const op = keyword === "maxItems" ? codegen_1.operators.GT : codegen_1.operators.LT;
+ cxt.fail$data((0, codegen_1._)`${data}.length ${op} ${schemaCode}`);
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/runtime/equal.js
+var require_equal = __commonJS({
+ "node_modules/ajv/dist/runtime/equal.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var equal = require_fast_deep_equal();
+ equal.code = 'require("ajv/dist/runtime/equal").default';
+ exports2.default = equal;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/validation/uniqueItems.js
+var require_uniqueItems = __commonJS({
+ "node_modules/ajv/dist/vocabularies/validation/uniqueItems.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var dataType_1 = require_dataType();
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var equal_1 = require_equal();
+ var error = {
+ message: ({ params: { i, j } }) => (0, codegen_1.str)`must NOT have duplicate items (items ## ${j} and ${i} are identical)`,
+ params: ({ params: { i, j } }) => (0, codegen_1._)`{i: ${i}, j: ${j}}`
+ };
+ var def = {
+ keyword: "uniqueItems",
+ type: "array",
+ schemaType: "boolean",
+ $data: true,
+ error,
+ code(cxt) {
+ const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;
+ if (!$data && !schema)
+ return;
+ const valid = gen.let("valid");
+ const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];
+ cxt.block$data(valid, validateUniqueItems, (0, codegen_1._)`${schemaCode} === false`);
+ cxt.ok(valid);
+ function validateUniqueItems() {
+ const i = gen.let("i", (0, codegen_1._)`${data}.length`);
+ const j = gen.let("j");
+ cxt.setParams({ i, j });
+ gen.assign(valid, true);
+ gen.if((0, codegen_1._)`${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));
+ }
+ function canOptimize() {
+ return itemTypes.length > 0 && !itemTypes.some((t) => t === "object" || t === "array");
+ }
+ function loopN(i, j) {
+ const item = gen.name("item");
+ const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);
+ const indices = gen.const("indices", (0, codegen_1._)`{}`);
+ gen.for((0, codegen_1._)`;${i}--;`, () => {
+ gen.let(item, (0, codegen_1._)`${data}[${i}]`);
+ gen.if(wrongType, (0, codegen_1._)`continue`);
+ if (itemTypes.length > 1)
+ gen.if((0, codegen_1._)`typeof ${item} == "string"`, (0, codegen_1._)`${item} += "_"`);
+ gen.if((0, codegen_1._)`typeof ${indices}[${item}] == "number"`, () => {
+ gen.assign(j, (0, codegen_1._)`${indices}[${item}]`);
+ cxt.error();
+ gen.assign(valid, false).break();
+ }).code((0, codegen_1._)`${indices}[${item}] = ${i}`);
+ });
+ }
+ function loopN2(i, j) {
+ const eql = (0, util_1.useFunc)(gen, equal_1.default);
+ const outer = gen.name("outer");
+ gen.label(outer).for((0, codegen_1._)`;${i}--;`, () => gen.for((0, codegen_1._)`${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._)`${eql}(${data}[${i}], ${data}[${j}])`, () => {
+ cxt.error();
+ gen.assign(valid, false).break(outer);
+ })));
+ }
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/validation/const.js
+var require_const = __commonJS({
+ "node_modules/ajv/dist/vocabularies/validation/const.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var equal_1 = require_equal();
+ var error = {
+ message: "must be equal to constant",
+ params: ({ schemaCode }) => (0, codegen_1._)`{allowedValue: ${schemaCode}}`
+ };
+ var def = {
+ keyword: "const",
+ $data: true,
+ error,
+ code(cxt) {
+ const { gen, data, $data, schemaCode, schema } = cxt;
+ if ($data || schema && typeof schema == "object") {
+ cxt.fail$data((0, codegen_1._)`!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);
+ } else {
+ cxt.fail((0, codegen_1._)`${schema} !== ${data}`);
+ }
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/validation/enum.js
+var require_enum = __commonJS({
+ "node_modules/ajv/dist/vocabularies/validation/enum.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var equal_1 = require_equal();
+ var error = {
+ message: "must be equal to one of the allowed values",
+ params: ({ schemaCode }) => (0, codegen_1._)`{allowedValues: ${schemaCode}}`
+ };
+ var def = {
+ keyword: "enum",
+ schemaType: "array",
+ $data: true,
+ error,
+ code(cxt) {
+ const { gen, data, $data, schema, schemaCode, it } = cxt;
+ if (!$data && schema.length === 0)
+ throw new Error("enum must have non-empty array");
+ const useLoop = schema.length >= it.opts.loopEnum;
+ let eql;
+ const getEql = () => eql !== null && eql !== void 0 ? eql : eql = (0, util_1.useFunc)(gen, equal_1.default);
+ let valid;
+ if (useLoop || $data) {
+ valid = gen.let("valid");
+ cxt.block$data(valid, loopEnum);
+ } else {
+ if (!Array.isArray(schema))
+ throw new Error("ajv implementation error");
+ const vSchema = gen.const("vSchema", schemaCode);
+ valid = (0, codegen_1.or)(...schema.map((_x, i) => equalCode(vSchema, i)));
+ }
+ cxt.pass(valid);
+ function loopEnum() {
+ gen.assign(valid, false);
+ gen.forOf("v", schemaCode, (v) => gen.if((0, codegen_1._)`${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break()));
+ }
+ function equalCode(vSchema, i) {
+ const sch = schema[i];
+ return typeof sch === "object" && sch !== null ? (0, codegen_1._)`${getEql()}(${data}, ${vSchema}[${i}])` : (0, codegen_1._)`${data} === ${sch}`;
+ }
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/validation/index.js
+var require_validation2 = __commonJS({
+ "node_modules/ajv/dist/vocabularies/validation/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var limitNumber_1 = require_limitNumber();
+ var multipleOf_1 = require_multipleOf();
+ var limitLength_1 = require_limitLength();
+ var pattern_1 = require_pattern();
+ var limitProperties_1 = require_limitProperties();
+ var required_1 = require_required();
+ var limitItems_1 = require_limitItems();
+ var uniqueItems_1 = require_uniqueItems();
+ var const_1 = require_const();
+ var enum_1 = require_enum();
+ var validation = [
+ // number
+ limitNumber_1.default,
+ multipleOf_1.default,
+ // string
+ limitLength_1.default,
+ pattern_1.default,
+ // object
+ limitProperties_1.default,
+ required_1.default,
+ // array
+ limitItems_1.default,
+ uniqueItems_1.default,
+ // any
+ { keyword: "type", schemaType: ["string", "array"] },
+ { keyword: "nullable", schemaType: "boolean" },
+ const_1.default,
+ enum_1.default
+ ];
+ exports2.default = validation;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/additionalItems.js
+var require_additionalItems = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/additionalItems.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.validateAdditionalItems = void 0;
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var error = {
+ message: ({ params: { len } }) => (0, codegen_1.str)`must NOT have more than ${len} items`,
+ params: ({ params: { len } }) => (0, codegen_1._)`{limit: ${len}}`
+ };
+ var def = {
+ keyword: "additionalItems",
+ type: "array",
+ schemaType: ["boolean", "object"],
+ before: "uniqueItems",
+ error,
+ code(cxt) {
+ const { parentSchema, it } = cxt;
+ const { items } = parentSchema;
+ if (!Array.isArray(items)) {
+ (0, util_1.checkStrictMode)(it, '"additionalItems" is ignored when "items" is not an array of schemas');
+ return;
+ }
+ validateAdditionalItems(cxt, items);
+ }
+ };
+ function validateAdditionalItems(cxt, items) {
+ const { gen, schema, data, keyword, it } = cxt;
+ it.items = true;
+ const len = gen.const("len", (0, codegen_1._)`${data}.length`);
+ if (schema === false) {
+ cxt.setParams({ len: items.length });
+ cxt.pass((0, codegen_1._)`${len} <= ${items.length}`);
+ } else if (typeof schema == "object" && !(0, util_1.alwaysValidSchema)(it, schema)) {
+ const valid = gen.var("valid", (0, codegen_1._)`${len} <= ${items.length}`);
+ gen.if((0, codegen_1.not)(valid), () => validateItems(valid));
+ cxt.ok(valid);
+ }
+ function validateItems(valid) {
+ gen.forRange("i", items.length, len, (i) => {
+ cxt.subschema({ keyword, dataProp: i, dataPropType: util_1.Type.Num }, valid);
+ if (!it.allErrors)
+ gen.if((0, codegen_1.not)(valid), () => gen.break());
+ });
+ }
+ }
+ exports2.validateAdditionalItems = validateAdditionalItems;
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/items.js
+var require_items = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/items.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.validateTuple = void 0;
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var code_1 = require_code2();
+ var def = {
+ keyword: "items",
+ type: "array",
+ schemaType: ["object", "array", "boolean"],
+ before: "uniqueItems",
+ code(cxt) {
+ const { schema, it } = cxt;
+ if (Array.isArray(schema))
+ return validateTuple(cxt, "additionalItems", schema);
+ it.items = true;
+ if ((0, util_1.alwaysValidSchema)(it, schema))
+ return;
+ cxt.ok((0, code_1.validateArray)(cxt));
+ }
+ };
+ function validateTuple(cxt, extraItems, schArr = cxt.schema) {
+ const { gen, parentSchema, data, keyword, it } = cxt;
+ checkStrictTuple(parentSchema);
+ if (it.opts.unevaluated && schArr.length && it.items !== true) {
+ it.items = util_1.mergeEvaluated.items(gen, schArr.length, it.items);
+ }
+ const valid = gen.name("valid");
+ const len = gen.const("len", (0, codegen_1._)`${data}.length`);
+ schArr.forEach((sch, i) => {
+ if ((0, util_1.alwaysValidSchema)(it, sch))
+ return;
+ gen.if((0, codegen_1._)`${len} > ${i}`, () => cxt.subschema({
+ keyword,
+ schemaProp: i,
+ dataProp: i
+ }, valid));
+ cxt.ok(valid);
+ });
+ function checkStrictTuple(sch) {
+ const { opts, errSchemaPath } = it;
+ const l = schArr.length;
+ const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false);
+ if (opts.strictTuples && !fullTuple) {
+ const msg = `"${keyword}" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path "${errSchemaPath}"`;
+ (0, util_1.checkStrictMode)(it, msg, opts.strictTuples);
+ }
+ }
+ }
+ exports2.validateTuple = validateTuple;
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/prefixItems.js
+var require_prefixItems = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/prefixItems.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var items_1 = require_items();
+ var def = {
+ keyword: "prefixItems",
+ type: "array",
+ schemaType: ["array"],
+ before: "uniqueItems",
+ code: (cxt) => (0, items_1.validateTuple)(cxt, "items")
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/items2020.js
+var require_items2020 = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/items2020.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var code_1 = require_code2();
+ var additionalItems_1 = require_additionalItems();
+ var error = {
+ message: ({ params: { len } }) => (0, codegen_1.str)`must NOT have more than ${len} items`,
+ params: ({ params: { len } }) => (0, codegen_1._)`{limit: ${len}}`
+ };
+ var def = {
+ keyword: "items",
+ type: "array",
+ schemaType: ["object", "boolean"],
+ before: "uniqueItems",
+ error,
+ code(cxt) {
+ const { schema, parentSchema, it } = cxt;
+ const { prefixItems } = parentSchema;
+ it.items = true;
+ if ((0, util_1.alwaysValidSchema)(it, schema))
+ return;
+ if (prefixItems)
+ (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);
+ else
+ cxt.ok((0, code_1.validateArray)(cxt));
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/contains.js
+var require_contains = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/contains.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var error = {
+ message: ({ params: { min, max } }) => max === void 0 ? (0, codegen_1.str)`must contain at least ${min} valid item(s)` : (0, codegen_1.str)`must contain at least ${min} and no more than ${max} valid item(s)`,
+ params: ({ params: { min, max } }) => max === void 0 ? (0, codegen_1._)`{minContains: ${min}}` : (0, codegen_1._)`{minContains: ${min}, maxContains: ${max}}`
+ };
+ var def = {
+ keyword: "contains",
+ type: "array",
+ schemaType: ["object", "boolean"],
+ before: "uniqueItems",
+ trackErrors: true,
+ error,
+ code(cxt) {
+ const { gen, schema, parentSchema, data, it } = cxt;
+ let min;
+ let max;
+ const { minContains, maxContains } = parentSchema;
+ if (it.opts.next) {
+ min = minContains === void 0 ? 1 : minContains;
+ max = maxContains;
+ } else {
+ min = 1;
+ }
+ const len = gen.const("len", (0, codegen_1._)`${data}.length`);
+ cxt.setParams({ min, max });
+ if (max === void 0 && min === 0) {
+ (0, util_1.checkStrictMode)(it, `"minContains" == 0 without "maxContains": "contains" keyword ignored`);
+ return;
+ }
+ if (max !== void 0 && min > max) {
+ (0, util_1.checkStrictMode)(it, `"minContains" > "maxContains" is always invalid`);
+ cxt.fail();
+ return;
+ }
+ if ((0, util_1.alwaysValidSchema)(it, schema)) {
+ let cond = (0, codegen_1._)`${len} >= ${min}`;
+ if (max !== void 0)
+ cond = (0, codegen_1._)`${cond} && ${len} <= ${max}`;
+ cxt.pass(cond);
+ return;
+ }
+ it.items = true;
+ const valid = gen.name("valid");
+ if (max === void 0 && min === 1) {
+ validateItems(valid, () => gen.if(valid, () => gen.break()));
+ } else if (min === 0) {
+ gen.let(valid, true);
+ if (max !== void 0)
+ gen.if((0, codegen_1._)`${data}.length > 0`, validateItemsWithCount);
+ } else {
+ gen.let(valid, false);
+ validateItemsWithCount();
+ }
+ cxt.result(valid, () => cxt.reset());
+ function validateItemsWithCount() {
+ const schValid = gen.name("_valid");
+ const count = gen.let("count", 0);
+ validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));
+ }
+ function validateItems(_valid, block) {
+ gen.forRange("i", 0, len, (i) => {
+ cxt.subschema({
+ keyword: "contains",
+ dataProp: i,
+ dataPropType: util_1.Type.Num,
+ compositeRule: true
+ }, _valid);
+ block();
+ });
+ }
+ function checkLimits(count) {
+ gen.code((0, codegen_1._)`${count}++`);
+ if (max === void 0) {
+ gen.if((0, codegen_1._)`${count} >= ${min}`, () => gen.assign(valid, true).break());
+ } else {
+ gen.if((0, codegen_1._)`${count} > ${max}`, () => gen.assign(valid, false).break());
+ if (min === 1)
+ gen.assign(valid, true);
+ else
+ gen.if((0, codegen_1._)`${count} >= ${min}`, () => gen.assign(valid, true));
+ }
+ }
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/dependencies.js
+var require_dependencies = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/dependencies.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.validateSchemaDeps = exports2.validatePropertyDeps = exports2.error = void 0;
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var code_1 = require_code2();
+ exports2.error = {
+ message: ({ params: { property, depsCount, deps } }) => {
+ const property_ies = depsCount === 1 ? "property" : "properties";
+ return (0, codegen_1.str)`must have ${property_ies} ${deps} when property ${property} is present`;
+ },
+ params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._)`{property: ${property},
+ missingProperty: ${missingProperty},
+ depsCount: ${depsCount},
+ deps: ${deps}}`
+ // TODO change to reference
+ };
+ var def = {
+ keyword: "dependencies",
+ type: "object",
+ schemaType: "object",
+ error: exports2.error,
+ code(cxt) {
+ const [propDeps, schDeps] = splitDependencies(cxt);
+ validatePropertyDeps(cxt, propDeps);
+ validateSchemaDeps(cxt, schDeps);
+ }
+ };
+ function splitDependencies({ schema }) {
+ const propertyDeps = {};
+ const schemaDeps = {};
+ for (const key in schema) {
+ if (key === "__proto__")
+ continue;
+ const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;
+ deps[key] = schema[key];
+ }
+ return [propertyDeps, schemaDeps];
+ }
+ function validatePropertyDeps(cxt, propertyDeps = cxt.schema) {
+ const { gen, data, it } = cxt;
+ if (Object.keys(propertyDeps).length === 0)
+ return;
+ const missing = gen.let("missing");
+ for (const prop in propertyDeps) {
+ const deps = propertyDeps[prop];
+ if (deps.length === 0)
+ continue;
+ const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);
+ cxt.setParams({
+ property: prop,
+ depsCount: deps.length,
+ deps: deps.join(", ")
+ });
+ if (it.allErrors) {
+ gen.if(hasProperty, () => {
+ for (const depProp of deps) {
+ (0, code_1.checkReportMissingProp)(cxt, depProp);
+ }
+ });
+ } else {
+ gen.if((0, codegen_1._)`${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);
+ (0, code_1.reportMissingProp)(cxt, missing);
+ gen.else();
+ }
+ }
+ }
+ exports2.validatePropertyDeps = validatePropertyDeps;
+ function validateSchemaDeps(cxt, schemaDeps = cxt.schema) {
+ const { gen, data, keyword, it } = cxt;
+ const valid = gen.name("valid");
+ for (const prop in schemaDeps) {
+ if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))
+ continue;
+ gen.if(
+ (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties),
+ () => {
+ const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);
+ cxt.mergeValidEvaluated(schCxt, valid);
+ },
+ () => gen.var(valid, true)
+ // TODO var
+ );
+ cxt.ok(valid);
+ }
+ }
+ exports2.validateSchemaDeps = validateSchemaDeps;
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/propertyNames.js
+var require_propertyNames = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/propertyNames.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var error = {
+ message: "property name must be valid",
+ params: ({ params }) => (0, codegen_1._)`{propertyName: ${params.propertyName}}`
+ };
+ var def = {
+ keyword: "propertyNames",
+ type: "object",
+ schemaType: ["object", "boolean"],
+ error,
+ code(cxt) {
+ const { gen, schema, data, it } = cxt;
+ if ((0, util_1.alwaysValidSchema)(it, schema))
+ return;
+ const valid = gen.name("valid");
+ gen.forIn("key", data, (key) => {
+ cxt.setParams({ propertyName: key });
+ cxt.subschema({
+ keyword: "propertyNames",
+ data: key,
+ dataTypes: ["string"],
+ propertyName: key,
+ compositeRule: true
+ }, valid);
+ gen.if((0, codegen_1.not)(valid), () => {
+ cxt.error(true);
+ if (!it.allErrors)
+ gen.break();
+ });
+ });
+ cxt.ok(valid);
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js
+var require_additionalProperties = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var code_1 = require_code2();
+ var codegen_1 = require_codegen();
+ var names_1 = require_names();
+ var util_1 = require_util();
+ var error = {
+ message: "must NOT have additional properties",
+ params: ({ params }) => (0, codegen_1._)`{additionalProperty: ${params.additionalProperty}}`
+ };
+ var def = {
+ keyword: "additionalProperties",
+ type: ["object"],
+ schemaType: ["boolean", "object"],
+ allowUndefined: true,
+ trackErrors: true,
+ error,
+ code(cxt) {
+ const { gen, schema, parentSchema, data, errsCount, it } = cxt;
+ if (!errsCount)
+ throw new Error("ajv implementation error");
+ const { allErrors, opts } = it;
+ it.props = true;
+ if (opts.removeAdditional !== "all" && (0, util_1.alwaysValidSchema)(it, schema))
+ return;
+ const props = (0, code_1.allSchemaProperties)(parentSchema.properties);
+ const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);
+ checkAdditionalProperties();
+ cxt.ok((0, codegen_1._)`${errsCount} === ${names_1.default.errors}`);
+ function checkAdditionalProperties() {
+ gen.forIn("key", data, (key) => {
+ if (!props.length && !patProps.length)
+ additionalPropertyCode(key);
+ else
+ gen.if(isAdditional(key), () => additionalPropertyCode(key));
+ });
+ }
+ function isAdditional(key) {
+ let definedProp;
+ if (props.length > 8) {
+ const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, "properties");
+ definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);
+ } else if (props.length) {
+ definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._)`${key} === ${p}`));
+ } else {
+ definedProp = codegen_1.nil;
+ }
+ if (patProps.length) {
+ definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._)`${(0, code_1.usePattern)(cxt, p)}.test(${key})`));
+ }
+ return (0, codegen_1.not)(definedProp);
+ }
+ function deleteAdditional(key) {
+ gen.code((0, codegen_1._)`delete ${data}[${key}]`);
+ }
+ function additionalPropertyCode(key) {
+ if (opts.removeAdditional === "all" || opts.removeAdditional && schema === false) {
+ deleteAdditional(key);
+ return;
+ }
+ if (schema === false) {
+ cxt.setParams({ additionalProperty: key });
+ cxt.error();
+ if (!allErrors)
+ gen.break();
+ return;
+ }
+ if (typeof schema == "object" && !(0, util_1.alwaysValidSchema)(it, schema)) {
+ const valid = gen.name("valid");
+ if (opts.removeAdditional === "failing") {
+ applyAdditionalSchema(key, valid, false);
+ gen.if((0, codegen_1.not)(valid), () => {
+ cxt.reset();
+ deleteAdditional(key);
+ });
+ } else {
+ applyAdditionalSchema(key, valid);
+ if (!allErrors)
+ gen.if((0, codegen_1.not)(valid), () => gen.break());
+ }
+ }
+ }
+ function applyAdditionalSchema(key, valid, errors) {
+ const subschema = {
+ keyword: "additionalProperties",
+ dataProp: key,
+ dataPropType: util_1.Type.Str
+ };
+ if (errors === false) {
+ Object.assign(subschema, {
+ compositeRule: true,
+ createErrors: false,
+ allErrors: false
+ });
+ }
+ cxt.subschema(subschema, valid);
+ }
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/properties.js
+var require_properties = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/properties.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var validate_1 = require_validate();
+ var code_1 = require_code2();
+ var util_1 = require_util();
+ var additionalProperties_1 = require_additionalProperties();
+ var def = {
+ keyword: "properties",
+ type: "object",
+ schemaType: "object",
+ code(cxt) {
+ const { gen, schema, parentSchema, data, it } = cxt;
+ if (it.opts.removeAdditional === "all" && parentSchema.additionalProperties === void 0) {
+ additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, "additionalProperties"));
+ }
+ const allProps = (0, code_1.allSchemaProperties)(schema);
+ for (const prop of allProps) {
+ it.definedProperties.add(prop);
+ }
+ if (it.opts.unevaluated && allProps.length && it.props !== true) {
+ it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);
+ }
+ const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));
+ if (properties.length === 0)
+ return;
+ const valid = gen.name("valid");
+ for (const prop of properties) {
+ if (hasDefault(prop)) {
+ applyPropertySchema(prop);
+ } else {
+ gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));
+ applyPropertySchema(prop);
+ if (!it.allErrors)
+ gen.else().var(valid, true);
+ gen.endIf();
+ }
+ cxt.it.definedProperties.add(prop);
+ cxt.ok(valid);
+ }
+ function hasDefault(prop) {
+ return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== void 0;
+ }
+ function applyPropertySchema(prop) {
+ cxt.subschema({
+ keyword: "properties",
+ schemaProp: prop,
+ dataProp: prop
+ }, valid);
+ }
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/patternProperties.js
+var require_patternProperties = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/patternProperties.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var code_1 = require_code2();
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var util_2 = require_util();
+ var def = {
+ keyword: "patternProperties",
+ type: "object",
+ schemaType: "object",
+ code(cxt) {
+ const { gen, schema, data, parentSchema, it } = cxt;
+ const { opts } = it;
+ const patterns = (0, code_1.allSchemaProperties)(schema);
+ const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));
+ if (patterns.length === 0 || alwaysValidPatterns.length === patterns.length && (!it.opts.unevaluated || it.props === true)) {
+ return;
+ }
+ const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;
+ const valid = gen.name("valid");
+ if (it.props !== true && !(it.props instanceof codegen_1.Name)) {
+ it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);
+ }
+ const { props } = it;
+ validatePatternProperties();
+ function validatePatternProperties() {
+ for (const pat of patterns) {
+ if (checkProperties)
+ checkMatchingProperties(pat);
+ if (it.allErrors) {
+ validateProperties(pat);
+ } else {
+ gen.var(valid, true);
+ validateProperties(pat);
+ gen.if(valid);
+ }
+ }
+ }
+ function checkMatchingProperties(pat) {
+ for (const prop in checkProperties) {
+ if (new RegExp(pat).test(prop)) {
+ (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);
+ }
+ }
+ }
+ function validateProperties(pat) {
+ gen.forIn("key", data, (key) => {
+ gen.if((0, codegen_1._)`${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {
+ const alwaysValid = alwaysValidPatterns.includes(pat);
+ if (!alwaysValid) {
+ cxt.subschema({
+ keyword: "patternProperties",
+ schemaProp: pat,
+ dataProp: key,
+ dataPropType: util_2.Type.Str
+ }, valid);
+ }
+ if (it.opts.unevaluated && props !== true) {
+ gen.assign((0, codegen_1._)`${props}[${key}]`, true);
+ } else if (!alwaysValid && !it.allErrors) {
+ gen.if((0, codegen_1.not)(valid), () => gen.break());
+ }
+ });
+ });
+ }
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/not.js
+var require_not = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/not.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var util_1 = require_util();
+ var def = {
+ keyword: "not",
+ schemaType: ["object", "boolean"],
+ trackErrors: true,
+ code(cxt) {
+ const { gen, schema, it } = cxt;
+ if ((0, util_1.alwaysValidSchema)(it, schema)) {
+ cxt.fail();
+ return;
+ }
+ const valid = gen.name("valid");
+ cxt.subschema({
+ keyword: "not",
+ compositeRule: true,
+ createErrors: false,
+ allErrors: false
+ }, valid);
+ cxt.failResult(valid, () => cxt.reset(), () => cxt.error());
+ },
+ error: { message: "must NOT be valid" }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/anyOf.js
+var require_anyOf = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/anyOf.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var code_1 = require_code2();
+ var def = {
+ keyword: "anyOf",
+ schemaType: "array",
+ trackErrors: true,
+ code: code_1.validateUnion,
+ error: { message: "must match a schema in anyOf" }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/oneOf.js
+var require_oneOf = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/oneOf.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var error = {
+ message: "must match exactly one schema in oneOf",
+ params: ({ params }) => (0, codegen_1._)`{passingSchemas: ${params.passing}}`
+ };
+ var def = {
+ keyword: "oneOf",
+ schemaType: "array",
+ trackErrors: true,
+ error,
+ code(cxt) {
+ const { gen, schema, parentSchema, it } = cxt;
+ if (!Array.isArray(schema))
+ throw new Error("ajv implementation error");
+ if (it.opts.discriminator && parentSchema.discriminator)
+ return;
+ const schArr = schema;
+ const valid = gen.let("valid", false);
+ const passing = gen.let("passing", null);
+ const schValid = gen.name("_valid");
+ cxt.setParams({ passing });
+ gen.block(validateOneOf);
+ cxt.result(valid, () => cxt.reset(), () => cxt.error(true));
+ function validateOneOf() {
+ schArr.forEach((sch, i) => {
+ let schCxt;
+ if ((0, util_1.alwaysValidSchema)(it, sch)) {
+ gen.var(schValid, true);
+ } else {
+ schCxt = cxt.subschema({
+ keyword: "oneOf",
+ schemaProp: i,
+ compositeRule: true
+ }, schValid);
+ }
+ if (i > 0) {
+ gen.if((0, codegen_1._)`${schValid} && ${valid}`).assign(valid, false).assign(passing, (0, codegen_1._)`[${passing}, ${i}]`).else();
+ }
+ gen.if(schValid, () => {
+ gen.assign(valid, true);
+ gen.assign(passing, i);
+ if (schCxt)
+ cxt.mergeEvaluated(schCxt, codegen_1.Name);
+ });
+ });
+ }
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/allOf.js
+var require_allOf = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/allOf.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var util_1 = require_util();
+ var def = {
+ keyword: "allOf",
+ schemaType: "array",
+ code(cxt) {
+ const { gen, schema, it } = cxt;
+ if (!Array.isArray(schema))
+ throw new Error("ajv implementation error");
+ const valid = gen.name("valid");
+ schema.forEach((sch, i) => {
+ if ((0, util_1.alwaysValidSchema)(it, sch))
+ return;
+ const schCxt = cxt.subschema({ keyword: "allOf", schemaProp: i }, valid);
+ cxt.ok(valid);
+ cxt.mergeEvaluated(schCxt);
+ });
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/if.js
+var require_if = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/if.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var codegen_1 = require_codegen();
+ var util_1 = require_util();
+ var error = {
+ message: ({ params }) => (0, codegen_1.str)`must match "${params.ifClause}" schema`,
+ params: ({ params }) => (0, codegen_1._)`{failingKeyword: ${params.ifClause}}`
+ };
+ var def = {
+ keyword: "if",
+ schemaType: ["object", "boolean"],
+ trackErrors: true,
+ error,
+ code(cxt) {
+ const { gen, parentSchema, it } = cxt;
+ if (parentSchema.then === void 0 && parentSchema.else === void 0) {
+ (0, util_1.checkStrictMode)(it, '"if" without "then" and "else" is ignored');
+ }
+ const hasThen = hasSchema(it, "then");
+ const hasElse = hasSchema(it, "else");
+ if (!hasThen && !hasElse)
+ return;
+ const valid = gen.let("valid", true);
+ const schValid = gen.name("_valid");
+ validateIf();
+ cxt.reset();
+ if (hasThen && hasElse) {
+ const ifClause = gen.let("ifClause");
+ cxt.setParams({ ifClause });
+ gen.if(schValid, validateClause("then", ifClause), validateClause("else", ifClause));
+ } else if (hasThen) {
+ gen.if(schValid, validateClause("then"));
+ } else {
+ gen.if((0, codegen_1.not)(schValid), validateClause("else"));
+ }
+ cxt.pass(valid, () => cxt.error(true));
+ function validateIf() {
+ const schCxt = cxt.subschema({
+ keyword: "if",
+ compositeRule: true,
+ createErrors: false,
+ allErrors: false
+ }, schValid);
+ cxt.mergeEvaluated(schCxt);
+ }
+ function validateClause(keyword, ifClause) {
+ return () => {
+ const schCxt = cxt.subschema({ keyword }, schValid);
+ gen.assign(valid, schValid);
+ cxt.mergeValidEvaluated(schCxt, valid);
+ if (ifClause)
+ gen.assign(ifClause, (0, codegen_1._)`${keyword}`);
+ else
+ cxt.setParams({ ifClause: keyword });
+ };
+ }
+ }
+ };
+ function hasSchema(it, keyword) {
+ const schema = it.schema[keyword];
+ return schema !== void 0 && !(0, util_1.alwaysValidSchema)(it, schema);
+ }
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/thenElse.js
+var require_thenElse = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/thenElse.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var util_1 = require_util();
+ var def = {
+ keyword: ["then", "else"],
+ schemaType: ["object", "boolean"],
+ code({ keyword, parentSchema, it }) {
+ if (parentSchema.if === void 0)
+ (0, util_1.checkStrictMode)(it, `"${keyword}" without "if" is ignored`);
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/applicator/index.js
+var require_applicator = __commonJS({
+ "node_modules/ajv/dist/vocabularies/applicator/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var additionalItems_1 = require_additionalItems();
+ var prefixItems_1 = require_prefixItems();
+ var items_1 = require_items();
+ var items2020_1 = require_items2020();
+ var contains_1 = require_contains();
+ var dependencies_1 = require_dependencies();
+ var propertyNames_1 = require_propertyNames();
+ var additionalProperties_1 = require_additionalProperties();
+ var properties_1 = require_properties();
+ var patternProperties_1 = require_patternProperties();
+ var not_1 = require_not();
+ var anyOf_1 = require_anyOf();
+ var oneOf_1 = require_oneOf();
+ var allOf_1 = require_allOf();
+ var if_1 = require_if();
+ var thenElse_1 = require_thenElse();
+ function getApplicator(draft2020 = false) {
+ const applicator = [
+ // any
+ not_1.default,
+ anyOf_1.default,
+ oneOf_1.default,
+ allOf_1.default,
+ if_1.default,
+ thenElse_1.default,
+ // object
+ propertyNames_1.default,
+ additionalProperties_1.default,
+ dependencies_1.default,
+ properties_1.default,
+ patternProperties_1.default
+ ];
+ if (draft2020)
+ applicator.push(prefixItems_1.default, items2020_1.default);
+ else
+ applicator.push(additionalItems_1.default, items_1.default);
+ applicator.push(contains_1.default);
+ return applicator;
+ }
+ exports2.default = getApplicator;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/format/format.js
+var require_format = __commonJS({
+ "node_modules/ajv/dist/vocabularies/format/format.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var codegen_1 = require_codegen();
+ var error = {
+ message: ({ schemaCode }) => (0, codegen_1.str)`must match format "${schemaCode}"`,
+ params: ({ schemaCode }) => (0, codegen_1._)`{format: ${schemaCode}}`
+ };
+ var def = {
+ keyword: "format",
+ type: ["number", "string"],
+ schemaType: "string",
+ $data: true,
+ error,
+ code(cxt, ruleType) {
+ const { gen, data, $data, schema, schemaCode, it } = cxt;
+ const { opts, errSchemaPath, schemaEnv, self: self2 } = it;
+ if (!opts.validateFormats)
+ return;
+ if ($data)
+ validate$DataFormat();
+ else
+ validateFormat();
+ function validate$DataFormat() {
+ const fmts = gen.scopeValue("formats", {
+ ref: self2.formats,
+ code: opts.code.formats
+ });
+ const fDef = gen.const("fDef", (0, codegen_1._)`${fmts}[${schemaCode}]`);
+ const fType = gen.let("fType");
+ const format = gen.let("format");
+ gen.if((0, codegen_1._)`typeof ${fDef} == "object" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._)`${fDef}.type || "string"`).assign(format, (0, codegen_1._)`${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._)`"string"`).assign(format, fDef));
+ cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));
+ function unknownFmt() {
+ if (opts.strictSchema === false)
+ return codegen_1.nil;
+ return (0, codegen_1._)`${schemaCode} && !${format}`;
+ }
+ function invalidFmt() {
+ const callFormat = schemaEnv.$async ? (0, codegen_1._)`(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))` : (0, codegen_1._)`${format}(${data})`;
+ const validData = (0, codegen_1._)`(typeof ${format} == "function" ? ${callFormat} : ${format}.test(${data}))`;
+ return (0, codegen_1._)`${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;
+ }
+ }
+ function validateFormat() {
+ const formatDef = self2.formats[schema];
+ if (!formatDef) {
+ unknownFormat();
+ return;
+ }
+ if (formatDef === true)
+ return;
+ const [fmtType, format, fmtRef] = getFormat(formatDef);
+ if (fmtType === ruleType)
+ cxt.pass(validCondition());
+ function unknownFormat() {
+ if (opts.strictSchema === false) {
+ self2.logger.warn(unknownMsg());
+ return;
+ }
+ throw new Error(unknownMsg());
+ function unknownMsg() {
+ return `unknown format "${schema}" ignored in schema at path "${errSchemaPath}"`;
+ }
+ }
+ function getFormat(fmtDef) {
+ const code = fmtDef instanceof RegExp ? (0, codegen_1.regexpCode)(fmtDef) : opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(schema)}` : void 0;
+ const fmt = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
+ if (typeof fmtDef == "object" && !(fmtDef instanceof RegExp)) {
+ return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt}.validate`];
+ }
+ return ["string", fmtDef, fmt];
+ }
+ function validCondition() {
+ if (typeof formatDef == "object" && !(formatDef instanceof RegExp) && formatDef.async) {
+ if (!schemaEnv.$async)
+ throw new Error("async format in sync schema");
+ return (0, codegen_1._)`await ${fmtRef}(${data})`;
+ }
+ return typeof format == "function" ? (0, codegen_1._)`${fmtRef}(${data})` : (0, codegen_1._)`${fmtRef}.test(${data})`;
+ }
+ }
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/format/index.js
+var require_format2 = __commonJS({
+ "node_modules/ajv/dist/vocabularies/format/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var format_1 = require_format();
+ var format = [format_1.default];
+ exports2.default = format;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/metadata.js
+var require_metadata = __commonJS({
+ "node_modules/ajv/dist/vocabularies/metadata.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.contentVocabulary = exports2.metadataVocabulary = void 0;
+ exports2.metadataVocabulary = [
+ "title",
+ "description",
+ "default",
+ "deprecated",
+ "readOnly",
+ "writeOnly",
+ "examples"
+ ];
+ exports2.contentVocabulary = [
+ "contentMediaType",
+ "contentEncoding",
+ "contentSchema"
+ ];
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/draft7.js
+var require_draft7 = __commonJS({
+ "node_modules/ajv/dist/vocabularies/draft7.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var core_1 = require_core2();
+ var validation_1 = require_validation2();
+ var applicator_1 = require_applicator();
+ var format_1 = require_format2();
+ var metadata_1 = require_metadata();
+ var draft7Vocabularies = [
+ core_1.default,
+ validation_1.default,
+ (0, applicator_1.default)(),
+ format_1.default,
+ metadata_1.metadataVocabulary,
+ metadata_1.contentVocabulary
+ ];
+ exports2.default = draft7Vocabularies;
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/discriminator/types.js
+var require_types4 = __commonJS({
+ "node_modules/ajv/dist/vocabularies/discriminator/types.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.DiscrError = void 0;
+ var DiscrError;
+ (function(DiscrError2) {
+ DiscrError2["Tag"] = "tag";
+ DiscrError2["Mapping"] = "mapping";
+ })(DiscrError || (exports2.DiscrError = DiscrError = {}));
+ }
+});
+
+// node_modules/ajv/dist/vocabularies/discriminator/index.js
+var require_discriminator = __commonJS({
+ "node_modules/ajv/dist/vocabularies/discriminator/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var codegen_1 = require_codegen();
+ var types_1 = require_types4();
+ var compile_1 = require_compile();
+ var ref_error_1 = require_ref_error();
+ var util_1 = require_util();
+ var error = {
+ message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag ? `tag "${tagName}" must be string` : `value of tag "${tagName}" must be in oneOf`,
+ params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._)`{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`
+ };
+ var def = {
+ keyword: "discriminator",
+ type: "object",
+ schemaType: "object",
+ error,
+ code(cxt) {
+ const { gen, data, schema, parentSchema, it } = cxt;
+ const { oneOf } = parentSchema;
+ if (!it.opts.discriminator) {
+ throw new Error("discriminator: requires discriminator option");
+ }
+ const tagName = schema.propertyName;
+ if (typeof tagName != "string")
+ throw new Error("discriminator: requires propertyName");
+ if (schema.mapping)
+ throw new Error("discriminator: mapping is not supported");
+ if (!oneOf)
+ throw new Error("discriminator: requires oneOf keyword");
+ const valid = gen.let("valid", false);
+ const tag = gen.const("tag", (0, codegen_1._)`${data}${(0, codegen_1.getProperty)(tagName)}`);
+ gen.if((0, codegen_1._)`typeof ${tag} == "string"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));
+ cxt.ok(valid);
+ function validateMapping() {
+ const mapping = getMapping();
+ gen.if(false);
+ for (const tagValue in mapping) {
+ gen.elseIf((0, codegen_1._)`${tag} === ${tagValue}`);
+ gen.assign(valid, applyTagSchema(mapping[tagValue]));
+ }
+ gen.else();
+ cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });
+ gen.endIf();
+ }
+ function applyTagSchema(schemaProp) {
+ const _valid = gen.name("valid");
+ const schCxt = cxt.subschema({ keyword: "oneOf", schemaProp }, _valid);
+ cxt.mergeEvaluated(schCxt, codegen_1.Name);
+ return _valid;
+ }
+ function getMapping() {
+ var _a;
+ const oneOfMapping = {};
+ const topRequired = hasRequired(parentSchema);
+ let tagRequired = true;
+ for (let i = 0; i < oneOf.length; i++) {
+ let sch = oneOf[i];
+ if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {
+ const ref = sch.$ref;
+ sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);
+ if (sch instanceof compile_1.SchemaEnv)
+ sch = sch.schema;
+ if (sch === void 0)
+ throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);
+ }
+ const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];
+ if (typeof propSch != "object") {
+ throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${tagName}"`);
+ }
+ tagRequired = tagRequired && (topRequired || hasRequired(sch));
+ addMappings(propSch, i);
+ }
+ if (!tagRequired)
+ throw new Error(`discriminator: "${tagName}" must be required`);
+ return oneOfMapping;
+ function hasRequired({ required }) {
+ return Array.isArray(required) && required.includes(tagName);
+ }
+ function addMappings(sch, i) {
+ if (sch.const) {
+ addMapping(sch.const, i);
+ } else if (sch.enum) {
+ for (const tagValue of sch.enum) {
+ addMapping(tagValue, i);
+ }
+ } else {
+ throw new Error(`discriminator: "properties/${tagName}" must have "const" or "enum"`);
+ }
+ }
+ function addMapping(tagValue, i) {
+ if (typeof tagValue != "string" || tagValue in oneOfMapping) {
+ throw new Error(`discriminator: "${tagName}" values must be unique strings`);
+ }
+ oneOfMapping[tagValue] = i;
+ }
+ }
+ }
+ };
+ exports2.default = def;
+ }
+});
+
+// node_modules/ajv/dist/refs/json-schema-draft-07.json
+var require_json_schema_draft_07 = __commonJS({
+ "node_modules/ajv/dist/refs/json-schema-draft-07.json"(exports2, module2) {
+ module2.exports = {
+ $schema: "http://json-schema.org/draft-07/schema#",
+ $id: "http://json-schema.org/draft-07/schema#",
+ title: "Core schema meta-schema",
+ definitions: {
+ schemaArray: {
+ type: "array",
+ minItems: 1,
+ items: { $ref: "#" }
+ },
+ nonNegativeInteger: {
+ type: "integer",
+ minimum: 0
+ },
+ nonNegativeIntegerDefault0: {
+ allOf: [{ $ref: "#/definitions/nonNegativeInteger" }, { default: 0 }]
+ },
+ simpleTypes: {
+ enum: ["array", "boolean", "integer", "null", "number", "object", "string"]
+ },
+ stringArray: {
+ type: "array",
+ items: { type: "string" },
+ uniqueItems: true,
+ default: []
+ }
+ },
+ type: ["object", "boolean"],
+ properties: {
+ $id: {
+ type: "string",
+ format: "uri-reference"
+ },
+ $schema: {
+ type: "string",
+ format: "uri"
+ },
+ $ref: {
+ type: "string",
+ format: "uri-reference"
+ },
+ $comment: {
+ type: "string"
+ },
+ title: {
+ type: "string"
+ },
+ description: {
+ type: "string"
+ },
+ default: true,
+ readOnly: {
+ type: "boolean",
+ default: false
+ },
+ examples: {
+ type: "array",
+ items: true
+ },
+ multipleOf: {
+ type: "number",
+ exclusiveMinimum: 0
+ },
+ maximum: {
+ type: "number"
+ },
+ exclusiveMaximum: {
+ type: "number"
+ },
+ minimum: {
+ type: "number"
+ },
+ exclusiveMinimum: {
+ type: "number"
+ },
+ maxLength: { $ref: "#/definitions/nonNegativeInteger" },
+ minLength: { $ref: "#/definitions/nonNegativeIntegerDefault0" },
+ pattern: {
+ type: "string",
+ format: "regex"
+ },
+ additionalItems: { $ref: "#" },
+ items: {
+ anyOf: [{ $ref: "#" }, { $ref: "#/definitions/schemaArray" }],
+ default: true
+ },
+ maxItems: { $ref: "#/definitions/nonNegativeInteger" },
+ minItems: { $ref: "#/definitions/nonNegativeIntegerDefault0" },
+ uniqueItems: {
+ type: "boolean",
+ default: false
+ },
+ contains: { $ref: "#" },
+ maxProperties: { $ref: "#/definitions/nonNegativeInteger" },
+ minProperties: { $ref: "#/definitions/nonNegativeIntegerDefault0" },
+ required: { $ref: "#/definitions/stringArray" },
+ additionalProperties: { $ref: "#" },
+ definitions: {
+ type: "object",
+ additionalProperties: { $ref: "#" },
+ default: {}
+ },
+ properties: {
+ type: "object",
+ additionalProperties: { $ref: "#" },
+ default: {}
+ },
+ patternProperties: {
+ type: "object",
+ additionalProperties: { $ref: "#" },
+ propertyNames: { format: "regex" },
+ default: {}
+ },
+ dependencies: {
+ type: "object",
+ additionalProperties: {
+ anyOf: [{ $ref: "#" }, { $ref: "#/definitions/stringArray" }]
+ }
+ },
+ propertyNames: { $ref: "#" },
+ const: true,
+ enum: {
+ type: "array",
+ items: true,
+ minItems: 1,
+ uniqueItems: true
+ },
+ type: {
+ anyOf: [
+ { $ref: "#/definitions/simpleTypes" },
+ {
+ type: "array",
+ items: { $ref: "#/definitions/simpleTypes" },
+ minItems: 1,
+ uniqueItems: true
+ }
+ ]
+ },
+ format: { type: "string" },
+ contentMediaType: { type: "string" },
+ contentEncoding: { type: "string" },
+ if: { $ref: "#" },
+ then: { $ref: "#" },
+ else: { $ref: "#" },
+ allOf: { $ref: "#/definitions/schemaArray" },
+ anyOf: { $ref: "#/definitions/schemaArray" },
+ oneOf: { $ref: "#/definitions/schemaArray" },
+ not: { $ref: "#" }
+ },
+ default: true
+ };
+ }
+});
+
+// node_modules/ajv/dist/ajv.js
+var require_ajv = __commonJS({
+ "node_modules/ajv/dist/ajv.js"(exports2, module2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.MissingRefError = exports2.ValidationError = exports2.CodeGen = exports2.Name = exports2.nil = exports2.stringify = exports2.str = exports2._ = exports2.KeywordCxt = exports2.Ajv = void 0;
+ var core_1 = require_core();
+ var draft7_1 = require_draft7();
+ var discriminator_1 = require_discriminator();
+ var draft7MetaSchema = require_json_schema_draft_07();
+ var META_SUPPORT_DATA = ["/properties"];
+ var META_SCHEMA_ID = "http://json-schema.org/draft-07/schema";
+ var Ajv = class extends core_1.default {
+ _addVocabularies() {
+ super._addVocabularies();
+ draft7_1.default.forEach((v) => this.addVocabulary(v));
+ if (this.opts.discriminator)
+ this.addKeyword(discriminator_1.default);
+ }
+ _addDefaultMetaSchema() {
+ super._addDefaultMetaSchema();
+ if (!this.opts.meta)
+ return;
+ const metaSchema = this.opts.$data ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA) : draft7MetaSchema;
+ this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);
+ this.refs["http://json-schema.org/schema"] = META_SCHEMA_ID;
+ }
+ defaultMeta() {
+ return this.opts.defaultMeta = super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : void 0);
+ }
+ };
+ exports2.Ajv = Ajv;
+ module2.exports = exports2 = Ajv;
+ module2.exports.Ajv = Ajv;
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.default = Ajv;
+ var validate_1 = require_validate();
+ Object.defineProperty(exports2, "KeywordCxt", { enumerable: true, get: function() {
+ return validate_1.KeywordCxt;
+ } });
+ var codegen_1 = require_codegen();
+ Object.defineProperty(exports2, "_", { enumerable: true, get: function() {
+ return codegen_1._;
+ } });
+ Object.defineProperty(exports2, "str", { enumerable: true, get: function() {
+ return codegen_1.str;
+ } });
+ Object.defineProperty(exports2, "stringify", { enumerable: true, get: function() {
+ return codegen_1.stringify;
+ } });
+ Object.defineProperty(exports2, "nil", { enumerable: true, get: function() {
+ return codegen_1.nil;
+ } });
+ Object.defineProperty(exports2, "Name", { enumerable: true, get: function() {
+ return codegen_1.Name;
+ } });
+ Object.defineProperty(exports2, "CodeGen", { enumerable: true, get: function() {
+ return codegen_1.CodeGen;
+ } });
+ var validation_error_1 = require_validation_error();
+ Object.defineProperty(exports2, "ValidationError", { enumerable: true, get: function() {
+ return validation_error_1.default;
+ } });
+ var ref_error_1 = require_ref_error();
+ Object.defineProperty(exports2, "MissingRefError", { enumerable: true, get: function() {
+ return ref_error_1.default;
+ } });
+ }
+});
+
+// node_modules/@lit-protocol/logger/node_modules/tslib/tslib.es6.js
+var tslib_es6_exports6 = {};
+__export(tslib_es6_exports6, {
+ __assign: () => __assign6,
+ __asyncDelegator: () => __asyncDelegator6,
+ __asyncGenerator: () => __asyncGenerator6,
+ __asyncValues: () => __asyncValues6,
+ __await: () => __await6,
+ __awaiter: () => __awaiter6,
+ __classPrivateFieldGet: () => __classPrivateFieldGet6,
+ __classPrivateFieldSet: () => __classPrivateFieldSet6,
+ __createBinding: () => __createBinding6,
+ __decorate: () => __decorate6,
+ __exportStar: () => __exportStar6,
+ __extends: () => __extends6,
+ __generator: () => __generator6,
+ __importDefault: () => __importDefault6,
+ __importStar: () => __importStar6,
+ __makeTemplateObject: () => __makeTemplateObject6,
+ __metadata: () => __metadata6,
+ __param: () => __param6,
+ __read: () => __read6,
+ __rest: () => __rest6,
+ __spread: () => __spread6,
+ __spreadArrays: () => __spreadArrays6,
+ __values: () => __values6
+});
+function __extends6(d, b) {
+ extendStatics6(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+function __rest6(s, e) {
+ var t = {};
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+}
+function __decorate6(decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ r = Reflect.decorate(decorators, target, key, desc);
+ else
+ for (var i = decorators.length - 1; i >= 0; i--)
+ if (d = decorators[i])
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+function __param6(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+}
+function __metadata6(metadataKey, metadataValue) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(metadataKey, metadataValue);
+}
+function __awaiter6(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+}
+function __generator6(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+}
+function __createBinding6(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+}
+function __exportStar6(m, exports2) {
+ for (var p in m)
+ if (p !== "default" && !exports2.hasOwnProperty(p))
+ exports2[p] = m[p];
+}
+function __values6(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m)
+ return m.call(o);
+ if (o && typeof o.length === "number")
+ return {
+ next: function() {
+ if (o && i >= o.length)
+ o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+}
+function __read6(o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m)
+ return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
+ ar.push(r.value);
+ } catch (error) {
+ e = { error };
+ } finally {
+ try {
+ if (r && !r.done && (m = i["return"]))
+ m.call(i);
+ } finally {
+ if (e)
+ throw e.error;
+ }
+ }
+ return ar;
+}
+function __spread6() {
+ for (var ar = [], i = 0; i < arguments.length; i++)
+ ar = ar.concat(__read6(arguments[i]));
+ return ar;
+}
+function __spreadArrays6() {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
+ s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+}
+function __await6(v) {
+ return this instanceof __await6 ? (this.v = v, this) : new __await6(v);
+}
+function __asyncGenerator6(thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i;
+ function verb(n) {
+ if (g[n])
+ i[n] = function(v) {
+ return new Promise(function(a, b) {
+ q.push([n, v, a, b]) > 1 || resume(n, v);
+ });
+ };
+ }
+ function resume(n, v) {
+ try {
+ step(g[n](v));
+ } catch (e) {
+ settle(q[0][3], e);
+ }
+ }
+ function step(r) {
+ r.value instanceof __await6 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
+ }
+ function fulfill(value) {
+ resume("next", value);
+ }
+ function reject(value) {
+ resume("throw", value);
+ }
+ function settle(f, v) {
+ if (f(v), q.shift(), q.length)
+ resume(q[0][0], q[0][1]);
+ }
+}
+function __asyncDelegator6(o) {
+ var i, p;
+ return i = {}, verb("next"), verb("throw", function(e) {
+ throw e;
+ }), verb("return"), i[Symbol.iterator] = function() {
+ return this;
+ }, i;
+ function verb(n, f) {
+ i[n] = o[n] ? function(v) {
+ return (p = !p) ? { value: __await6(o[n](v)), done: n === "return" } : f ? f(v) : v;
+ } : f;
+ }
+}
+function __asyncValues6(o) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator], i;
+ return m ? m.call(o) : (o = typeof __values6 === "function" ? __values6(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i);
+ function verb(n) {
+ i[n] = o[n] && function(v) {
+ return new Promise(function(resolve, reject) {
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
+ });
+ };
+ }
+ function settle(resolve, reject, d, v) {
+ Promise.resolve(v).then(function(v2) {
+ resolve({ value: v2, done: d });
+ }, reject);
+ }
+}
+function __makeTemplateObject6(cooked, raw) {
+ if (Object.defineProperty) {
+ Object.defineProperty(cooked, "raw", { value: raw });
+ } else {
+ cooked.raw = raw;
+ }
+ return cooked;
+}
+function __importStar6(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (Object.hasOwnProperty.call(mod, k))
+ result[k] = mod[k];
+ }
+ result.default = mod;
+ return result;
+}
+function __importDefault6(mod) {
+ return mod && mod.__esModule ? mod : { default: mod };
+}
+function __classPrivateFieldGet6(receiver, privateMap) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to get private field on non-instance");
+ }
+ return privateMap.get(receiver);
+}
+function __classPrivateFieldSet6(receiver, privateMap, value) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to set private field on non-instance");
+ }
+ privateMap.set(receiver, value);
+ return value;
+}
+var extendStatics6, __assign6;
+var init_tslib_es66 = __esm({
+ "node_modules/@lit-protocol/logger/node_modules/tslib/tslib.es6.js"() {
+ extendStatics6 = function(d, b) {
+ extendStatics6 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (b2.hasOwnProperty(p))
+ d2[p] = b2[p];
+ };
+ return extendStatics6(d, b);
+ };
+ __assign6 = function() {
+ __assign6 = Object.assign || function __assign13(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign6.apply(this, arguments);
+ };
+ }
+});
+
+// node_modules/@lit-protocol/logger/src/lib/logger.js
+var require_logger = __commonJS({
+ "node_modules/@lit-protocol/logger/src/lib/logger.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.LogManager = exports2.Logger = exports2.LogLevel = void 0;
+ var constants_1 = require_src2();
+ var utils_1 = require_utils8();
+ var LogLevel;
+ (function(LogLevel2) {
+ LogLevel2[LogLevel2["OFF"] = -1] = "OFF";
+ LogLevel2[LogLevel2["ERROR"] = 0] = "ERROR";
+ LogLevel2[LogLevel2["INFO"] = 1] = "INFO";
+ LogLevel2[LogLevel2["DEBUG"] = 2] = "DEBUG";
+ LogLevel2[LogLevel2["WARN"] = 3] = "WARN";
+ LogLevel2[LogLevel2["FATAL"] = 4] = "FATAL";
+ LogLevel2[LogLevel2["TIMING_START"] = 5] = "TIMING_START";
+ LogLevel2[LogLevel2["TIMING_END"] = 6] = "TIMING_END";
+ })(LogLevel || (exports2.LogLevel = LogLevel = {}));
+ var colours = {
+ reset: "\x1B[0m",
+ bright: "\x1B[1m",
+ dim: "\x1B[2m",
+ underscore: "\x1B[4m",
+ blink: "\x1B[5m",
+ reverse: "\x1B[7m",
+ hidden: "\x1B[8m",
+ fg: {
+ black: "\x1B[30m",
+ red: "\x1B[31m",
+ green: "\x1B[32m",
+ yellow: "\x1B[33m",
+ blue: "\x1B[34m",
+ magenta: "\x1B[35m",
+ cyan: "\x1B[36m",
+ white: "\x1B[37m",
+ gray: "\x1B[90m",
+ crimson: "\x1B[38m"
+ // Scarlet
+ },
+ bg: {
+ black: "\x1B[40m",
+ red: "\x1B[41m",
+ green: "\x1B[42m",
+ yellow: "\x1B[43m",
+ blue: "\x1B[44m",
+ magenta: "\x1B[45m",
+ cyan: "\x1B[46m",
+ white: "\x1B[47m",
+ gray: "\x1B[100m",
+ crimson: "\x1B[48m"
+ }
+ };
+ function _convertLoggingLevel(level) {
+ switch (level) {
+ case constants_1.LOG_LEVEL.INFO:
+ return `${colours.fg.green}[INFO]${colours.reset}`;
+ case constants_1.LOG_LEVEL.DEBUG:
+ return `${colours.fg.cyan}[DEBUG]${colours.reset}`;
+ case constants_1.LOG_LEVEL.WARN:
+ return `${colours.fg.yellow}[WARN]${colours.reset}`;
+ case constants_1.LOG_LEVEL.ERROR:
+ return `${colours.fg.red}[ERROR]${colours.reset}`;
+ case constants_1.LOG_LEVEL.FATAL:
+ return `${colours.fg.red}[FATAL]${colours.reset}`;
+ case constants_1.LOG_LEVEL.TIMING_START:
+ return `${colours.fg.green}[TIME_START]${colours.reset}`;
+ case constants_1.LOG_LEVEL.TIMING_END:
+ return `${colours.fg.green}[TIME_END]${colours.reset}`;
+ }
+ return "[UNKNOWN]";
+ }
+ function _resolveLoggingHandler(level) {
+ switch (level) {
+ case constants_1.LOG_LEVEL.DEBUG:
+ return console.debug;
+ case constants_1.LOG_LEVEL.INFO:
+ return console.info;
+ case constants_1.LOG_LEVEL.ERROR:
+ return console.error;
+ case constants_1.LOG_LEVEL.WARN:
+ return console.warn;
+ case constants_1.LOG_LEVEL.FATAL:
+ return console.error;
+ case constants_1.LOG_LEVEL.TIMING_END:
+ return console.timeLog;
+ case constants_1.LOG_LEVEL.TIMING_START:
+ return console.time;
+ }
+ }
+ function _safeStringify(obj, indent = 2) {
+ let cache = [];
+ const retVal = JSON.stringify(obj, (_key, value) => typeof value === "object" && value !== null ? cache?.includes(value) ? void 0 : cache?.push(value) && value : value, indent);
+ cache = null;
+ return retVal;
+ }
+ var Log = class {
+ constructor(timestamp, message, args, id, category, level) {
+ this.timestamp = timestamp;
+ this.message = message;
+ this.args = args;
+ this.id = id;
+ this.category = category;
+ this.level = level;
+ }
+ toString() {
+ let fmtStr = `[Lit-JS-SDK v${constants_1.version}]${_convertLoggingLevel(this.level)} [${this.category}] [id: ${this.id}] ${this.message}`;
+ for (let i = 0; i < this.args.length; i++) {
+ if (typeof this.args[i] === "object") {
+ fmtStr = `${fmtStr} ${_safeStringify(this.args[i])}`;
+ } else {
+ fmtStr = `${fmtStr} ${this.args[i]}`;
+ }
+ }
+ return fmtStr;
+ }
+ toArray() {
+ const args = [];
+ args.push(`[Lit-JS-SDK v${constants_1.version}]`);
+ args.push(`[${this.timestamp}]`);
+ args.push(_convertLoggingLevel(this.level));
+ args.push(`[${this.category}]`);
+ this.id && args.push(`${colours.fg.cyan}[id: ${this.id}]${colours.reset}`);
+ this.message && args.push(this.message);
+ for (let i = 0; i < this.args.length; i++) {
+ args.push(this.args[i]);
+ }
+ return args;
+ }
+ toJSON() {
+ return {
+ timestamp: this.timestamp,
+ message: this.message,
+ args: this.args,
+ id: this.id,
+ category: this.category,
+ level: this.level
+ };
+ }
+ };
+ var Logger = class _Logger {
+ static createLogger(category, level, id, isParent, config) {
+ return new _Logger(category, level, id, isParent, config);
+ }
+ constructor(category, level, id, isParent, config) {
+ this._logs = [];
+ this._logHashes = /* @__PURE__ */ new Map();
+ this._category = category;
+ this._level = level;
+ this._id = id;
+ this._consoleHandler = _resolveLoggingHandler(this._level);
+ this._config = config;
+ this._children = /* @__PURE__ */ new Map();
+ this._isParent = isParent;
+ this._timestamp = Date.now();
+ }
+ get id() {
+ return this._id;
+ }
+ get category() {
+ return this._category;
+ }
+ get timestamp() {
+ return this._timestamp;
+ }
+ get Logs() {
+ return this._logs;
+ }
+ set Config(value) {
+ this._config = value;
+ }
+ get Config() {
+ return this._config;
+ }
+ get Children() {
+ return this._children;
+ }
+ setLevel(level) {
+ this._level = level;
+ }
+ setHandler(handler) {
+ this._handler = handler;
+ }
+ info(message = "", ...args) {
+ this._log(constants_1.LOG_LEVEL.INFO, message, ...args);
+ }
+ debug(message = "", ...args) {
+ this._log(constants_1.LOG_LEVEL.DEBUG, message, ...args);
+ }
+ warn(message = "", ...args) {
+ this._log(constants_1.LOG_LEVEL.WARN, message, args);
+ }
+ error(message = "", ...args) {
+ this._log(constants_1.LOG_LEVEL.ERROR, message, ...args);
+ }
+ fatal(message = "", ...args) {
+ this._log(constants_1.LOG_LEVEL.FATAL, message, ...args);
+ }
+ trace(message = "", ...args) {
+ this._log(constants_1.LOG_LEVEL.FATAL, message, ...args);
+ }
+ timeStart(message = "", ...args) {
+ this._log(constants_1.LOG_LEVEL.TIMING_START, message, ...args);
+ }
+ timeEnd(message = "", ...args) {
+ this._level < constants_1.LOG_LEVEL.OFF && this._log(constants_1.LOG_LEVEL.TIMING_END, message, ...args);
+ }
+ _log(level, message = "", ...args) {
+ const log = new Log((/* @__PURE__ */ new Date()).toISOString(), message, args, this._id, this._category, level);
+ const arrayLog = log.toArray();
+ if (this._config?.["condenseLogs"] && !this._checkHash(log)) {
+ (this._level >= level || level === LogLevel.ERROR) && this._consoleHandler && this._consoleHandler(...arrayLog);
+ (this._level >= level || level === constants_1.LOG_LEVEL.ERROR) && this._handler && this._handler(log);
+ (this._level >= level || level === LogLevel.ERROR) && this._addLog(log);
+ } else if (!this._config?.["condenseLogs"]) {
+ (this._level >= level || level === LogLevel.ERROR) && this._consoleHandler && this._consoleHandler(...arrayLog);
+ (this._level >= level || level === constants_1.LOG_LEVEL.ERROR) && this._handler && this._handler(log);
+ (this._level >= level || level === constants_1.LOG_LEVEL.ERROR) && this._addLog(log);
+ }
+ }
+ _checkHash(log) {
+ const strippedMessage = this._cleanString(log.message);
+ const digest = (0, utils_1.hashMessage)(strippedMessage);
+ const hash = digest.toString();
+ const item = this._logHashes.get(hash);
+ if (item) {
+ return true;
+ } else {
+ this._logHashes.set(hash, true);
+ return false;
+ }
+ }
+ _addLog(log) {
+ this._logs.push(log);
+ }
+ _addToLocalStorage(log) {
+ if (globalThis.localStorage) {
+ let bucket = globalThis.localStorage.getItem(log.category);
+ if (bucket) {
+ bucket = JSON.parse(bucket);
+ if (!bucket[log.id]) {
+ bucket[log.id] = [];
+ }
+ bucket[log.id].push(log.toString());
+ globalThis.localStorage.setItem(log.category, _safeStringify(bucket));
+ } else {
+ const bucket2 = {};
+ bucket2[log.id] = [log.toString()];
+ globalThis.localStorage.setItem(log.category, _safeStringify(bucket2));
+ }
+ }
+ }
+ /**
+ *
+ * @param input string which will be cleaned of non utf-8 characters
+ * @returns {string} input cleaned of non utf-8 characters
+ */
+ _cleanString(input) {
+ let output = "";
+ for (let i = 0; i < input.length; i++) {
+ if (input.charCodeAt(i) <= 127) {
+ output += input.charAt(i);
+ }
+ }
+ return output;
+ }
+ };
+ exports2.Logger = Logger;
+ var LogManager = class _LogManager {
+ static get Instance() {
+ if (!_LogManager._instance) {
+ _LogManager._instance = new _LogManager();
+ }
+ return _LogManager._instance;
+ }
+ static clearInstance() {
+ _LogManager._instance = void 0;
+ }
+ constructor() {
+ this._level = constants_1.LOG_LEVEL.DEBUG;
+ this._loggers = /* @__PURE__ */ new Map();
+ }
+ withConfig(config) {
+ this._config = config;
+ for (const logger of this._loggers) {
+ logger[1].Config = config;
+ }
+ }
+ setLevel(level) {
+ this._level = level;
+ for (const logger of this._loggers) {
+ logger[1].setLevel(level);
+ }
+ }
+ setHandler(handler) {
+ for (const logger of this._loggers) {
+ logger[1].setHandler(handler);
+ }
+ }
+ get LoggerIds() {
+ const keys = [];
+ for (const category of this._loggers.entries()) {
+ for (const child of category[1].Children) {
+ keys.push([child[0], child[1].timestamp]);
+ }
+ }
+ return keys.sort((a, b) => {
+ return a[1] - b[1];
+ }).map((value) => {
+ return value[0];
+ });
+ }
+ // if a logger is given an id it will persist logs under its logger instance
+ get(category, id) {
+ let instance = this._loggers.get(category);
+ if (!instance && !id) {
+ this._loggers.set(category, Logger.createLogger(category, this._level ?? constants_1.LOG_LEVEL.INFO, "", true));
+ instance = this._loggers.get(category);
+ instance.Config = this._config;
+ return instance;
+ }
+ if (id) {
+ if (!instance) {
+ this._loggers.set(category, Logger.createLogger(category, this._level ?? constants_1.LOG_LEVEL.INFO, "", true));
+ instance = this._loggers.get(category);
+ instance.Config = this._config;
+ }
+ const children = instance?.Children;
+ let child = children?.get(id);
+ if (child) {
+ return child;
+ }
+ children?.set(id, Logger.createLogger(category, this._level ?? constants_1.LOG_LEVEL.INFO, id ?? "", true));
+ child = children?.get(id);
+ child.Config = this._config;
+ return children?.get(id);
+ } else if (!instance) {
+ this._loggers.set(category, Logger.createLogger(category, this._level ?? constants_1.LOG_LEVEL.INFO, "", true));
+ instance = this._loggers.get(category);
+ instance.Config = this._config;
+ }
+ return instance;
+ }
+ getById(id) {
+ let logStrs = [];
+ for (const category of this._loggers.entries()) {
+ const logger = category[1].Children.get(id);
+ if (logger) {
+ const logStr = [];
+ for (const log of logger.Logs) {
+ logStr.push(log.toString());
+ }
+ logStrs = logStrs.concat(logStr);
+ }
+ }
+ return logStrs;
+ }
+ getLogsForId(id) {
+ let logsForRequest = this.getById(id);
+ if (logsForRequest.length < 1 && globalThis.localStorage) {
+ for (const category of this._loggers.keys()) {
+ const bucketStr = globalThis.localStorage.getItem(category);
+ const bucket = JSON.parse(bucketStr);
+ if (bucket && bucket[id]) {
+ const logsForId = bucket[id].filter((log) => log.includes(id));
+ logsForRequest = logsForId.concat(logsForRequest);
+ }
+ }
+ }
+ return logsForRequest;
+ }
+ };
+ exports2.LogManager = LogManager;
+ }
+});
+
+// node_modules/@lit-protocol/logger/src/index.js
+var require_src3 = __commonJS({
+ "node_modules/@lit-protocol/logger/src/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var tslib_1 = (init_tslib_es66(), __toCommonJS(tslib_es6_exports6));
+ tslib_1.__exportStar(require_logger(), exports2);
+ }
+});
+
+// node_modules/@lit-protocol/misc/src/lib/misc.js
+var require_misc = __commonJS({
+ "node_modules/@lit-protocol/misc/src/lib/misc.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.removeHexPrefix = exports2.hexPrefixed = exports2.defaultMintClaimCallback = exports2.genRandomPath = exports2.decimalPlaces = exports2.isBrowser = exports2.isNode = exports2.is = exports2.numberToHex = exports2.sortedObject = exports2.checkIfAuthSigRequiresChainParam = exports2.checkSchema = exports2.checkType = exports2.getVarType = exports2.logError = exports2.logErrorWithRequestId = exports2.logWithRequestId = exports2.log = exports2.getLoggerbyId = exports2.bootstrapLogManager = exports2.throwRemovedFunctionError = exports2.findMostCommonResponse = exports2.mostCommonString = exports2.printError = exports2.setMiscLitConfig = void 0;
+ exports2.isSupportedLitNetwork = isSupportedLitNetwork;
+ exports2.getEnv = getEnv;
+ exports2.sendRequest = sendRequest;
+ exports2.normalizeAndStringify = normalizeAndStringify;
+ exports2.getIpAddress = getIpAddress;
+ var tslib_1 = (init_tslib_es65(), __toCommonJS(tslib_es6_exports5));
+ var contracts_1 = require_lib22();
+ var providers_1 = require_lib33();
+ var ajv_1 = tslib_1.__importDefault(require_ajv());
+ var constants_1 = require_src2();
+ var logger_1 = require_src3();
+ var logBuffer = [];
+ var ajv = new ajv_1.default();
+ var litConfig;
+ var setMiscLitConfig = (config) => {
+ litConfig = config;
+ };
+ exports2.setMiscLitConfig = setMiscLitConfig;
+ var printError = (e) => {
+ console.log("Error Stack", e.stack);
+ console.log("Error Name", e.name);
+ console.log("Error Message", e.message);
+ };
+ exports2.printError = printError;
+ var mostCommonString = (arr) => {
+ return arr.sort((a, b) => arr.filter((v) => v === a).length - arr.filter((v) => v === b).length).pop();
+ };
+ exports2.mostCommonString = mostCommonString;
+ var findMostCommonResponse = (responses) => {
+ const result = {};
+ const keys = new Set(responses.flatMap(Object.keys));
+ for (const key of keys) {
+ const values = responses.map((response) => response[key]);
+ const filteredValues = values.filter((value) => value !== void 0 && value !== "");
+ if (filteredValues.length === 0) {
+ result[key] = void 0;
+ } else if (typeof filteredValues[0] === "object" && !Array.isArray(filteredValues[0])) {
+ result[key] = (0, exports2.findMostCommonResponse)(filteredValues);
+ } else {
+ result[key] = (0, exports2.mostCommonString)(filteredValues);
+ }
+ }
+ return result;
+ };
+ exports2.findMostCommonResponse = findMostCommonResponse;
+ var throwRemovedFunctionError = (functionName) => {
+ throw new constants_1.RemovedFunctionError({
+ info: {
+ functionName
+ }
+ }, `This function "${functionName}" has been removed. Please use the old SDK.`);
+ };
+ exports2.throwRemovedFunctionError = throwRemovedFunctionError;
+ var bootstrapLogManager = (id, level = constants_1.LOG_LEVEL.DEBUG) => {
+ if (!globalThis.logManager) {
+ globalThis.logManager = logger_1.LogManager.Instance;
+ globalThis.logManager.withConfig({
+ condenseLogs: true
+ });
+ globalThis.logManager.setLevel(level);
+ }
+ globalThis.logger = globalThis.logManager.get(id);
+ };
+ exports2.bootstrapLogManager = bootstrapLogManager;
+ var getLoggerbyId = (id) => {
+ return globalThis.logManager.get(id);
+ };
+ exports2.getLoggerbyId = getLoggerbyId;
+ var log = (...args) => {
+ if (!globalThis) {
+ console.log(...args);
+ return;
+ }
+ if (!litConfig) {
+ logBuffer.push(args);
+ return;
+ }
+ while (logBuffer.length > 0) {
+ const log2 = logBuffer.shift() ?? "";
+ globalThis?.logger && globalThis?.logger.debug(...log2);
+ }
+ globalThis?.logger && globalThis?.logger.debug(...args);
+ };
+ exports2.log = log;
+ var logWithRequestId = (id, ...args) => {
+ if (!globalThis) {
+ console.log(...args);
+ return;
+ }
+ if (!litConfig) {
+ logBuffer.push(args);
+ return;
+ }
+ while (logBuffer.length > 0) {
+ const log2 = logBuffer.shift() ?? "";
+ globalThis?.logger && globalThis.logManager.get(globalThis.logger.category, id).debug(...log2);
+ }
+ globalThis?.logger && globalThis.logManager.get(globalThis.logger.category, id).debug(...args);
+ };
+ exports2.logWithRequestId = logWithRequestId;
+ var logErrorWithRequestId = (id, ...args) => {
+ if (!globalThis) {
+ console.log(...args);
+ return;
+ }
+ if (!litConfig) {
+ logBuffer.push(args);
+ return;
+ }
+ while (logBuffer.length > 0) {
+ const log2 = logBuffer.shift() ?? "";
+ globalThis?.logger && globalThis.logManager.get(globalThis.logger.category, id).error(...log2);
+ }
+ globalThis?.logger && globalThis.logManager.get(globalThis.logger.category, id).error(...args);
+ };
+ exports2.logErrorWithRequestId = logErrorWithRequestId;
+ var logError = (...args) => {
+ if (!globalThis) {
+ console.log(...args);
+ return;
+ }
+ if (!litConfig) {
+ logBuffer.push(args);
+ return;
+ }
+ while (logBuffer.length > 0) {
+ const log2 = logBuffer.shift() ?? "";
+ globalThis?.logger && globalThis.logManager.get(globalThis.logger.category).error(...log2);
+ }
+ globalThis?.logger && globalThis.logManager.get(globalThis.logger.category).error(...args);
+ };
+ exports2.logError = logError;
+ var getVarType = (value) => {
+ return Object.prototype.toString.call(value).slice(8, -1);
+ };
+ exports2.getVarType = getVarType;
+ var checkType = ({ value, allowedTypes, paramName, functionName, throwOnError = true }) => {
+ if (!allowedTypes.includes((0, exports2.getVarType)(value))) {
+ const message = `Expecting ${allowedTypes.join(" or ")} type for parameter named ${paramName} in Lit-JS-SDK function ${functionName}(), but received "${(0, exports2.getVarType)(value)}" type instead. value: ${value instanceof Object ? JSON.stringify(value) : value}`;
+ if (throwOnError) {
+ throw new constants_1.InvalidParamType({
+ info: {
+ allowedTypes,
+ value,
+ paramName,
+ functionName
+ }
+ }, message);
+ }
+ return false;
+ }
+ return true;
+ };
+ exports2.checkType = checkType;
+ var checkSchema = (value, schema, paramName, functionName, throwOnError = true) => {
+ let validate = schema.$id ? ajv.getSchema(schema.$id) : void 0;
+ if (!validate) {
+ validate = ajv.compile(schema);
+ }
+ const validates = validate(value);
+ const message = `FAILED schema validation for parameter named ${paramName} in Lit-JS-SDK function ${functionName}(). Value: ${value instanceof Object ? JSON.stringify(value) : value}. Errors: ${JSON.stringify(validate.errors)}`;
+ if (!validates) {
+ if (throwOnError) {
+ throw new constants_1.InvalidParamType({
+ info: {
+ value,
+ paramName,
+ functionName
+ }
+ }, message);
+ }
+ return false;
+ }
+ return true;
+ };
+ exports2.checkSchema = checkSchema;
+ var checkIfAuthSigRequiresChainParam = (authSig, chain, functionName) => {
+ (0, exports2.log)("checkIfAuthSigRequiresChainParam");
+ for (const key of constants_1.LIT_AUTH_SIG_CHAIN_KEYS) {
+ if (key in authSig) {
+ return true;
+ }
+ }
+ if (!(0, exports2.checkType)({
+ value: chain,
+ allowedTypes: ["String"],
+ paramName: "chain",
+ functionName
+ })) {
+ return false;
+ }
+ return true;
+ };
+ exports2.checkIfAuthSigRequiresChainParam = checkIfAuthSigRequiresChainParam;
+ var sortedObject = (obj) => {
+ if (typeof obj !== "object" || obj === null) {
+ return obj;
+ }
+ if (Array.isArray(obj)) {
+ return obj.map(exports2.sortedObject);
+ }
+ const sortedKeys = Object.keys(obj).sort();
+ const result = {};
+ sortedKeys.forEach((key) => {
+ result[key] = (0, exports2.sortedObject)(obj[key]);
+ });
+ return result;
+ };
+ exports2.sortedObject = sortedObject;
+ var numberToHex = (v) => {
+ return "0x" + v.toString(16);
+ };
+ exports2.numberToHex = numberToHex;
+ var is = (value, type, paramName, functionName, throwOnError = true) => {
+ if ((0, exports2.getVarType)(value) !== type) {
+ const message = `Expecting "${type}" type for parameter named ${paramName} in Lit-JS-SDK function ${functionName}(), but received "${(0, exports2.getVarType)(value)}" type instead. value: ${value instanceof Object ? JSON.stringify(value) : value}`;
+ if (throwOnError) {
+ throw new constants_1.InvalidParamType({
+ info: {
+ value,
+ paramName,
+ functionName
+ }
+ }, message);
+ }
+ return false;
+ }
+ return true;
+ };
+ exports2.is = is;
+ var isNode = () => {
+ let isNode2 = false;
+ if (typeof process === "object") {
+ if (typeof process.versions === "object") {
+ if (typeof process.versions.node !== "undefined") {
+ isNode2 = true;
+ }
+ }
+ }
+ return isNode2;
+ };
+ exports2.isNode = isNode;
+ var isBrowser = () => {
+ return (0, exports2.isNode)() === false;
+ };
+ exports2.isBrowser = isBrowser;
+ var decimalPlaces = async ({ contractAddress, chain }) => {
+ const rpcUrl = constants_1.LIT_CHAINS[chain].rpcUrls[0];
+ const web3 = new providers_1.JsonRpcProvider({
+ url: rpcUrl,
+ skipFetchSetup: true
+ });
+ const contract = new contracts_1.Contract(contractAddress, constants_1.ABI_ERC20.abi, web3);
+ return await contract["decimals"]();
+ };
+ exports2.decimalPlaces = decimalPlaces;
+ var genRandomPath = () => {
+ return "/" + Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
+ };
+ exports2.genRandomPath = genRandomPath;
+ function isSupportedLitNetwork(litNetwork) {
+ const supportedNetworks = Object.values(constants_1.LIT_NETWORK);
+ if (!supportedNetworks.includes(litNetwork)) {
+ throw new constants_1.WrongNetworkException({
+ info: {
+ litNetwork,
+ supportedNetworks
+ }
+ }, `Unsupported LitNetwork! (${supportedNetworks.join("|")}) are supported.`);
+ }
+ }
+ var defaultMintClaimCallback = async (params, network = constants_1.LIT_NETWORK.DatilDev) => {
+ isSupportedLitNetwork(network);
+ const AUTH_CLAIM_PATH = "/auth/claim";
+ const relayUrl = params.relayUrl || constants_1.RELAYER_URL_BY_NETWORK[network];
+ if (!relayUrl) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ network,
+ relayUrl
+ }
+ }, "No relayUrl provided and no default relayUrl found for network");
+ }
+ const relayUrlWithPath = relayUrl + AUTH_CLAIM_PATH;
+ const response = await fetch(relayUrlWithPath, {
+ method: "POST",
+ body: JSON.stringify(params),
+ headers: {
+ "api-key": params.relayApiKey ? params.relayApiKey : "67e55044-10b1-426f-9247-bb680e5fe0c8_relayer",
+ "Content-Type": "application/json"
+ }
+ });
+ if (response.status < 200 || response.status >= 400) {
+ const errResp = await response.json() ?? "";
+ const errStmt = `An error occurred requesting "/auth/claim" endpoint ${JSON.stringify(errResp)}`;
+ console.warn(errStmt);
+ throw new constants_1.NetworkError({
+ info: {
+ response,
+ errResp
+ }
+ }, `An error occurred requesting "/auth/claim" endpoint`);
+ }
+ const body = await response.json();
+ return body.requestId;
+ };
+ exports2.defaultMintClaimCallback = defaultMintClaimCallback;
+ var hexPrefixed = (str) => {
+ if (str.startsWith("0x")) {
+ return str;
+ }
+ return "0x" + str;
+ };
+ exports2.hexPrefixed = hexPrefixed;
+ var removeHexPrefix = (str) => {
+ if (str.startsWith("0x")) {
+ return str.slice(2);
+ }
+ return str;
+ };
+ exports2.removeHexPrefix = removeHexPrefix;
+ function getEnv({ nodeEnvVar = "DEBUG", urlQueryParam = "dev", urlQueryValue = "debug=true", defaultValue = false } = {}) {
+ if ((0, exports2.isNode)()) {
+ return process.env[nodeEnvVar] === "true";
+ } else if ((0, exports2.isBrowser)()) {
+ const urlParams = new URLSearchParams(window.location.search);
+ return urlParams.get(urlQueryParam) === urlQueryValue;
+ }
+ return defaultValue;
+ }
+ function sendRequest(url, req, requestId) {
+ return fetch(url, req).then(async (response) => {
+ const isJson = response.headers.get("content-type")?.includes("application/json");
+ const data = isJson ? await response.json() : null;
+ if (!response.ok) {
+ const error = data || response.status;
+ return Promise.reject(error);
+ }
+ return data;
+ }).catch((error) => {
+ (0, exports2.logErrorWithRequestId)(requestId, `Something went wrong, internal id for request: lit_${requestId}. Please provide this identifier with any support requests. ${error?.message || error?.details ? `Error is ${error.message} - ${error.details}` : ""}`);
+ return Promise.reject(error);
+ });
+ }
+ function normalizeAndStringify(input) {
+ try {
+ if (!input.startsWith("{") && !input.startsWith("[")) {
+ return input;
+ }
+ const parsed = JSON.parse(input);
+ return JSON.stringify(parsed);
+ } catch (error) {
+ const unescaped = input.replace(/\\(.)/g, "$1");
+ if (input === unescaped) {
+ return input;
+ }
+ return normalizeAndStringify(unescaped);
+ }
+ }
+ async function getIpAddress(domain) {
+ const apiURL = `https://dns.google/resolve?name=${domain}&type=A`;
+ try {
+ const response = await fetch(apiURL);
+ const data = await response.json();
+ if (data.Answer && data.Answer.length > 0) {
+ return data.Answer[0].data;
+ } else {
+ throw new constants_1.UnknownError({
+ info: {
+ domain,
+ apiURL
+ }
+ }, "No IP Address found or bad domain name");
+ }
+ } catch (error) {
+ throw new constants_1.UnknownError({
+ info: {
+ domain,
+ apiURL
+ },
+ cause: error
+ }, "message" in error ? error.message : String(error));
+ }
+ }
+ }
+});
+
+// node_modules/@lit-protocol/misc/src/lib/utils.js
+var require_utils15 = __commonJS({
+ "node_modules/@lit-protocol/misc/src/lib/utils.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.isTokenOperator = isTokenOperator;
+ exports2.isValidBooleanExpression = isValidBooleanExpression;
+ function isTokenOperator(token) {
+ const OPERATORS = ["and", "or"];
+ return token.hasOwnProperty("operator") && OPERATORS.includes(token.operator);
+ }
+ function isValidBooleanExpression(expression) {
+ const STATES = {
+ START: "start",
+ CONDITION: "condition",
+ OPERATOR: "operator"
+ };
+ let currentState = STATES.START;
+ for (const token of expression) {
+ switch (currentState) {
+ case STATES.START:
+ case STATES.OPERATOR:
+ if (isTokenOperator(token)) {
+ return false;
+ }
+ if (Array.isArray(token) && !isValidBooleanExpression(token)) {
+ return false;
+ }
+ currentState = STATES.CONDITION;
+ break;
+ default:
+ if (!isTokenOperator(token)) {
+ return false;
+ }
+ currentState = STATES.OPERATOR;
+ }
+ }
+ return currentState === STATES.CONDITION;
+ }
+ }
+});
+
+// node_modules/@lit-protocol/misc/src/lib/params-validators.js
+var require_params_validators = __commonJS({
+ "node_modules/@lit-protocol/misc/src/lib/params-validators.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.paramsValidators = exports2.safeParams = void 0;
+ var utils_1 = require_utils8();
+ var constants_1 = require_src2();
+ var misc_1 = require_misc();
+ var utils_2 = require_utils15();
+ var safeParams = ({ functionName, params }) => {
+ if (!exports2.paramsValidators[functionName]) {
+ (0, misc_1.log)(`This function ${functionName} is skipping params safe guarding.`);
+ return (0, constants_1.ERight)(void 0);
+ }
+ const paramValidators = exports2.paramsValidators[functionName](params);
+ for (const validator of paramValidators) {
+ const validationResponse = validator.validate();
+ if (validationResponse.type === constants_1.EITHER_TYPE.ERROR) {
+ return validationResponse;
+ }
+ }
+ return (0, constants_1.ERight)(void 0);
+ };
+ exports2.safeParams = safeParams;
+ exports2.paramsValidators = {
+ // ========== NO AUTH MATERIAL NEEDED FOR CLIENT SIDE ENCRYPTION ==========
+ encrypt: (params) => [
+ new AccessControlConditionsValidator("encrypt", params)
+ ],
+ encryptUint8Array: (params) => [
+ new AccessControlConditionsValidator("encryptUint8Array", params),
+ new Uint8ArrayValidator("encryptUint8Array", params.dataToEncrypt)
+ ],
+ encryptFile: (params) => [
+ new AccessControlConditionsValidator("encryptFile", params),
+ new FileValidator("encryptFile", params.file)
+ ],
+ encryptString: (params) => [
+ new AccessControlConditionsValidator("encryptString", params),
+ new StringValidator("encryptString", params.dataToEncrypt, "dataToEncrypt")
+ ],
+ encryptToJson: (params) => [
+ new AccessControlConditionsValidator("encryptToJson", params),
+ new EncryptToJsonValidator("encryptToJson", params)
+ ],
+ // ========== REQUIRED AUTH MATERIAL VALIDATORS ==========
+ executeJs: (params) => [
+ new AuthMaterialValidator("executeJs", params),
+ new ExecuteJsValidator("executeJs", params)
+ ],
+ decrypt: (params) => [
+ new AccessControlConditionsValidator("decrypt", params),
+ new AuthMaterialValidator("decrypt", params, true),
+ new StringValidator("decrypt", params.ciphertext, "ciphertext")
+ ],
+ decryptFromJson: (params) => [
+ new AuthMaterialValidator("decryptFromJson", params),
+ new DecryptFromJsonValidator("decryptFromJson", params.parsedJsonData)
+ ]
+ };
+ var EncryptToJsonValidator = class {
+ constructor(fnName, params) {
+ this.fnName = fnName;
+ this.params = params;
+ }
+ validate() {
+ const { file, string } = this.params;
+ if (string === void 0 && file === void 0)
+ return (0, constants_1.ELeft)(new constants_1.InvalidParamType({
+ info: {
+ param: "string",
+ value: string,
+ functionName: this.fnName
+ }
+ }, "Either string or file must be provided"));
+ if (string !== void 0 && file !== void 0)
+ return (0, constants_1.ELeft)(new constants_1.InvalidParamType({
+ info: {
+ param: "string",
+ value: string,
+ functionName: this.fnName
+ }
+ }, 'Provide only a "string" or "file" to encrypt; you cannot provide both'));
+ return (0, constants_1.ERight)(void 0);
+ }
+ };
+ var DecryptFromJsonValidator = class {
+ constructor(fnName, params) {
+ this.fnName = fnName;
+ this.params = params;
+ }
+ validate() {
+ const validators = [new StringValidator(this.fnName, this.params.dataType)];
+ for (const validator of validators) {
+ const validationResponse = validator.validate();
+ if (validationResponse.type === constants_1.EITHER_TYPE.ERROR) {
+ return validationResponse;
+ }
+ }
+ const { dataType } = this.params;
+ if (dataType !== "string" && dataType !== "file")
+ return (0, constants_1.ELeft)(new constants_1.InvalidArgumentException({
+ info: {
+ functionName: this.fnName,
+ dataType
+ }
+ }, `dataType of %s is not valid. Must be 'string' or 'file'.`, dataType));
+ return (0, constants_1.ERight)(void 0);
+ }
+ };
+ var Uint8ArrayValidator = class {
+ constructor(fnName, uint8array, paramName = "uint8array") {
+ this.fnName = fnName;
+ this.paramName = paramName;
+ this.uint8array = uint8array;
+ }
+ validate() {
+ if (!this.uint8array) {
+ return (0, constants_1.ELeft)(new constants_1.InvalidParamType({}, "uint8array is undefined"));
+ }
+ if (!(0, misc_1.checkType)({
+ value: this.uint8array,
+ allowedTypes: ["Uint8Array"],
+ paramName: this.paramName,
+ functionName: this.fnName
+ }))
+ return (0, constants_1.ELeft)(new constants_1.InvalidParamType({
+ info: {
+ param: this.paramName,
+ value: this.uint8array,
+ functionName: this.fnName
+ }
+ }, "%s is not a Uint8Array", this.paramName));
+ return (0, constants_1.ERight)(void 0);
+ }
+ };
+ var StringValidator = class {
+ constructor(fnName, str, paramName = "string", checkIsHex = false) {
+ this.fnName = fnName;
+ this.paramName = paramName;
+ this.checkIsHex = checkIsHex;
+ this.str = str;
+ }
+ validate() {
+ if (!this.str) {
+ return (0, constants_1.ELeft)(new constants_1.InvalidParamType({}, "str is undefined"));
+ }
+ if (!(0, misc_1.checkType)({
+ value: this.str,
+ allowedTypes: ["String"],
+ paramName: this.paramName,
+ functionName: this.fnName
+ }))
+ return (0, constants_1.ELeft)(new constants_1.InvalidParamType({
+ info: {
+ param: this.paramName,
+ value: this.str,
+ functionName: this.fnName
+ }
+ }, "%s is not a string", this.paramName));
+ if (this.checkIsHex && !(0, utils_1.isHexString)(this.str)) {
+ return (0, constants_1.ELeft)(new constants_1.InvalidParamType({
+ info: {
+ param: this.paramName,
+ value: this.str,
+ functionName: this.fnName
+ }
+ }, "%s is not a valid hex string", this.paramName));
+ }
+ return (0, constants_1.ERight)(void 0);
+ }
+ };
+ var ExecuteJsValidator = class {
+ constructor(fnName, params) {
+ this.fnName = fnName;
+ this.params = params;
+ }
+ validate() {
+ const { code, ipfsId } = this.params;
+ if (!code && !ipfsId) {
+ return (0, constants_1.ELeft)(new constants_1.ParamsMissingError({
+ info: {
+ functionName: this.fnName,
+ params: this.params
+ }
+ }, "You must pass either code or ipfsId"));
+ }
+ if (code && ipfsId) {
+ return (0, constants_1.ELeft)(new constants_1.ParamsMissingError({
+ info: {
+ functionName: this.fnName,
+ params: this.params
+ }
+ }, "You cannot have both 'code' and 'ipfs' at the same time"));
+ }
+ return (0, constants_1.ERight)(void 0);
+ }
+ };
+ var FileValidator = class {
+ constructor(fnName, file) {
+ this.fnName = fnName;
+ this.file = file;
+ }
+ validate() {
+ if (!this.file) {
+ return (0, constants_1.ELeft)(new constants_1.InvalidArgumentException({
+ info: {
+ functionName: this.fnName,
+ file: this.file
+ }
+ }, "You must pass file param"));
+ }
+ const allowedTypes = ["Blob", "File", "Uint8Array"];
+ if (!(0, misc_1.checkType)({
+ value: this.file,
+ allowedTypes,
+ paramName: "file",
+ functionName: this.fnName
+ }))
+ return (0, constants_1.ELeft)(new constants_1.InvalidArgumentException({
+ info: {
+ functionName: this.fnName,
+ file: this.file,
+ allowedTypes
+ }
+ }, "File param is not a valid Blob or File object"));
+ return (0, constants_1.ERight)(void 0);
+ }
+ };
+ var AuthMaterialValidator = class {
+ constructor(fnName, params, checkIfAuthSigRequiresChainParam = false) {
+ this.fnName = fnName;
+ this.authMaterial = params;
+ this.checkIfAuthSigRequiresChainParam = checkIfAuthSigRequiresChainParam;
+ }
+ validate() {
+ const { authSig, sessionSigs } = this.authMaterial;
+ if (authSig && !(0, misc_1.is)(authSig, "Object", "authSig", this.fnName))
+ return (0, constants_1.ELeft)(new constants_1.InvalidParamType({
+ info: {
+ param: "authSig",
+ value: authSig,
+ functionName: this.fnName
+ }
+ }, "authSig is not an object"));
+ if (this.checkIfAuthSigRequiresChainParam) {
+ if (!this.authMaterial.chain)
+ return (0, constants_1.ELeft)(new constants_1.InvalidArgumentException({
+ info: {
+ functionName: this.fnName,
+ chain: this.authMaterial.chain
+ }
+ }, "You must pass chain param"));
+ if (authSig && !(0, misc_1.checkIfAuthSigRequiresChainParam)(authSig, this.authMaterial.chain, this.fnName))
+ return (0, constants_1.ELeft)(new constants_1.InvalidParamType({
+ info: {
+ param: "authSig",
+ value: authSig,
+ functionName: this.fnName
+ }
+ }, "authSig is not valid"));
+ }
+ if (sessionSigs && !(0, misc_1.is)(sessionSigs, "Object", "sessionSigs", this.fnName))
+ return (0, constants_1.ELeft)(new constants_1.InvalidParamType({
+ info: {
+ param: "sessionSigs",
+ value: sessionSigs,
+ functionName: this.fnName
+ }
+ }, "sessionSigs is not an object"));
+ if (!sessionSigs && !authSig)
+ return (0, constants_1.ELeft)(new constants_1.InvalidArgumentException({
+ info: {
+ functionName: this.fnName,
+ sessionSigs,
+ authSig
+ }
+ }, "You must pass either authSig or sessionSigs"));
+ if (sessionSigs && authSig)
+ return (0, constants_1.ELeft)(new constants_1.InvalidArgumentException({
+ info: {
+ functionName: this.fnName,
+ sessionSigs,
+ authSig
+ }
+ }, "You cannot have both authSig and sessionSigs"));
+ return (0, constants_1.ERight)(void 0);
+ }
+ };
+ var AccessControlConditionsValidator = class {
+ constructor(fnName, params) {
+ this.fnName = fnName;
+ this.conditions = params;
+ }
+ validate() {
+ const { accessControlConditions, evmContractConditions, solRpcConditions, unifiedAccessControlConditions } = this.conditions;
+ if (accessControlConditions && !(0, misc_1.is)(accessControlConditions, "Array", "accessControlConditions", this.fnName))
+ return (0, constants_1.ELeft)(new constants_1.InvalidParamType({
+ info: {
+ param: "accessControlConditions",
+ value: accessControlConditions,
+ functionName: this.fnName
+ }
+ }, "%s is not an array", "accessControlConditions"));
+ if (evmContractConditions && !(0, misc_1.is)(evmContractConditions, "Array", "evmContractConditions", this.fnName))
+ return (0, constants_1.ELeft)(new constants_1.InvalidParamType({
+ info: {
+ param: "evmContractConditions",
+ value: evmContractConditions,
+ functionName: this.fnName
+ }
+ }, "%s is not an array", "evmContractConditions"));
+ if (solRpcConditions && !(0, misc_1.is)(solRpcConditions, "Array", "solRpcConditions", this.fnName))
+ return (0, constants_1.ELeft)(new constants_1.InvalidParamType({
+ info: {
+ param: "solRpcConditions",
+ value: solRpcConditions,
+ functionName: this.fnName
+ }
+ }, "%s is not an array", "solRpcConditions"));
+ if (unifiedAccessControlConditions && !(0, misc_1.is)(unifiedAccessControlConditions, "Array", "unifiedAccessControlConditions", this.fnName))
+ return (0, constants_1.ELeft)(new constants_1.InvalidParamType({
+ info: {
+ param: "unifiedAccessControlConditions",
+ value: unifiedAccessControlConditions,
+ functionName: this.fnName
+ }
+ }, "%s is not an array", "unifiedAccessControlConditions"));
+ if (!accessControlConditions && !evmContractConditions && !solRpcConditions && !unifiedAccessControlConditions)
+ return (0, constants_1.ELeft)(new constants_1.InvalidArgumentException({
+ info: {
+ functionName: this.fnName,
+ conditions: this.conditions
+ }
+ }, "You must pass either accessControlConditions, evmContractConditions, solRpcConditions or unifiedAccessControlConditions"));
+ if (accessControlConditions && !(0, utils_2.isValidBooleanExpression)(accessControlConditions))
+ return (0, constants_1.ELeft)(new constants_1.InvalidBooleanException({
+ info: {
+ functionName: this.fnName,
+ accessControlConditions
+ }
+ }, "Invalid boolean Access Control Conditions"));
+ if (evmContractConditions && !(0, utils_2.isValidBooleanExpression)(evmContractConditions))
+ return (0, constants_1.ELeft)(new constants_1.InvalidBooleanException({
+ info: {
+ functionName: this.fnName,
+ evmContractConditions
+ }
+ }, "Invalid boolean EVM Access Control Conditions"));
+ if (solRpcConditions && !(0, utils_2.isValidBooleanExpression)(solRpcConditions))
+ return (0, constants_1.ELeft)(new constants_1.InvalidBooleanException({
+ info: {
+ functionName: this.fnName,
+ solRpcConditions
+ }
+ }, "Invalid boolean Solana Access Control Conditions"));
+ if (unifiedAccessControlConditions && !(0, utils_2.isValidBooleanExpression)(unifiedAccessControlConditions))
+ return (0, constants_1.ELeft)(new constants_1.InvalidBooleanException({
+ info: {
+ functionName: this.fnName,
+ unifiedAccessControlConditions
+ }
+ }, "Invalid boolean Unified Access Control Conditions"));
+ return (0, constants_1.ERight)(void 0);
+ }
+ };
+ }
+});
+
+// node_modules/@lit-protocol/misc/src/lib/helper/session-sigs-validator.js
+var require_session_sigs_validator = __commonJS({
+ "node_modules/@lit-protocol/misc/src/lib/helper/session-sigs-validator.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.parseSignedMessage = parseSignedMessage;
+ exports2.validateSessionSig = validateSessionSig;
+ exports2.validateSessionSigs = validateSessionSigs;
+ function parseSignedMessage(signedMessage) {
+ const lines = signedMessage.split("\n");
+ const parsedData = {};
+ let currentKey = null;
+ let currentValue = "";
+ lines.forEach((line) => {
+ const keyValueMatch = line.match(/^([^:]+):\s*(.*)$/);
+ if (keyValueMatch) {
+ if (currentKey !== null) {
+ parsedData[currentKey.trim()] = currentValue.trim();
+ }
+ currentKey = keyValueMatch[1];
+ currentValue = keyValueMatch[2];
+ } else if (line.startsWith("- ")) {
+ const item = line.substring(2).trim();
+ if (!parsedData[currentKey]) {
+ parsedData[currentKey] = [];
+ }
+ parsedData[currentKey].push(item);
+ } else if (line.trim() === "") {
+ } else {
+ currentValue += "\n" + line;
+ }
+ });
+ if (currentKey !== null) {
+ parsedData[currentKey.trim()] = currentValue.trim();
+ }
+ return parsedData;
+ }
+ function validateExpiration(expirationTimeStr, context) {
+ const errors = [];
+ const expirationTime = new Date(expirationTimeStr);
+ const currentTime = /* @__PURE__ */ new Date();
+ if (isNaN(expirationTime.getTime())) {
+ errors.push(`Invalid Expiration Time format in ${context}: ${expirationTimeStr}`);
+ } else if (expirationTime < currentTime) {
+ errors.push(`Expired ${context}. Expiration Time: ${expirationTime.toISOString()}`);
+ }
+ return {
+ isValid: errors.length === 0,
+ errors
+ };
+ }
+ function parseCapabilities(capabilities) {
+ const errors = [];
+ capabilities.forEach((capability, index) => {
+ const { signedMessage } = capability;
+ const parsedCapabilityMessage = parseSignedMessage(signedMessage);
+ capability.parsedSignedMessage = parsedCapabilityMessage;
+ const expirationTimeStr = parsedCapabilityMessage["Expiration Time"];
+ if (expirationTimeStr) {
+ const validationResult = validateExpiration(expirationTimeStr, `capability ${index}`);
+ if (!validationResult.isValid) {
+ errors.push(...validationResult.errors);
+ }
+ } else {
+ errors.push(`Expiration Time not found in capability ${index}'s signedMessage.`);
+ }
+ });
+ return {
+ isValid: errors.length === 0,
+ errors
+ };
+ }
+ function validateSessionSig(sessionSig) {
+ const errors = [];
+ let parsedSignedMessage;
+ try {
+ parsedSignedMessage = JSON.parse(sessionSig.signedMessage);
+ } catch (error) {
+ errors.push("Main signedMessage is not valid JSON.");
+ return { isValid: false, errors };
+ }
+ const capabilities = parsedSignedMessage.capabilities;
+ if (!capabilities) {
+ errors.push("Capabilities not found in main signedMessage.");
+ } else if (capabilities.length === 0) {
+ errors.push("No capabilities found in main signedMessage.");
+ } else {
+ const capabilitiesValidationResult = parseCapabilities(capabilities);
+ if (!capabilitiesValidationResult.isValid) {
+ errors.push(...capabilitiesValidationResult.errors);
+ }
+ }
+ const outerExpirationTimeStr = parsedSignedMessage["expiration"];
+ if (outerExpirationTimeStr) {
+ const validationResult = validateExpiration(outerExpirationTimeStr, "main signedMessage");
+ if (!validationResult.isValid) {
+ errors.push(...validationResult.errors);
+ }
+ } else {
+ errors.push("Expiration Time not found in outer signedMessage.");
+ }
+ return {
+ isValid: errors.length === 0,
+ errors
+ };
+ }
+ function validateSessionSigs(sessionSigs) {
+ const errors = [];
+ Object.entries(sessionSigs).forEach(([key, sessionSig]) => {
+ const validationResult = validateSessionSig(sessionSig);
+ if (!validationResult.isValid) {
+ errors.push(`Session Sig '${key}': ${validationResult.errors.join(", ")}`);
+ }
+ });
+ return {
+ isValid: errors.length === 0,
+ errors
+ };
+ }
+ }
+});
+
+// node_modules/@lit-protocol/misc/src/lib/helper/session-sigs-reader.js
+var require_session_sigs_reader = __commonJS({
+ "node_modules/@lit-protocol/misc/src/lib/helper/session-sigs-reader.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.formatSessionSigs = formatSessionSigs;
+ var session_sigs_validator_1 = require_session_sigs_validator();
+ function formatDuration(start, end) {
+ const diff = end.getTime() - start.getTime();
+ const days = Math.floor(diff / (1e3 * 60 * 60 * 24));
+ const hours = Math.floor(diff % (1e3 * 60 * 60 * 24) / (1e3 * 60 * 60));
+ const minutes = Math.floor(diff % (1e3 * 60 * 60) / (1e3 * 60));
+ const seconds = (diff % (1e3 * 60) / 1e3).toFixed(3);
+ let elapsedTime;
+ if (days > 0) {
+ elapsedTime = `${days} days`;
+ } else if (hours > 0) {
+ elapsedTime = `${hours} hours, ${minutes} minutes, ${seconds} seconds`;
+ } else {
+ elapsedTime = `${minutes} minutes, ${seconds} seconds`;
+ }
+ return elapsedTime;
+ }
+ function formatStatus(expirationDate, currentDate) {
+ if (expirationDate > currentDate) {
+ const timeLeft = formatDuration(currentDate, expirationDate);
+ return `\u2705 Not expired (valid for ${timeLeft})`;
+ } else {
+ const timeAgo = formatDuration(expirationDate, currentDate);
+ return `\u274C Expired (expired ${timeAgo} ago)`;
+ }
+ }
+ function humanReadableAtt(obj, indentLevel = 0) {
+ const indent = " ".repeat(indentLevel * 2);
+ let result = "";
+ for (const key in obj) {
+ result += `${indent}* ${key}
+`;
+ if (typeof obj[key] === "object" && !Array.isArray(obj[key])) {
+ result += humanReadableAtt(obj[key], indentLevel + 1);
+ } else if (Array.isArray(obj[key])) {
+ obj[key].forEach((item) => {
+ if (typeof item === "object") {
+ result += humanReadableAtt(item, indentLevel + 1);
+ } else {
+ result += `${indent} * ${item}
+`;
+ }
+ });
+ } else {
+ result += `${indent} * ${obj[key]}
+`;
+ }
+ }
+ return result;
+ }
+ function formatSessionSigs(sessionSigs, currentTime = /* @__PURE__ */ new Date()) {
+ const parsedSigs = JSON.parse(sessionSigs);
+ const firstNodeKey = Object.keys(parsedSigs)[0];
+ const firstNode = parsedSigs[firstNodeKey];
+ let signedMessage;
+ try {
+ signedMessage = JSON.parse(firstNode.signedMessage);
+ } catch (error) {
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
+ throw new Error(`Invalid JSON format for signedMessage: ${errorMessage}`);
+ }
+ const currentDate = new Date(currentTime);
+ let result = `The request time is at: ${currentDate.toISOString()}
+`;
+ let issuedAt, expiration;
+ try {
+ issuedAt = new Date(signedMessage.issuedAt);
+ expiration = new Date(signedMessage.expiration);
+ } catch (error) {
+ const errorMessage = error instanceof Error ? error.message : "Unknown error";
+ throw new Error(`Error parsing issuedAt or expiration: ${errorMessage}`);
+ }
+ result += "* Outer expiration:\n";
+ result += ` * Issued at: ${issuedAt.toISOString()}
+`;
+ result += ` * Expiration: ${expiration.toISOString()}
+`;
+ result += ` * Duration: ${formatDuration(issuedAt, expiration)}
+`;
+ result += ` * Status: ${formatStatus(expiration, currentDate)}
+`;
+ result += "* Capabilities:\n";
+ signedMessage.capabilities.forEach((cap, index) => {
+ const capType = cap.derivedVia;
+ const parsedCapMessage = (0, session_sigs_validator_1.parseSignedMessage)(cap.signedMessage);
+ let attenuation = "";
+ try {
+ const encodedRecap = parsedCapMessage["- urn"]?.split(":")[1];
+ const decodedRecap = atob(encodedRecap);
+ const jsonRecap = JSON.parse(decodedRecap);
+ attenuation = humanReadableAtt(jsonRecap.att, 6);
+ } catch (e) {
+ console.log("Error parsing attenuation::", e);
+ }
+ const capIssuedAt = new Date(parsedCapMessage["Issued At"] || "");
+ const capExpiration = new Date(parsedCapMessage["Expiration Time"] || "");
+ result += ` * Capability ${index + 1} (${capType}):
+`;
+ result += ` * Issued at: ${capIssuedAt.toISOString()}
+`;
+ result += ` * Expiration: ${capExpiration.toISOString()}
+`;
+ result += ` * Duration: ${formatDuration(capIssuedAt, capExpiration)}
+`;
+ result += ` * Status: ${formatStatus(capExpiration, currentDate)}
+`;
+ result += ` * Attenuation:
+`;
+ result += attenuation;
+ });
+ return result;
+ }
+ }
+});
+
+// node_modules/@lit-protocol/misc/src/index.js
+var require_src4 = __commonJS({
+ "node_modules/@lit-protocol/misc/src/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.formatSessionSigs = exports2.validateSessionSigs = exports2.validateSessionSig = void 0;
+ var tslib_1 = (init_tslib_es65(), __toCommonJS(tslib_es6_exports5));
+ tslib_1.__exportStar(require_addresses2(), exports2);
+ tslib_1.__exportStar(require_misc(), exports2);
+ tslib_1.__exportStar(require_params_validators(), exports2);
+ tslib_1.__exportStar(require_utils15(), exports2);
+ var session_sigs_validator_1 = require_session_sigs_validator();
+ Object.defineProperty(exports2, "validateSessionSig", { enumerable: true, get: function() {
+ return session_sigs_validator_1.validateSessionSig;
+ } });
+ Object.defineProperty(exports2, "validateSessionSigs", { enumerable: true, get: function() {
+ return session_sigs_validator_1.validateSessionSigs;
+ } });
+ var session_sigs_reader_1 = require_session_sigs_reader();
+ Object.defineProperty(exports2, "formatSessionSigs", { enumerable: true, get: function() {
+ return session_sigs_reader_1.formatSessionSigs;
+ } });
+ }
+});
+
+// node_modules/@lit-protocol/uint8arrays/src/lib/uint8arrays.js
+var require_uint8arrays = __commonJS({
+ "node_modules/@lit-protocol/uint8arrays/src/lib/uint8arrays.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.utf8Decode = utf8Decode;
+ exports2.base64ToUint8Array = base64ToUint8Array;
+ exports2.uint8ArrayToBase64 = uint8ArrayToBase64;
+ exports2.uint8arrayFromString = uint8arrayFromString;
+ exports2.uint8arrayToString = uint8arrayToString;
+ var constants_1 = require_src2();
+ function utf8Encode(str) {
+ let utf8Array = [];
+ for (let i = 0; i < str.length; i++) {
+ let charCode = str.charCodeAt(i);
+ if (charCode < 128) {
+ utf8Array.push(charCode);
+ } else if (charCode < 2048) {
+ utf8Array.push(192 | charCode >> 6, 128 | charCode & 63);
+ } else if (
+ // Check if the character is a high surrogate (UTF-16)
+ (charCode & 64512) === 55296 && i + 1 < str.length && (str.charCodeAt(i + 1) & 64512) === 56320
+ ) {
+ charCode = 65536 + ((charCode & 1023) << 10) + (str.charCodeAt(++i) & 1023);
+ utf8Array.push(240 | charCode >> 18, 128 | charCode >> 12 & 63, 128 | charCode >> 6 & 63, 128 | charCode & 63);
+ } else {
+ utf8Array.push(224 | charCode >> 12, 128 | charCode >> 6 & 63, 128 | charCode & 63);
+ }
+ }
+ return new Uint8Array(utf8Array);
+ }
+ function utf8Decode(utf8Array) {
+ let str = "";
+ let i = 0;
+ while (i < utf8Array.length) {
+ let charCode = utf8Array[i++];
+ if (charCode < 128) {
+ str += String.fromCharCode(charCode);
+ } else if (charCode > 191 && charCode < 224) {
+ str += String.fromCharCode((charCode & 31) << 6 | utf8Array[i++] & 63);
+ } else if (charCode > 239 && charCode < 365) {
+ charCode = (charCode & 7) << 18 | (utf8Array[i++] & 63) << 12 | (utf8Array[i++] & 63) << 6 | utf8Array[i++] & 63;
+ charCode -= 65536;
+ str += String.fromCharCode(55296 + (charCode >> 10), 56320 + (charCode & 1023));
+ } else {
+ str += String.fromCharCode((charCode & 15) << 12 | (utf8Array[i++] & 63) << 6 | utf8Array[i++] & 63);
+ }
+ }
+ return str;
+ }
+ function base64ToUint8Array(base64Str) {
+ const binaryStr = atob(base64Str);
+ const len = binaryStr.length;
+ const bytes = new Uint8Array(len);
+ for (let i = 0; i < len; i++) {
+ bytes[i] = binaryStr.charCodeAt(i);
+ }
+ return bytes;
+ }
+ function uint8ArrayToBase64(uint8Array) {
+ let binaryStr = "";
+ for (let i = 0; i < uint8Array.length; i++) {
+ binaryStr += String.fromCharCode(uint8Array[i]);
+ }
+ return btoa(binaryStr);
+ }
+ function base64UrlPadToBase64(base64UrlPadStr) {
+ return base64UrlPadStr.replace("-", "+").replace("_", "/") + "=".repeat((4 - base64UrlPadStr.length % 4) % 4);
+ }
+ function base64ToBase64UrlPad(base64Str) {
+ return base64Str.replace("+", "-").replace("/", "_").replace(/=+$/, "");
+ }
+ function uint8arrayFromString(str, encoding = "utf8") {
+ switch (encoding) {
+ case "utf8":
+ return utf8Encode(str);
+ case "base16":
+ const arr = [];
+ for (let i = 0; i < str.length; i += 2) {
+ arr.push(parseInt(str.slice(i, i + 2), 16));
+ }
+ return new Uint8Array(arr);
+ case "base64":
+ return base64ToUint8Array(str);
+ case "base64url":
+ case "base64urlpad":
+ return base64ToUint8Array(base64UrlPadToBase64(str));
+ default:
+ throw new constants_1.InvalidParamType({
+ info: {
+ encoding,
+ str
+ }
+ }, `Unsupported encoding "${encoding}"`);
+ }
+ }
+ function uint8arrayToString(uint8array, encoding = "utf8") {
+ let _uint8array = new Uint8Array(uint8array);
+ switch (encoding) {
+ case "utf8":
+ return utf8Decode(_uint8array);
+ case "base16":
+ return Array.from(_uint8array).map((byte) => byte.toString(16).padStart(2, "0")).join("");
+ case "base64":
+ return uint8ArrayToBase64(_uint8array);
+ case "base64url":
+ case "base64urlpad":
+ return base64ToBase64UrlPad(uint8ArrayToBase64(_uint8array));
+ default:
+ throw new constants_1.InvalidParamType({
+ info: {
+ encoding,
+ _uint8array
+ }
+ }, `Unsupported encoding "${encoding}"`);
+ }
+ }
+ }
+});
+
+// node_modules/@lit-protocol/uint8arrays/src/index.js
+var require_src5 = __commonJS({
+ "node_modules/@lit-protocol/uint8arrays/src/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.uint8ArrayToBase64 = exports2.uint8arrayToString = exports2.uint8arrayFromString = void 0;
+ var uint8arrays_1 = require_uint8arrays();
+ Object.defineProperty(exports2, "uint8arrayFromString", { enumerable: true, get: function() {
+ return uint8arrays_1.uint8arrayFromString;
+ } });
+ Object.defineProperty(exports2, "uint8arrayToString", { enumerable: true, get: function() {
+ return uint8arrays_1.uint8arrayToString;
+ } });
+ Object.defineProperty(exports2, "uint8ArrayToBase64", { enumerable: true, get: function() {
+ return uint8arrays_1.uint8ArrayToBase64;
+ } });
+ }
+});
+
+// node_modules/@lit-protocol/access-control-conditions/src/lib/hashing.js
+var require_hashing = __commonJS({
+ "node_modules/@lit-protocol/access-control-conditions/src/lib/hashing.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.hashSolRpcConditions = exports2.hashEVMContractConditions = exports2.hashAccessControlConditions = exports2.hashResourceIdForSigning = exports2.hashResourceId = exports2.hashUnifiedAccessControlConditions = void 0;
+ var constants_1 = require_src2();
+ var misc_1 = require_src4();
+ var uint8arrays_1 = require_src5();
+ var canonicalFormatter_1 = require_canonicalFormatter();
+ var hashUnifiedAccessControlConditions = (unifiedAccessControlConditions) => {
+ (0, misc_1.log)("unifiedAccessControlConditions:", unifiedAccessControlConditions);
+ const conditions = unifiedAccessControlConditions.map((condition) => {
+ return (0, canonicalFormatter_1.canonicalUnifiedAccessControlConditionFormatter)(condition);
+ });
+ (0, misc_1.log)("conditions:", conditions);
+ const hasUndefined = conditions.some((c) => c === void 0);
+ if (hasUndefined) {
+ throw new constants_1.InvalidAccessControlConditions({
+ info: {
+ conditions
+ }
+ }, "Invalid access control conditions");
+ }
+ if (conditions.length === 0) {
+ throw new constants_1.InvalidAccessControlConditions({
+ info: {
+ conditions
+ }
+ }, "No conditions provided");
+ }
+ const toHash = JSON.stringify(conditions);
+ (0, misc_1.log)("Hashing unified access control conditions: ", toHash);
+ const encoder = new TextEncoder();
+ const data = encoder.encode(toHash);
+ return crypto.subtle.digest("SHA-256", data);
+ };
+ exports2.hashUnifiedAccessControlConditions = hashUnifiedAccessControlConditions;
+ var hashResourceId = (resourceId) => {
+ const resId = (0, canonicalFormatter_1.canonicalResourceIdFormatter)(resourceId);
+ const toHash = JSON.stringify(resId);
+ const encoder = new TextEncoder();
+ const data = encoder.encode(toHash);
+ return crypto.subtle.digest("SHA-256", data);
+ };
+ exports2.hashResourceId = hashResourceId;
+ var hashResourceIdForSigning = async (resourceId) => {
+ const hashed = await (0, exports2.hashResourceId)(resourceId);
+ return (0, uint8arrays_1.uint8arrayToString)(new Uint8Array(hashed), "base16");
+ };
+ exports2.hashResourceIdForSigning = hashResourceIdForSigning;
+ var hashAccessControlConditions = (accessControlConditions) => {
+ const conds = accessControlConditions.map((c) => (0, canonicalFormatter_1.canonicalAccessControlConditionFormatter)(c));
+ const toHash = JSON.stringify(conds);
+ (0, misc_1.log)("Hashing access control conditions: ", toHash);
+ const encoder = new TextEncoder();
+ const data = encoder.encode(toHash);
+ return crypto.subtle.digest("SHA-256", data);
+ };
+ exports2.hashAccessControlConditions = hashAccessControlConditions;
+ var hashEVMContractConditions = (evmContractConditions) => {
+ const conds = evmContractConditions.map((c) => (0, canonicalFormatter_1.canonicalEVMContractConditionFormatter)(c));
+ const toHash = JSON.stringify(conds);
+ (0, misc_1.log)("Hashing evm contract conditions: ", toHash);
+ const encoder = new TextEncoder();
+ const data = encoder.encode(toHash);
+ return crypto.subtle.digest("SHA-256", data);
+ };
+ exports2.hashEVMContractConditions = hashEVMContractConditions;
+ var hashSolRpcConditions = (solRpcConditions) => {
+ const conds = solRpcConditions.map((c) => (0, canonicalFormatter_1.canonicalSolRpcConditionFormatter)(c));
+ const toHash = JSON.stringify(conds);
+ (0, misc_1.log)("Hashing sol rpc conditions: ", toHash);
+ const encoder = new TextEncoder();
+ const data = encoder.encode(toHash);
+ return crypto.subtle.digest("SHA-256", data);
+ };
+ exports2.hashSolRpcConditions = hashSolRpcConditions;
+ }
+});
+
+// node_modules/@lit-protocol/access-control-conditions/src/lib/humanizer.js
+var require_humanizer = __commonJS({
+ "node_modules/@lit-protocol/access-control-conditions/src/lib/humanizer.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.humanizeAccessControlConditions = exports2.humanizeUnifiedAccessControlConditions = exports2.humanizeCosmosConditions = exports2.humanizeSolRpcConditions = exports2.humanizeEvmContractConditions = exports2.humanizeEvmBasicAccessControlConditions = exports2.humanizeComparator = exports2.formatAtom = exports2.formatSol = void 0;
+ var utils_1 = require_utils8();
+ var constants_1 = require_src2();
+ var misc_1 = require_src4();
+ var formatSol = (amount) => {
+ return (0, utils_1.formatUnits)(amount, 9);
+ };
+ exports2.formatSol = formatSol;
+ var formatAtom = (amount) => {
+ return (0, utils_1.formatUnits)(amount, 6);
+ };
+ exports2.formatAtom = formatAtom;
+ var humanizeComparator = (comparator) => {
+ const list = {
+ ">": "more than",
+ ">=": "at least",
+ "=": "exactly",
+ "<": "less than",
+ "<=": "at most",
+ contains: "contains"
+ };
+ const selected = list[comparator];
+ if (!selected) {
+ (0, misc_1.log)(`Unregonized comparator ${comparator}`);
+ return;
+ }
+ return selected;
+ };
+ exports2.humanizeComparator = humanizeComparator;
+ var humanizeEvmBasicAccessControlConditions = async ({ accessControlConditions, tokenList, myWalletAddress }) => {
+ (0, misc_1.log)("humanizing evm basic access control conditions");
+ (0, misc_1.log)("myWalletAddress", myWalletAddress);
+ (0, misc_1.log)("accessControlConditions", accessControlConditions);
+ let fixedConditions = accessControlConditions;
+ if (accessControlConditions.length > 1) {
+ let containsOperator = false;
+ for (let i = 0; i < accessControlConditions.length; i++) {
+ if ("operator" in accessControlConditions[i]) {
+ containsOperator = true;
+ }
+ }
+ if (!containsOperator) {
+ fixedConditions = [];
+ for (let i = 0; i < accessControlConditions.length; i++) {
+ fixedConditions.push(accessControlConditions[i]);
+ if (i < accessControlConditions.length - 1) {
+ fixedConditions.push({
+ operator: "and"
+ });
+ }
+ }
+ }
+ }
+ const promises = await Promise.all(fixedConditions.map(async (acc) => {
+ if (Array.isArray(acc)) {
+ const group = await (0, exports2.humanizeEvmBasicAccessControlConditions)({
+ accessControlConditions: acc,
+ tokenList,
+ myWalletAddress
+ });
+ return `( ${group} )`;
+ }
+ if (acc.operator) {
+ if (acc.operator.toLowerCase() === "and") {
+ return " and ";
+ } else if (acc.operator.toLowerCase() === "or") {
+ return " or ";
+ }
+ }
+ if (acc.standardContractType === "timestamp" && acc.method === "eth_getBlockByNumber") {
+ return `Latest mined block must be past the unix timestamp ${acc.returnValueTest.value}`;
+ } else if (acc.standardContractType === "MolochDAOv2.1" && acc.method === "members") {
+ return `Is a member of the DAO at ${acc.contractAddress}`;
+ } else if (acc.standardContractType === "ERC1155" && acc.method === "balanceOf") {
+ return `Owns ${(0, exports2.humanizeComparator)(acc.returnValueTest.comparator)} ${acc.returnValueTest.value} of ${acc.contractAddress} tokens with token id ${acc.parameters[1]}`;
+ } else if (acc.standardContractType === "ERC1155" && acc.method === "balanceOfBatch") {
+ return `Owns ${(0, exports2.humanizeComparator)(acc.returnValueTest.comparator)} ${acc.returnValueTest.value} of ${acc.contractAddress} tokens with token id ${acc.parameters[1].split(",").join(" or ")}`;
+ } else if (acc.standardContractType === "ERC721" && acc.method === "ownerOf") {
+ return `Owner of tokenId ${acc.parameters[0]} from ${acc.contractAddress}`;
+ } else if (acc.standardContractType === "ERC721" && acc.method === "balanceOf" && acc.contractAddress === "0x22C1f6050E56d2876009903609a2cC3fEf83B415" && acc.returnValueTest.comparator === ">" && acc.returnValueTest.value === "0") {
+ return `Owns any POAP`;
+ } else if (acc.standardContractType === "POAP" && acc.method === "tokenURI") {
+ return `Owner of a ${acc.returnValueTest.value} POAP on ${acc.chain}`;
+ } else if (acc.standardContractType === "POAP" && acc.method === "eventId") {
+ return `Owner of a POAP from event ID ${acc.returnValueTest.value} on ${acc.chain}`;
+ } else if (acc.standardContractType === "CASK" && acc.method === "getActiveSubscriptionCount") {
+ return `Cask subscriber to provider ${acc.parameters[1]} for plan ${acc.parameters[2]} on ${acc.chain}`;
+ } else if (acc.standardContractType === "ERC721" && acc.method === "balanceOf") {
+ return `Owns ${(0, exports2.humanizeComparator)(acc.returnValueTest.comparator)} ${acc.returnValueTest.value} of ${acc.contractAddress} tokens`;
+ } else if (acc.standardContractType === "ERC20" && acc.method === "balanceOf") {
+ let tokenFromList;
+ if (tokenList) {
+ tokenFromList = tokenList.find((t) => t.address === acc.contractAddress);
+ }
+ let decimals, name;
+ if (tokenFromList) {
+ decimals = tokenFromList.decimals;
+ name = tokenFromList.symbol;
+ } else {
+ try {
+ decimals = await (0, misc_1.decimalPlaces)({
+ contractAddress: acc.contractAddress,
+ chain: acc.chain
+ });
+ } catch (e) {
+ console.log(`Failed to get decimals for ${acc.contractAddress}`);
+ }
+ }
+ (0, misc_1.log)("decimals", decimals);
+ return `Owns ${(0, exports2.humanizeComparator)(acc.returnValueTest.comparator)} ${(0, utils_1.formatUnits)(acc.returnValueTest.value, decimals)} of ${name || acc.contractAddress} tokens`;
+ } else if (acc.standardContractType === "" && acc.method === "eth_getBalance") {
+ return `Owns ${(0, exports2.humanizeComparator)(acc.returnValueTest.comparator)} ${(0, utils_1.formatEther)(acc.returnValueTest.value)} ETH`;
+ } else if (acc.standardContractType === "" && acc.method === "") {
+ if (myWalletAddress && acc.returnValueTest.value.toLowerCase() === myWalletAddress.toLowerCase()) {
+ return `Controls your wallet (${myWalletAddress})`;
+ } else {
+ return `Controls wallet with address ${acc.returnValueTest.value}`;
+ }
+ }
+ return "Oops. something went wrong!";
+ }));
+ return promises.join("");
+ };
+ exports2.humanizeEvmBasicAccessControlConditions = humanizeEvmBasicAccessControlConditions;
+ var humanizeEvmContractConditions = async ({ evmContractConditions, tokenList, myWalletAddress }) => {
+ (0, misc_1.log)("humanizing evm contract conditions");
+ (0, misc_1.log)("myWalletAddress", myWalletAddress);
+ (0, misc_1.log)("evmContractConditions", evmContractConditions);
+ const promises = await Promise.all(evmContractConditions.map(async (acc) => {
+ if (Array.isArray(acc)) {
+ const group = await (0, exports2.humanizeEvmContractConditions)({
+ evmContractConditions: acc,
+ tokenList,
+ myWalletAddress
+ });
+ return `( ${group} )`;
+ }
+ if (acc.operator) {
+ if (acc.operator.toLowerCase() === "and") {
+ return " and ";
+ } else if (acc.operator.toLowerCase() === "or") {
+ return " or ";
+ }
+ }
+ let msg = `${acc.functionName}(${acc.functionParams.join(", ")}) on contract address ${acc.contractAddress} should have a result of ${(0, exports2.humanizeComparator)(acc.returnValueTest.comparator)} ${acc.returnValueTest.value}`;
+ if (acc.returnValueTest.key !== "") {
+ msg += ` for key ${acc.returnValueTest.key}`;
+ }
+ return msg;
+ }));
+ return promises.join("");
+ };
+ exports2.humanizeEvmContractConditions = humanizeEvmContractConditions;
+ var humanizeSolRpcConditions = async ({ solRpcConditions, tokenList, myWalletAddress }) => {
+ (0, misc_1.log)("humanizing sol rpc conditions");
+ (0, misc_1.log)("myWalletAddress", myWalletAddress);
+ (0, misc_1.log)("solRpcConditions", solRpcConditions);
+ const promises = await Promise.all(solRpcConditions.map(async (acc) => {
+ if (Array.isArray(acc)) {
+ const group = await (0, exports2.humanizeSolRpcConditions)({
+ solRpcConditions: acc,
+ tokenList,
+ myWalletAddress
+ });
+ return `( ${group} )`;
+ }
+ if (acc.operator) {
+ if (acc.operator.toLowerCase() === "and") {
+ return " and ";
+ } else if (acc.operator.toLowerCase() === "or") {
+ return " or ";
+ }
+ }
+ if (acc.method === "getBalance") {
+ return `Owns ${(0, exports2.humanizeComparator)(acc.returnValueTest.comparator)} ${(0, exports2.formatSol)(acc.returnValueTest.value)} SOL`;
+ } else if (acc.method === "") {
+ if (myWalletAddress && acc.returnValueTest.value.toLowerCase() === myWalletAddress.toLowerCase()) {
+ return `Controls your wallet (${myWalletAddress})`;
+ } else {
+ return `Controls wallet with address ${acc.returnValueTest.value}`;
+ }
+ } else {
+ let msg = `Solana RPC method ${acc.method}(${acc.params.join(", ")}) should have a result of ${(0, exports2.humanizeComparator)(acc.returnValueTest.comparator)} ${acc.returnValueTest.value}`;
+ if (acc.returnValueTest.key !== "") {
+ msg += ` for key ${acc.returnValueTest.key}`;
+ }
+ return msg;
+ }
+ }));
+ return promises.join("");
+ };
+ exports2.humanizeSolRpcConditions = humanizeSolRpcConditions;
+ var humanizeCosmosConditions = async ({ cosmosConditions, tokenList, myWalletAddress }) => {
+ (0, misc_1.log)("humanizing cosmos conditions");
+ (0, misc_1.log)("myWalletAddress", myWalletAddress);
+ (0, misc_1.log)("cosmosConditions", cosmosConditions);
+ const promises = await Promise.all(cosmosConditions.map(async (acc) => {
+ if (Array.isArray(acc)) {
+ const group = await (0, exports2.humanizeCosmosConditions)({
+ cosmosConditions: acc,
+ tokenList,
+ myWalletAddress
+ });
+ return `( ${group} )`;
+ }
+ if (acc.operator) {
+ if (acc.operator.toLowerCase() === "and") {
+ return " and ";
+ } else if (acc.operator.toLowerCase() === "or") {
+ return " or ";
+ }
+ }
+ if (acc.path === "/cosmos/bank/v1beta1/balances/:userAddress") {
+ return `Owns ${(0, exports2.humanizeComparator)(acc.returnValueTest.comparator)} ${(0, exports2.formatAtom)(acc.returnValueTest.value)} ATOM`;
+ } else if (acc.path === ":userAddress") {
+ if (myWalletAddress && acc.returnValueTest.value.toLowerCase() === myWalletAddress.toLowerCase()) {
+ return `Controls your wallet (${myWalletAddress})`;
+ } else {
+ return `Controls wallet with address ${acc.returnValueTest.value}`;
+ }
+ } else if (acc.chain === "kyve" && acc.path === "/kyve/registry/v1beta1/funders_list/0") {
+ return `Is a current KYVE funder`;
+ } else {
+ let msg = `Cosmos RPC request for ${acc.path} should have a result of ${(0, exports2.humanizeComparator)(acc.returnValueTest.comparator)} ${acc.returnValueTest.value}`;
+ if (acc.returnValueTest.key !== "") {
+ msg += ` for key ${acc.returnValueTest.key}`;
+ }
+ return msg;
+ }
+ }));
+ return promises.join("");
+ };
+ exports2.humanizeCosmosConditions = humanizeCosmosConditions;
+ var humanizeUnifiedAccessControlConditions = async ({ unifiedAccessControlConditions, tokenList, myWalletAddress }) => {
+ const promises = await Promise.all(unifiedAccessControlConditions.map(async (acc) => {
+ if (Array.isArray(acc)) {
+ const group = await (0, exports2.humanizeUnifiedAccessControlConditions)({
+ unifiedAccessControlConditions: acc,
+ tokenList,
+ myWalletAddress
+ });
+ return `( ${group} )`;
+ }
+ if (acc.operator) {
+ if (acc.operator.toLowerCase() === "and") {
+ return " and ";
+ } else if (acc.operator.toLowerCase() === "or") {
+ return " or ";
+ }
+ }
+ if (acc.conditionType === "evmBasic") {
+ return (0, exports2.humanizeEvmBasicAccessControlConditions)({
+ accessControlConditions: [acc],
+ tokenList,
+ myWalletAddress
+ });
+ } else if (acc.conditionType === "evmContract") {
+ return (0, exports2.humanizeEvmContractConditions)({
+ evmContractConditions: [acc],
+ tokenList,
+ myWalletAddress
+ });
+ } else if (acc.conditionType === "solRpc") {
+ return (0, exports2.humanizeSolRpcConditions)({
+ solRpcConditions: [acc],
+ tokenList,
+ myWalletAddress
+ });
+ } else if (acc.conditionType === "cosmos") {
+ return (0, exports2.humanizeCosmosConditions)({
+ cosmosConditions: [acc],
+ tokenList,
+ myWalletAddress
+ });
+ } else {
+ throw new constants_1.InvalidUnifiedConditionType({
+ info: {
+ acc
+ }
+ }, "Unrecognized condition type: %s", acc.conditionType);
+ }
+ }));
+ return promises.join("");
+ };
+ exports2.humanizeUnifiedAccessControlConditions = humanizeUnifiedAccessControlConditions;
+ var humanizeAccessControlConditions = async ({ accessControlConditions, evmContractConditions, solRpcConditions, unifiedAccessControlConditions, tokenList, myWalletAddress }) => {
+ if (accessControlConditions) {
+ return (0, exports2.humanizeEvmBasicAccessControlConditions)({
+ accessControlConditions,
+ tokenList,
+ myWalletAddress
+ });
+ } else if (evmContractConditions) {
+ return (0, exports2.humanizeEvmContractConditions)({
+ evmContractConditions,
+ tokenList,
+ myWalletAddress
+ });
+ } else if (solRpcConditions) {
+ return (0, exports2.humanizeSolRpcConditions)({
+ solRpcConditions,
+ tokenList,
+ myWalletAddress
+ });
+ } else if (unifiedAccessControlConditions) {
+ return (0, exports2.humanizeUnifiedAccessControlConditions)({
+ unifiedAccessControlConditions,
+ tokenList,
+ myWalletAddress
+ });
+ }
+ return;
+ };
+ exports2.humanizeAccessControlConditions = humanizeAccessControlConditions;
+ }
+});
+
+// node_modules/@lit-protocol/accs-schemas/cjs/generated/LPACC_EVM_ATOM.js
+var require_LPACC_EVM_ATOM = __commonJS({
+ "node_modules/@lit-protocol/accs-schemas/cjs/generated/LPACC_EVM_ATOM.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ }
+});
+
+// node_modules/@lit-protocol/accs-schemas/cjs/generated/LPACC_EVM_BASIC.js
+var require_LPACC_EVM_BASIC = __commonJS({
+ "node_modules/@lit-protocol/accs-schemas/cjs/generated/LPACC_EVM_BASIC.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ }
+});
+
+// node_modules/@lit-protocol/accs-schemas/cjs/generated/LPACC_EVM_CONTRACT.js
+var require_LPACC_EVM_CONTRACT = __commonJS({
+ "node_modules/@lit-protocol/accs-schemas/cjs/generated/LPACC_EVM_CONTRACT.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ }
+});
+
+// node_modules/@lit-protocol/accs-schemas/cjs/generated/LPACC_SOL.js
+var require_LPACC_SOL = __commonJS({
+ "node_modules/@lit-protocol/accs-schemas/cjs/generated/LPACC_SOL.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ }
+});
+
+// node_modules/@lit-protocol/accs-schemas/cjs/generated/index.js
+var require_generated = __commonJS({
+ "node_modules/@lit-protocol/accs-schemas/cjs/generated/index.js"(exports2) {
+ "use strict";
+ var __createBinding13 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() {
+ return m[k];
+ } };
+ }
+ Object.defineProperty(o, k2, desc);
+ } : function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+ });
+ var __exportStar13 = exports2 && exports2.__exportStar || function(m, exports3) {
+ for (var p in m)
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p))
+ __createBinding13(exports3, m, p);
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ __exportStar13(require_LPACC_EVM_ATOM(), exports2);
+ __exportStar13(require_LPACC_EVM_BASIC(), exports2);
+ __exportStar13(require_LPACC_EVM_CONTRACT(), exports2);
+ __exportStar13(require_LPACC_SOL(), exports2);
+ }
+});
+
+// node_modules/@lit-protocol/accs-schemas/cjs/schemas/LPACC_ATOM.json
+var require_LPACC_ATOM = __commonJS({
+ "node_modules/@lit-protocol/accs-schemas/cjs/schemas/LPACC_ATOM.json"(exports2, module2) {
+ module2.exports = {
+ $id: "https://github.com/LIT-Protocol/accs-schemas/blob/main/src/generated/LPACC_EVM_ATOM.ts",
+ title: "LPACC_EVM_ATOM",
+ description: "",
+ type: "object",
+ properties: {
+ conditionType: {
+ type: "string"
+ },
+ path: {
+ type: "string"
+ },
+ chain: {
+ enum: ["cosmos", "kyve", "evmosCosmos", "evmosCosmosTestnet", "cheqdMainnet", "cheqdTestnet", "juno"]
+ },
+ method: {
+ type: "string"
+ },
+ parameters: {
+ type: "array",
+ items: {
+ type: "string"
+ }
+ },
+ returnValueTest: {
+ type: "object",
+ properties: {
+ key: {
+ type: "string"
+ },
+ comparator: {
+ enum: ["contains", "=", ">", ">=", "<", "<="]
+ },
+ value: {
+ type: "string"
+ }
+ },
+ required: ["key", "comparator", "value"],
+ additionalProperties: false
+ }
+ },
+ required: ["path", "chain", "returnValueTest"],
+ additionalProperties: false
+ };
+ }
+});
+
+// node_modules/@lit-protocol/accs-schemas/cjs/schemas/LPACC_EVM_BASIC.json
+var require_LPACC_EVM_BASIC2 = __commonJS({
+ "node_modules/@lit-protocol/accs-schemas/cjs/schemas/LPACC_EVM_BASIC.json"(exports2, module2) {
+ module2.exports = {
+ $id: "https://github.com/LIT-Protocol/accs-schemas/blob/main/src/generated/LPACC_EVM_BASIC.json",
+ title: "LPACC_EVM_BASIC",
+ description: "",
+ type: "object",
+ properties: {
+ conditionType: {
+ type: "string"
+ },
+ contractAddress: {
+ type: "string"
+ },
+ chain: {
+ enum: [
+ "ethereum",
+ "polygon",
+ "fantom",
+ "xdai",
+ "bsc",
+ "arbitrum",
+ "arbitrumSepolia",
+ "avalanche",
+ "fuji",
+ "harmony",
+ "mumbai",
+ "goerli",
+ "cronos",
+ "optimism",
+ "celo",
+ "aurora",
+ "eluvio",
+ "alfajores",
+ "xdc",
+ "evmos",
+ "evmosTestnet",
+ "bscTestnet",
+ "baseGoerli",
+ "baseSepolia",
+ "moonbeam",
+ "moonriver",
+ "moonbaseAlpha",
+ "filecoin",
+ "hyperspace",
+ "sepolia",
+ "scrollSepolia",
+ "scroll",
+ "zksync",
+ "base",
+ "lukso",
+ "luksoTestnet",
+ "zora",
+ "zoraGoerli",
+ "zksyncTestnet",
+ "lineaGoerli",
+ "lineaSepolia",
+ "chronicleTestnet",
+ "yellowstone",
+ "lit",
+ "chiado",
+ "zkEvm",
+ "mantleTestnet",
+ "mantle",
+ "klaytn",
+ "publicGoodsNetwork",
+ "optimismGoerli",
+ "waevEclipseTestnet",
+ "waevEclipseDevnet",
+ "verifyTestnet",
+ "fuse",
+ "campNetwork",
+ "vanar",
+ "lisk",
+ "chilizMainnet",
+ "chilizTestnet",
+ "skaleTestnet",
+ "skale",
+ "skaleCalypso",
+ "skaleCalypsoTestnet",
+ "skaleEuropaTestnet",
+ "skaleEuropa",
+ "skaleTitanTestnet",
+ "skaleTitan",
+ "fhenixHelium",
+ "hederaTestnet",
+ "bitTorrentTestnet",
+ "storyOdyssey",
+ "campTestnet",
+ "hushedNorthstar",
+ "amoy",
+ "matchain"
+ ]
+ },
+ standardContractType: {
+ enum: [
+ "",
+ "ERC20",
+ "ERC721",
+ "ERC721MetadataName",
+ "ERC1155",
+ "CASK",
+ "Creaton",
+ "POAP",
+ "timestamp",
+ "MolochDAOv2.1",
+ "ProofOfHumanity",
+ "SIWE",
+ "PKPPermissions",
+ "LitAction"
+ ]
+ },
+ method: {
+ type: "string"
+ },
+ parameters: {
+ type: "array",
+ items: {
+ type: "string"
+ }
+ },
+ returnValueTest: {
+ type: "object",
+ properties: {
+ comparator: {
+ enum: ["contains", "=", ">", ">=", "<", "<="]
+ },
+ value: {
+ type: "string"
+ }
+ },
+ required: ["comparator", "value"],
+ additionalProperties: false
+ }
+ },
+ required: [
+ "contractAddress",
+ "chain",
+ "standardContractType",
+ "method",
+ "parameters",
+ "returnValueTest"
+ ],
+ additionalProperties: false
+ };
+ }
+});
+
+// node_modules/@lit-protocol/accs-schemas/cjs/schemas/LPACC_EVM_CONTRACT.json
+var require_LPACC_EVM_CONTRACT2 = __commonJS({
+ "node_modules/@lit-protocol/accs-schemas/cjs/schemas/LPACC_EVM_CONTRACT.json"(exports2, module2) {
+ module2.exports = {
+ $id: "https://github.com/LIT-Protocol/accs-schemas/blob/main/src/generated/LPACC_EVM_CONTRACT.json",
+ title: "LPACC_EVM_CONTRACT",
+ description: "",
+ type: "object",
+ properties: {
+ conditionType: {
+ type: "string"
+ },
+ contractAddress: {
+ type: "string"
+ },
+ chain: {
+ enum: [
+ "ethereum",
+ "polygon",
+ "fantom",
+ "xdai",
+ "bsc",
+ "arbitrum",
+ "arbitrumSepolia",
+ "avalanche",
+ "fuji",
+ "harmony",
+ "mumbai",
+ "goerli",
+ "cronos",
+ "optimism",
+ "celo",
+ "aurora",
+ "eluvio",
+ "alfajores",
+ "xdc",
+ "evmos",
+ "evmosTestnet",
+ "bscTestnet",
+ "baseGoerli",
+ "baseSepolia",
+ "moonbeam",
+ "moonriver",
+ "moonbaseAlpha",
+ "filecoin",
+ "hyperspace",
+ "sepolia",
+ "scrollSepolia",
+ "scroll",
+ "zksync",
+ "base",
+ "lukso",
+ "luksoTestnet",
+ "zora",
+ "zoraGoerli",
+ "zksyncTestnet",
+ "lineaGoerli",
+ "lineaSepolia",
+ "chronicleTestnet",
+ "yellowstone",
+ "lit",
+ "chiado",
+ "zkEvm",
+ "mantleTestnet",
+ "mantle",
+ "klaytn",
+ "publicGoodsNetwork",
+ "optimismGoerli",
+ "waevEclipseTestnet",
+ "waevEclipseDevnet",
+ "verifyTestnet",
+ "fuse",
+ "campNetwork",
+ "vanar",
+ "lisk",
+ "chilizMainnet",
+ "chilizTestnet",
+ "skaleTestnet",
+ "skale",
+ "skaleCalypso",
+ "skaleCalypsoTestnet",
+ "skaleEuropaTestnet",
+ "skaleEuropa",
+ "skaleTitanTestnet",
+ "skaleTitan",
+ "fhenixHelium",
+ "hederaTestnet",
+ "bitTorrentTestnet",
+ "storyOdyssey",
+ "campTestnet",
+ "hushedNorthstar",
+ "amoy",
+ "matchain"
+ ]
+ },
+ functionName: {
+ type: "string"
+ },
+ functionParams: {
+ type: "array",
+ items: {
+ type: "string"
+ }
+ },
+ functionAbi: {
+ type: "object",
+ properties: {
+ name: {
+ type: "string"
+ },
+ type: {
+ type: "string"
+ },
+ stateMutability: {
+ type: "string"
+ },
+ constant: {
+ type: "boolean"
+ },
+ inputs: {
+ type: "array",
+ items: {
+ type: "object",
+ properties: {
+ name: {
+ type: "string"
+ },
+ type: {
+ type: "string"
+ },
+ internalType: {
+ type: "string"
+ }
+ },
+ required: ["name", "type"],
+ additionalProperties: false
+ }
+ },
+ outputs: {
+ type: "array",
+ items: {
+ type: "object",
+ properties: {
+ name: {
+ type: "string"
+ },
+ type: {
+ type: "string"
+ },
+ internalType: {
+ type: "string"
+ }
+ },
+ required: ["name", "type"],
+ additionalProperties: false
+ }
+ }
+ },
+ required: ["name", "stateMutability", "inputs", "outputs"],
+ additionalProperties: false
+ },
+ returnValueTest: {
+ type: "object",
+ properties: {
+ key: {
+ type: "string"
+ },
+ comparator: {
+ enum: ["contains", "=", ">", ">=", "<", "<="]
+ },
+ value: {
+ type: "string"
+ }
+ },
+ required: ["key", "comparator", "value"],
+ additionalProperties: false
+ }
+ },
+ required: [
+ "contractAddress",
+ "chain",
+ "functionName",
+ "functionParams",
+ "functionAbi",
+ "returnValueTest"
+ ],
+ additionalProperties: false
+ };
+ }
+});
+
+// node_modules/@lit-protocol/accs-schemas/cjs/schemas/LPACC_SOL.json
+var require_LPACC_SOL2 = __commonJS({
+ "node_modules/@lit-protocol/accs-schemas/cjs/schemas/LPACC_SOL.json"(exports2, module2) {
+ module2.exports = {
+ $id: "https://github.com/LIT-Protocol/accs-schemas/blob/main/src/generated/LPACC_SOL.json",
+ title: "LPACC_SOL",
+ description: "",
+ type: "object",
+ properties: {
+ conditionType: {
+ type: "string"
+ },
+ method: {
+ type: "string"
+ },
+ params: {
+ type: "array",
+ items: {
+ type: "string"
+ }
+ },
+ pdaParams: {
+ type: "array",
+ items: {
+ type: "string"
+ }
+ },
+ pdaInterface: {
+ type: "object",
+ properties: {
+ offset: {
+ type: "number"
+ },
+ fields: {
+ type: "object"
+ }
+ },
+ required: ["offset", "fields"],
+ additionalProperties: false
+ },
+ pdaKey: {
+ type: "string"
+ },
+ chain: {
+ enum: ["solana", "solanaDevnet", "solanaTestnet"]
+ },
+ returnValueTest: {
+ type: "object",
+ properties: {
+ key: {
+ type: "string"
+ },
+ comparator: {
+ enum: ["contains", "=", ">", ">=", "<", "<="]
+ },
+ value: {
+ type: "string"
+ }
+ },
+ required: ["comparator", "value", "key"],
+ additionalProperties: false
+ }
+ },
+ required: [
+ "method",
+ "params",
+ "chain",
+ "pdaInterface",
+ "pdaKey",
+ "returnValueTest"
+ ],
+ additionalProperties: false
+ };
+ }
+});
+
+// node_modules/@lit-protocol/accs-schemas/cjs/schemas/index.js
+var require_schemas = __commonJS({
+ "node_modules/@lit-protocol/accs-schemas/cjs/schemas/index.js"(exports2) {
+ "use strict";
+ var __createBinding13 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() {
+ return m[k];
+ } };
+ }
+ Object.defineProperty(o, k2, desc);
+ } : function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+ });
+ var __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+ } : function(o, v) {
+ o["default"] = v;
+ });
+ var __importStar13 = exports2 && exports2.__importStar || function(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
+ __createBinding13(result, mod, k);
+ }
+ __setModuleDefault(result, mod);
+ return result;
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.loadSchema = void 0;
+ async function loadSchema(schemaName) {
+ switch (schemaName) {
+ case "LPACC_ATOM":
+ return Promise.resolve().then(() => __importStar13(require_LPACC_ATOM()));
+ case "LPACC_EVM_BASIC":
+ return Promise.resolve().then(() => __importStar13(require_LPACC_EVM_BASIC2()));
+ case "LPACC_EVM_CONTRACT":
+ return Promise.resolve().then(() => __importStar13(require_LPACC_EVM_CONTRACT2()));
+ case "LPACC_SOL":
+ return Promise.resolve().then(() => __importStar13(require_LPACC_SOL2()));
+ default:
+ throw new Error(`Unknown schema: ${schemaName}`);
+ }
+ }
+ exports2.loadSchema = loadSchema;
+ }
+});
+
+// node_modules/@lit-protocol/accs-schemas/cjs/index.js
+var require_cjs = __commonJS({
+ "node_modules/@lit-protocol/accs-schemas/cjs/index.js"(exports2) {
+ "use strict";
+ var __createBinding13 = exports2 && exports2.__createBinding || (Object.create ? function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() {
+ return m[k];
+ } };
+ }
+ Object.defineProperty(o, k2, desc);
+ } : function(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+ });
+ var __exportStar13 = exports2 && exports2.__exportStar || function(m, exports3) {
+ for (var p in m)
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p))
+ __createBinding13(exports3, m, p);
+ };
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ __exportStar13(require_generated(), exports2);
+ __exportStar13(require_schemas(), exports2);
+ }
+});
+
+// node_modules/@lit-protocol/access-control-conditions/src/lib/validator.js
+var require_validator = __commonJS({
+ "node_modules/@lit-protocol/access-control-conditions/src/lib/validator.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.validateUnifiedAccessControlConditionsSchema = exports2.validateSolRpcConditionsSchema = exports2.validateEVMContractConditionsSchema = exports2.validateAccessControlConditionsSchema = void 0;
+ var accs_schemas_1 = require_cjs();
+ var constants_1 = require_src2();
+ var misc_1 = require_src4();
+ var SCHEMA_NAME_MAP = {
+ cosmos: "LPACC_ATOM",
+ evmBasic: "LPACC_EVM_BASIC",
+ evmContract: "LPACC_EVM_CONTRACT",
+ solRpc: "LPACC_SOL"
+ };
+ async function getSchema(accType) {
+ try {
+ const schemaName = SCHEMA_NAME_MAP[accType];
+ return (0, accs_schemas_1.loadSchema)(schemaName);
+ } catch (err) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ accType
+ }
+ }, `No schema found for condition type %s`, accType);
+ }
+ }
+ var validateAccessControlConditionsSchema = async (accs) => {
+ for (const acc of accs) {
+ if (Array.isArray(acc)) {
+ await (0, exports2.validateAccessControlConditionsSchema)(acc);
+ continue;
+ }
+ if ("operator" in acc) {
+ continue;
+ }
+ (0, misc_1.checkSchema)(acc, await getSchema("evmBasic"), "accessControlConditions", "validateAccessControlConditionsSchema");
+ }
+ return true;
+ };
+ exports2.validateAccessControlConditionsSchema = validateAccessControlConditionsSchema;
+ var validateEVMContractConditionsSchema = async (accs) => {
+ for (const acc of accs) {
+ if (Array.isArray(acc)) {
+ await (0, exports2.validateEVMContractConditionsSchema)(acc);
+ continue;
+ }
+ if ("operator" in acc) {
+ continue;
+ }
+ (0, misc_1.checkSchema)(acc, await getSchema("evmContract"), "evmContractConditions", "validateEVMContractConditionsSchema");
+ }
+ return true;
+ };
+ exports2.validateEVMContractConditionsSchema = validateEVMContractConditionsSchema;
+ var validateSolRpcConditionsSchema = async (accs) => {
+ for (const acc of accs) {
+ if (Array.isArray(acc)) {
+ await (0, exports2.validateSolRpcConditionsSchema)(acc);
+ continue;
+ }
+ if ("operator" in acc) {
+ continue;
+ }
+ (0, misc_1.checkSchema)(acc, await getSchema("solRpc"), "solRpcConditions", "validateSolRpcConditionsSchema");
+ }
+ return true;
+ };
+ exports2.validateSolRpcConditionsSchema = validateSolRpcConditionsSchema;
+ var validateUnifiedAccessControlConditionsSchema = async (accs) => {
+ for (const acc of accs) {
+ if (Array.isArray(acc)) {
+ await (0, exports2.validateUnifiedAccessControlConditionsSchema)(acc);
+ continue;
+ }
+ if ("operator" in acc) {
+ continue;
+ }
+ let schema;
+ switch (acc.conditionType) {
+ case "evmBasic":
+ schema = await getSchema("evmBasic");
+ break;
+ case "evmContract":
+ schema = await getSchema("evmContract");
+ break;
+ case "solRpc":
+ schema = await getSchema("solRpc");
+ break;
+ case "cosmos":
+ schema = await getSchema("cosmos");
+ break;
+ }
+ if (schema) {
+ (0, misc_1.checkSchema)(acc, schema, "accessControlConditions", "validateUnifiedAccessControlConditionsSchema");
+ } else {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ acc
+ }
+ }, `Missing schema to validate condition type %s`, acc.conditionType);
+ }
+ }
+ return true;
+ };
+ exports2.validateUnifiedAccessControlConditionsSchema = validateUnifiedAccessControlConditionsSchema;
+ }
+});
+
+// node_modules/@lit-protocol/access-control-conditions/src/index.js
+var require_src6 = __commonJS({
+ "node_modules/@lit-protocol/access-control-conditions/src/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var tslib_1 = (init_tslib_es64(), __toCommonJS(tslib_es6_exports4));
+ tslib_1.__exportStar(require_canonicalFormatter(), exports2);
+ tslib_1.__exportStar(require_hashing(), exports2);
+ tslib_1.__exportStar(require_humanizer(), exports2);
+ tslib_1.__exportStar(require_validator(), exports2);
+ }
+});
+
+// node_modules/@lit-protocol/auth-helpers/src/lib/utils.js
+var require_utils16 = __commonJS({
+ "node_modules/@lit-protocol/auth-helpers/src/lib/utils.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.formatPKPResource = formatPKPResource;
+ function formatPKPResource(resource) {
+ let fixedResource = resource.startsWith("0x") ? resource.slice(2) : resource;
+ if (fixedResource.length > 64) {
+ throw new Error("Resource ID exceeds 64 characters (32 bytes) in length.");
+ }
+ const hexRegex = /^[0-9A-Fa-f]+$/;
+ if (fixedResource !== "*" && hexRegex.test(fixedResource)) {
+ fixedResource = fixedResource.padStart(64, "0");
+ }
+ return fixedResource;
+ }
+ }
+});
+
+// node_modules/@lit-protocol/auth-helpers/src/lib/resources.js
+var require_resources = __commonJS({
+ "node_modules/@lit-protocol/auth-helpers/src/lib/resources.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.LitActionResource = exports2.LitRLIResource = exports2.LitPKPResource = exports2.LitAccessControlConditionResource = void 0;
+ exports2.parseLitResource = parseLitResource;
+ var access_control_conditions_1 = require_src6();
+ var constants_1 = require_src2();
+ var uint8arrays_1 = require_src5();
+ var utils_1 = require_utils16();
+ var LitResourceBase = class {
+ constructor(resource) {
+ this.resource = resource;
+ }
+ getResourceKey() {
+ return `${this.resourcePrefix}://${this.resource}`;
+ }
+ toString() {
+ return this.getResourceKey();
+ }
+ };
+ var LitAccessControlConditionResource = class extends LitResourceBase {
+ /**
+ * Creates a new LitAccessControlConditionResource.
+ * @param resource The identifier for the resource. This should be the
+ * hashed key value of the access control condition.
+ */
+ constructor(resource) {
+ super(resource);
+ this.resourcePrefix = constants_1.LIT_RESOURCE_PREFIX.AccessControlCondition;
+ }
+ isValidLitAbility(litAbility) {
+ return litAbility === constants_1.LIT_ABILITY.AccessControlConditionDecryption || litAbility === constants_1.LIT_ABILITY.AccessControlConditionSigning;
+ }
+ /**
+ * Composes a resource string by hashing access control conditions and appending a data hash.
+ *
+ * @param {AccessControlConditions} accs - The access control conditions to hash.
+ * @param {string} dataToEncryptHash - The hash of the data to encrypt.
+ * @returns {Promise} The composed resource string in the format 'hashedAccs/dataToEncryptHash'.
+ */
+ static async generateResourceString(accs, dataToEncryptHash) {
+ if (!accs || !dataToEncryptHash) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ accs,
+ dataToEncryptHash
+ }
+ }, "Invalid input: Access control conditions and data hash are required.");
+ }
+ const hashedAccs = await (0, access_control_conditions_1.hashAccessControlConditions)(accs);
+ const hashedAccsStr = (0, uint8arrays_1.uint8arrayToString)(new Uint8Array(hashedAccs), "base16");
+ const resourceString = `${hashedAccsStr}/${dataToEncryptHash}`;
+ return resourceString;
+ }
+ };
+ exports2.LitAccessControlConditionResource = LitAccessControlConditionResource;
+ var LitPKPResource2 = class extends LitResourceBase {
+ /**
+ * Creates a new LitPKPResource.
+ * @param resource The identifier for the resource. This should be the
+ * PKP token ID.
+ */
+ constructor(resource) {
+ const fixedResource = (0, utils_1.formatPKPResource)(resource);
+ super(fixedResource);
+ this.resourcePrefix = constants_1.LIT_RESOURCE_PREFIX.PKP;
+ }
+ isValidLitAbility(litAbility) {
+ return litAbility === constants_1.LIT_ABILITY.PKPSigning;
+ }
+ };
+ exports2.LitPKPResource = LitPKPResource2;
+ var LitRLIResource = class extends LitResourceBase {
+ /**
+ * Creates a new LitRLIResource.
+ * @param resource The identifier for the resource. This should be the
+ * RLI token ID.
+ */
+ constructor(resource) {
+ super(resource);
+ this.resourcePrefix = constants_1.LIT_RESOURCE_PREFIX.RLI;
+ }
+ isValidLitAbility(litAbility) {
+ return litAbility === constants_1.LIT_ABILITY.RateLimitIncreaseAuth;
+ }
+ };
+ exports2.LitRLIResource = LitRLIResource;
+ var LitActionResource2 = class extends LitResourceBase {
+ /**
+ * Creates a new LitActionResource.
+ * @param resource The identifier for the resource. This should be the
+ * Lit Action IPFS CID.
+ */
+ constructor(resource) {
+ super(resource);
+ this.resourcePrefix = constants_1.LIT_RESOURCE_PREFIX.LitAction;
+ }
+ isValidLitAbility(litAbility) {
+ return litAbility === constants_1.LIT_ABILITY.LitActionExecution;
+ }
+ };
+ exports2.LitActionResource = LitActionResource2;
+ function parseLitResource(resourceKey) {
+ if (resourceKey.startsWith(constants_1.LIT_RESOURCE_PREFIX.AccessControlCondition)) {
+ return new LitAccessControlConditionResource(resourceKey.substring(`${constants_1.LIT_RESOURCE_PREFIX.AccessControlCondition}://`.length));
+ } else if (resourceKey.startsWith(constants_1.LIT_RESOURCE_PREFIX.PKP)) {
+ return new LitPKPResource2(resourceKey.substring(`${constants_1.LIT_RESOURCE_PREFIX.PKP}://`.length));
+ } else if (resourceKey.startsWith(constants_1.LIT_RESOURCE_PREFIX.RLI)) {
+ return new LitRLIResource(resourceKey.substring(`${constants_1.LIT_RESOURCE_PREFIX.RLI}://`.length));
+ } else if (resourceKey.startsWith(constants_1.LIT_RESOURCE_PREFIX.LitAction)) {
+ return new LitActionResource2(resourceKey.substring(`${constants_1.LIT_RESOURCE_PREFIX.LitAction}://`.length));
+ }
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ resourceKey
+ }
+ }, `Invalid resource prefix`);
+ }
+ }
+});
+
+// node_modules/@lit-protocol/auth-helpers/src/lib/recap/resource-builder.js
+var require_resource_builder = __commonJS({
+ "node_modules/@lit-protocol/auth-helpers/src/lib/recap/resource-builder.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.ResourceAbilityRequestBuilder = void 0;
+ var constants_1 = require_src2();
+ var resources_1 = require_resources();
+ var ResourceAbilityRequestBuilder = class {
+ constructor() {
+ this.requests = [];
+ }
+ /**
+ * Adds a PKP signing request to the builder.
+ * @param resourceId - The ID of the resource.
+ * @returns The builder instance.
+ */
+ addPKPSigningRequest(resourceId) {
+ this.requests.push({
+ resource: new resources_1.LitPKPResource(resourceId),
+ ability: constants_1.LIT_ABILITY.PKPSigning
+ });
+ return this;
+ }
+ /**
+ * Adds a Lit action execution request to the builder.
+ * @param resourceId - The ID of the resource.
+ * @returns The builder instance.
+ */
+ addLitActionExecutionRequest(resourceId) {
+ this.requests.push({
+ resource: new resources_1.LitActionResource(resourceId),
+ ability: constants_1.LIT_ABILITY.LitActionExecution
+ });
+ return this;
+ }
+ /**
+ * Adds an access control condition signing request to the builder.
+ * @param resourceId - The ID of the resource.
+ * @returns The builder instance.
+ */
+ addAccessControlConditionSigningRequest(resourceId) {
+ this.requests.push({
+ resource: new resources_1.LitAccessControlConditionResource(resourceId),
+ ability: constants_1.LIT_ABILITY.AccessControlConditionSigning
+ });
+ return this;
+ }
+ /**
+ * Adds an access control condition decryption request to the builder.
+ * @param resourceId - The ID of the resource.
+ * @returns The builder instance.
+ */
+ addAccessControlConditionDecryptionRequest(resourceId) {
+ this.requests.push({
+ resource: new resources_1.LitAccessControlConditionResource(resourceId),
+ ability: constants_1.LIT_ABILITY.AccessControlConditionDecryption
+ });
+ return this;
+ }
+ /**
+ * Adds a rate limit increase authentication request to the builder.
+ * @param resourceId - The ID of the resource.
+ * @returns The builder instance.
+ */
+ addRateLimitIncreaseAuthRequest(resourceId) {
+ this.requests.push({
+ resource: new resources_1.LitRLIResource(resourceId),
+ ability: constants_1.LIT_ABILITY.RateLimitIncreaseAuth
+ });
+ return this;
+ }
+ /**
+ * Builds the array of resource ability requests.
+ * @returns The array of resource ability requests.
+ */
+ build() {
+ return this.requests;
+ }
+ };
+ exports2.ResourceAbilityRequestBuilder = ResourceAbilityRequestBuilder;
+ }
+});
+
+// node_modules/@lit-protocol/auth-helpers/src/lib/siwe/create-siwe-message.js
+var require_create_siwe_message = __commonJS({
+ "node_modules/@lit-protocol/auth-helpers/src/lib/siwe/create-siwe-message.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.createSiweMessageWithCapacityDelegation = exports2.createSiweMessageWithRecaps = exports2.createSiweMessage = void 0;
+ var siwe_1 = require_siwe();
+ var constants_1 = require_src2();
+ var resources_1 = require_resources();
+ var siwe_helper_1 = require_siwe_helper();
+ var createSiweMessage2 = async (params) => {
+ if (!params.walletAddress) {
+ throw new Error("walletAddress is required");
+ }
+ const ONE_WEEK_FROM_NOW = new Date(Date.now() + 1e3 * 60 * 60 * 24 * 7).toISOString();
+ const siweParams = {
+ domain: params?.domain ?? "localhost",
+ address: params.walletAddress,
+ statement: params?.statement ?? "This is a test statement. You can put anything you want here.",
+ uri: params?.uri ?? "https://localhost/login",
+ version: params?.version ?? "1",
+ chainId: params?.chainId ?? 1,
+ nonce: params.nonce,
+ expirationTime: params?.expiration ?? ONE_WEEK_FROM_NOW
+ };
+ let siweMessage = new siwe_1.SiweMessage(siweParams);
+ if ("dAppOwnerWallet" in params || // required param
+ "uses" in params || // optional
+ "delegateeAddresses" in params || // optional
+ "capacityTokenId" in params) {
+ const ccParams = params;
+ const capabilities = (0, siwe_helper_1.createCapacityCreditsResourceData)(ccParams);
+ params.resources = [
+ {
+ resource: new resources_1.LitRLIResource(ccParams.capacityTokenId ?? "*"),
+ ability: constants_1.LIT_ABILITY.RateLimitIncreaseAuth,
+ data: capabilities
+ }
+ ];
+ }
+ if (params.resources) {
+ siweMessage = await (0, siwe_helper_1.addRecapToSiweMessage)({
+ siweMessage,
+ resources: params.resources,
+ litNodeClient: params.litNodeClient
+ });
+ }
+ return siweMessage.prepareMessage();
+ };
+ exports2.createSiweMessage = createSiweMessage2;
+ var createSiweMessageWithRecaps = async (params) => {
+ return (0, exports2.createSiweMessage)({
+ ...params
+ });
+ };
+ exports2.createSiweMessageWithRecaps = createSiweMessageWithRecaps;
+ var createSiweMessageWithCapacityDelegation = async (params) => {
+ if (!params.litNodeClient) {
+ throw new Error("litNodeClient is required");
+ }
+ return (0, exports2.createSiweMessage)({
+ ...params
+ });
+ };
+ exports2.createSiweMessageWithCapacityDelegation = createSiweMessageWithCapacityDelegation;
+ }
+});
+
+// node_modules/@lit-protocol/auth-helpers/src/lib/generate-auth-sig.js
+var require_generate_auth_sig = __commonJS({
+ "node_modules/@lit-protocol/auth-helpers/src/lib/generate-auth-sig.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.generateAuthSig = void 0;
+ var ethers_1 = require_lib36();
+ var generateAuthSig2 = async ({ signer, toSign, address, algo }) => {
+ if (!signer?.signMessage) {
+ throw new Error("signer does not have a signMessage method");
+ }
+ const signature = await signer.signMessage(toSign);
+ if (!address) {
+ address = await signer.getAddress();
+ }
+ address = ethers_1.ethers.utils.getAddress(address);
+ if (!address) {
+ throw new Error("address is required");
+ }
+ return {
+ sig: signature,
+ derivedVia: "web3.eth.personal.sign",
+ signedMessage: toSign,
+ address,
+ ...algo && { algo }
+ };
+ };
+ exports2.generateAuthSig = generateAuthSig2;
+ }
+});
+
+// node_modules/@lit-protocol/auth-helpers/src/index.js
+var require_src7 = __commonJS({
+ "node_modules/@lit-protocol/auth-helpers/src/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var tslib_1 = (init_tslib_es62(), __toCommonJS(tslib_es6_exports2));
+ tslib_1.__exportStar(require_models(), exports2);
+ tslib_1.__exportStar(require_session_capability_object(), exports2);
+ tslib_1.__exportStar(require_resources(), exports2);
+ tslib_1.__exportStar(require_siwe_helper(), exports2);
+ tslib_1.__exportStar(require_recap_session_capability_object(), exports2);
+ tslib_1.__exportStar(require_resource_builder(), exports2);
+ tslib_1.__exportStar(require_create_siwe_message(), exports2);
+ tslib_1.__exportStar(require_generate_auth_sig(), exports2);
+ }
+});
+
+// node_modules/@lit-protocol/core/node_modules/tslib/tslib.es6.js
+var tslib_es6_exports7 = {};
+__export(tslib_es6_exports7, {
+ __assign: () => __assign7,
+ __asyncDelegator: () => __asyncDelegator7,
+ __asyncGenerator: () => __asyncGenerator7,
+ __asyncValues: () => __asyncValues7,
+ __await: () => __await7,
+ __awaiter: () => __awaiter7,
+ __classPrivateFieldGet: () => __classPrivateFieldGet7,
+ __classPrivateFieldSet: () => __classPrivateFieldSet7,
+ __createBinding: () => __createBinding7,
+ __decorate: () => __decorate7,
+ __exportStar: () => __exportStar7,
+ __extends: () => __extends7,
+ __generator: () => __generator7,
+ __importDefault: () => __importDefault7,
+ __importStar: () => __importStar7,
+ __makeTemplateObject: () => __makeTemplateObject7,
+ __metadata: () => __metadata7,
+ __param: () => __param7,
+ __read: () => __read7,
+ __rest: () => __rest7,
+ __spread: () => __spread7,
+ __spreadArrays: () => __spreadArrays7,
+ __values: () => __values7
+});
+function __extends7(d, b) {
+ extendStatics7(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+function __rest7(s, e) {
+ var t = {};
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+}
+function __decorate7(decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ r = Reflect.decorate(decorators, target, key, desc);
+ else
+ for (var i = decorators.length - 1; i >= 0; i--)
+ if (d = decorators[i])
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+function __param7(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+}
+function __metadata7(metadataKey, metadataValue) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(metadataKey, metadataValue);
+}
+function __awaiter7(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+}
+function __generator7(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+}
+function __createBinding7(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+}
+function __exportStar7(m, exports2) {
+ for (var p in m)
+ if (p !== "default" && !exports2.hasOwnProperty(p))
+ exports2[p] = m[p];
+}
+function __values7(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m)
+ return m.call(o);
+ if (o && typeof o.length === "number")
+ return {
+ next: function() {
+ if (o && i >= o.length)
+ o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+}
+function __read7(o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m)
+ return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
+ ar.push(r.value);
+ } catch (error) {
+ e = { error };
+ } finally {
+ try {
+ if (r && !r.done && (m = i["return"]))
+ m.call(i);
+ } finally {
+ if (e)
+ throw e.error;
+ }
+ }
+ return ar;
+}
+function __spread7() {
+ for (var ar = [], i = 0; i < arguments.length; i++)
+ ar = ar.concat(__read7(arguments[i]));
+ return ar;
+}
+function __spreadArrays7() {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
+ s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+}
+function __await7(v) {
+ return this instanceof __await7 ? (this.v = v, this) : new __await7(v);
+}
+function __asyncGenerator7(thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i;
+ function verb(n) {
+ if (g[n])
+ i[n] = function(v) {
+ return new Promise(function(a, b) {
+ q.push([n, v, a, b]) > 1 || resume(n, v);
+ });
+ };
+ }
+ function resume(n, v) {
+ try {
+ step(g[n](v));
+ } catch (e) {
+ settle(q[0][3], e);
+ }
+ }
+ function step(r) {
+ r.value instanceof __await7 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
+ }
+ function fulfill(value) {
+ resume("next", value);
+ }
+ function reject(value) {
+ resume("throw", value);
+ }
+ function settle(f, v) {
+ if (f(v), q.shift(), q.length)
+ resume(q[0][0], q[0][1]);
+ }
+}
+function __asyncDelegator7(o) {
+ var i, p;
+ return i = {}, verb("next"), verb("throw", function(e) {
+ throw e;
+ }), verb("return"), i[Symbol.iterator] = function() {
+ return this;
+ }, i;
+ function verb(n, f) {
+ i[n] = o[n] ? function(v) {
+ return (p = !p) ? { value: __await7(o[n](v)), done: n === "return" } : f ? f(v) : v;
+ } : f;
+ }
+}
+function __asyncValues7(o) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator], i;
+ return m ? m.call(o) : (o = typeof __values7 === "function" ? __values7(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i);
+ function verb(n) {
+ i[n] = o[n] && function(v) {
+ return new Promise(function(resolve, reject) {
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
+ });
+ };
+ }
+ function settle(resolve, reject, d, v) {
+ Promise.resolve(v).then(function(v2) {
+ resolve({ value: v2, done: d });
+ }, reject);
+ }
+}
+function __makeTemplateObject7(cooked, raw) {
+ if (Object.defineProperty) {
+ Object.defineProperty(cooked, "raw", { value: raw });
+ } else {
+ cooked.raw = raw;
+ }
+ return cooked;
+}
+function __importStar7(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (Object.hasOwnProperty.call(mod, k))
+ result[k] = mod[k];
+ }
+ result.default = mod;
+ return result;
+}
+function __importDefault7(mod) {
+ return mod && mod.__esModule ? mod : { default: mod };
+}
+function __classPrivateFieldGet7(receiver, privateMap) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to get private field on non-instance");
+ }
+ return privateMap.get(receiver);
+}
+function __classPrivateFieldSet7(receiver, privateMap, value) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to set private field on non-instance");
+ }
+ privateMap.set(receiver, value);
+ return value;
+}
+var extendStatics7, __assign7;
+var init_tslib_es67 = __esm({
+ "node_modules/@lit-protocol/core/node_modules/tslib/tslib.es6.js"() {
+ extendStatics7 = function(d, b) {
+ extendStatics7 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (b2.hasOwnProperty(p))
+ d2[p] = b2[p];
+ };
+ return extendStatics7(d, b);
+ };
+ __assign7 = function() {
+ __assign7 = Object.assign || function __assign13(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign7.apply(this, arguments);
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/node_modules/tslib/tslib.es6.js
+var tslib_es6_exports8 = {};
+__export(tslib_es6_exports8, {
+ __assign: () => __assign8,
+ __asyncDelegator: () => __asyncDelegator8,
+ __asyncGenerator: () => __asyncGenerator8,
+ __asyncValues: () => __asyncValues8,
+ __await: () => __await8,
+ __awaiter: () => __awaiter8,
+ __classPrivateFieldGet: () => __classPrivateFieldGet8,
+ __classPrivateFieldSet: () => __classPrivateFieldSet8,
+ __createBinding: () => __createBinding8,
+ __decorate: () => __decorate8,
+ __exportStar: () => __exportStar8,
+ __extends: () => __extends8,
+ __generator: () => __generator8,
+ __importDefault: () => __importDefault8,
+ __importStar: () => __importStar8,
+ __makeTemplateObject: () => __makeTemplateObject8,
+ __metadata: () => __metadata8,
+ __param: () => __param8,
+ __read: () => __read8,
+ __rest: () => __rest8,
+ __spread: () => __spread8,
+ __spreadArrays: () => __spreadArrays8,
+ __values: () => __values8
+});
+function __extends8(d, b) {
+ extendStatics8(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+function __rest8(s, e) {
+ var t = {};
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+}
+function __decorate8(decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ r = Reflect.decorate(decorators, target, key, desc);
+ else
+ for (var i = decorators.length - 1; i >= 0; i--)
+ if (d = decorators[i])
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+function __param8(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+}
+function __metadata8(metadataKey, metadataValue) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(metadataKey, metadataValue);
+}
+function __awaiter8(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+}
+function __generator8(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+}
+function __createBinding8(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+}
+function __exportStar8(m, exports2) {
+ for (var p in m)
+ if (p !== "default" && !exports2.hasOwnProperty(p))
+ exports2[p] = m[p];
+}
+function __values8(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m)
+ return m.call(o);
+ if (o && typeof o.length === "number")
+ return {
+ next: function() {
+ if (o && i >= o.length)
+ o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+}
+function __read8(o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m)
+ return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
+ ar.push(r.value);
+ } catch (error) {
+ e = { error };
+ } finally {
+ try {
+ if (r && !r.done && (m = i["return"]))
+ m.call(i);
+ } finally {
+ if (e)
+ throw e.error;
+ }
+ }
+ return ar;
+}
+function __spread8() {
+ for (var ar = [], i = 0; i < arguments.length; i++)
+ ar = ar.concat(__read8(arguments[i]));
+ return ar;
+}
+function __spreadArrays8() {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
+ s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+}
+function __await8(v) {
+ return this instanceof __await8 ? (this.v = v, this) : new __await8(v);
+}
+function __asyncGenerator8(thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i;
+ function verb(n) {
+ if (g[n])
+ i[n] = function(v) {
+ return new Promise(function(a, b) {
+ q.push([n, v, a, b]) > 1 || resume(n, v);
+ });
+ };
+ }
+ function resume(n, v) {
+ try {
+ step(g[n](v));
+ } catch (e) {
+ settle(q[0][3], e);
+ }
+ }
+ function step(r) {
+ r.value instanceof __await8 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
+ }
+ function fulfill(value) {
+ resume("next", value);
+ }
+ function reject(value) {
+ resume("throw", value);
+ }
+ function settle(f, v) {
+ if (f(v), q.shift(), q.length)
+ resume(q[0][0], q[0][1]);
+ }
+}
+function __asyncDelegator8(o) {
+ var i, p;
+ return i = {}, verb("next"), verb("throw", function(e) {
+ throw e;
+ }), verb("return"), i[Symbol.iterator] = function() {
+ return this;
+ }, i;
+ function verb(n, f) {
+ i[n] = o[n] ? function(v) {
+ return (p = !p) ? { value: __await8(o[n](v)), done: n === "return" } : f ? f(v) : v;
+ } : f;
+ }
+}
+function __asyncValues8(o) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator], i;
+ return m ? m.call(o) : (o = typeof __values8 === "function" ? __values8(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i);
+ function verb(n) {
+ i[n] = o[n] && function(v) {
+ return new Promise(function(resolve, reject) {
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
+ });
+ };
+ }
+ function settle(resolve, reject, d, v) {
+ Promise.resolve(v).then(function(v2) {
+ resolve({ value: v2, done: d });
+ }, reject);
+ }
+}
+function __makeTemplateObject8(cooked, raw) {
+ if (Object.defineProperty) {
+ Object.defineProperty(cooked, "raw", { value: raw });
+ } else {
+ cooked.raw = raw;
+ }
+ return cooked;
+}
+function __importStar8(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (Object.hasOwnProperty.call(mod, k))
+ result[k] = mod[k];
+ }
+ result.default = mod;
+ return result;
+}
+function __importDefault8(mod) {
+ return mod && mod.__esModule ? mod : { default: mod };
+}
+function __classPrivateFieldGet8(receiver, privateMap) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to get private field on non-instance");
+ }
+ return privateMap.get(receiver);
+}
+function __classPrivateFieldSet8(receiver, privateMap, value) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to set private field on non-instance");
+ }
+ privateMap.set(receiver, value);
+ return value;
+}
+var extendStatics8, __assign8;
+var init_tslib_es68 = __esm({
+ "node_modules/@lit-protocol/contracts-sdk/node_modules/tslib/tslib.es6.js"() {
+ extendStatics8 = function(d, b) {
+ extendStatics8 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (b2.hasOwnProperty(p))
+ d2[p] = b2[p];
+ };
+ return extendStatics8(d, b);
+ };
+ __assign8 = function() {
+ __assign8 = Object.assign || function __assign13(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign8.apply(this, arguments);
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/lib/hex2dec.js
+var require_hex2dec = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/lib/hex2dec.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.intToIP = void 0;
+ exports2.add = add;
+ exports2.multiplyByNumber = multiplyByNumber;
+ exports2.parseToDigitsArray = parseToDigitsArray;
+ exports2.convertBase = convertBase;
+ exports2.decToHex = decToHex;
+ exports2.hexToDec = hexToDec;
+ function add(x, y, base) {
+ var z = [];
+ var n = Math.max(x.length, y.length);
+ var carry = 0;
+ var i = 0;
+ while (i < n || carry) {
+ var xi = i < x.length ? x[i] : 0;
+ var yi = i < y.length ? y[i] : 0;
+ var zi = carry + xi + yi;
+ z.push(zi % base);
+ carry = Math.floor(zi / base);
+ i++;
+ }
+ return z;
+ }
+ function multiplyByNumber(num, x, base) {
+ if (num < 0)
+ return null;
+ if (num == 0)
+ return [];
+ var result = [];
+ var power = x;
+ while (true) {
+ if (num & 1) {
+ result = add(result, power, base);
+ }
+ num = num >> 1;
+ if (num === 0)
+ break;
+ power = add(power, power, base);
+ }
+ return result;
+ }
+ function parseToDigitsArray(str, base) {
+ var digits = str.split("");
+ var ary = [];
+ for (var i = digits.length - 1; i >= 0; i--) {
+ var n = parseInt(digits[i], base);
+ if (isNaN(n))
+ return null;
+ ary.push(n);
+ }
+ return ary;
+ }
+ function convertBase(str, fromBase, toBase) {
+ var digits = parseToDigitsArray(str, fromBase);
+ if (digits === null)
+ return null;
+ var outArray = [];
+ var power = [1];
+ for (var i = 0; i < digits.length; i++) {
+ if (digits[i]) {
+ outArray = add(outArray, multiplyByNumber(digits[i], power, toBase), toBase);
+ }
+ power = multiplyByNumber(fromBase, power, toBase);
+ }
+ var out = "";
+ for (var i = outArray.length - 1; i >= 0; i--) {
+ out += outArray[i].toString(toBase);
+ }
+ if (out === "") {
+ out = "0";
+ }
+ return out;
+ }
+ function decToHex(decStr, opts) {
+ var hidePrefix = opts && opts.prefix === false;
+ var hex = convertBase(decStr, 10, 16);
+ return hex ? hidePrefix ? hex : "0x" + hex : null;
+ }
+ function hexToDec(hexStr) {
+ if (hexStr.substring(0, 2) === "0x")
+ hexStr = hexStr.substring(2);
+ hexStr = hexStr.toLowerCase();
+ return convertBase(hexStr, 16, 10);
+ }
+ var intToIP = (ip) => {
+ const binaryString = ip.toString(2).padStart(32, "0");
+ const ipArray = [];
+ for (let i = 0; i < 32; i += 8) {
+ ipArray.push(parseInt(binaryString.substring(i, i + 8), 2));
+ }
+ return ipArray.join(".");
+ };
+ exports2.intToIP = intToIP;
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/abis/Allowlist.sol/AllowlistData.js
+var require_AllowlistData = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/abis/Allowlist.sol/AllowlistData.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.AllowlistData = void 0;
+ exports2.AllowlistData = {
+ date: "2023-11-14T15:45:41Z",
+ address: "0xfc7Bebd150b36921549595A776D7723fBC4Bb2D9",
+ contractName: "Allowlist",
+ abi: [
+ {
+ inputs: [],
+ stateMutability: "nonpayable",
+ type: "constructor"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "newAdmin",
+ type: "address"
+ }
+ ],
+ name: "AdminAdded",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "newAdmin",
+ type: "address"
+ }
+ ],
+ name: "AdminRemoved",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "key",
+ type: "bytes32"
+ }
+ ],
+ name: "ItemAllowed",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "key",
+ type: "bytes32"
+ }
+ ],
+ name: "ItemNotAllowed",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "previousOwner",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "newOwner",
+ type: "address"
+ }
+ ],
+ name: "OwnershipTransferred",
+ type: "event"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "newAdmin",
+ type: "address"
+ }
+ ],
+ name: "addAdmin",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "allowAll",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ name: "allowedItems",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "key",
+ type: "bytes32"
+ }
+ ],
+ name: "isAllowed",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "owner",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "newAdmin",
+ type: "address"
+ }
+ ],
+ name: "removeAdmin",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "renounceOwnership",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bool",
+ name: "_allowAll",
+ type: "bool"
+ }
+ ],
+ name: "setAllowAll",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "key",
+ type: "bytes32"
+ }
+ ],
+ name: "setAllowed",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "key",
+ type: "bytes32"
+ }
+ ],
+ name: "setNotAllowed",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "newOwner",
+ type: "address"
+ }
+ ],
+ name: "transferOwnership",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/abis/LITToken.sol/LITTokenData.js
+var require_LITTokenData = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/abis/LITToken.sol/LITTokenData.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.LITTokenData = void 0;
+ exports2.LITTokenData = {
+ date: "2023-10-02T18:22:38.000Z",
+ address: "0x53695556f8a1a064EdFf91767f15652BbfaFaD04",
+ contractName: "LITToken",
+ abi: [
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "cap",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "nonpayable",
+ type: "constructor"
+ },
+ {
+ inputs: [],
+ name: "InvalidShortString",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "string",
+ name: "str",
+ type: "string"
+ }
+ ],
+ name: "StringTooLong",
+ type: "error"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "owner",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "spender",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "value",
+ type: "uint256"
+ }
+ ],
+ name: "Approval",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "delegator",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "fromDelegate",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "toDelegate",
+ type: "address"
+ }
+ ],
+ name: "DelegateChanged",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "delegate",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "previousBalance",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newBalance",
+ type: "uint256"
+ }
+ ],
+ name: "DelegateVotesChanged",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [],
+ name: "EIP712DomainChanged",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "Paused",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "previousAdminRole",
+ type: "bytes32"
+ },
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "newAdminRole",
+ type: "bytes32"
+ }
+ ],
+ name: "RoleAdminChanged",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "account",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "sender",
+ type: "address"
+ }
+ ],
+ name: "RoleGranted",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "account",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "sender",
+ type: "address"
+ }
+ ],
+ name: "RoleRevoked",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "from",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "value",
+ type: "uint256"
+ }
+ ],
+ name: "Transfer",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "Unpaused",
+ type: "event"
+ },
+ {
+ inputs: [],
+ name: "ADMIN_ROLE",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "CLOCK_MODE",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "DEFAULT_ADMIN_ROLE",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "DOMAIN_SEPARATOR",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "MINTER_ROLE",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "PAUSER_ROLE",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "owner",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "spender",
+ type: "address"
+ }
+ ],
+ name: "allowance",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "spender",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ }
+ ],
+ name: "approve",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "balanceOf",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ }
+ ],
+ name: "burn",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ }
+ ],
+ name: "burnFrom",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "cap",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ },
+ {
+ internalType: "uint32",
+ name: "pos",
+ type: "uint32"
+ }
+ ],
+ name: "checkpoints",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "uint32",
+ name: "fromBlock",
+ type: "uint32"
+ },
+ {
+ internalType: "uint224",
+ name: "votes",
+ type: "uint224"
+ }
+ ],
+ internalType: "struct ERC20Votes.Checkpoint",
+ name: "",
+ type: "tuple"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "clock",
+ outputs: [
+ {
+ internalType: "uint48",
+ name: "",
+ type: "uint48"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "decimals",
+ outputs: [
+ {
+ internalType: "uint8",
+ name: "",
+ type: "uint8"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "spender",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "subtractedValue",
+ type: "uint256"
+ }
+ ],
+ name: "decreaseAllowance",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "delegatee",
+ type: "address"
+ }
+ ],
+ name: "delegate",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "delegatee",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "nonce",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "expiry",
+ type: "uint256"
+ },
+ {
+ internalType: "uint8",
+ name: "v",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes32",
+ name: "r",
+ type: "bytes32"
+ },
+ {
+ internalType: "bytes32",
+ name: "s",
+ type: "bytes32"
+ }
+ ],
+ name: "delegateBySig",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "delegates",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "eip712Domain",
+ outputs: [
+ {
+ internalType: "bytes1",
+ name: "fields",
+ type: "bytes1"
+ },
+ {
+ internalType: "string",
+ name: "name",
+ type: "string"
+ },
+ {
+ internalType: "string",
+ name: "version",
+ type: "string"
+ },
+ {
+ internalType: "uint256",
+ name: "chainId",
+ type: "uint256"
+ },
+ {
+ internalType: "address",
+ name: "verifyingContract",
+ type: "address"
+ },
+ {
+ internalType: "bytes32",
+ name: "salt",
+ type: "bytes32"
+ },
+ {
+ internalType: "uint256[]",
+ name: "extensions",
+ type: "uint256[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "timepoint",
+ type: "uint256"
+ }
+ ],
+ name: "getPastTotalSupply",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "timepoint",
+ type: "uint256"
+ }
+ ],
+ name: "getPastVotes",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ }
+ ],
+ name: "getRoleAdmin",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "getVotes",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "grantRole",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "hasRole",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "spender",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "addedValue",
+ type: "uint256"
+ }
+ ],
+ name: "increaseAllowance",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_recipient",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "_amount",
+ type: "uint256"
+ }
+ ],
+ name: "mint",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "name",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "owner",
+ type: "address"
+ }
+ ],
+ name: "nonces",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "numCheckpoints",
+ outputs: [
+ {
+ internalType: "uint32",
+ name: "",
+ type: "uint32"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "pause",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "paused",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "owner",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "spender",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "value",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "deadline",
+ type: "uint256"
+ },
+ {
+ internalType: "uint8",
+ name: "v",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes32",
+ name: "r",
+ type: "bytes32"
+ },
+ {
+ internalType: "bytes32",
+ name: "s",
+ type: "bytes32"
+ }
+ ],
+ name: "permit",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "renounceRole",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "revokeRole",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "interfaceId",
+ type: "bytes4"
+ }
+ ],
+ name: "supportsInterface",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "symbol",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "totalSupply",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ }
+ ],
+ name: "transfer",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "from",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ }
+ ],
+ name: "transferFrom",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "unpause",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/abis/Multisender.sol/MultisenderData.js
+var require_MultisenderData = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/abis/Multisender.sol/MultisenderData.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.MultisenderData = void 0;
+ exports2.MultisenderData = {
+ date: "2023-11-14T15:45:41Z",
+ address: "0xD4e3D27d21D6D6d596b6524610C486F8A9c70958",
+ contractName: "Multisender",
+ abi: [
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "previousOwner",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "newOwner",
+ type: "address"
+ }
+ ],
+ name: "OwnershipTransferred",
+ type: "event"
+ },
+ {
+ inputs: [],
+ name: "owner",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "renounceOwnership",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address[]",
+ name: "_recipients",
+ type: "address[]"
+ }
+ ],
+ name: "sendEth",
+ outputs: [],
+ stateMutability: "payable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address[]",
+ name: "_recipients",
+ type: "address[]"
+ },
+ {
+ internalType: "address",
+ name: "tokenContract",
+ type: "address"
+ }
+ ],
+ name: "sendTokens",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "newOwner",
+ type: "address"
+ }
+ ],
+ name: "transferOwnership",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "withdraw",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "tokenContract",
+ type: "address"
+ }
+ ],
+ name: "withdrawTokens",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/abis/PKPHelper.sol/PKPHelperData.js
+var require_PKPHelperData = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/abis/PKPHelper.sol/PKPHelperData.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.PKPHelperData = void 0;
+ exports2.PKPHelperData = {
+ date: "2023-11-14T15:45:41Z",
+ address: "0xF02b6D6b0970DB3810963300a6Ad38D8429c4cdb",
+ contractName: "PKPHelper",
+ abi: [
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_resolver",
+ type: "address"
+ },
+ {
+ internalType: "enum ContractResolver.Env",
+ name: "_env",
+ type: "uint8"
+ }
+ ],
+ stateMutability: "nonpayable",
+ type: "constructor"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "address",
+ name: "newResolverAddress",
+ type: "address"
+ }
+ ],
+ name: "ContractResolverAddressSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "previousOwner",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "newOwner",
+ type: "address"
+ }
+ ],
+ name: "OwnershipTransferred",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "previousAdminRole",
+ type: "bytes32"
+ },
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "newAdminRole",
+ type: "bytes32"
+ }
+ ],
+ name: "RoleAdminChanged",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "account",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "sender",
+ type: "address"
+ }
+ ],
+ name: "RoleGranted",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "account",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "sender",
+ type: "address"
+ }
+ ],
+ name: "RoleRevoked",
+ type: "event"
+ },
+ {
+ inputs: [],
+ name: "DEFAULT_ADMIN_ROLE",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes32",
+ name: "derivedKeyId",
+ type: "bytes32"
+ },
+ {
+ components: [
+ {
+ internalType: "bytes32",
+ name: "r",
+ type: "bytes32"
+ },
+ {
+ internalType: "bytes32",
+ name: "s",
+ type: "bytes32"
+ },
+ {
+ internalType: "uint8",
+ name: "v",
+ type: "uint8"
+ }
+ ],
+ internalType: "struct IPubkeyRouter.Signature[]",
+ name: "signatures",
+ type: "tuple[]"
+ }
+ ],
+ internalType: "struct LibPKPNFTStorage.ClaimMaterial",
+ name: "claimMaterial",
+ type: "tuple"
+ },
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedIpfsCIDs",
+ type: "bytes[]"
+ },
+ {
+ internalType: "uint256[][]",
+ name: "permittedIpfsCIDScopes",
+ type: "uint256[][]"
+ },
+ {
+ internalType: "address[]",
+ name: "permittedAddresses",
+ type: "address[]"
+ },
+ {
+ internalType: "uint256[][]",
+ name: "permittedAddressScopes",
+ type: "uint256[][]"
+ },
+ {
+ internalType: "uint256[]",
+ name: "permittedAuthMethodTypes",
+ type: "uint256[]"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedAuthMethodIds",
+ type: "bytes[]"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedAuthMethodPubkeys",
+ type: "bytes[]"
+ },
+ {
+ internalType: "uint256[][]",
+ name: "permittedAuthMethodScopes",
+ type: "uint256[][]"
+ },
+ {
+ internalType: "bool",
+ name: "addPkpEthAddressAsPermittedAddress",
+ type: "bool"
+ },
+ {
+ internalType: "bool",
+ name: "sendPkpToItself",
+ type: "bool"
+ }
+ ],
+ internalType: "struct PKPHelper.AuthMethodData",
+ name: "authMethodData",
+ type: "tuple"
+ }
+ ],
+ name: "claimAndMintNextAndAddAuthMethods",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "payable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes32",
+ name: "derivedKeyId",
+ type: "bytes32"
+ },
+ {
+ components: [
+ {
+ internalType: "bytes32",
+ name: "r",
+ type: "bytes32"
+ },
+ {
+ internalType: "bytes32",
+ name: "s",
+ type: "bytes32"
+ },
+ {
+ internalType: "uint8",
+ name: "v",
+ type: "uint8"
+ }
+ ],
+ internalType: "struct IPubkeyRouter.Signature[]",
+ name: "signatures",
+ type: "tuple[]"
+ }
+ ],
+ internalType: "struct LibPKPNFTStorage.ClaimMaterial",
+ name: "claimMaterial",
+ type: "tuple"
+ },
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedIpfsCIDs",
+ type: "bytes[]"
+ },
+ {
+ internalType: "uint256[][]",
+ name: "permittedIpfsCIDScopes",
+ type: "uint256[][]"
+ },
+ {
+ internalType: "address[]",
+ name: "permittedAddresses",
+ type: "address[]"
+ },
+ {
+ internalType: "uint256[][]",
+ name: "permittedAddressScopes",
+ type: "uint256[][]"
+ },
+ {
+ internalType: "uint256[]",
+ name: "permittedAuthMethodTypes",
+ type: "uint256[]"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedAuthMethodIds",
+ type: "bytes[]"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedAuthMethodPubkeys",
+ type: "bytes[]"
+ },
+ {
+ internalType: "uint256[][]",
+ name: "permittedAuthMethodScopes",
+ type: "uint256[][]"
+ },
+ {
+ internalType: "bool",
+ name: "addPkpEthAddressAsPermittedAddress",
+ type: "bool"
+ },
+ {
+ internalType: "bool",
+ name: "sendPkpToItself",
+ type: "bool"
+ }
+ ],
+ internalType: "struct PKPHelper.AuthMethodData",
+ name: "authMethodData",
+ type: "tuple"
+ }
+ ],
+ name: "claimAndMintNextAndAddAuthMethodsWithTypes",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "payable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "contractResolver",
+ outputs: [
+ {
+ internalType: "contract ContractResolver",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "env",
+ outputs: [
+ {
+ internalType: "enum ContractResolver.Env",
+ name: "",
+ type: "uint8"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getDomainWalletRegistry",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getPKPNftMetdataAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getPkpNftAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getPkpPermissionsAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ }
+ ],
+ name: "getRoleAdmin",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "grantRole",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "hasRole",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256[]",
+ name: "permittedAuthMethodTypes",
+ type: "uint256[]"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedAuthMethodIds",
+ type: "bytes[]"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedAuthMethodPubkeys",
+ type: "bytes[]"
+ },
+ {
+ internalType: "uint256[][]",
+ name: "permittedAuthMethodScopes",
+ type: "uint256[][]"
+ },
+ {
+ internalType: "bool",
+ name: "addPkpEthAddressAsPermittedAddress",
+ type: "bool"
+ },
+ {
+ internalType: "bool",
+ name: "sendPkpToItself",
+ type: "bool"
+ }
+ ],
+ name: "mintNextAndAddAuthMethods",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "payable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedIpfsCIDs",
+ type: "bytes[]"
+ },
+ {
+ internalType: "uint256[][]",
+ name: "permittedIpfsCIDScopes",
+ type: "uint256[][]"
+ },
+ {
+ internalType: "address[]",
+ name: "permittedAddresses",
+ type: "address[]"
+ },
+ {
+ internalType: "uint256[][]",
+ name: "permittedAddressScopes",
+ type: "uint256[][]"
+ },
+ {
+ internalType: "uint256[]",
+ name: "permittedAuthMethodTypes",
+ type: "uint256[]"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedAuthMethodIds",
+ type: "bytes[]"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedAuthMethodPubkeys",
+ type: "bytes[]"
+ },
+ {
+ internalType: "uint256[][]",
+ name: "permittedAuthMethodScopes",
+ type: "uint256[][]"
+ },
+ {
+ internalType: "bool",
+ name: "addPkpEthAddressAsPermittedAddress",
+ type: "bool"
+ },
+ {
+ internalType: "bool",
+ name: "sendPkpToItself",
+ type: "bool"
+ }
+ ],
+ name: "mintNextAndAddAuthMethodsWithTypes",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "payable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256[]",
+ name: "permittedAuthMethodTypes",
+ type: "uint256[]"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedAuthMethodIds",
+ type: "bytes[]"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedAuthMethodPubkeys",
+ type: "bytes[]"
+ },
+ {
+ internalType: "uint256[][]",
+ name: "permittedAuthMethodScopes",
+ type: "uint256[][]"
+ },
+ {
+ internalType: "string[]",
+ name: "nftMetadata",
+ type: "string[]"
+ },
+ {
+ internalType: "bool",
+ name: "addPkpEthAddressAsPermittedAddress",
+ type: "bool"
+ },
+ {
+ internalType: "bool",
+ name: "sendPkpToItself",
+ type: "bool"
+ }
+ ],
+ name: "mintNextAndAddDomainWalletMetadata",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "payable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "",
+ type: "bytes"
+ }
+ ],
+ name: "onERC721Received",
+ outputs: [
+ {
+ internalType: "bytes4",
+ name: "",
+ type: "bytes4"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "owner",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "removePkpMetadata",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "renounceOwnership",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "renounceRole",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "revokeRole",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "newResolverAddress",
+ type: "address"
+ }
+ ],
+ name: "setContractResolver",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "string[]",
+ name: "nftMetadata",
+ type: "string[]"
+ }
+ ],
+ name: "setPkpMetadata",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "interfaceId",
+ type: "bytes4"
+ }
+ ],
+ name: "supportsInterface",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "newOwner",
+ type: "address"
+ }
+ ],
+ name: "transferOwnership",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/abis/PKPNFT.sol/PKPNFTData.js
+var require_PKPNFTData = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/abis/PKPNFT.sol/PKPNFTData.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.PKPNFTData = void 0;
+ exports2.PKPNFTData = {
+ date: "2023-11-14T15:45:41Z",
+ address: "0x58582b93d978F30b4c4E812A16a7b31C035A69f7",
+ contractName: "PKPNFT",
+ abi: [
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotAddFunctionToDiamondThatAlreadyExists",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_selectors",
+ type: "bytes4[]"
+ }
+ ],
+ name: "CannotAddSelectorsToZeroAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotRemoveFunctionThatDoesNotExist",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotRemoveImmutableFunction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceFunctionThatDoesNotExists",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_selectors",
+ type: "bytes4[]"
+ }
+ ],
+ name: "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceImmutableFunction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint8",
+ name: "_action",
+ type: "uint8"
+ }
+ ],
+ name: "IncorrectFacetCutAction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_initializationContractAddress",
+ type: "address"
+ },
+ {
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "InitializationFunctionReverted",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_contractAddress",
+ type: "address"
+ },
+ {
+ internalType: "string",
+ name: "_message",
+ type: "string"
+ }
+ ],
+ name: "NoBytecodeAtAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facetAddress",
+ type: "address"
+ }
+ ],
+ name: "NoSelectorsProvidedForFacetForCut",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_user",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "_contractOwner",
+ type: "address"
+ }
+ ],
+ name: "NotContractOwner",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facetAddress",
+ type: "address"
+ }
+ ],
+ name: "RemoveFacetAddressMustBeZeroAddress",
+ type: "error"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "enum IDiamond.FacetCutAction",
+ name: "action",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ indexed: false,
+ internalType: "struct IDiamond.FacetCut[]",
+ name: "_diamondCut",
+ type: "tuple[]"
+ },
+ {
+ indexed: false,
+ internalType: "address",
+ name: "_init",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "DiamondCut",
+ type: "event"
+ },
+ {
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "enum IDiamond.FacetCutAction",
+ name: "action",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ internalType: "struct IDiamond.FacetCut[]",
+ name: "_diamondCut",
+ type: "tuple[]"
+ },
+ {
+ internalType: "address",
+ name: "_init",
+ type: "address"
+ },
+ {
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "diamondCut",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_functionSelector",
+ type: "bytes4"
+ }
+ ],
+ name: "facetAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "facetAddress_",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "facetAddresses",
+ outputs: [
+ {
+ internalType: "address[]",
+ name: "facetAddresses_",
+ type: "address[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facet",
+ type: "address"
+ }
+ ],
+ name: "facetFunctionSelectors",
+ outputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_facetFunctionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "facets",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ internalType: "struct IDiamondLoupe.Facet[]",
+ name: "facets_",
+ type: "tuple[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "previousOwner",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "newOwner",
+ type: "address"
+ }
+ ],
+ name: "OwnershipTransferred",
+ type: "event"
+ },
+ {
+ inputs: [],
+ name: "owner",
+ outputs: [
+ {
+ internalType: "address",
+ name: "owner_",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_newOwner",
+ type: "address"
+ }
+ ],
+ name: "transferOwnership",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "CallerNotOwner",
+ type: "error"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "owner",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "approved",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "Approval",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "owner",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "operator",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "bool",
+ name: "approved",
+ type: "bool"
+ }
+ ],
+ name: "ApprovalForAll",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "address",
+ name: "newResolverAddress",
+ type: "address"
+ }
+ ],
+ name: "ContractResolverAddressSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "newFreeMintSigner",
+ type: "address"
+ }
+ ],
+ name: "FreeMintSignerSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint8",
+ name: "version",
+ type: "uint8"
+ }
+ ],
+ name: "Initialized",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newMintCost",
+ type: "uint256"
+ }
+ ],
+ name: "MintCostSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "bytes",
+ name: "pubkey",
+ type: "bytes"
+ }
+ ],
+ name: "PKPMinted",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "from",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "Transfer",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ }
+ ],
+ name: "Withdrew",
+ type: "event"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "approve",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "owner",
+ type: "address"
+ }
+ ],
+ name: "balanceOf",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "burn",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes32",
+ name: "derivedKeyId",
+ type: "bytes32"
+ },
+ {
+ components: [
+ {
+ internalType: "bytes32",
+ name: "r",
+ type: "bytes32"
+ },
+ {
+ internalType: "bytes32",
+ name: "s",
+ type: "bytes32"
+ },
+ {
+ internalType: "uint8",
+ name: "v",
+ type: "uint8"
+ }
+ ],
+ internalType: "struct IPubkeyRouter.Signature[]",
+ name: "signatures",
+ type: "tuple[]"
+ }
+ ],
+ name: "claimAndMint",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "payable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "exists",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "freeMintSigner",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "getApproved",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "getEthAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getNextDerivedKeyId",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getPkpNftMetadataAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getPkpPermissionsAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "getPubkey",
+ outputs: [
+ {
+ internalType: "bytes",
+ name: "",
+ type: "bytes"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getRouterAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getStakingAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "initialize",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "owner",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "operator",
+ type: "address"
+ }
+ ],
+ name: "isApprovedForAll",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "mintCost",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "ipfsCID",
+ type: "bytes"
+ }
+ ],
+ name: "mintGrantAndBurnNext",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "payable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ }
+ ],
+ name: "mintNext",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "payable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "name",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "ownerOf",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "hash",
+ type: "bytes32"
+ }
+ ],
+ name: "prefixed",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "redeemedFreeMintIds",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "from",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "safeTransferFrom",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "from",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "data",
+ type: "bytes"
+ }
+ ],
+ name: "safeTransferFrom",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "operator",
+ type: "address"
+ },
+ {
+ internalType: "bool",
+ name: "approved",
+ type: "bool"
+ }
+ ],
+ name: "setApprovalForAll",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "newResolverAddress",
+ type: "address"
+ }
+ ],
+ name: "setContractResolver",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "newFreeMintSigner",
+ type: "address"
+ }
+ ],
+ name: "setFreeMintSigner",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "newMintCost",
+ type: "uint256"
+ }
+ ],
+ name: "setMintCost",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "interfaceId",
+ type: "bytes4"
+ }
+ ],
+ name: "supportsInterface",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "symbol",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "index",
+ type: "uint256"
+ }
+ ],
+ name: "tokenByIndex",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "owner",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "index",
+ type: "uint256"
+ }
+ ],
+ name: "tokenOfOwnerByIndex",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "tokenURI",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "totalSupply",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "from",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "transferFrom",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "withdraw",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/abis/PKPNFTMetadata.sol/PKPNFTMetadataData.js
+var require_PKPNFTMetadataData = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/abis/PKPNFTMetadata.sol/PKPNFTMetadataData.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.PKPNFTMetadataData = void 0;
+ exports2.PKPNFTMetadataData = {
+ date: "2023-11-14T15:45:41Z",
+ address: "0xeD46dDcbFF662ad89b0987E0DFE2949901498Da6",
+ contractName: "PKPNFTMetadata",
+ abi: [
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_resolver",
+ type: "address"
+ },
+ {
+ internalType: "enum ContractResolver.Env",
+ name: "_env",
+ type: "uint8"
+ }
+ ],
+ stateMutability: "nonpayable",
+ type: "constructor"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "previousAdminRole",
+ type: "bytes32"
+ },
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "newAdminRole",
+ type: "bytes32"
+ }
+ ],
+ name: "RoleAdminChanged",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "account",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "sender",
+ type: "address"
+ }
+ ],
+ name: "RoleGranted",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "account",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "sender",
+ type: "address"
+ }
+ ],
+ name: "RoleRevoked",
+ type: "event"
+ },
+ {
+ inputs: [],
+ name: "ADMIN_ROLE",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "DEFAULT_ADMIN_ROLE",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "WRITER_ROLE",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes",
+ name: "buffer",
+ type: "bytes"
+ }
+ ],
+ name: "bytesToHex",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "contractResolver",
+ outputs: [
+ {
+ internalType: "contract ContractResolver",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "env",
+ outputs: [
+ {
+ internalType: "enum ContractResolver.Env",
+ name: "",
+ type: "uint8"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ }
+ ],
+ name: "getRoleAdmin",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "grantRole",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "hasRole",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "removeProfileForPkp",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "removeUrlForPKP",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "renounceRole",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "role",
+ type: "bytes32"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "revokeRole",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "pkpHelperWriterAddress",
+ type: "address"
+ }
+ ],
+ name: "setPKPHelperWriterAddress",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "string",
+ name: "imgUrl",
+ type: "string"
+ }
+ ],
+ name: "setProfileForPKP",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "string",
+ name: "url",
+ type: "string"
+ }
+ ],
+ name: "setUrlForPKP",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "interfaceId",
+ type: "bytes4"
+ }
+ ],
+ name: "supportsInterface",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "pubKey",
+ type: "bytes"
+ },
+ {
+ internalType: "address",
+ name: "ethAddress",
+ type: "address"
+ }
+ ],
+ name: "tokenURI",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/abis/PKPPermissions.sol/PKPPermissionsData.js
+var require_PKPPermissionsData = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/abis/PKPPermissions.sol/PKPPermissionsData.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.PKPPermissionsData = void 0;
+ exports2.PKPPermissionsData = {
+ date: "2023-11-14T15:45:41Z",
+ address: "0xD01c9C30f8F6fa443721629775e1CC7DD9c9e209",
+ contractName: "PKPPermissions",
+ abi: [
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotAddFunctionToDiamondThatAlreadyExists",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_selectors",
+ type: "bytes4[]"
+ }
+ ],
+ name: "CannotAddSelectorsToZeroAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotRemoveFunctionThatDoesNotExist",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotRemoveImmutableFunction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceFunctionThatDoesNotExists",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_selectors",
+ type: "bytes4[]"
+ }
+ ],
+ name: "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceImmutableFunction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint8",
+ name: "_action",
+ type: "uint8"
+ }
+ ],
+ name: "IncorrectFacetCutAction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_initializationContractAddress",
+ type: "address"
+ },
+ {
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "InitializationFunctionReverted",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_contractAddress",
+ type: "address"
+ },
+ {
+ internalType: "string",
+ name: "_message",
+ type: "string"
+ }
+ ],
+ name: "NoBytecodeAtAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facetAddress",
+ type: "address"
+ }
+ ],
+ name: "NoSelectorsProvidedForFacetForCut",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_user",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "_contractOwner",
+ type: "address"
+ }
+ ],
+ name: "NotContractOwner",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facetAddress",
+ type: "address"
+ }
+ ],
+ name: "RemoveFacetAddressMustBeZeroAddress",
+ type: "error"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "enum IDiamond.FacetCutAction",
+ name: "action",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ indexed: false,
+ internalType: "struct IDiamond.FacetCut[]",
+ name: "_diamondCut",
+ type: "tuple[]"
+ },
+ {
+ indexed: false,
+ internalType: "address",
+ name: "_init",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "DiamondCut",
+ type: "event"
+ },
+ {
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "enum IDiamond.FacetCutAction",
+ name: "action",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ internalType: "struct IDiamond.FacetCut[]",
+ name: "_diamondCut",
+ type: "tuple[]"
+ },
+ {
+ internalType: "address",
+ name: "_init",
+ type: "address"
+ },
+ {
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "diamondCut",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_functionSelector",
+ type: "bytes4"
+ }
+ ],
+ name: "facetAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "facetAddress_",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "facetAddresses",
+ outputs: [
+ {
+ internalType: "address[]",
+ name: "facetAddresses_",
+ type: "address[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facet",
+ type: "address"
+ }
+ ],
+ name: "facetFunctionSelectors",
+ outputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_facetFunctionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "facets",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ internalType: "struct IDiamondLoupe.Facet[]",
+ name: "facets_",
+ type: "tuple[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_interfaceId",
+ type: "bytes4"
+ }
+ ],
+ name: "supportsInterface",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "previousOwner",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "newOwner",
+ type: "address"
+ }
+ ],
+ name: "OwnershipTransferred",
+ type: "event"
+ },
+ {
+ inputs: [],
+ name: "owner",
+ outputs: [
+ {
+ internalType: "address",
+ name: "owner_",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_newOwner",
+ type: "address"
+ }
+ ],
+ name: "transferOwnership",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "CallerNotOwner",
+ type: "error"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "address",
+ name: "newResolverAddress",
+ type: "address"
+ }
+ ],
+ name: "ContractResolverAddressSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "authMethodType",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "bytes",
+ name: "id",
+ type: "bytes"
+ },
+ {
+ indexed: false,
+ internalType: "bytes",
+ name: "userPubkey",
+ type: "bytes"
+ }
+ ],
+ name: "PermittedAuthMethodAdded",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "authMethodType",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "bytes",
+ name: "id",
+ type: "bytes"
+ }
+ ],
+ name: "PermittedAuthMethodRemoved",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "authMethodType",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "bytes",
+ name: "id",
+ type: "bytes"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "scopeId",
+ type: "uint256"
+ }
+ ],
+ name: "PermittedAuthMethodScopeAdded",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "authMethodType",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "bytes",
+ name: "id",
+ type: "bytes"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "scopeId",
+ type: "uint256"
+ }
+ ],
+ name: "PermittedAuthMethodScopeRemoved",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "group",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "bytes32",
+ name: "root",
+ type: "bytes32"
+ }
+ ],
+ name: "RootHashUpdated",
+ type: "event"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "ipfsCID",
+ type: "bytes"
+ },
+ {
+ internalType: "uint256[]",
+ name: "scopes",
+ type: "uint256[]"
+ }
+ ],
+ name: "addPermittedAction",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "address",
+ name: "user",
+ type: "address"
+ },
+ {
+ internalType: "uint256[]",
+ name: "scopes",
+ type: "uint256[]"
+ }
+ ],
+ name: "addPermittedAddress",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "authMethodType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "id",
+ type: "bytes"
+ },
+ {
+ internalType: "bytes",
+ name: "userPubkey",
+ type: "bytes"
+ }
+ ],
+ internalType: "struct LibPKPPermissionsStorage.AuthMethod",
+ name: "authMethod",
+ type: "tuple"
+ },
+ {
+ internalType: "uint256[]",
+ name: "scopes",
+ type: "uint256[]"
+ }
+ ],
+ name: "addPermittedAuthMethod",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "authMethodType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "id",
+ type: "bytes"
+ },
+ {
+ internalType: "uint256",
+ name: "scopeId",
+ type: "uint256"
+ }
+ ],
+ name: "addPermittedAuthMethodScope",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256[]",
+ name: "permittedAuthMethodTypesToAdd",
+ type: "uint256[]"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedAuthMethodIdsToAdd",
+ type: "bytes[]"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedAuthMethodPubkeysToAdd",
+ type: "bytes[]"
+ },
+ {
+ internalType: "uint256[][]",
+ name: "permittedAuthMethodScopesToAdd",
+ type: "uint256[][]"
+ },
+ {
+ internalType: "uint256[]",
+ name: "permittedAuthMethodTypesToRemove",
+ type: "uint256[]"
+ },
+ {
+ internalType: "bytes[]",
+ name: "permittedAuthMethodIdsToRemove",
+ type: "bytes[]"
+ }
+ ],
+ name: "batchAddRemoveAuthMethods",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "authMethodType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "id",
+ type: "bytes"
+ }
+ ],
+ name: "getAuthMethodId",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "getEthAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "getPermittedActions",
+ outputs: [
+ {
+ internalType: "bytes[]",
+ name: "",
+ type: "bytes[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "getPermittedAddresses",
+ outputs: [
+ {
+ internalType: "address[]",
+ name: "",
+ type: "address[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "authMethodType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "id",
+ type: "bytes"
+ },
+ {
+ internalType: "uint256",
+ name: "maxScopeId",
+ type: "uint256"
+ }
+ ],
+ name: "getPermittedAuthMethodScopes",
+ outputs: [
+ {
+ internalType: "bool[]",
+ name: "",
+ type: "bool[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "getPermittedAuthMethods",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "authMethodType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "id",
+ type: "bytes"
+ },
+ {
+ internalType: "bytes",
+ name: "userPubkey",
+ type: "bytes"
+ }
+ ],
+ internalType: "struct LibPKPPermissionsStorage.AuthMethod[]",
+ name: "",
+ type: "tuple[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getPkpNftAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "getPubkey",
+ outputs: [
+ {
+ internalType: "bytes",
+ name: "",
+ type: "bytes"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getRouterAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "authMethodType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "id",
+ type: "bytes"
+ }
+ ],
+ name: "getTokenIdsForAuthMethod",
+ outputs: [
+ {
+ internalType: "uint256[]",
+ name: "",
+ type: "uint256[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "authMethodType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "id",
+ type: "bytes"
+ }
+ ],
+ name: "getUserPubkeyForAuthMethod",
+ outputs: [
+ {
+ internalType: "bytes",
+ name: "",
+ type: "bytes"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "ipfsCID",
+ type: "bytes"
+ }
+ ],
+ name: "isPermittedAction",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "address",
+ name: "user",
+ type: "address"
+ }
+ ],
+ name: "isPermittedAddress",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "authMethodType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "id",
+ type: "bytes"
+ }
+ ],
+ name: "isPermittedAuthMethod",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "authMethodType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "id",
+ type: "bytes"
+ },
+ {
+ internalType: "uint256",
+ name: "scopeId",
+ type: "uint256"
+ }
+ ],
+ name: "isPermittedAuthMethodScopePresent",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "ipfsCID",
+ type: "bytes"
+ }
+ ],
+ name: "removePermittedAction",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "address",
+ name: "user",
+ type: "address"
+ }
+ ],
+ name: "removePermittedAddress",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "authMethodType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "id",
+ type: "bytes"
+ }
+ ],
+ name: "removePermittedAuthMethod",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "authMethodType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "id",
+ type: "bytes"
+ },
+ {
+ internalType: "uint256",
+ name: "scopeId",
+ type: "uint256"
+ }
+ ],
+ name: "removePermittedAuthMethodScope",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "newResolverAddress",
+ type: "address"
+ }
+ ],
+ name: "setContractResolver",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "group",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes32",
+ name: "root",
+ type: "bytes32"
+ }
+ ],
+ name: "setRootHash",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "group",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes32[]",
+ name: "proof",
+ type: "bytes32[]"
+ },
+ {
+ internalType: "bytes32",
+ name: "leaf",
+ type: "bytes32"
+ }
+ ],
+ name: "verifyState",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "group",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes32[]",
+ name: "proof",
+ type: "bytes32[]"
+ },
+ {
+ internalType: "bool[]",
+ name: "proofFlags",
+ type: "bool[]"
+ },
+ {
+ internalType: "bytes32[]",
+ name: "leaves",
+ type: "bytes32[]"
+ }
+ ],
+ name: "verifyStates",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/abis/PubkeyRouter.sol/PubkeyRouterData.js
+var require_PubkeyRouterData = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/abis/PubkeyRouter.sol/PubkeyRouterData.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.PubkeyRouterData = void 0;
+ exports2.PubkeyRouterData = {
+ date: "2023-11-14T15:45:41Z",
+ address: "0x4B5E97F2D811520e031A8F924e698B329ad83E29",
+ contractName: "PubkeyRouter",
+ abi: [
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotAddFunctionToDiamondThatAlreadyExists",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_selectors",
+ type: "bytes4[]"
+ }
+ ],
+ name: "CannotAddSelectorsToZeroAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotRemoveFunctionThatDoesNotExist",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotRemoveImmutableFunction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceFunctionThatDoesNotExists",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_selectors",
+ type: "bytes4[]"
+ }
+ ],
+ name: "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceImmutableFunction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint8",
+ name: "_action",
+ type: "uint8"
+ }
+ ],
+ name: "IncorrectFacetCutAction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_initializationContractAddress",
+ type: "address"
+ },
+ {
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "InitializationFunctionReverted",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_contractAddress",
+ type: "address"
+ },
+ {
+ internalType: "string",
+ name: "_message",
+ type: "string"
+ }
+ ],
+ name: "NoBytecodeAtAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facetAddress",
+ type: "address"
+ }
+ ],
+ name: "NoSelectorsProvidedForFacetForCut",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_user",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "_contractOwner",
+ type: "address"
+ }
+ ],
+ name: "NotContractOwner",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facetAddress",
+ type: "address"
+ }
+ ],
+ name: "RemoveFacetAddressMustBeZeroAddress",
+ type: "error"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "enum IDiamond.FacetCutAction",
+ name: "action",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ indexed: false,
+ internalType: "struct IDiamond.FacetCut[]",
+ name: "_diamondCut",
+ type: "tuple[]"
+ },
+ {
+ indexed: false,
+ internalType: "address",
+ name: "_init",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "DiamondCut",
+ type: "event"
+ },
+ {
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "enum IDiamond.FacetCutAction",
+ name: "action",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ internalType: "struct IDiamond.FacetCut[]",
+ name: "_diamondCut",
+ type: "tuple[]"
+ },
+ {
+ internalType: "address",
+ name: "_init",
+ type: "address"
+ },
+ {
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "diamondCut",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_functionSelector",
+ type: "bytes4"
+ }
+ ],
+ name: "facetAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "facetAddress_",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "facetAddresses",
+ outputs: [
+ {
+ internalType: "address[]",
+ name: "facetAddresses_",
+ type: "address[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facet",
+ type: "address"
+ }
+ ],
+ name: "facetFunctionSelectors",
+ outputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_facetFunctionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "facets",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ internalType: "struct IDiamondLoupe.Facet[]",
+ name: "facets_",
+ type: "tuple[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_interfaceId",
+ type: "bytes4"
+ }
+ ],
+ name: "supportsInterface",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "previousOwner",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "newOwner",
+ type: "address"
+ }
+ ],
+ name: "OwnershipTransferred",
+ type: "event"
+ },
+ {
+ inputs: [],
+ name: "owner",
+ outputs: [
+ {
+ internalType: "address",
+ name: "owner_",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_newOwner",
+ type: "address"
+ }
+ ],
+ name: "transferOwnership",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "CallerNotOwner",
+ type: "error"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "address",
+ name: "newResolverAddress",
+ type: "address"
+ }
+ ],
+ name: "ContractResolverAddressSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "bytes",
+ name: "pubkey",
+ type: "bytes"
+ },
+ {
+ indexed: false,
+ internalType: "address",
+ name: "stakingContract",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "bytes32",
+ name: "derivedKeyId",
+ type: "bytes32"
+ }
+ ],
+ name: "PubkeyRoutingDataSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "address",
+ name: "stakingContract",
+ type: "address"
+ },
+ {
+ components: [
+ {
+ internalType: "bytes",
+ name: "pubkey",
+ type: "bytes"
+ },
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ }
+ ],
+ indexed: false,
+ internalType: "struct IPubkeyRouter.RootKey",
+ name: "rootKey",
+ type: "tuple"
+ }
+ ],
+ name: "RootKeySet",
+ type: "event"
+ },
+ {
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "bytes32",
+ name: "r",
+ type: "bytes32"
+ },
+ {
+ internalType: "bytes32",
+ name: "s",
+ type: "bytes32"
+ },
+ {
+ internalType: "uint8",
+ name: "v",
+ type: "uint8"
+ }
+ ],
+ internalType: "struct IPubkeyRouter.Signature[]",
+ name: "signatures",
+ type: "tuple[]"
+ },
+ {
+ internalType: "bytes",
+ name: "signedMessage",
+ type: "bytes"
+ },
+ {
+ internalType: "address",
+ name: "stakingContractAddress",
+ type: "address"
+ }
+ ],
+ name: "checkNodeSignatures",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes",
+ name: "pubkey",
+ type: "bytes"
+ }
+ ],
+ name: "deriveEthAddressFromPubkey",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "ethAddress",
+ type: "address"
+ }
+ ],
+ name: "ethAddressToPkpId",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "stakingContract",
+ type: "address"
+ },
+ {
+ internalType: "bytes32",
+ name: "derivedKeyId",
+ type: "bytes32"
+ }
+ ],
+ name: "getDerivedPubkey",
+ outputs: [
+ {
+ internalType: "bytes",
+ name: "",
+ type: "bytes"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "getEthAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getPkpNftAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "getPubkey",
+ outputs: [
+ {
+ internalType: "bytes",
+ name: "",
+ type: "bytes"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "stakingContract",
+ type: "address"
+ }
+ ],
+ name: "getRootKeys",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "bytes",
+ name: "pubkey",
+ type: "bytes"
+ },
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct IPubkeyRouter.RootKey[]",
+ name: "",
+ type: "tuple[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "getRoutingData",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "bytes",
+ name: "pubkey",
+ type: "bytes"
+ },
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes32",
+ name: "derivedKeyId",
+ type: "bytes32"
+ }
+ ],
+ internalType: "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ name: "",
+ type: "tuple"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "isRouted",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "pubkeys",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "bytes",
+ name: "pubkey",
+ type: "bytes"
+ },
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes32",
+ name: "derivedKeyId",
+ type: "bytes32"
+ }
+ ],
+ internalType: "struct LibPubkeyRouterStorage.PubkeyRoutingData",
+ name: "",
+ type: "tuple"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "newResolverAddress",
+ type: "address"
+ }
+ ],
+ name: "setContractResolver",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "pubkey",
+ type: "bytes"
+ },
+ {
+ internalType: "address",
+ name: "stakingContractAddress",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes32",
+ name: "derivedKeyId",
+ type: "bytes32"
+ }
+ ],
+ name: "setRoutingData",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "pubkey",
+ type: "bytes"
+ },
+ {
+ internalType: "address",
+ name: "stakingContract",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes32",
+ name: "derivedKeyId",
+ type: "bytes32"
+ }
+ ],
+ name: "setRoutingDataAsAdmin",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "stakingContractAddress",
+ type: "address"
+ },
+ {
+ components: [
+ {
+ internalType: "bytes",
+ name: "pubkey",
+ type: "bytes"
+ },
+ {
+ internalType: "uint256",
+ name: "keyType",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct IPubkeyRouter.RootKey[]",
+ name: "newRootKeys",
+ type: "tuple[]"
+ }
+ ],
+ name: "voteForRootKeys",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/abis/RateLimitNFT.sol/RateLimitNFTData.js
+var require_RateLimitNFTData = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/abis/RateLimitNFT.sol/RateLimitNFTData.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.RateLimitNFTData = void 0;
+ exports2.RateLimitNFTData = {
+ date: "2023-11-14T15:45:41Z",
+ address: "0x19593CbBC56Ddd339Fde26278A544a25166C2388",
+ contractName: "RateLimitNFT",
+ abi: [
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotAddFunctionToDiamondThatAlreadyExists",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_selectors",
+ type: "bytes4[]"
+ }
+ ],
+ name: "CannotAddSelectorsToZeroAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotRemoveFunctionThatDoesNotExist",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotRemoveImmutableFunction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceFunctionThatDoesNotExists",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_selectors",
+ type: "bytes4[]"
+ }
+ ],
+ name: "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceImmutableFunction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint8",
+ name: "_action",
+ type: "uint8"
+ }
+ ],
+ name: "IncorrectFacetCutAction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_initializationContractAddress",
+ type: "address"
+ },
+ {
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "InitializationFunctionReverted",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_contractAddress",
+ type: "address"
+ },
+ {
+ internalType: "string",
+ name: "_message",
+ type: "string"
+ }
+ ],
+ name: "NoBytecodeAtAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facetAddress",
+ type: "address"
+ }
+ ],
+ name: "NoSelectorsProvidedForFacetForCut",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_user",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "_contractOwner",
+ type: "address"
+ }
+ ],
+ name: "NotContractOwner",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facetAddress",
+ type: "address"
+ }
+ ],
+ name: "RemoveFacetAddressMustBeZeroAddress",
+ type: "error"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "enum IDiamond.FacetCutAction",
+ name: "action",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ indexed: false,
+ internalType: "struct IDiamond.FacetCut[]",
+ name: "_diamondCut",
+ type: "tuple[]"
+ },
+ {
+ indexed: false,
+ internalType: "address",
+ name: "_init",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "DiamondCut",
+ type: "event"
+ },
+ {
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "enum IDiamond.FacetCutAction",
+ name: "action",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ internalType: "struct IDiamond.FacetCut[]",
+ name: "_diamondCut",
+ type: "tuple[]"
+ },
+ {
+ internalType: "address",
+ name: "_init",
+ type: "address"
+ },
+ {
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "diamondCut",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_functionSelector",
+ type: "bytes4"
+ }
+ ],
+ name: "facetAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "facetAddress_",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "facetAddresses",
+ outputs: [
+ {
+ internalType: "address[]",
+ name: "facetAddresses_",
+ type: "address[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facet",
+ type: "address"
+ }
+ ],
+ name: "facetFunctionSelectors",
+ outputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_facetFunctionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "facets",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ internalType: "struct IDiamondLoupe.Facet[]",
+ name: "facets_",
+ type: "tuple[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "previousOwner",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "newOwner",
+ type: "address"
+ }
+ ],
+ name: "OwnershipTransferred",
+ type: "event"
+ },
+ {
+ inputs: [],
+ name: "owner",
+ outputs: [
+ {
+ internalType: "address",
+ name: "owner_",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_newOwner",
+ type: "address"
+ }
+ ],
+ name: "transferOwnership",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "CallerNotOwner",
+ type: "error"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newAdditionalRequestsPerKilosecondCost",
+ type: "uint256"
+ }
+ ],
+ name: "AdditionalRequestsPerKilosecondCostSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "owner",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "approved",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "Approval",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "owner",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "operator",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "bool",
+ name: "approved",
+ type: "bool"
+ }
+ ],
+ name: "ApprovalForAll",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "newFreeMintSigner",
+ type: "address"
+ }
+ ],
+ name: "FreeMintSignerSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newFreeRequestsPerRateLimitWindow",
+ type: "uint256"
+ }
+ ],
+ name: "FreeRequestsPerRateLimitWindowSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint8",
+ name: "version",
+ type: "uint8"
+ }
+ ],
+ name: "Initialized",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newRLIHolderRateLimitWindowSeconds",
+ type: "uint256"
+ }
+ ],
+ name: "RLIHolderRateLimitWindowSecondsSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newRateLimitWindowSeconds",
+ type: "uint256"
+ }
+ ],
+ name: "RateLimitWindowSecondsSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "from",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "Transfer",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ }
+ ],
+ name: "Withdrew",
+ type: "event"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "approve",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "owner",
+ type: "address"
+ }
+ ],
+ name: "balanceOf",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "burn",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "expiresAt",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "requestsPerKilosecond",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes32",
+ name: "msgHash",
+ type: "bytes32"
+ },
+ {
+ internalType: "uint8",
+ name: "v",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes32",
+ name: "r",
+ type: "bytes32"
+ },
+ {
+ internalType: "bytes32",
+ name: "sVal",
+ type: "bytes32"
+ }
+ ],
+ name: "freeMint",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "getApproved",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "initialize",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "owner",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "operator",
+ type: "address"
+ }
+ ],
+ name: "isApprovedForAll",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "expiresAt",
+ type: "uint256"
+ }
+ ],
+ name: "mint",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "payable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "name",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "ownerOf",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "from",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "safeTransferFrom",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "from",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "data",
+ type: "bytes"
+ }
+ ],
+ name: "safeTransferFrom",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "newAdditionalRequestsPerKilosecondCost",
+ type: "uint256"
+ }
+ ],
+ name: "setAdditionalRequestsPerKilosecondCost",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "operator",
+ type: "address"
+ },
+ {
+ internalType: "bool",
+ name: "approved",
+ type: "bool"
+ }
+ ],
+ name: "setApprovalForAll",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "newFreeMintSigner",
+ type: "address"
+ }
+ ],
+ name: "setFreeMintSigner",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "newFreeRequestsPerRateLimitWindow",
+ type: "uint256"
+ }
+ ],
+ name: "setFreeRequestsPerRateLimitWindow",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "newMaxExpirationSeconds",
+ type: "uint256"
+ }
+ ],
+ name: "setMaxExpirationSeconds",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "newMaxRequestsPerKilosecond",
+ type: "uint256"
+ }
+ ],
+ name: "setMaxRequestsPerKilosecond",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "newRLIHolderRateLimitWindowSeconds",
+ type: "uint256"
+ }
+ ],
+ name: "setRLIHolderRateLimitWindowSeconds",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "newRateLimitWindowSeconds",
+ type: "uint256"
+ }
+ ],
+ name: "setRateLimitWindowSeconds",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "interfaceId",
+ type: "bytes4"
+ }
+ ],
+ name: "supportsInterface",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "symbol",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "index",
+ type: "uint256"
+ }
+ ],
+ name: "tokenByIndex",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "owner",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "index",
+ type: "uint256"
+ }
+ ],
+ name: "tokenOfOwnerByIndex",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "tokenURI",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "totalSupply",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "from",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "to",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "transferFrom",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "withdraw",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "RLIHolderRateLimitWindowSeconds",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "additionalRequestsPerKilosecondCost",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "requestsPerKilosecond",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "expiresAt",
+ type: "uint256"
+ }
+ ],
+ name: "calculateCost",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "payingAmount",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "expiresAt",
+ type: "uint256"
+ }
+ ],
+ name: "calculateRequestsPerKilosecond",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "capacity",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "requestsPerKilosecond",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "expiresAt",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct LibRateLimitNFTStorage.RateLimit",
+ name: "",
+ type: "tuple"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "requestedRequestsPerKilosecond",
+ type: "uint256"
+ }
+ ],
+ name: "checkBelowMaxRequestsPerKilosecond",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "currentSoldRequestsPerKilosecond",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "defaultRateLimitWindowSeconds",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "expiresAt",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "requestsPerKilosecond",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes32",
+ name: "msgHash",
+ type: "bytes32"
+ },
+ {
+ internalType: "uint8",
+ name: "v",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes32",
+ name: "r",
+ type: "bytes32"
+ },
+ {
+ internalType: "bytes32",
+ name: "sVal",
+ type: "bytes32"
+ }
+ ],
+ name: "freeMintSigTest",
+ outputs: [],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "freeMintSigner",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "freeRequestsPerRateLimitWindow",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "isExpired",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "maxExpirationSeconds",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "maxRequestsPerKilosecond",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "hash",
+ type: "bytes32"
+ }
+ ],
+ name: "prefixed",
+ outputs: [
+ {
+ internalType: "bytes32",
+ name: "",
+ type: "bytes32"
+ }
+ ],
+ stateMutability: "pure",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes32",
+ name: "msgHash",
+ type: "bytes32"
+ }
+ ],
+ name: "redeemedFreeMints",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "tokenIdCounter",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "tokenId",
+ type: "uint256"
+ }
+ ],
+ name: "tokenSVG",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "expiresAt",
+ type: "uint256"
+ }
+ ],
+ name: "totalSoldRequestsPerKilosecondByExpirationTime",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/abis/Staking.sol/StakingData.js
+var require_StakingData = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/abis/Staking.sol/StakingData.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.StakingData = void 0;
+ exports2.StakingData = {
+ date: "2023-11-14T15:45:41Z",
+ address: "0x5bFa704aF947b3b0f966e4248DED7bfa6edeF952",
+ contractName: "Staking",
+ abi: [
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotAddFunctionToDiamondThatAlreadyExists",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_selectors",
+ type: "bytes4[]"
+ }
+ ],
+ name: "CannotAddSelectorsToZeroAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotRemoveFunctionThatDoesNotExist",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotRemoveImmutableFunction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceFunctionThatDoesNotExists",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_selectors",
+ type: "bytes4[]"
+ }
+ ],
+ name: "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceImmutableFunction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint8",
+ name: "_action",
+ type: "uint8"
+ }
+ ],
+ name: "IncorrectFacetCutAction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_initializationContractAddress",
+ type: "address"
+ },
+ {
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "InitializationFunctionReverted",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_contractAddress",
+ type: "address"
+ },
+ {
+ internalType: "string",
+ name: "_message",
+ type: "string"
+ }
+ ],
+ name: "NoBytecodeAtAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facetAddress",
+ type: "address"
+ }
+ ],
+ name: "NoSelectorsProvidedForFacetForCut",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_user",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "_contractOwner",
+ type: "address"
+ }
+ ],
+ name: "NotContractOwner",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facetAddress",
+ type: "address"
+ }
+ ],
+ name: "RemoveFacetAddressMustBeZeroAddress",
+ type: "error"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "enum IDiamond.FacetCutAction",
+ name: "action",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ indexed: false,
+ internalType: "struct IDiamond.FacetCut[]",
+ name: "_diamondCut",
+ type: "tuple[]"
+ },
+ {
+ indexed: false,
+ internalType: "address",
+ name: "_init",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "DiamondCut",
+ type: "event"
+ },
+ {
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "enum IDiamond.FacetCutAction",
+ name: "action",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ internalType: "struct IDiamond.FacetCut[]",
+ name: "_diamondCut",
+ type: "tuple[]"
+ },
+ {
+ internalType: "address",
+ name: "_init",
+ type: "address"
+ },
+ {
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "diamondCut",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_functionSelector",
+ type: "bytes4"
+ }
+ ],
+ name: "facetAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "facetAddress_",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "facetAddresses",
+ outputs: [
+ {
+ internalType: "address[]",
+ name: "facetAddresses_",
+ type: "address[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facet",
+ type: "address"
+ }
+ ],
+ name: "facetFunctionSelectors",
+ outputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_facetFunctionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "facets",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ internalType: "struct IDiamondLoupe.Facet[]",
+ name: "facets_",
+ type: "tuple[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_interfaceId",
+ type: "bytes4"
+ }
+ ],
+ name: "supportsInterface",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "previousOwner",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "newOwner",
+ type: "address"
+ }
+ ],
+ name: "OwnershipTransferred",
+ type: "event"
+ },
+ {
+ inputs: [],
+ name: "owner",
+ outputs: [
+ {
+ internalType: "address",
+ name: "owner_",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_newOwner",
+ type: "address"
+ }
+ ],
+ name: "transferOwnership",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "ActiveValidatorsCannotLeave",
+ type: "error"
+ },
+ {
+ inputs: [],
+ name: "CallerNotOwner",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "stakingAddress",
+ type: "address"
+ }
+ ],
+ name: "CannotRejoinUntilNextEpochBecauseKicked",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "senderPubKey",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "receiverPubKey",
+ type: "uint256"
+ }
+ ],
+ name: "CannotReuseCommsKeys",
+ type: "error"
+ },
+ {
+ inputs: [],
+ name: "CannotStakeZero",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "stakerAddress",
+ type: "address"
+ }
+ ],
+ name: "CannotVoteTwice",
+ type: "error"
+ },
+ {
+ inputs: [],
+ name: "CannotWithdrawZero",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "nodeAddress",
+ type: "address"
+ }
+ ],
+ name: "CouldNotMapNodeAddressToStakerAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "enum LibStakingStorage.States",
+ name: "state",
+ type: "uint8"
+ }
+ ],
+ name: "MustBeInActiveOrUnlockedOrPausedState",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "enum LibStakingStorage.States",
+ name: "state",
+ type: "uint8"
+ }
+ ],
+ name: "MustBeInActiveOrUnlockedState",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "enum LibStakingStorage.States",
+ name: "state",
+ type: "uint8"
+ }
+ ],
+ name: "MustBeInNextValidatorSetLockedOrReadyForNextEpochOrRestoreState",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "enum LibStakingStorage.States",
+ name: "state",
+ type: "uint8"
+ }
+ ],
+ name: "MustBeInNextValidatorSetLockedState",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "enum LibStakingStorage.States",
+ name: "state",
+ type: "uint8"
+ }
+ ],
+ name: "MustBeInReadyForNextEpochState",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "stakerAddress",
+ type: "address"
+ }
+ ],
+ name: "MustBeValidatorInNextEpochToKick",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "currentTimestamp",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "epochEndTime",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "timeout",
+ type: "uint256"
+ }
+ ],
+ name: "NotEnoughTimeElapsedForTimeoutSinceLastEpoch",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "currentTimestamp",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "epochEndTime",
+ type: "uint256"
+ }
+ ],
+ name: "NotEnoughTimeElapsedSinceLastEpoch",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "validatorCount",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "minimumValidatorCount",
+ type: "uint256"
+ }
+ ],
+ name: "NotEnoughValidatorsInNextEpoch",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "currentReadyValidatorCount",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "nextReadyValidatorCount",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "minimumValidatorCountToBeReady",
+ type: "uint256"
+ }
+ ],
+ name: "NotEnoughValidatorsReadyForNextEpoch",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "currentEpochNumber",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "receivedEpochNumber",
+ type: "uint256"
+ }
+ ],
+ name: "SignaledReadyForWrongEpochNumber",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "stakerAddress",
+ type: "address"
+ }
+ ],
+ name: "StakerNotPermitted",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "yourBalance",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "requestedWithdrawlAmount",
+ type: "uint256"
+ }
+ ],
+ name: "TryingToWithdrawMoreThanStaked",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "validator",
+ type: "address"
+ },
+ {
+ internalType: "address[]",
+ name: "validatorsInNextEpoch",
+ type: "address[]"
+ }
+ ],
+ name: "ValidatorIsNotInNextEpoch",
+ type: "error"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newTokenRewardPerTokenPerEpoch",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newComplaintTolerance",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newComplaintIntervalSecs",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "uint256[]",
+ name: "newKeyTypes",
+ type: "uint256[]"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newMinimumValidatorCount",
+ type: "uint256"
+ }
+ ],
+ name: "ConfigSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newEpochEndTime",
+ type: "uint256"
+ }
+ ],
+ name: "EpochEndTimeSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newEpochLength",
+ type: "uint256"
+ }
+ ],
+ name: "EpochLengthSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newEpochTimeout",
+ type: "uint256"
+ }
+ ],
+ name: "EpochTimeoutSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "reason",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newKickPenaltyPercent",
+ type: "uint256"
+ }
+ ],
+ name: "KickPenaltyPercentSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "epochNumber",
+ type: "uint256"
+ }
+ ],
+ name: "ReadyForNextEpoch",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "address",
+ name: "token",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ }
+ ],
+ name: "Recovered",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ }
+ ],
+ name: "RequestToJoin",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ }
+ ],
+ name: "RequestToLeave",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "address",
+ name: "newResolverContractAddress",
+ type: "address"
+ }
+ ],
+ name: "ResolverContractAddressSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newDuration",
+ type: "uint256"
+ }
+ ],
+ name: "RewardsDurationUpdated",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "address",
+ name: "newStakingTokenAddress",
+ type: "address"
+ }
+ ],
+ name: "StakingTokenSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "enum LibStakingStorage.States",
+ name: "newState",
+ type: "uint8"
+ }
+ ],
+ name: "StateChanged",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "amountBurned",
+ type: "uint256"
+ }
+ ],
+ name: "ValidatorKickedFromNextEpoch",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ }
+ ],
+ name: "ValidatorRejoinedNextEpoch",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "reporter",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "validatorStakerAddress",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "uint256",
+ name: "reason",
+ type: "uint256"
+ },
+ {
+ indexed: false,
+ internalType: "bytes",
+ name: "data",
+ type: "bytes"
+ }
+ ],
+ name: "VotedToKickValidatorInNextEpoch",
+ type: "event"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "validatorStakerAddress",
+ type: "address"
+ }
+ ],
+ name: "adminKickValidatorInNextEpoch",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ }
+ ],
+ name: "adminRejoinValidator",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "validatorStakerAddress",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "amountToPenalize",
+ type: "uint256"
+ }
+ ],
+ name: "adminSlashValidator",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "advanceEpoch",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "exit",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getReward",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "validatorStakerAddress",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "reason",
+ type: "uint256"
+ },
+ {
+ internalType: "bytes",
+ name: "data",
+ type: "bytes"
+ }
+ ],
+ name: "kickValidatorInNextEpoch",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "lockValidatorsForNextEpoch",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint32",
+ name: "ip",
+ type: "uint32"
+ },
+ {
+ internalType: "uint128",
+ name: "ipv6",
+ type: "uint128"
+ },
+ {
+ internalType: "uint32",
+ name: "port",
+ type: "uint32"
+ },
+ {
+ internalType: "address",
+ name: "nodeAddress",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "senderPubKey",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "receiverPubKey",
+ type: "uint256"
+ }
+ ],
+ name: "requestToJoin",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "requestToLeave",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "newTokenRewardPerTokenPerEpoch",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "newComplaintTolerance",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "newComplaintIntervalSecs",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256[]",
+ name: "newKeyTypes",
+ type: "uint256[]"
+ },
+ {
+ internalType: "uint256",
+ name: "newMinimumValidatorCount",
+ type: "uint256"
+ }
+ ],
+ name: "setConfig",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "newResolverAddress",
+ type: "address"
+ }
+ ],
+ name: "setContractResolver",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "newEpochEndTime",
+ type: "uint256"
+ }
+ ],
+ name: "setEpochEndTime",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "newEpochLength",
+ type: "uint256"
+ }
+ ],
+ name: "setEpochLength",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "enum LibStakingStorage.States",
+ name: "newState",
+ type: "uint8"
+ }
+ ],
+ name: "setEpochState",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "newEpochTimeout",
+ type: "uint256"
+ }
+ ],
+ name: "setEpochTimeout",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint32",
+ name: "ip",
+ type: "uint32"
+ },
+ {
+ internalType: "uint128",
+ name: "ipv6",
+ type: "uint128"
+ },
+ {
+ internalType: "uint32",
+ name: "port",
+ type: "uint32"
+ },
+ {
+ internalType: "address",
+ name: "nodeAddress",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "senderPubKey",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "receiverPubKey",
+ type: "uint256"
+ }
+ ],
+ name: "setIpPortNodeAddressAndCommunicationPubKeys",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "reason",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "newKickPenaltyPercent",
+ type: "uint256"
+ }
+ ],
+ name: "setKickPenaltyPercent",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "epochNumber",
+ type: "uint256"
+ }
+ ],
+ name: "signalReadyForNextEpoch",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ }
+ ],
+ name: "stake",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ },
+ {
+ internalType: "uint32",
+ name: "ip",
+ type: "uint32"
+ },
+ {
+ internalType: "uint128",
+ name: "ipv6",
+ type: "uint128"
+ },
+ {
+ internalType: "uint32",
+ name: "port",
+ type: "uint32"
+ },
+ {
+ internalType: "address",
+ name: "nodeAddress",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "senderPubKey",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "receiverPubKey",
+ type: "uint256"
+ }
+ ],
+ name: "stakeAndJoin",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "unlockValidatorsForNextEpoch",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ }
+ ],
+ name: "withdraw",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "major",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "minor",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "patch",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct LibStakingStorage.Version",
+ name: "version",
+ type: "tuple"
+ }
+ ],
+ name: "checkVersion",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getMaxVersion",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "major",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "minor",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "patch",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct LibStakingStorage.Version",
+ name: "",
+ type: "tuple"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getMaxVersionString",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getMinVersion",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "major",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "minor",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "patch",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct LibStakingStorage.Version",
+ name: "",
+ type: "tuple"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getMinVersionString",
+ outputs: [
+ {
+ internalType: "string",
+ name: "",
+ type: "string"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "major",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "minor",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "patch",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct LibStakingStorage.Version",
+ name: "version",
+ type: "tuple"
+ }
+ ],
+ name: "setMaxVersion",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "major",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "minor",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "patch",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct LibStakingStorage.Version",
+ name: "version",
+ type: "tuple"
+ }
+ ],
+ name: "setMinVersion",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "config",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "tokenRewardPerTokenPerEpoch",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "complaintTolerance",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "complaintIntervalSecs",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256[]",
+ name: "keyTypes",
+ type: "uint256[]"
+ },
+ {
+ internalType: "uint256",
+ name: "minimumValidatorCount",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct LibStakingStorage.Config",
+ name: "",
+ type: "tuple"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "contractResolver",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "countOfCurrentValidatorsReadyForNextEpoch",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "countOfNextValidatorsReadyForNextEpoch",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "currentValidatorCountForConsensus",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "epoch",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "uint256",
+ name: "epochLength",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "number",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "endTime",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "retries",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "timeout",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct LibStakingStorage.Epoch",
+ name: "",
+ type: "tuple"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getKeyTypes",
+ outputs: [
+ {
+ internalType: "uint256[]",
+ name: "",
+ type: "uint256[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getKickedValidators",
+ outputs: [
+ {
+ internalType: "address[]",
+ name: "",
+ type: "address[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address[]",
+ name: "addresses",
+ type: "address[]"
+ }
+ ],
+ name: "getNodeStakerAddressMappings",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "nodeAddress",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "stakerAddress",
+ type: "address"
+ }
+ ],
+ internalType: "struct LibStakingStorage.AddressMapping[]",
+ name: "",
+ type: "tuple[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getStakingBalancesAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getTokenAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getValidatorsInCurrentEpoch",
+ outputs: [
+ {
+ internalType: "address[]",
+ name: "",
+ type: "address[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getValidatorsInCurrentEpochLength",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getValidatorsInNextEpoch",
+ outputs: [
+ {
+ internalType: "address[]",
+ name: "",
+ type: "address[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address[]",
+ name: "addresses",
+ type: "address[]"
+ }
+ ],
+ name: "getValidatorsStructs",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "uint32",
+ name: "ip",
+ type: "uint32"
+ },
+ {
+ internalType: "uint128",
+ name: "ipv6",
+ type: "uint128"
+ },
+ {
+ internalType: "uint32",
+ name: "port",
+ type: "uint32"
+ },
+ {
+ internalType: "address",
+ name: "nodeAddress",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "reward",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "senderPubKey",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "receiverPubKey",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct LibStakingStorage.Validator[]",
+ name: "",
+ type: "tuple[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getValidatorsStructsInCurrentEpoch",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "uint32",
+ name: "ip",
+ type: "uint32"
+ },
+ {
+ internalType: "uint128",
+ name: "ipv6",
+ type: "uint128"
+ },
+ {
+ internalType: "uint32",
+ name: "port",
+ type: "uint32"
+ },
+ {
+ internalType: "address",
+ name: "nodeAddress",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "reward",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "senderPubKey",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "receiverPubKey",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct LibStakingStorage.Validator[]",
+ name: "",
+ type: "tuple[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getValidatorsStructsInNextEpoch",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "uint32",
+ name: "ip",
+ type: "uint32"
+ },
+ {
+ internalType: "uint128",
+ name: "ipv6",
+ type: "uint128"
+ },
+ {
+ internalType: "uint32",
+ name: "port",
+ type: "uint32"
+ },
+ {
+ internalType: "address",
+ name: "nodeAddress",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "reward",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "senderPubKey",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "receiverPubKey",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct LibStakingStorage.Validator[]",
+ name: "",
+ type: "tuple[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "epochNumber",
+ type: "uint256"
+ },
+ {
+ internalType: "address",
+ name: "validatorStakerAddress",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "voterStakerAddress",
+ type: "address"
+ }
+ ],
+ name: "getVotingStatusToKickValidator",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ },
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "isActiveValidator",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "isActiveValidatorByNodeAddress",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "isReadyForNextEpoch",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "reason",
+ type: "uint256"
+ }
+ ],
+ name: "kickPenaltyPercentByReason",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "nextValidatorCountForConsensus",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "nodeAddress",
+ type: "address"
+ }
+ ],
+ name: "nodeAddressToStakerAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "stakerAddress",
+ type: "address"
+ }
+ ],
+ name: "readyForNextEpoch",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "stakerAddress",
+ type: "address"
+ }
+ ],
+ name: "shouldKickValidator",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "state",
+ outputs: [
+ {
+ internalType: "enum LibStakingStorage.States",
+ name: "",
+ type: "uint8"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "stakerAddress",
+ type: "address"
+ }
+ ],
+ name: "validators",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "uint32",
+ name: "ip",
+ type: "uint32"
+ },
+ {
+ internalType: "uint128",
+ name: "ipv6",
+ type: "uint128"
+ },
+ {
+ internalType: "uint32",
+ name: "port",
+ type: "uint32"
+ },
+ {
+ internalType: "address",
+ name: "nodeAddress",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "reward",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "senderPubKey",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "receiverPubKey",
+ type: "uint256"
+ }
+ ],
+ internalType: "struct LibStakingStorage.Validator",
+ name: "",
+ type: "tuple"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/abis/StakingBalances.sol/StakingBalancesData.js
+var require_StakingBalancesData = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/abis/StakingBalances.sol/StakingBalancesData.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.StakingBalancesData = void 0;
+ exports2.StakingBalancesData = {
+ date: "2023-11-14T15:45:41Z",
+ address: "0x095251de2aD2A78aDe96F2a11F7feAA7CF93e6B5",
+ contractName: "StakingBalances",
+ abi: [
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotAddFunctionToDiamondThatAlreadyExists",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_selectors",
+ type: "bytes4[]"
+ }
+ ],
+ name: "CannotAddSelectorsToZeroAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotRemoveFunctionThatDoesNotExist",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotRemoveImmutableFunction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceFunctionThatDoesNotExists",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceFunctionWithTheSameFunctionFromTheSameFacet",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_selectors",
+ type: "bytes4[]"
+ }
+ ],
+ name: "CannotReplaceFunctionsFromFacetWithZeroAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_selector",
+ type: "bytes4"
+ }
+ ],
+ name: "CannotReplaceImmutableFunction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint8",
+ name: "_action",
+ type: "uint8"
+ }
+ ],
+ name: "IncorrectFacetCutAction",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_initializationContractAddress",
+ type: "address"
+ },
+ {
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "InitializationFunctionReverted",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_contractAddress",
+ type: "address"
+ },
+ {
+ internalType: "string",
+ name: "_message",
+ type: "string"
+ }
+ ],
+ name: "NoBytecodeAtAddress",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facetAddress",
+ type: "address"
+ }
+ ],
+ name: "NoSelectorsProvidedForFacetForCut",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_user",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "_contractOwner",
+ type: "address"
+ }
+ ],
+ name: "NotContractOwner",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facetAddress",
+ type: "address"
+ }
+ ],
+ name: "RemoveFacetAddressMustBeZeroAddress",
+ type: "error"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "enum IDiamond.FacetCutAction",
+ name: "action",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ indexed: false,
+ internalType: "struct IDiamond.FacetCut[]",
+ name: "_diamondCut",
+ type: "tuple[]"
+ },
+ {
+ indexed: false,
+ internalType: "address",
+ name: "_init",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "DiamondCut",
+ type: "event"
+ },
+ {
+ inputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "enum IDiamond.FacetCutAction",
+ name: "action",
+ type: "uint8"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ internalType: "struct IDiamond.FacetCut[]",
+ name: "_diamondCut",
+ type: "tuple[]"
+ },
+ {
+ internalType: "address",
+ name: "_init",
+ type: "address"
+ },
+ {
+ internalType: "bytes",
+ name: "_calldata",
+ type: "bytes"
+ }
+ ],
+ name: "diamondCut",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_functionSelector",
+ type: "bytes4"
+ }
+ ],
+ name: "facetAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "facetAddress_",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "facetAddresses",
+ outputs: [
+ {
+ internalType: "address[]",
+ name: "facetAddresses_",
+ type: "address[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_facet",
+ type: "address"
+ }
+ ],
+ name: "facetFunctionSelectors",
+ outputs: [
+ {
+ internalType: "bytes4[]",
+ name: "_facetFunctionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "facets",
+ outputs: [
+ {
+ components: [
+ {
+ internalType: "address",
+ name: "facetAddress",
+ type: "address"
+ },
+ {
+ internalType: "bytes4[]",
+ name: "functionSelectors",
+ type: "bytes4[]"
+ }
+ ],
+ internalType: "struct IDiamondLoupe.Facet[]",
+ name: "facets_",
+ type: "tuple[]"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bytes4",
+ name: "_interfaceId",
+ type: "bytes4"
+ }
+ ],
+ name: "supportsInterface",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "previousOwner",
+ type: "address"
+ },
+ {
+ indexed: true,
+ internalType: "address",
+ name: "newOwner",
+ type: "address"
+ }
+ ],
+ name: "OwnershipTransferred",
+ type: "event"
+ },
+ {
+ inputs: [],
+ name: "owner",
+ outputs: [
+ {
+ internalType: "address",
+ name: "owner_",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "_newOwner",
+ type: "address"
+ }
+ ],
+ name: "transferOwnership",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "ActiveValidatorsCannotLeave",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "aliasAccount",
+ type: "address"
+ },
+ {
+ internalType: "address",
+ name: "stakerAddress",
+ type: "address"
+ }
+ ],
+ name: "AliasNotOwnedBySender",
+ type: "error"
+ },
+ {
+ inputs: [],
+ name: "CallerNotOwner",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "aliasAccount",
+ type: "address"
+ }
+ ],
+ name: "CannotRemoveAliasOfActiveValidator",
+ type: "error"
+ },
+ {
+ inputs: [],
+ name: "CannotStakeZero",
+ type: "error"
+ },
+ {
+ inputs: [],
+ name: "CannotWithdrawZero",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "aliasCount",
+ type: "uint256"
+ }
+ ],
+ name: "MaxAliasCountReached",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "sender",
+ type: "address"
+ }
+ ],
+ name: "OnlyStakingContract",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "amountStaked",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "minimumStake",
+ type: "uint256"
+ }
+ ],
+ name: "StakeMustBeGreaterThanMinimumStake",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "amountStaked",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "maximumStake",
+ type: "uint256"
+ }
+ ],
+ name: "StakeMustBeLessThanMaximumStake",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "stakerAddress",
+ type: "address"
+ }
+ ],
+ name: "StakerNotPermitted",
+ type: "error"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "yourBalance",
+ type: "uint256"
+ },
+ {
+ internalType: "uint256",
+ name: "requestedWithdrawlAmount",
+ type: "uint256"
+ }
+ ],
+ name: "TryingToWithdrawMoreThanStaked",
+ type: "error"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "address",
+ name: "aliasAccount",
+ type: "address"
+ }
+ ],
+ name: "AliasAdded",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "address",
+ name: "aliasAccount",
+ type: "address"
+ }
+ ],
+ name: "AliasRemoved",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newMaxAliasCount",
+ type: "uint256"
+ }
+ ],
+ name: "MaxAliasCountSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newMaximumStake",
+ type: "uint256"
+ }
+ ],
+ name: "MaximumStakeSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newMinimumStake",
+ type: "uint256"
+ }
+ ],
+ name: "MinimumStakeSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ }
+ ],
+ name: "PermittedStakerAdded",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ }
+ ],
+ name: "PermittedStakerRemoved",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "bool",
+ name: "permittedStakersOn",
+ type: "bool"
+ }
+ ],
+ name: "PermittedStakersOnChanged",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "address",
+ name: "newResolverAddress",
+ type: "address"
+ }
+ ],
+ name: "ResolverContractAddressSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "reward",
+ type: "uint256"
+ }
+ ],
+ name: "RewardPaid",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ }
+ ],
+ name: "Staked",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "newTokenRewardPerTokenPerEpoch",
+ type: "uint256"
+ }
+ ],
+ name: "TokenRewardPerTokenPerEpochSet",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "address",
+ name: "aliasAccount",
+ type: "address"
+ }
+ ],
+ name: "ValidatorNotRewardedBecauseAlias",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ }
+ ],
+ name: "ValidatorRewarded",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ }
+ ],
+ name: "ValidatorTokensPenalized",
+ type: "event"
+ },
+ {
+ anonymous: false,
+ inputs: [
+ {
+ indexed: true,
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ },
+ {
+ indexed: false,
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ }
+ ],
+ name: "Withdrawn",
+ type: "event"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "aliasAccount",
+ type: "address"
+ }
+ ],
+ name: "addAlias",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ }
+ ],
+ name: "addPermittedStaker",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address[]",
+ name: "stakers",
+ type: "address[]"
+ }
+ ],
+ name: "addPermittedStakers",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "balanceOf",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "checkStakingAmounts",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "getReward",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getStakingAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "getTokenAddress",
+ outputs: [
+ {
+ internalType: "address",
+ name: "",
+ type: "address"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ }
+ ],
+ name: "isPermittedStaker",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "maximumStake",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "minimumStake",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "penalizeTokens",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "permittedStakersOn",
+ outputs: [
+ {
+ internalType: "bool",
+ name: "",
+ type: "bool"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "aliasAccount",
+ type: "address"
+ }
+ ],
+ name: "removeAlias",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ }
+ ],
+ name: "removePermittedStaker",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "staker",
+ type: "address"
+ },
+ {
+ internalType: "uint256",
+ name: "balance",
+ type: "uint256"
+ }
+ ],
+ name: "restakePenaltyTokens",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "rewardOf",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "rewardValidator",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "address",
+ name: "newResolverAddress",
+ type: "address"
+ }
+ ],
+ name: "setContractResolver",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "newMaxAliasCount",
+ type: "uint256"
+ }
+ ],
+ name: "setMaxAliasCount",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "newMaximumStake",
+ type: "uint256"
+ }
+ ],
+ name: "setMaximumStake",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "newMinimumStake",
+ type: "uint256"
+ }
+ ],
+ name: "setMinimumStake",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "bool",
+ name: "permitted",
+ type: "bool"
+ }
+ ],
+ name: "setPermittedStakersOn",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "stake",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "totalStaked",
+ outputs: [
+ {
+ internalType: "uint256",
+ name: "",
+ type: "uint256"
+ }
+ ],
+ stateMutability: "view",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "balance",
+ type: "uint256"
+ },
+ {
+ internalType: "address",
+ name: "recipient",
+ type: "address"
+ }
+ ],
+ name: "transferPenaltyTokens",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "amount",
+ type: "uint256"
+ },
+ {
+ internalType: "address",
+ name: "account",
+ type: "address"
+ }
+ ],
+ name: "withdraw",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [],
+ name: "withdraw",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ },
+ {
+ inputs: [
+ {
+ internalType: "uint256",
+ name: "balance",
+ type: "uint256"
+ }
+ ],
+ name: "withdrawPenaltyTokens",
+ outputs: [],
+ stateMutability: "nonpayable",
+ type: "function"
+ }
+ ]
+ };
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/digest.js
+var require_digest = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/digest.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var crypto_1 = require("crypto");
+ var digest = (algorithm, data) => (0, crypto_1.createHash)(algorithm).update(data).digest();
+ exports2.default = digest;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/buffer_utils.js
+var require_buffer_utils = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/buffer_utils.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.concatKdf = exports2.lengthAndInput = exports2.uint32be = exports2.uint64be = exports2.p2s = exports2.concat = exports2.decoder = exports2.encoder = void 0;
+ var digest_js_1 = require_digest();
+ exports2.encoder = new TextEncoder();
+ exports2.decoder = new TextDecoder();
+ var MAX_INT32 = 2 ** 32;
+ function concat(...buffers) {
+ const size = buffers.reduce((acc, { length }) => acc + length, 0);
+ const buf = new Uint8Array(size);
+ let i = 0;
+ buffers.forEach((buffer) => {
+ buf.set(buffer, i);
+ i += buffer.length;
+ });
+ return buf;
+ }
+ exports2.concat = concat;
+ function p2s(alg, p2sInput) {
+ return concat(exports2.encoder.encode(alg), new Uint8Array([0]), p2sInput);
+ }
+ exports2.p2s = p2s;
+ function writeUInt32BE(buf, value, offset) {
+ if (value < 0 || value >= MAX_INT32) {
+ throw new RangeError(`value must be >= 0 and <= ${MAX_INT32 - 1}. Received ${value}`);
+ }
+ buf.set([value >>> 24, value >>> 16, value >>> 8, value & 255], offset);
+ }
+ function uint64be(value) {
+ const high = Math.floor(value / MAX_INT32);
+ const low = value % MAX_INT32;
+ const buf = new Uint8Array(8);
+ writeUInt32BE(buf, high, 0);
+ writeUInt32BE(buf, low, 4);
+ return buf;
+ }
+ exports2.uint64be = uint64be;
+ function uint32be(value) {
+ const buf = new Uint8Array(4);
+ writeUInt32BE(buf, value);
+ return buf;
+ }
+ exports2.uint32be = uint32be;
+ function lengthAndInput(input) {
+ return concat(uint32be(input.length), input);
+ }
+ exports2.lengthAndInput = lengthAndInput;
+ async function concatKdf(secret, bits, value) {
+ const iterations = Math.ceil((bits >> 3) / 32);
+ const res = new Uint8Array(iterations * 32);
+ for (let iter = 0; iter < iterations; iter++) {
+ const buf = new Uint8Array(4 + secret.length + value.length);
+ buf.set(uint32be(iter + 1));
+ buf.set(secret, 4);
+ buf.set(value, 4 + secret.length);
+ res.set(await (0, digest_js_1.default)("sha256", buf), iter * 32);
+ }
+ return res.slice(0, bits >> 3);
+ }
+ exports2.concatKdf = concatKdf;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/base64url.js
+var require_base64url = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/base64url.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.decode = exports2.encode = exports2.encodeBase64 = exports2.decodeBase64 = void 0;
+ var buffer_1 = require("buffer");
+ var buffer_utils_js_1 = require_buffer_utils();
+ var encode;
+ function normalize(input) {
+ let encoded = input;
+ if (encoded instanceof Uint8Array) {
+ encoded = buffer_utils_js_1.decoder.decode(encoded);
+ }
+ return encoded;
+ }
+ if (buffer_1.Buffer.isEncoding("base64url")) {
+ exports2.encode = encode = (input) => buffer_1.Buffer.from(input).toString("base64url");
+ } else {
+ exports2.encode = encode = (input) => buffer_1.Buffer.from(input).toString("base64").replace(/=/g, "").replace(/\+/g, "-").replace(/\//g, "_");
+ }
+ var decodeBase64 = (input) => buffer_1.Buffer.from(input, "base64");
+ exports2.decodeBase64 = decodeBase64;
+ var encodeBase64 = (input) => buffer_1.Buffer.from(input).toString("base64");
+ exports2.encodeBase64 = encodeBase64;
+ var decode = (input) => buffer_1.Buffer.from(normalize(input), "base64");
+ exports2.decode = decode;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/util/errors.js
+var require_errors3 = __commonJS({
+ "node_modules/jose/dist/node/cjs/util/errors.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.JWSSignatureVerificationFailed = exports2.JWKSTimeout = exports2.JWKSMultipleMatchingKeys = exports2.JWKSNoMatchingKey = exports2.JWKSInvalid = exports2.JWKInvalid = exports2.JWTInvalid = exports2.JWSInvalid = exports2.JWEInvalid = exports2.JWEDecompressionFailed = exports2.JWEDecryptionFailed = exports2.JOSENotSupported = exports2.JOSEAlgNotAllowed = exports2.JWTExpired = exports2.JWTClaimValidationFailed = exports2.JOSEError = void 0;
+ var JOSEError = class extends Error {
+ static get code() {
+ return "ERR_JOSE_GENERIC";
+ }
+ constructor(message) {
+ var _a;
+ super(message);
+ this.code = "ERR_JOSE_GENERIC";
+ this.name = this.constructor.name;
+ (_a = Error.captureStackTrace) === null || _a === void 0 ? void 0 : _a.call(Error, this, this.constructor);
+ }
+ };
+ exports2.JOSEError = JOSEError;
+ var JWTClaimValidationFailed = class extends JOSEError {
+ static get code() {
+ return "ERR_JWT_CLAIM_VALIDATION_FAILED";
+ }
+ constructor(message, claim = "unspecified", reason = "unspecified") {
+ super(message);
+ this.code = "ERR_JWT_CLAIM_VALIDATION_FAILED";
+ this.claim = claim;
+ this.reason = reason;
+ }
+ };
+ exports2.JWTClaimValidationFailed = JWTClaimValidationFailed;
+ var JWTExpired = class extends JOSEError {
+ static get code() {
+ return "ERR_JWT_EXPIRED";
+ }
+ constructor(message, claim = "unspecified", reason = "unspecified") {
+ super(message);
+ this.code = "ERR_JWT_EXPIRED";
+ this.claim = claim;
+ this.reason = reason;
+ }
+ };
+ exports2.JWTExpired = JWTExpired;
+ var JOSEAlgNotAllowed = class extends JOSEError {
+ constructor() {
+ super(...arguments);
+ this.code = "ERR_JOSE_ALG_NOT_ALLOWED";
+ }
+ static get code() {
+ return "ERR_JOSE_ALG_NOT_ALLOWED";
+ }
+ };
+ exports2.JOSEAlgNotAllowed = JOSEAlgNotAllowed;
+ var JOSENotSupported = class extends JOSEError {
+ constructor() {
+ super(...arguments);
+ this.code = "ERR_JOSE_NOT_SUPPORTED";
+ }
+ static get code() {
+ return "ERR_JOSE_NOT_SUPPORTED";
+ }
+ };
+ exports2.JOSENotSupported = JOSENotSupported;
+ var JWEDecryptionFailed = class extends JOSEError {
+ constructor() {
+ super(...arguments);
+ this.code = "ERR_JWE_DECRYPTION_FAILED";
+ this.message = "decryption operation failed";
+ }
+ static get code() {
+ return "ERR_JWE_DECRYPTION_FAILED";
+ }
+ };
+ exports2.JWEDecryptionFailed = JWEDecryptionFailed;
+ var JWEDecompressionFailed = class extends JOSEError {
+ constructor() {
+ super(...arguments);
+ this.code = "ERR_JWE_DECOMPRESSION_FAILED";
+ this.message = "decompression operation failed";
+ }
+ static get code() {
+ return "ERR_JWE_DECOMPRESSION_FAILED";
+ }
+ };
+ exports2.JWEDecompressionFailed = JWEDecompressionFailed;
+ var JWEInvalid = class extends JOSEError {
+ constructor() {
+ super(...arguments);
+ this.code = "ERR_JWE_INVALID";
+ }
+ static get code() {
+ return "ERR_JWE_INVALID";
+ }
+ };
+ exports2.JWEInvalid = JWEInvalid;
+ var JWSInvalid = class extends JOSEError {
+ constructor() {
+ super(...arguments);
+ this.code = "ERR_JWS_INVALID";
+ }
+ static get code() {
+ return "ERR_JWS_INVALID";
+ }
+ };
+ exports2.JWSInvalid = JWSInvalid;
+ var JWTInvalid = class extends JOSEError {
+ constructor() {
+ super(...arguments);
+ this.code = "ERR_JWT_INVALID";
+ }
+ static get code() {
+ return "ERR_JWT_INVALID";
+ }
+ };
+ exports2.JWTInvalid = JWTInvalid;
+ var JWKInvalid = class extends JOSEError {
+ constructor() {
+ super(...arguments);
+ this.code = "ERR_JWK_INVALID";
+ }
+ static get code() {
+ return "ERR_JWK_INVALID";
+ }
+ };
+ exports2.JWKInvalid = JWKInvalid;
+ var JWKSInvalid = class extends JOSEError {
+ constructor() {
+ super(...arguments);
+ this.code = "ERR_JWKS_INVALID";
+ }
+ static get code() {
+ return "ERR_JWKS_INVALID";
+ }
+ };
+ exports2.JWKSInvalid = JWKSInvalid;
+ var JWKSNoMatchingKey = class extends JOSEError {
+ constructor() {
+ super(...arguments);
+ this.code = "ERR_JWKS_NO_MATCHING_KEY";
+ this.message = "no applicable key found in the JSON Web Key Set";
+ }
+ static get code() {
+ return "ERR_JWKS_NO_MATCHING_KEY";
+ }
+ };
+ exports2.JWKSNoMatchingKey = JWKSNoMatchingKey;
+ var JWKSMultipleMatchingKeys = class extends JOSEError {
+ constructor() {
+ super(...arguments);
+ this.code = "ERR_JWKS_MULTIPLE_MATCHING_KEYS";
+ this.message = "multiple matching keys found in the JSON Web Key Set";
+ }
+ static get code() {
+ return "ERR_JWKS_MULTIPLE_MATCHING_KEYS";
+ }
+ };
+ exports2.JWKSMultipleMatchingKeys = JWKSMultipleMatchingKeys;
+ var JWKSTimeout = class extends JOSEError {
+ constructor() {
+ super(...arguments);
+ this.code = "ERR_JWKS_TIMEOUT";
+ this.message = "request timed out";
+ }
+ static get code() {
+ return "ERR_JWKS_TIMEOUT";
+ }
+ };
+ exports2.JWKSTimeout = JWKSTimeout;
+ var JWSSignatureVerificationFailed = class extends JOSEError {
+ constructor() {
+ super(...arguments);
+ this.code = "ERR_JWS_SIGNATURE_VERIFICATION_FAILED";
+ this.message = "signature verification failed";
+ }
+ static get code() {
+ return "ERR_JWS_SIGNATURE_VERIFICATION_FAILED";
+ }
+ };
+ exports2.JWSSignatureVerificationFailed = JWSSignatureVerificationFailed;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/random.js
+var require_random3 = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/random.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.default = void 0;
+ var crypto_1 = require("crypto");
+ Object.defineProperty(exports2, "default", { enumerable: true, get: function() {
+ return crypto_1.randomFillSync;
+ } });
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/iv.js
+var require_iv = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/iv.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.bitLength = void 0;
+ var errors_js_1 = require_errors3();
+ var random_js_1 = require_random3();
+ function bitLength(alg) {
+ switch (alg) {
+ case "A128GCM":
+ case "A128GCMKW":
+ case "A192GCM":
+ case "A192GCMKW":
+ case "A256GCM":
+ case "A256GCMKW":
+ return 96;
+ case "A128CBC-HS256":
+ case "A192CBC-HS384":
+ case "A256CBC-HS512":
+ return 128;
+ default:
+ throw new errors_js_1.JOSENotSupported(`Unsupported JWE Algorithm: ${alg}`);
+ }
+ }
+ exports2.bitLength = bitLength;
+ exports2.default = (alg) => (0, random_js_1.default)(new Uint8Array(bitLength(alg) >> 3));
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/check_iv_length.js
+var require_check_iv_length = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/check_iv_length.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var errors_js_1 = require_errors3();
+ var iv_js_1 = require_iv();
+ var checkIvLength = (enc, iv) => {
+ if (iv.length << 3 !== (0, iv_js_1.bitLength)(enc)) {
+ throw new errors_js_1.JWEInvalid("Invalid Initialization Vector length");
+ }
+ };
+ exports2.default = checkIvLength;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/is_key_object.js
+var require_is_key_object = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/is_key_object.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var crypto_1 = require("crypto");
+ var util = require("util");
+ exports2.default = util.types.isKeyObject ? (obj) => util.types.isKeyObject(obj) : (obj) => obj != null && obj instanceof crypto_1.KeyObject;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/check_cek_length.js
+var require_check_cek_length = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/check_cek_length.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var errors_js_1 = require_errors3();
+ var is_key_object_js_1 = require_is_key_object();
+ var checkCekLength = (enc, cek) => {
+ let expected;
+ switch (enc) {
+ case "A128CBC-HS256":
+ case "A192CBC-HS384":
+ case "A256CBC-HS512":
+ expected = parseInt(enc.slice(-3), 10);
+ break;
+ case "A128GCM":
+ case "A192GCM":
+ case "A256GCM":
+ expected = parseInt(enc.slice(1, 4), 10);
+ break;
+ default:
+ throw new errors_js_1.JOSENotSupported(`Content Encryption Algorithm ${enc} is not supported either by JOSE or your javascript runtime`);
+ }
+ if (cek instanceof Uint8Array) {
+ const actual = cek.byteLength << 3;
+ if (actual !== expected) {
+ throw new errors_js_1.JWEInvalid(`Invalid Content Encryption Key length. Expected ${expected} bits, got ${actual} bits`);
+ }
+ return;
+ }
+ if ((0, is_key_object_js_1.default)(cek) && cek.type === "secret") {
+ const actual = cek.symmetricKeySize << 3;
+ if (actual !== expected) {
+ throw new errors_js_1.JWEInvalid(`Invalid Content Encryption Key length. Expected ${expected} bits, got ${actual} bits`);
+ }
+ return;
+ }
+ throw new TypeError("Invalid Content Encryption Key type");
+ };
+ exports2.default = checkCekLength;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/timing_safe_equal.js
+var require_timing_safe_equal = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/timing_safe_equal.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var crypto_1 = require("crypto");
+ var timingSafeEqual = crypto_1.timingSafeEqual;
+ exports2.default = timingSafeEqual;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/cbc_tag.js
+var require_cbc_tag = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/cbc_tag.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var crypto_1 = require("crypto");
+ var buffer_utils_js_1 = require_buffer_utils();
+ function cbcTag(aad, iv, ciphertext, macSize, macKey, keySize) {
+ const macData = (0, buffer_utils_js_1.concat)(aad, iv, ciphertext, (0, buffer_utils_js_1.uint64be)(aad.length << 3));
+ const hmac = (0, crypto_1.createHmac)(`sha${macSize}`, macKey);
+ hmac.update(macData);
+ return hmac.digest().slice(0, keySize >> 3);
+ }
+ exports2.default = cbcTag;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/webcrypto.js
+var require_webcrypto = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/webcrypto.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.isCryptoKey = void 0;
+ var crypto2 = require("crypto");
+ var util = require("util");
+ var webcrypto = crypto2.webcrypto;
+ exports2.default = webcrypto;
+ exports2.isCryptoKey = util.types.isCryptoKey ? (key) => util.types.isCryptoKey(key) : (key) => false;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/crypto_key.js
+var require_crypto_key = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/crypto_key.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.checkEncCryptoKey = exports2.checkSigCryptoKey = void 0;
+ function unusable(name, prop = "algorithm.name") {
+ return new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);
+ }
+ function isAlgorithm(algorithm, name) {
+ return algorithm.name === name;
+ }
+ function getHashLength(hash) {
+ return parseInt(hash.name.slice(4), 10);
+ }
+ function getNamedCurve(alg) {
+ switch (alg) {
+ case "ES256":
+ return "P-256";
+ case "ES384":
+ return "P-384";
+ case "ES512":
+ return "P-521";
+ default:
+ throw new Error("unreachable");
+ }
+ }
+ function checkUsage(key, usages) {
+ if (usages.length && !usages.some((expected) => key.usages.includes(expected))) {
+ let msg = "CryptoKey does not support this operation, its usages must include ";
+ if (usages.length > 2) {
+ const last = usages.pop();
+ msg += `one of ${usages.join(", ")}, or ${last}.`;
+ } else if (usages.length === 2) {
+ msg += `one of ${usages[0]} or ${usages[1]}.`;
+ } else {
+ msg += `${usages[0]}.`;
+ }
+ throw new TypeError(msg);
+ }
+ }
+ function checkSigCryptoKey(key, alg, ...usages) {
+ switch (alg) {
+ case "HS256":
+ case "HS384":
+ case "HS512": {
+ if (!isAlgorithm(key.algorithm, "HMAC"))
+ throw unusable("HMAC");
+ const expected = parseInt(alg.slice(2), 10);
+ const actual = getHashLength(key.algorithm.hash);
+ if (actual !== expected)
+ throw unusable(`SHA-${expected}`, "algorithm.hash");
+ break;
+ }
+ case "RS256":
+ case "RS384":
+ case "RS512": {
+ if (!isAlgorithm(key.algorithm, "RSASSA-PKCS1-v1_5"))
+ throw unusable("RSASSA-PKCS1-v1_5");
+ const expected = parseInt(alg.slice(2), 10);
+ const actual = getHashLength(key.algorithm.hash);
+ if (actual !== expected)
+ throw unusable(`SHA-${expected}`, "algorithm.hash");
+ break;
+ }
+ case "PS256":
+ case "PS384":
+ case "PS512": {
+ if (!isAlgorithm(key.algorithm, "RSA-PSS"))
+ throw unusable("RSA-PSS");
+ const expected = parseInt(alg.slice(2), 10);
+ const actual = getHashLength(key.algorithm.hash);
+ if (actual !== expected)
+ throw unusable(`SHA-${expected}`, "algorithm.hash");
+ break;
+ }
+ case "EdDSA": {
+ if (key.algorithm.name !== "Ed25519" && key.algorithm.name !== "Ed448") {
+ throw unusable("Ed25519 or Ed448");
+ }
+ break;
+ }
+ case "ES256":
+ case "ES384":
+ case "ES512": {
+ if (!isAlgorithm(key.algorithm, "ECDSA"))
+ throw unusable("ECDSA");
+ const expected = getNamedCurve(alg);
+ const actual = key.algorithm.namedCurve;
+ if (actual !== expected)
+ throw unusable(expected, "algorithm.namedCurve");
+ break;
+ }
+ default:
+ throw new TypeError("CryptoKey does not support this operation");
+ }
+ checkUsage(key, usages);
+ }
+ exports2.checkSigCryptoKey = checkSigCryptoKey;
+ function checkEncCryptoKey(key, alg, ...usages) {
+ switch (alg) {
+ case "A128GCM":
+ case "A192GCM":
+ case "A256GCM": {
+ if (!isAlgorithm(key.algorithm, "AES-GCM"))
+ throw unusable("AES-GCM");
+ const expected = parseInt(alg.slice(1, 4), 10);
+ const actual = key.algorithm.length;
+ if (actual !== expected)
+ throw unusable(expected, "algorithm.length");
+ break;
+ }
+ case "A128KW":
+ case "A192KW":
+ case "A256KW": {
+ if (!isAlgorithm(key.algorithm, "AES-KW"))
+ throw unusable("AES-KW");
+ const expected = parseInt(alg.slice(1, 4), 10);
+ const actual = key.algorithm.length;
+ if (actual !== expected)
+ throw unusable(expected, "algorithm.length");
+ break;
+ }
+ case "ECDH": {
+ switch (key.algorithm.name) {
+ case "ECDH":
+ case "X25519":
+ case "X448":
+ break;
+ default:
+ throw unusable("ECDH, X25519, or X448");
+ }
+ break;
+ }
+ case "PBES2-HS256+A128KW":
+ case "PBES2-HS384+A192KW":
+ case "PBES2-HS512+A256KW":
+ if (!isAlgorithm(key.algorithm, "PBKDF2"))
+ throw unusable("PBKDF2");
+ break;
+ case "RSA-OAEP":
+ case "RSA-OAEP-256":
+ case "RSA-OAEP-384":
+ case "RSA-OAEP-512": {
+ if (!isAlgorithm(key.algorithm, "RSA-OAEP"))
+ throw unusable("RSA-OAEP");
+ const expected = parseInt(alg.slice(9), 10) || 1;
+ const actual = getHashLength(key.algorithm.hash);
+ if (actual !== expected)
+ throw unusable(`SHA-${expected}`, "algorithm.hash");
+ break;
+ }
+ default:
+ throw new TypeError("CryptoKey does not support this operation");
+ }
+ checkUsage(key, usages);
+ }
+ exports2.checkEncCryptoKey = checkEncCryptoKey;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/invalid_key_input.js
+var require_invalid_key_input = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/invalid_key_input.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.withAlg = void 0;
+ function message(msg, actual, ...types) {
+ if (types.length > 2) {
+ const last = types.pop();
+ msg += `one of type ${types.join(", ")}, or ${last}.`;
+ } else if (types.length === 2) {
+ msg += `one of type ${types[0]} or ${types[1]}.`;
+ } else {
+ msg += `of type ${types[0]}.`;
+ }
+ if (actual == null) {
+ msg += ` Received ${actual}`;
+ } else if (typeof actual === "function" && actual.name) {
+ msg += ` Received function ${actual.name}`;
+ } else if (typeof actual === "object" && actual != null) {
+ if (actual.constructor && actual.constructor.name) {
+ msg += ` Received an instance of ${actual.constructor.name}`;
+ }
+ }
+ return msg;
+ }
+ exports2.default = (actual, ...types) => {
+ return message("Key must be ", actual, ...types);
+ };
+ function withAlg(alg, actual, ...types) {
+ return message(`Key for the ${alg} algorithm must be `, actual, ...types);
+ }
+ exports2.withAlg = withAlg;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/ciphers.js
+var require_ciphers = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/ciphers.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var crypto_1 = require("crypto");
+ var ciphers;
+ exports2.default = (algorithm) => {
+ ciphers || (ciphers = new Set((0, crypto_1.getCiphers)()));
+ return ciphers.has(algorithm);
+ };
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/is_key_like.js
+var require_is_key_like = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/is_key_like.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.types = void 0;
+ var webcrypto_js_1 = require_webcrypto();
+ var is_key_object_js_1 = require_is_key_object();
+ exports2.default = (key) => (0, is_key_object_js_1.default)(key) || (0, webcrypto_js_1.isCryptoKey)(key);
+ var types = ["KeyObject"];
+ exports2.types = types;
+ if (globalThis.CryptoKey || (webcrypto_js_1.default === null || webcrypto_js_1.default === void 0 ? void 0 : webcrypto_js_1.default.CryptoKey)) {
+ types.push("CryptoKey");
+ }
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/decrypt.js
+var require_decrypt = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/decrypt.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var crypto_1 = require("crypto");
+ var check_iv_length_js_1 = require_check_iv_length();
+ var check_cek_length_js_1 = require_check_cek_length();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var errors_js_1 = require_errors3();
+ var timing_safe_equal_js_1 = require_timing_safe_equal();
+ var cbc_tag_js_1 = require_cbc_tag();
+ var webcrypto_js_1 = require_webcrypto();
+ var crypto_key_js_1 = require_crypto_key();
+ var is_key_object_js_1 = require_is_key_object();
+ var invalid_key_input_js_1 = require_invalid_key_input();
+ var ciphers_js_1 = require_ciphers();
+ var is_key_like_js_1 = require_is_key_like();
+ function cbcDecrypt(enc, cek, ciphertext, iv, tag, aad) {
+ const keySize = parseInt(enc.slice(1, 4), 10);
+ if ((0, is_key_object_js_1.default)(cek)) {
+ cek = cek.export();
+ }
+ const encKey = cek.subarray(keySize >> 3);
+ const macKey = cek.subarray(0, keySize >> 3);
+ const macSize = parseInt(enc.slice(-3), 10);
+ const algorithm = `aes-${keySize}-cbc`;
+ if (!(0, ciphers_js_1.default)(algorithm)) {
+ throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);
+ }
+ const expectedTag = (0, cbc_tag_js_1.default)(aad, iv, ciphertext, macSize, macKey, keySize);
+ let macCheckPassed;
+ try {
+ macCheckPassed = (0, timing_safe_equal_js_1.default)(tag, expectedTag);
+ } catch {
+ }
+ if (!macCheckPassed) {
+ throw new errors_js_1.JWEDecryptionFailed();
+ }
+ let plaintext;
+ try {
+ const decipher = (0, crypto_1.createDecipheriv)(algorithm, encKey, iv);
+ plaintext = (0, buffer_utils_js_1.concat)(decipher.update(ciphertext), decipher.final());
+ } catch {
+ }
+ if (!plaintext) {
+ throw new errors_js_1.JWEDecryptionFailed();
+ }
+ return plaintext;
+ }
+ function gcmDecrypt(enc, cek, ciphertext, iv, tag, aad) {
+ const keySize = parseInt(enc.slice(1, 4), 10);
+ const algorithm = `aes-${keySize}-gcm`;
+ if (!(0, ciphers_js_1.default)(algorithm)) {
+ throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);
+ }
+ try {
+ const decipher = (0, crypto_1.createDecipheriv)(algorithm, cek, iv, { authTagLength: 16 });
+ decipher.setAuthTag(tag);
+ if (aad.byteLength) {
+ decipher.setAAD(aad, { plaintextLength: ciphertext.length });
+ }
+ const plaintext = decipher.update(ciphertext);
+ decipher.final();
+ return plaintext;
+ } catch {
+ throw new errors_js_1.JWEDecryptionFailed();
+ }
+ }
+ var decrypt = (enc, cek, ciphertext, iv, tag, aad) => {
+ let key;
+ if ((0, webcrypto_js_1.isCryptoKey)(cek)) {
+ (0, crypto_key_js_1.checkEncCryptoKey)(cek, enc, "decrypt");
+ key = crypto_1.KeyObject.from(cek);
+ } else if (cek instanceof Uint8Array || (0, is_key_object_js_1.default)(cek)) {
+ key = cek;
+ } else {
+ throw new TypeError((0, invalid_key_input_js_1.default)(cek, ...is_key_like_js_1.types, "Uint8Array"));
+ }
+ (0, check_cek_length_js_1.default)(enc, key);
+ (0, check_iv_length_js_1.default)(enc, iv);
+ switch (enc) {
+ case "A128CBC-HS256":
+ case "A192CBC-HS384":
+ case "A256CBC-HS512":
+ return cbcDecrypt(enc, key, ciphertext, iv, tag, aad);
+ case "A128GCM":
+ case "A192GCM":
+ case "A256GCM":
+ return gcmDecrypt(enc, key, ciphertext, iv, tag, aad);
+ default:
+ throw new errors_js_1.JOSENotSupported("Unsupported JWE Content Encryption Algorithm");
+ }
+ };
+ exports2.default = decrypt;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/zlib.js
+var require_zlib = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/zlib.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.deflate = exports2.inflate = void 0;
+ var util_1 = require("util");
+ var zlib_1 = require("zlib");
+ var errors_js_1 = require_errors3();
+ var inflateRaw = (0, util_1.promisify)(zlib_1.inflateRaw);
+ var deflateRaw = (0, util_1.promisify)(zlib_1.deflateRaw);
+ var inflate = (input) => inflateRaw(input, { maxOutputLength: 25e4 }).catch(() => {
+ throw new errors_js_1.JWEDecompressionFailed();
+ });
+ exports2.inflate = inflate;
+ var deflate = (input) => deflateRaw(input);
+ exports2.deflate = deflate;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/is_disjoint.js
+var require_is_disjoint = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/is_disjoint.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var isDisjoint = (...headers) => {
+ const sources = headers.filter(Boolean);
+ if (sources.length === 0 || sources.length === 1) {
+ return true;
+ }
+ let acc;
+ for (const header of sources) {
+ const parameters = Object.keys(header);
+ if (!acc || acc.size === 0) {
+ acc = new Set(parameters);
+ continue;
+ }
+ for (const parameter of parameters) {
+ if (acc.has(parameter)) {
+ return false;
+ }
+ acc.add(parameter);
+ }
+ }
+ return true;
+ };
+ exports2.default = isDisjoint;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/is_object.js
+var require_is_object = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/is_object.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ function isObjectLike(value) {
+ return typeof value === "object" && value !== null;
+ }
+ function isObject(input) {
+ if (!isObjectLike(input) || Object.prototype.toString.call(input) !== "[object Object]") {
+ return false;
+ }
+ if (Object.getPrototypeOf(input) === null) {
+ return true;
+ }
+ let proto = input;
+ while (Object.getPrototypeOf(proto) !== null) {
+ proto = Object.getPrototypeOf(proto);
+ }
+ return Object.getPrototypeOf(input) === proto;
+ }
+ exports2.default = isObject;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/aeskw.js
+var require_aeskw = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/aeskw.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.unwrap = exports2.wrap = void 0;
+ var buffer_1 = require("buffer");
+ var crypto_1 = require("crypto");
+ var errors_js_1 = require_errors3();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var webcrypto_js_1 = require_webcrypto();
+ var crypto_key_js_1 = require_crypto_key();
+ var is_key_object_js_1 = require_is_key_object();
+ var invalid_key_input_js_1 = require_invalid_key_input();
+ var ciphers_js_1 = require_ciphers();
+ var is_key_like_js_1 = require_is_key_like();
+ function checkKeySize(key, alg) {
+ if (key.symmetricKeySize << 3 !== parseInt(alg.slice(1, 4), 10)) {
+ throw new TypeError(`Invalid key size for alg: ${alg}`);
+ }
+ }
+ function ensureKeyObject(key, alg, usage) {
+ if ((0, is_key_object_js_1.default)(key)) {
+ return key;
+ }
+ if (key instanceof Uint8Array) {
+ return (0, crypto_1.createSecretKey)(key);
+ }
+ if ((0, webcrypto_js_1.isCryptoKey)(key)) {
+ (0, crypto_key_js_1.checkEncCryptoKey)(key, alg, usage);
+ return crypto_1.KeyObject.from(key);
+ }
+ throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types, "Uint8Array"));
+ }
+ var wrap = (alg, key, cek) => {
+ const size = parseInt(alg.slice(1, 4), 10);
+ const algorithm = `aes${size}-wrap`;
+ if (!(0, ciphers_js_1.default)(algorithm)) {
+ throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
+ }
+ const keyObject = ensureKeyObject(key, alg, "wrapKey");
+ checkKeySize(keyObject, alg);
+ const cipher = (0, crypto_1.createCipheriv)(algorithm, keyObject, buffer_1.Buffer.alloc(8, 166));
+ return (0, buffer_utils_js_1.concat)(cipher.update(cek), cipher.final());
+ };
+ exports2.wrap = wrap;
+ var unwrap = (alg, key, encryptedKey) => {
+ const size = parseInt(alg.slice(1, 4), 10);
+ const algorithm = `aes${size}-wrap`;
+ if (!(0, ciphers_js_1.default)(algorithm)) {
+ throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
+ }
+ const keyObject = ensureKeyObject(key, alg, "unwrapKey");
+ checkKeySize(keyObject, alg);
+ const cipher = (0, crypto_1.createDecipheriv)(algorithm, keyObject, buffer_1.Buffer.alloc(8, 166));
+ return (0, buffer_utils_js_1.concat)(cipher.update(encryptedKey), cipher.final());
+ };
+ exports2.unwrap = unwrap;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/get_named_curve.js
+var require_get_named_curve = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/get_named_curve.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.setCurve = exports2.weakMap = void 0;
+ var buffer_1 = require("buffer");
+ var crypto_1 = require("crypto");
+ var errors_js_1 = require_errors3();
+ var webcrypto_js_1 = require_webcrypto();
+ var is_key_object_js_1 = require_is_key_object();
+ var invalid_key_input_js_1 = require_invalid_key_input();
+ var is_key_like_js_1 = require_is_key_like();
+ var p256 = buffer_1.Buffer.from([42, 134, 72, 206, 61, 3, 1, 7]);
+ var p384 = buffer_1.Buffer.from([43, 129, 4, 0, 34]);
+ var p521 = buffer_1.Buffer.from([43, 129, 4, 0, 35]);
+ var secp256k1 = buffer_1.Buffer.from([43, 129, 4, 0, 10]);
+ exports2.weakMap = /* @__PURE__ */ new WeakMap();
+ var namedCurveToJOSE = (namedCurve) => {
+ switch (namedCurve) {
+ case "prime256v1":
+ return "P-256";
+ case "secp384r1":
+ return "P-384";
+ case "secp521r1":
+ return "P-521";
+ case "secp256k1":
+ return "secp256k1";
+ default:
+ throw new errors_js_1.JOSENotSupported("Unsupported key curve for this operation");
+ }
+ };
+ var getNamedCurve = (kee, raw) => {
+ var _a;
+ let key;
+ if ((0, webcrypto_js_1.isCryptoKey)(kee)) {
+ key = crypto_1.KeyObject.from(kee);
+ } else if ((0, is_key_object_js_1.default)(kee)) {
+ key = kee;
+ } else {
+ throw new TypeError((0, invalid_key_input_js_1.default)(kee, ...is_key_like_js_1.types));
+ }
+ if (key.type === "secret") {
+ throw new TypeError('only "private" or "public" type keys can be used for this operation');
+ }
+ switch (key.asymmetricKeyType) {
+ case "ed25519":
+ case "ed448":
+ return `Ed${key.asymmetricKeyType.slice(2)}`;
+ case "x25519":
+ case "x448":
+ return `X${key.asymmetricKeyType.slice(1)}`;
+ case "ec": {
+ if (exports2.weakMap.has(key)) {
+ return exports2.weakMap.get(key);
+ }
+ let namedCurve = (_a = key.asymmetricKeyDetails) === null || _a === void 0 ? void 0 : _a.namedCurve;
+ if (!namedCurve && key.type === "private") {
+ namedCurve = getNamedCurve((0, crypto_1.createPublicKey)(key), true);
+ } else if (!namedCurve) {
+ const buf = key.export({ format: "der", type: "spki" });
+ const i = buf[1] < 128 ? 14 : 15;
+ const len = buf[i];
+ const curveOid = buf.slice(i + 1, i + 1 + len);
+ if (curveOid.equals(p256)) {
+ namedCurve = "prime256v1";
+ } else if (curveOid.equals(p384)) {
+ namedCurve = "secp384r1";
+ } else if (curveOid.equals(p521)) {
+ namedCurve = "secp521r1";
+ } else if (curveOid.equals(secp256k1)) {
+ namedCurve = "secp256k1";
+ } else {
+ throw new errors_js_1.JOSENotSupported("Unsupported key curve for this operation");
+ }
+ }
+ if (raw)
+ return namedCurve;
+ const curve = namedCurveToJOSE(namedCurve);
+ exports2.weakMap.set(key, curve);
+ return curve;
+ }
+ default:
+ throw new TypeError("Invalid asymmetric key type for this operation");
+ }
+ };
+ function setCurve(keyObject, curve) {
+ exports2.weakMap.set(keyObject, curve);
+ }
+ exports2.setCurve = setCurve;
+ exports2.default = getNamedCurve;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/ecdhes.js
+var require_ecdhes = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/ecdhes.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.ecdhAllowed = exports2.generateEpk = exports2.deriveKey = void 0;
+ var crypto_1 = require("crypto");
+ var util_1 = require("util");
+ var get_named_curve_js_1 = require_get_named_curve();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var errors_js_1 = require_errors3();
+ var webcrypto_js_1 = require_webcrypto();
+ var crypto_key_js_1 = require_crypto_key();
+ var is_key_object_js_1 = require_is_key_object();
+ var invalid_key_input_js_1 = require_invalid_key_input();
+ var is_key_like_js_1 = require_is_key_like();
+ var generateKeyPair = (0, util_1.promisify)(crypto_1.generateKeyPair);
+ async function deriveKey(publicKee, privateKee, algorithm, keyLength, apu = new Uint8Array(0), apv = new Uint8Array(0)) {
+ let publicKey;
+ if ((0, webcrypto_js_1.isCryptoKey)(publicKee)) {
+ (0, crypto_key_js_1.checkEncCryptoKey)(publicKee, "ECDH");
+ publicKey = crypto_1.KeyObject.from(publicKee);
+ } else if ((0, is_key_object_js_1.default)(publicKee)) {
+ publicKey = publicKee;
+ } else {
+ throw new TypeError((0, invalid_key_input_js_1.default)(publicKee, ...is_key_like_js_1.types));
+ }
+ let privateKey;
+ if ((0, webcrypto_js_1.isCryptoKey)(privateKee)) {
+ (0, crypto_key_js_1.checkEncCryptoKey)(privateKee, "ECDH", "deriveBits");
+ privateKey = crypto_1.KeyObject.from(privateKee);
+ } else if ((0, is_key_object_js_1.default)(privateKee)) {
+ privateKey = privateKee;
+ } else {
+ throw new TypeError((0, invalid_key_input_js_1.default)(privateKee, ...is_key_like_js_1.types));
+ }
+ const value = (0, buffer_utils_js_1.concat)((0, buffer_utils_js_1.lengthAndInput)(buffer_utils_js_1.encoder.encode(algorithm)), (0, buffer_utils_js_1.lengthAndInput)(apu), (0, buffer_utils_js_1.lengthAndInput)(apv), (0, buffer_utils_js_1.uint32be)(keyLength));
+ const sharedSecret = (0, crypto_1.diffieHellman)({ privateKey, publicKey });
+ return (0, buffer_utils_js_1.concatKdf)(sharedSecret, keyLength, value);
+ }
+ exports2.deriveKey = deriveKey;
+ async function generateEpk(kee) {
+ let key;
+ if ((0, webcrypto_js_1.isCryptoKey)(kee)) {
+ key = crypto_1.KeyObject.from(kee);
+ } else if ((0, is_key_object_js_1.default)(kee)) {
+ key = kee;
+ } else {
+ throw new TypeError((0, invalid_key_input_js_1.default)(kee, ...is_key_like_js_1.types));
+ }
+ switch (key.asymmetricKeyType) {
+ case "x25519":
+ return generateKeyPair("x25519");
+ case "x448": {
+ return generateKeyPair("x448");
+ }
+ case "ec": {
+ const namedCurve = (0, get_named_curve_js_1.default)(key);
+ return generateKeyPair("ec", { namedCurve });
+ }
+ default:
+ throw new errors_js_1.JOSENotSupported("Invalid or unsupported EPK");
+ }
+ }
+ exports2.generateEpk = generateEpk;
+ var ecdhAllowed = (key) => ["P-256", "P-384", "P-521", "X25519", "X448"].includes((0, get_named_curve_js_1.default)(key));
+ exports2.ecdhAllowed = ecdhAllowed;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/check_p2s.js
+var require_check_p2s = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/check_p2s.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var errors_js_1 = require_errors3();
+ function checkP2s(p2s) {
+ if (!(p2s instanceof Uint8Array) || p2s.length < 8) {
+ throw new errors_js_1.JWEInvalid("PBES2 Salt Input must be 8 or more octets");
+ }
+ }
+ exports2.default = checkP2s;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/pbes2kw.js
+var require_pbes2kw = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/pbes2kw.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.decrypt = exports2.encrypt = void 0;
+ var util_1 = require("util");
+ var crypto_1 = require("crypto");
+ var random_js_1 = require_random3();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var base64url_js_1 = require_base64url();
+ var aeskw_js_1 = require_aeskw();
+ var check_p2s_js_1 = require_check_p2s();
+ var webcrypto_js_1 = require_webcrypto();
+ var crypto_key_js_1 = require_crypto_key();
+ var is_key_object_js_1 = require_is_key_object();
+ var invalid_key_input_js_1 = require_invalid_key_input();
+ var is_key_like_js_1 = require_is_key_like();
+ var pbkdf2 = (0, util_1.promisify)(crypto_1.pbkdf2);
+ function getPassword(key, alg) {
+ if ((0, is_key_object_js_1.default)(key)) {
+ return key.export();
+ }
+ if (key instanceof Uint8Array) {
+ return key;
+ }
+ if ((0, webcrypto_js_1.isCryptoKey)(key)) {
+ (0, crypto_key_js_1.checkEncCryptoKey)(key, alg, "deriveBits", "deriveKey");
+ return crypto_1.KeyObject.from(key).export();
+ }
+ throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types, "Uint8Array"));
+ }
+ var encrypt = async (alg, key, cek, p2c = 2048, p2s = (0, random_js_1.default)(new Uint8Array(16))) => {
+ (0, check_p2s_js_1.default)(p2s);
+ const salt = (0, buffer_utils_js_1.p2s)(alg, p2s);
+ const keylen = parseInt(alg.slice(13, 16), 10) >> 3;
+ const password = getPassword(key, alg);
+ const derivedKey = await pbkdf2(password, salt, p2c, keylen, `sha${alg.slice(8, 11)}`);
+ const encryptedKey = await (0, aeskw_js_1.wrap)(alg.slice(-6), derivedKey, cek);
+ return { encryptedKey, p2c, p2s: (0, base64url_js_1.encode)(p2s) };
+ };
+ exports2.encrypt = encrypt;
+ var decrypt = async (alg, key, encryptedKey, p2c, p2s) => {
+ (0, check_p2s_js_1.default)(p2s);
+ const salt = (0, buffer_utils_js_1.p2s)(alg, p2s);
+ const keylen = parseInt(alg.slice(13, 16), 10) >> 3;
+ const password = getPassword(key, alg);
+ const derivedKey = await pbkdf2(password, salt, p2c, keylen, `sha${alg.slice(8, 11)}`);
+ return (0, aeskw_js_1.unwrap)(alg.slice(-6), derivedKey, encryptedKey);
+ };
+ exports2.decrypt = decrypt;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/check_modulus_length.js
+var require_check_modulus_length = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/check_modulus_length.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.setModulusLength = exports2.weakMap = void 0;
+ exports2.weakMap = /* @__PURE__ */ new WeakMap();
+ var getLength = (buf, index) => {
+ let len = buf.readUInt8(1);
+ if ((len & 128) === 0) {
+ if (index === 0) {
+ return len;
+ }
+ return getLength(buf.subarray(2 + len), index - 1);
+ }
+ const num = len & 127;
+ len = 0;
+ for (let i = 0; i < num; i++) {
+ len <<= 8;
+ const j = buf.readUInt8(2 + i);
+ len |= j;
+ }
+ if (index === 0) {
+ return len;
+ }
+ return getLength(buf.subarray(2 + len), index - 1);
+ };
+ var getLengthOfSeqIndex = (sequence, index) => {
+ const len = sequence.readUInt8(1);
+ if ((len & 128) === 0) {
+ return getLength(sequence.subarray(2), index);
+ }
+ const num = len & 127;
+ return getLength(sequence.subarray(2 + num), index);
+ };
+ var getModulusLength = (key) => {
+ var _a, _b;
+ if (exports2.weakMap.has(key)) {
+ return exports2.weakMap.get(key);
+ }
+ const modulusLength = (_b = (_a = key.asymmetricKeyDetails) === null || _a === void 0 ? void 0 : _a.modulusLength) !== null && _b !== void 0 ? _b : getLengthOfSeqIndex(key.export({ format: "der", type: "pkcs1" }), key.type === "private" ? 1 : 0) - 1 << 3;
+ exports2.weakMap.set(key, modulusLength);
+ return modulusLength;
+ };
+ var setModulusLength = (keyObject, modulusLength) => {
+ exports2.weakMap.set(keyObject, modulusLength);
+ };
+ exports2.setModulusLength = setModulusLength;
+ exports2.default = (key, alg) => {
+ if (getModulusLength(key) < 2048) {
+ throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);
+ }
+ };
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/rsaes.js
+var require_rsaes = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/rsaes.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.decrypt = exports2.encrypt = void 0;
+ var crypto_1 = require("crypto");
+ var check_modulus_length_js_1 = require_check_modulus_length();
+ var webcrypto_js_1 = require_webcrypto();
+ var crypto_key_js_1 = require_crypto_key();
+ var is_key_object_js_1 = require_is_key_object();
+ var invalid_key_input_js_1 = require_invalid_key_input();
+ var is_key_like_js_1 = require_is_key_like();
+ var checkKey = (key, alg) => {
+ if (key.asymmetricKeyType !== "rsa") {
+ throw new TypeError("Invalid key for this operation, its asymmetricKeyType must be rsa");
+ }
+ (0, check_modulus_length_js_1.default)(key, alg);
+ };
+ var resolvePadding = (alg) => {
+ switch (alg) {
+ case "RSA-OAEP":
+ case "RSA-OAEP-256":
+ case "RSA-OAEP-384":
+ case "RSA-OAEP-512":
+ return crypto_1.constants.RSA_PKCS1_OAEP_PADDING;
+ case "RSA1_5":
+ return crypto_1.constants.RSA_PKCS1_PADDING;
+ default:
+ return void 0;
+ }
+ };
+ var resolveOaepHash = (alg) => {
+ switch (alg) {
+ case "RSA-OAEP":
+ return "sha1";
+ case "RSA-OAEP-256":
+ return "sha256";
+ case "RSA-OAEP-384":
+ return "sha384";
+ case "RSA-OAEP-512":
+ return "sha512";
+ default:
+ return void 0;
+ }
+ };
+ function ensureKeyObject(key, alg, ...usages) {
+ if ((0, is_key_object_js_1.default)(key)) {
+ return key;
+ }
+ if ((0, webcrypto_js_1.isCryptoKey)(key)) {
+ (0, crypto_key_js_1.checkEncCryptoKey)(key, alg, ...usages);
+ return crypto_1.KeyObject.from(key);
+ }
+ throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types));
+ }
+ var encrypt = (alg, key, cek) => {
+ const padding = resolvePadding(alg);
+ const oaepHash = resolveOaepHash(alg);
+ const keyObject = ensureKeyObject(key, alg, "wrapKey", "encrypt");
+ checkKey(keyObject, alg);
+ return (0, crypto_1.publicEncrypt)({ key: keyObject, oaepHash, padding }, cek);
+ };
+ exports2.encrypt = encrypt;
+ var decrypt = (alg, key, encryptedKey) => {
+ const padding = resolvePadding(alg);
+ const oaepHash = resolveOaepHash(alg);
+ const keyObject = ensureKeyObject(key, alg, "unwrapKey", "decrypt");
+ checkKey(keyObject, alg);
+ return (0, crypto_1.privateDecrypt)({ key: keyObject, oaepHash, padding }, encryptedKey);
+ };
+ exports2.decrypt = decrypt;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/cek.js
+var require_cek = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/cek.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.bitLength = void 0;
+ var errors_js_1 = require_errors3();
+ var random_js_1 = require_random3();
+ function bitLength(alg) {
+ switch (alg) {
+ case "A128GCM":
+ return 128;
+ case "A192GCM":
+ return 192;
+ case "A256GCM":
+ case "A128CBC-HS256":
+ return 256;
+ case "A192CBC-HS384":
+ return 384;
+ case "A256CBC-HS512":
+ return 512;
+ default:
+ throw new errors_js_1.JOSENotSupported(`Unsupported JWE Algorithm: ${alg}`);
+ }
+ }
+ exports2.bitLength = bitLength;
+ exports2.default = (alg) => (0, random_js_1.default)(new Uint8Array(bitLength(alg) >> 3));
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/asn1.js
+var require_asn1 = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/asn1.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.fromX509 = exports2.fromSPKI = exports2.fromPKCS8 = exports2.toPKCS8 = exports2.toSPKI = void 0;
+ var crypto_1 = require("crypto");
+ var buffer_1 = require("buffer");
+ var webcrypto_js_1 = require_webcrypto();
+ var is_key_object_js_1 = require_is_key_object();
+ var invalid_key_input_js_1 = require_invalid_key_input();
+ var is_key_like_js_1 = require_is_key_like();
+ var genericExport = (keyType, keyFormat, key) => {
+ let keyObject;
+ if ((0, webcrypto_js_1.isCryptoKey)(key)) {
+ if (!key.extractable) {
+ throw new TypeError("CryptoKey is not extractable");
+ }
+ keyObject = crypto_1.KeyObject.from(key);
+ } else if ((0, is_key_object_js_1.default)(key)) {
+ keyObject = key;
+ } else {
+ throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types));
+ }
+ if (keyObject.type !== keyType) {
+ throw new TypeError(`key is not a ${keyType} key`);
+ }
+ return keyObject.export({ format: "pem", type: keyFormat });
+ };
+ var toSPKI = (key) => {
+ return genericExport("public", "spki", key);
+ };
+ exports2.toSPKI = toSPKI;
+ var toPKCS8 = (key) => {
+ return genericExport("private", "pkcs8", key);
+ };
+ exports2.toPKCS8 = toPKCS8;
+ var fromPKCS8 = (pem) => (0, crypto_1.createPrivateKey)({
+ key: buffer_1.Buffer.from(pem.replace(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g, ""), "base64"),
+ type: "pkcs8",
+ format: "der"
+ });
+ exports2.fromPKCS8 = fromPKCS8;
+ var fromSPKI = (pem) => (0, crypto_1.createPublicKey)({
+ key: buffer_1.Buffer.from(pem.replace(/(?:-----(?:BEGIN|END) PUBLIC KEY-----|\s)/g, ""), "base64"),
+ type: "spki",
+ format: "der"
+ });
+ exports2.fromSPKI = fromSPKI;
+ var fromX509 = (pem) => (0, crypto_1.createPublicKey)({
+ key: pem,
+ type: "spki",
+ format: "pem"
+ });
+ exports2.fromX509 = fromX509;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/asn1_sequence_encoder.js
+var require_asn1_sequence_encoder = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/asn1_sequence_encoder.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var buffer_1 = require("buffer");
+ var errors_js_1 = require_errors3();
+ var tagInteger = 2;
+ var tagBitStr = 3;
+ var tagOctStr = 4;
+ var tagSequence = 48;
+ var bZero = buffer_1.Buffer.from([0]);
+ var bTagInteger = buffer_1.Buffer.from([tagInteger]);
+ var bTagBitStr = buffer_1.Buffer.from([tagBitStr]);
+ var bTagSequence = buffer_1.Buffer.from([tagSequence]);
+ var bTagOctStr = buffer_1.Buffer.from([tagOctStr]);
+ var encodeLength = (len) => {
+ if (len < 128)
+ return buffer_1.Buffer.from([len]);
+ const buffer = buffer_1.Buffer.alloc(5);
+ buffer.writeUInt32BE(len, 1);
+ let offset = 1;
+ while (buffer[offset] === 0)
+ offset++;
+ buffer[offset - 1] = 128 | 5 - offset;
+ return buffer.slice(offset - 1);
+ };
+ var oids = /* @__PURE__ */ new Map([
+ ["P-256", buffer_1.Buffer.from("06 08 2A 86 48 CE 3D 03 01 07".replace(/ /g, ""), "hex")],
+ ["secp256k1", buffer_1.Buffer.from("06 05 2B 81 04 00 0A".replace(/ /g, ""), "hex")],
+ ["P-384", buffer_1.Buffer.from("06 05 2B 81 04 00 22".replace(/ /g, ""), "hex")],
+ ["P-521", buffer_1.Buffer.from("06 05 2B 81 04 00 23".replace(/ /g, ""), "hex")],
+ ["ecPublicKey", buffer_1.Buffer.from("06 07 2A 86 48 CE 3D 02 01".replace(/ /g, ""), "hex")],
+ ["X25519", buffer_1.Buffer.from("06 03 2B 65 6E".replace(/ /g, ""), "hex")],
+ ["X448", buffer_1.Buffer.from("06 03 2B 65 6F".replace(/ /g, ""), "hex")],
+ ["Ed25519", buffer_1.Buffer.from("06 03 2B 65 70".replace(/ /g, ""), "hex")],
+ ["Ed448", buffer_1.Buffer.from("06 03 2B 65 71".replace(/ /g, ""), "hex")]
+ ]);
+ var DumbAsn1Encoder = class {
+ constructor() {
+ this.length = 0;
+ this.elements = [];
+ }
+ oidFor(oid) {
+ const bOid = oids.get(oid);
+ if (!bOid) {
+ throw new errors_js_1.JOSENotSupported("Invalid or unsupported OID");
+ }
+ this.elements.push(bOid);
+ this.length += bOid.length;
+ }
+ zero() {
+ this.elements.push(bTagInteger, buffer_1.Buffer.from([1]), bZero);
+ this.length += 3;
+ }
+ one() {
+ this.elements.push(bTagInteger, buffer_1.Buffer.from([1]), buffer_1.Buffer.from([1]));
+ this.length += 3;
+ }
+ unsignedInteger(integer) {
+ if (integer[0] & 128) {
+ const len = encodeLength(integer.length + 1);
+ this.elements.push(bTagInteger, len, bZero, integer);
+ this.length += 2 + len.length + integer.length;
+ } else {
+ let i = 0;
+ while (integer[i] === 0 && (integer[i + 1] & 128) === 0)
+ i++;
+ const len = encodeLength(integer.length - i);
+ this.elements.push(bTagInteger, encodeLength(integer.length - i), integer.slice(i));
+ this.length += 1 + len.length + integer.length - i;
+ }
+ }
+ octStr(octStr) {
+ const len = encodeLength(octStr.length);
+ this.elements.push(bTagOctStr, encodeLength(octStr.length), octStr);
+ this.length += 1 + len.length + octStr.length;
+ }
+ bitStr(bitS) {
+ const len = encodeLength(bitS.length + 1);
+ this.elements.push(bTagBitStr, encodeLength(bitS.length + 1), bZero, bitS);
+ this.length += 1 + len.length + bitS.length + 1;
+ }
+ add(seq) {
+ this.elements.push(seq);
+ this.length += seq.length;
+ }
+ end(tag = bTagSequence) {
+ const len = encodeLength(this.length);
+ return buffer_1.Buffer.concat([tag, len, ...this.elements], 1 + len.length + this.length);
+ }
+ };
+ exports2.default = DumbAsn1Encoder;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/flags.js
+var require_flags = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/flags.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.jwkImport = exports2.jwkExport = exports2.rsaPssParams = exports2.oneShotCallback = void 0;
+ var [major, minor] = process.versions.node.split(".").map((str) => parseInt(str, 10));
+ exports2.oneShotCallback = major >= 16 || major === 15 && minor >= 13;
+ exports2.rsaPssParams = !("electron" in process.versions) && (major >= 17 || major === 16 && minor >= 9);
+ exports2.jwkExport = major >= 16 || major === 15 && minor >= 9;
+ exports2.jwkImport = major >= 16 || major === 15 && minor >= 12;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/jwk_to_key.js
+var require_jwk_to_key = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/jwk_to_key.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var buffer_1 = require("buffer");
+ var crypto_1 = require("crypto");
+ var base64url_js_1 = require_base64url();
+ var errors_js_1 = require_errors3();
+ var get_named_curve_js_1 = require_get_named_curve();
+ var check_modulus_length_js_1 = require_check_modulus_length();
+ var asn1_sequence_encoder_js_1 = require_asn1_sequence_encoder();
+ var flags_js_1 = require_flags();
+ var parse = (jwk) => {
+ if (flags_js_1.jwkImport && jwk.kty !== "oct") {
+ return jwk.d ? (0, crypto_1.createPrivateKey)({ format: "jwk", key: jwk }) : (0, crypto_1.createPublicKey)({ format: "jwk", key: jwk });
+ }
+ switch (jwk.kty) {
+ case "oct": {
+ return (0, crypto_1.createSecretKey)((0, base64url_js_1.decode)(jwk.k));
+ }
+ case "RSA": {
+ const enc = new asn1_sequence_encoder_js_1.default();
+ const isPrivate = jwk.d !== void 0;
+ const modulus = buffer_1.Buffer.from(jwk.n, "base64");
+ const exponent = buffer_1.Buffer.from(jwk.e, "base64");
+ if (isPrivate) {
+ enc.zero();
+ enc.unsignedInteger(modulus);
+ enc.unsignedInteger(exponent);
+ enc.unsignedInteger(buffer_1.Buffer.from(jwk.d, "base64"));
+ enc.unsignedInteger(buffer_1.Buffer.from(jwk.p, "base64"));
+ enc.unsignedInteger(buffer_1.Buffer.from(jwk.q, "base64"));
+ enc.unsignedInteger(buffer_1.Buffer.from(jwk.dp, "base64"));
+ enc.unsignedInteger(buffer_1.Buffer.from(jwk.dq, "base64"));
+ enc.unsignedInteger(buffer_1.Buffer.from(jwk.qi, "base64"));
+ } else {
+ enc.unsignedInteger(modulus);
+ enc.unsignedInteger(exponent);
+ }
+ const der = enc.end();
+ const createInput = {
+ key: der,
+ format: "der",
+ type: "pkcs1"
+ };
+ const keyObject = isPrivate ? (0, crypto_1.createPrivateKey)(createInput) : (0, crypto_1.createPublicKey)(createInput);
+ (0, check_modulus_length_js_1.setModulusLength)(keyObject, modulus.length << 3);
+ return keyObject;
+ }
+ case "EC": {
+ const enc = new asn1_sequence_encoder_js_1.default();
+ const isPrivate = jwk.d !== void 0;
+ const pub = buffer_1.Buffer.concat([
+ buffer_1.Buffer.alloc(1, 4),
+ buffer_1.Buffer.from(jwk.x, "base64"),
+ buffer_1.Buffer.from(jwk.y, "base64")
+ ]);
+ if (isPrivate) {
+ enc.zero();
+ const enc$12 = new asn1_sequence_encoder_js_1.default();
+ enc$12.oidFor("ecPublicKey");
+ enc$12.oidFor(jwk.crv);
+ enc.add(enc$12.end());
+ const enc$2 = new asn1_sequence_encoder_js_1.default();
+ enc$2.one();
+ enc$2.octStr(buffer_1.Buffer.from(jwk.d, "base64"));
+ const enc$3 = new asn1_sequence_encoder_js_1.default();
+ enc$3.bitStr(pub);
+ const f2 = enc$3.end(buffer_1.Buffer.from([161]));
+ enc$2.add(f2);
+ const f = enc$2.end();
+ const enc$4 = new asn1_sequence_encoder_js_1.default();
+ enc$4.add(f);
+ const f3 = enc$4.end(buffer_1.Buffer.from([4]));
+ enc.add(f3);
+ const der2 = enc.end();
+ const keyObject2 = (0, crypto_1.createPrivateKey)({ key: der2, format: "der", type: "pkcs8" });
+ (0, get_named_curve_js_1.setCurve)(keyObject2, jwk.crv);
+ return keyObject2;
+ }
+ const enc$1 = new asn1_sequence_encoder_js_1.default();
+ enc$1.oidFor("ecPublicKey");
+ enc$1.oidFor(jwk.crv);
+ enc.add(enc$1.end());
+ enc.bitStr(pub);
+ const der = enc.end();
+ const keyObject = (0, crypto_1.createPublicKey)({ key: der, format: "der", type: "spki" });
+ (0, get_named_curve_js_1.setCurve)(keyObject, jwk.crv);
+ return keyObject;
+ }
+ case "OKP": {
+ const enc = new asn1_sequence_encoder_js_1.default();
+ const isPrivate = jwk.d !== void 0;
+ if (isPrivate) {
+ enc.zero();
+ const enc$12 = new asn1_sequence_encoder_js_1.default();
+ enc$12.oidFor(jwk.crv);
+ enc.add(enc$12.end());
+ const enc$2 = new asn1_sequence_encoder_js_1.default();
+ enc$2.octStr(buffer_1.Buffer.from(jwk.d, "base64"));
+ const f = enc$2.end(buffer_1.Buffer.from([4]));
+ enc.add(f);
+ const der2 = enc.end();
+ return (0, crypto_1.createPrivateKey)({ key: der2, format: "der", type: "pkcs8" });
+ }
+ const enc$1 = new asn1_sequence_encoder_js_1.default();
+ enc$1.oidFor(jwk.crv);
+ enc.add(enc$1.end());
+ enc.bitStr(buffer_1.Buffer.from(jwk.x, "base64"));
+ const der = enc.end();
+ return (0, crypto_1.createPublicKey)({ key: der, format: "der", type: "spki" });
+ }
+ default:
+ throw new errors_js_1.JOSENotSupported('Invalid or unsupported JWK "kty" (Key Type) Parameter value');
+ }
+ };
+ exports2.default = parse;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/key/import.js
+var require_import = __commonJS({
+ "node_modules/jose/dist/node/cjs/key/import.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.importJWK = exports2.importPKCS8 = exports2.importX509 = exports2.importSPKI = void 0;
+ var base64url_js_1 = require_base64url();
+ var asn1_js_1 = require_asn1();
+ var jwk_to_key_js_1 = require_jwk_to_key();
+ var errors_js_1 = require_errors3();
+ var is_object_js_1 = require_is_object();
+ async function importSPKI(spki, alg, options) {
+ if (typeof spki !== "string" || spki.indexOf("-----BEGIN PUBLIC KEY-----") !== 0) {
+ throw new TypeError('"spki" must be SPKI formatted string');
+ }
+ return (0, asn1_js_1.fromSPKI)(spki, alg, options);
+ }
+ exports2.importSPKI = importSPKI;
+ async function importX509(x509, alg, options) {
+ if (typeof x509 !== "string" || x509.indexOf("-----BEGIN CERTIFICATE-----") !== 0) {
+ throw new TypeError('"x509" must be X.509 formatted string');
+ }
+ return (0, asn1_js_1.fromX509)(x509, alg, options);
+ }
+ exports2.importX509 = importX509;
+ async function importPKCS8(pkcs8, alg, options) {
+ if (typeof pkcs8 !== "string" || pkcs8.indexOf("-----BEGIN PRIVATE KEY-----") !== 0) {
+ throw new TypeError('"pkcs8" must be PKCS#8 formatted string');
+ }
+ return (0, asn1_js_1.fromPKCS8)(pkcs8, alg, options);
+ }
+ exports2.importPKCS8 = importPKCS8;
+ async function importJWK(jwk, alg, octAsKeyObject) {
+ var _a;
+ if (!(0, is_object_js_1.default)(jwk)) {
+ throw new TypeError("JWK must be an object");
+ }
+ alg || (alg = jwk.alg);
+ switch (jwk.kty) {
+ case "oct":
+ if (typeof jwk.k !== "string" || !jwk.k) {
+ throw new TypeError('missing "k" (Key Value) Parameter value');
+ }
+ octAsKeyObject !== null && octAsKeyObject !== void 0 ? octAsKeyObject : octAsKeyObject = jwk.ext !== true;
+ if (octAsKeyObject) {
+ return (0, jwk_to_key_js_1.default)({ ...jwk, alg, ext: (_a = jwk.ext) !== null && _a !== void 0 ? _a : false });
+ }
+ return (0, base64url_js_1.decode)(jwk.k);
+ case "RSA":
+ if (jwk.oth !== void 0) {
+ throw new errors_js_1.JOSENotSupported('RSA JWK "oth" (Other Primes Info) Parameter value is not supported');
+ }
+ case "EC":
+ case "OKP":
+ return (0, jwk_to_key_js_1.default)({ ...jwk, alg });
+ default:
+ throw new errors_js_1.JOSENotSupported('Unsupported "kty" (Key Type) Parameter value');
+ }
+ }
+ exports2.importJWK = importJWK;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/check_key_type.js
+var require_check_key_type = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/check_key_type.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var invalid_key_input_js_1 = require_invalid_key_input();
+ var is_key_like_js_1 = require_is_key_like();
+ var symmetricTypeCheck = (alg, key) => {
+ if (key instanceof Uint8Array)
+ return;
+ if (!(0, is_key_like_js_1.default)(key)) {
+ throw new TypeError((0, invalid_key_input_js_1.withAlg)(alg, key, ...is_key_like_js_1.types, "Uint8Array"));
+ }
+ if (key.type !== "secret") {
+ throw new TypeError(`${is_key_like_js_1.types.join(" or ")} instances for symmetric algorithms must be of type "secret"`);
+ }
+ };
+ var asymmetricTypeCheck = (alg, key, usage) => {
+ if (!(0, is_key_like_js_1.default)(key)) {
+ throw new TypeError((0, invalid_key_input_js_1.withAlg)(alg, key, ...is_key_like_js_1.types));
+ }
+ if (key.type === "secret") {
+ throw new TypeError(`${is_key_like_js_1.types.join(" or ")} instances for asymmetric algorithms must not be of type "secret"`);
+ }
+ if (usage === "sign" && key.type === "public") {
+ throw new TypeError(`${is_key_like_js_1.types.join(" or ")} instances for asymmetric algorithm signing must be of type "private"`);
+ }
+ if (usage === "decrypt" && key.type === "public") {
+ throw new TypeError(`${is_key_like_js_1.types.join(" or ")} instances for asymmetric algorithm decryption must be of type "private"`);
+ }
+ if (key.algorithm && usage === "verify" && key.type === "private") {
+ throw new TypeError(`${is_key_like_js_1.types.join(" or ")} instances for asymmetric algorithm verifying must be of type "public"`);
+ }
+ if (key.algorithm && usage === "encrypt" && key.type === "private") {
+ throw new TypeError(`${is_key_like_js_1.types.join(" or ")} instances for asymmetric algorithm encryption must be of type "public"`);
+ }
+ };
+ var checkKeyType = (alg, key, usage) => {
+ const symmetric = alg.startsWith("HS") || alg === "dir" || alg.startsWith("PBES2") || /^A\d{3}(?:GCM)?KW$/.test(alg);
+ if (symmetric) {
+ symmetricTypeCheck(alg, key);
+ } else {
+ asymmetricTypeCheck(alg, key, usage);
+ }
+ };
+ exports2.default = checkKeyType;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/encrypt.js
+var require_encrypt = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/encrypt.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var crypto_1 = require("crypto");
+ var check_iv_length_js_1 = require_check_iv_length();
+ var check_cek_length_js_1 = require_check_cek_length();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var cbc_tag_js_1 = require_cbc_tag();
+ var webcrypto_js_1 = require_webcrypto();
+ var crypto_key_js_1 = require_crypto_key();
+ var is_key_object_js_1 = require_is_key_object();
+ var invalid_key_input_js_1 = require_invalid_key_input();
+ var errors_js_1 = require_errors3();
+ var ciphers_js_1 = require_ciphers();
+ var is_key_like_js_1 = require_is_key_like();
+ function cbcEncrypt(enc, plaintext, cek, iv, aad) {
+ const keySize = parseInt(enc.slice(1, 4), 10);
+ if ((0, is_key_object_js_1.default)(cek)) {
+ cek = cek.export();
+ }
+ const encKey = cek.subarray(keySize >> 3);
+ const macKey = cek.subarray(0, keySize >> 3);
+ const algorithm = `aes-${keySize}-cbc`;
+ if (!(0, ciphers_js_1.default)(algorithm)) {
+ throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);
+ }
+ const cipher = (0, crypto_1.createCipheriv)(algorithm, encKey, iv);
+ const ciphertext = (0, buffer_utils_js_1.concat)(cipher.update(plaintext), cipher.final());
+ const macSize = parseInt(enc.slice(-3), 10);
+ const tag = (0, cbc_tag_js_1.default)(aad, iv, ciphertext, macSize, macKey, keySize);
+ return { ciphertext, tag };
+ }
+ function gcmEncrypt(enc, plaintext, cek, iv, aad) {
+ const keySize = parseInt(enc.slice(1, 4), 10);
+ const algorithm = `aes-${keySize}-gcm`;
+ if (!(0, ciphers_js_1.default)(algorithm)) {
+ throw new errors_js_1.JOSENotSupported(`alg ${enc} is not supported by your javascript runtime`);
+ }
+ const cipher = (0, crypto_1.createCipheriv)(algorithm, cek, iv, { authTagLength: 16 });
+ if (aad.byteLength) {
+ cipher.setAAD(aad, { plaintextLength: plaintext.length });
+ }
+ const ciphertext = cipher.update(plaintext);
+ cipher.final();
+ const tag = cipher.getAuthTag();
+ return { ciphertext, tag };
+ }
+ var encrypt = (enc, plaintext, cek, iv, aad) => {
+ let key;
+ if ((0, webcrypto_js_1.isCryptoKey)(cek)) {
+ (0, crypto_key_js_1.checkEncCryptoKey)(cek, enc, "encrypt");
+ key = crypto_1.KeyObject.from(cek);
+ } else if (cek instanceof Uint8Array || (0, is_key_object_js_1.default)(cek)) {
+ key = cek;
+ } else {
+ throw new TypeError((0, invalid_key_input_js_1.default)(cek, ...is_key_like_js_1.types, "Uint8Array"));
+ }
+ (0, check_cek_length_js_1.default)(enc, key);
+ (0, check_iv_length_js_1.default)(enc, iv);
+ switch (enc) {
+ case "A128CBC-HS256":
+ case "A192CBC-HS384":
+ case "A256CBC-HS512":
+ return cbcEncrypt(enc, plaintext, key, iv, aad);
+ case "A128GCM":
+ case "A192GCM":
+ case "A256GCM":
+ return gcmEncrypt(enc, plaintext, key, iv, aad);
+ default:
+ throw new errors_js_1.JOSENotSupported("Unsupported JWE Content Encryption Algorithm");
+ }
+ };
+ exports2.default = encrypt;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/aesgcmkw.js
+var require_aesgcmkw = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/aesgcmkw.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.unwrap = exports2.wrap = void 0;
+ var encrypt_js_1 = require_encrypt();
+ var decrypt_js_1 = require_decrypt();
+ var iv_js_1 = require_iv();
+ var base64url_js_1 = require_base64url();
+ async function wrap(alg, key, cek, iv) {
+ const jweAlgorithm = alg.slice(0, 7);
+ iv || (iv = (0, iv_js_1.default)(jweAlgorithm));
+ const { ciphertext: encryptedKey, tag } = await (0, encrypt_js_1.default)(jweAlgorithm, cek, key, iv, new Uint8Array(0));
+ return { encryptedKey, iv: (0, base64url_js_1.encode)(iv), tag: (0, base64url_js_1.encode)(tag) };
+ }
+ exports2.wrap = wrap;
+ async function unwrap(alg, key, encryptedKey, iv, tag) {
+ const jweAlgorithm = alg.slice(0, 7);
+ return (0, decrypt_js_1.default)(jweAlgorithm, key, encryptedKey, iv, tag, new Uint8Array(0));
+ }
+ exports2.unwrap = unwrap;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/decrypt_key_management.js
+var require_decrypt_key_management = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/decrypt_key_management.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var aeskw_js_1 = require_aeskw();
+ var ECDH = require_ecdhes();
+ var pbes2kw_js_1 = require_pbes2kw();
+ var rsaes_js_1 = require_rsaes();
+ var base64url_js_1 = require_base64url();
+ var errors_js_1 = require_errors3();
+ var cek_js_1 = require_cek();
+ var import_js_1 = require_import();
+ var check_key_type_js_1 = require_check_key_type();
+ var is_object_js_1 = require_is_object();
+ var aesgcmkw_js_1 = require_aesgcmkw();
+ async function decryptKeyManagement(alg, key, encryptedKey, joseHeader, options) {
+ (0, check_key_type_js_1.default)(alg, key, "decrypt");
+ switch (alg) {
+ case "dir": {
+ if (encryptedKey !== void 0)
+ throw new errors_js_1.JWEInvalid("Encountered unexpected JWE Encrypted Key");
+ return key;
+ }
+ case "ECDH-ES":
+ if (encryptedKey !== void 0)
+ throw new errors_js_1.JWEInvalid("Encountered unexpected JWE Encrypted Key");
+ case "ECDH-ES+A128KW":
+ case "ECDH-ES+A192KW":
+ case "ECDH-ES+A256KW": {
+ if (!(0, is_object_js_1.default)(joseHeader.epk))
+ throw new errors_js_1.JWEInvalid(`JOSE Header "epk" (Ephemeral Public Key) missing or invalid`);
+ if (!ECDH.ecdhAllowed(key))
+ throw new errors_js_1.JOSENotSupported("ECDH with the provided key is not allowed or not supported by your javascript runtime");
+ const epk = await (0, import_js_1.importJWK)(joseHeader.epk, alg);
+ let partyUInfo;
+ let partyVInfo;
+ if (joseHeader.apu !== void 0) {
+ if (typeof joseHeader.apu !== "string")
+ throw new errors_js_1.JWEInvalid(`JOSE Header "apu" (Agreement PartyUInfo) invalid`);
+ try {
+ partyUInfo = (0, base64url_js_1.decode)(joseHeader.apu);
+ } catch {
+ throw new errors_js_1.JWEInvalid("Failed to base64url decode the apu");
+ }
+ }
+ if (joseHeader.apv !== void 0) {
+ if (typeof joseHeader.apv !== "string")
+ throw new errors_js_1.JWEInvalid(`JOSE Header "apv" (Agreement PartyVInfo) invalid`);
+ try {
+ partyVInfo = (0, base64url_js_1.decode)(joseHeader.apv);
+ } catch {
+ throw new errors_js_1.JWEInvalid("Failed to base64url decode the apv");
+ }
+ }
+ const sharedSecret = await ECDH.deriveKey(epk, key, alg === "ECDH-ES" ? joseHeader.enc : alg, alg === "ECDH-ES" ? (0, cek_js_1.bitLength)(joseHeader.enc) : parseInt(alg.slice(-5, -2), 10), partyUInfo, partyVInfo);
+ if (alg === "ECDH-ES")
+ return sharedSecret;
+ if (encryptedKey === void 0)
+ throw new errors_js_1.JWEInvalid("JWE Encrypted Key missing");
+ return (0, aeskw_js_1.unwrap)(alg.slice(-6), sharedSecret, encryptedKey);
+ }
+ case "RSA1_5":
+ case "RSA-OAEP":
+ case "RSA-OAEP-256":
+ case "RSA-OAEP-384":
+ case "RSA-OAEP-512": {
+ if (encryptedKey === void 0)
+ throw new errors_js_1.JWEInvalid("JWE Encrypted Key missing");
+ return (0, rsaes_js_1.decrypt)(alg, key, encryptedKey);
+ }
+ case "PBES2-HS256+A128KW":
+ case "PBES2-HS384+A192KW":
+ case "PBES2-HS512+A256KW": {
+ if (encryptedKey === void 0)
+ throw new errors_js_1.JWEInvalid("JWE Encrypted Key missing");
+ if (typeof joseHeader.p2c !== "number")
+ throw new errors_js_1.JWEInvalid(`JOSE Header "p2c" (PBES2 Count) missing or invalid`);
+ const p2cLimit = (options === null || options === void 0 ? void 0 : options.maxPBES2Count) || 1e4;
+ if (joseHeader.p2c > p2cLimit)
+ throw new errors_js_1.JWEInvalid(`JOSE Header "p2c" (PBES2 Count) out is of acceptable bounds`);
+ if (typeof joseHeader.p2s !== "string")
+ throw new errors_js_1.JWEInvalid(`JOSE Header "p2s" (PBES2 Salt) missing or invalid`);
+ let p2s;
+ try {
+ p2s = (0, base64url_js_1.decode)(joseHeader.p2s);
+ } catch {
+ throw new errors_js_1.JWEInvalid("Failed to base64url decode the p2s");
+ }
+ return (0, pbes2kw_js_1.decrypt)(alg, key, encryptedKey, joseHeader.p2c, p2s);
+ }
+ case "A128KW":
+ case "A192KW":
+ case "A256KW": {
+ if (encryptedKey === void 0)
+ throw new errors_js_1.JWEInvalid("JWE Encrypted Key missing");
+ return (0, aeskw_js_1.unwrap)(alg, key, encryptedKey);
+ }
+ case "A128GCMKW":
+ case "A192GCMKW":
+ case "A256GCMKW": {
+ if (encryptedKey === void 0)
+ throw new errors_js_1.JWEInvalid("JWE Encrypted Key missing");
+ if (typeof joseHeader.iv !== "string")
+ throw new errors_js_1.JWEInvalid(`JOSE Header "iv" (Initialization Vector) missing or invalid`);
+ if (typeof joseHeader.tag !== "string")
+ throw new errors_js_1.JWEInvalid(`JOSE Header "tag" (Authentication Tag) missing or invalid`);
+ let iv;
+ try {
+ iv = (0, base64url_js_1.decode)(joseHeader.iv);
+ } catch {
+ throw new errors_js_1.JWEInvalid("Failed to base64url decode the iv");
+ }
+ let tag;
+ try {
+ tag = (0, base64url_js_1.decode)(joseHeader.tag);
+ } catch {
+ throw new errors_js_1.JWEInvalid("Failed to base64url decode the tag");
+ }
+ return (0, aesgcmkw_js_1.unwrap)(alg, key, encryptedKey, iv, tag);
+ }
+ default: {
+ throw new errors_js_1.JOSENotSupported('Invalid or unsupported "alg" (JWE Algorithm) header value');
+ }
+ }
+ }
+ exports2.default = decryptKeyManagement;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/validate_crit.js
+var require_validate_crit = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/validate_crit.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var errors_js_1 = require_errors3();
+ function validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {
+ if (joseHeader.crit !== void 0 && protectedHeader.crit === void 0) {
+ throw new Err('"crit" (Critical) Header Parameter MUST be integrity protected');
+ }
+ if (!protectedHeader || protectedHeader.crit === void 0) {
+ return /* @__PURE__ */ new Set();
+ }
+ if (!Array.isArray(protectedHeader.crit) || protectedHeader.crit.length === 0 || protectedHeader.crit.some((input) => typeof input !== "string" || input.length === 0)) {
+ throw new Err('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');
+ }
+ let recognized;
+ if (recognizedOption !== void 0) {
+ recognized = new Map([...Object.entries(recognizedOption), ...recognizedDefault.entries()]);
+ } else {
+ recognized = recognizedDefault;
+ }
+ for (const parameter of protectedHeader.crit) {
+ if (!recognized.has(parameter)) {
+ throw new errors_js_1.JOSENotSupported(`Extension Header Parameter "${parameter}" is not recognized`);
+ }
+ if (joseHeader[parameter] === void 0) {
+ throw new Err(`Extension Header Parameter "${parameter}" is missing`);
+ } else if (recognized.get(parameter) && protectedHeader[parameter] === void 0) {
+ throw new Err(`Extension Header Parameter "${parameter}" MUST be integrity protected`);
+ }
+ }
+ return new Set(protectedHeader.crit);
+ }
+ exports2.default = validateCrit;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/validate_algorithms.js
+var require_validate_algorithms = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/validate_algorithms.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var validateAlgorithms = (option, algorithms) => {
+ if (algorithms !== void 0 && (!Array.isArray(algorithms) || algorithms.some((s) => typeof s !== "string"))) {
+ throw new TypeError(`"${option}" option must be an array of strings`);
+ }
+ if (!algorithms) {
+ return void 0;
+ }
+ return new Set(algorithms);
+ };
+ exports2.default = validateAlgorithms;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwe/flattened/decrypt.js
+var require_decrypt2 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwe/flattened/decrypt.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.flattenedDecrypt = void 0;
+ var base64url_js_1 = require_base64url();
+ var decrypt_js_1 = require_decrypt();
+ var zlib_js_1 = require_zlib();
+ var errors_js_1 = require_errors3();
+ var is_disjoint_js_1 = require_is_disjoint();
+ var is_object_js_1 = require_is_object();
+ var decrypt_key_management_js_1 = require_decrypt_key_management();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var cek_js_1 = require_cek();
+ var validate_crit_js_1 = require_validate_crit();
+ var validate_algorithms_js_1 = require_validate_algorithms();
+ async function flattenedDecrypt(jwe, key, options) {
+ var _a;
+ if (!(0, is_object_js_1.default)(jwe)) {
+ throw new errors_js_1.JWEInvalid("Flattened JWE must be an object");
+ }
+ if (jwe.protected === void 0 && jwe.header === void 0 && jwe.unprotected === void 0) {
+ throw new errors_js_1.JWEInvalid("JOSE Header missing");
+ }
+ if (typeof jwe.iv !== "string") {
+ throw new errors_js_1.JWEInvalid("JWE Initialization Vector missing or incorrect type");
+ }
+ if (typeof jwe.ciphertext !== "string") {
+ throw new errors_js_1.JWEInvalid("JWE Ciphertext missing or incorrect type");
+ }
+ if (typeof jwe.tag !== "string") {
+ throw new errors_js_1.JWEInvalid("JWE Authentication Tag missing or incorrect type");
+ }
+ if (jwe.protected !== void 0 && typeof jwe.protected !== "string") {
+ throw new errors_js_1.JWEInvalid("JWE Protected Header incorrect type");
+ }
+ if (jwe.encrypted_key !== void 0 && typeof jwe.encrypted_key !== "string") {
+ throw new errors_js_1.JWEInvalid("JWE Encrypted Key incorrect type");
+ }
+ if (jwe.aad !== void 0 && typeof jwe.aad !== "string") {
+ throw new errors_js_1.JWEInvalid("JWE AAD incorrect type");
+ }
+ if (jwe.header !== void 0 && !(0, is_object_js_1.default)(jwe.header)) {
+ throw new errors_js_1.JWEInvalid("JWE Shared Unprotected Header incorrect type");
+ }
+ if (jwe.unprotected !== void 0 && !(0, is_object_js_1.default)(jwe.unprotected)) {
+ throw new errors_js_1.JWEInvalid("JWE Per-Recipient Unprotected Header incorrect type");
+ }
+ let parsedProt;
+ if (jwe.protected) {
+ try {
+ const protectedHeader2 = (0, base64url_js_1.decode)(jwe.protected);
+ parsedProt = JSON.parse(buffer_utils_js_1.decoder.decode(protectedHeader2));
+ } catch {
+ throw new errors_js_1.JWEInvalid("JWE Protected Header is invalid");
+ }
+ }
+ if (!(0, is_disjoint_js_1.default)(parsedProt, jwe.header, jwe.unprotected)) {
+ throw new errors_js_1.JWEInvalid("JWE Protected, JWE Unprotected Header, and JWE Per-Recipient Unprotected Header Parameter names must be disjoint");
+ }
+ const joseHeader = {
+ ...parsedProt,
+ ...jwe.header,
+ ...jwe.unprotected
+ };
+ (0, validate_crit_js_1.default)(errors_js_1.JWEInvalid, /* @__PURE__ */ new Map(), options === null || options === void 0 ? void 0 : options.crit, parsedProt, joseHeader);
+ if (joseHeader.zip !== void 0) {
+ if (!parsedProt || !parsedProt.zip) {
+ throw new errors_js_1.JWEInvalid('JWE "zip" (Compression Algorithm) Header MUST be integrity protected');
+ }
+ if (joseHeader.zip !== "DEF") {
+ throw new errors_js_1.JOSENotSupported('Unsupported JWE "zip" (Compression Algorithm) Header Parameter value');
+ }
+ }
+ const { alg, enc } = joseHeader;
+ if (typeof alg !== "string" || !alg) {
+ throw new errors_js_1.JWEInvalid("missing JWE Algorithm (alg) in JWE Header");
+ }
+ if (typeof enc !== "string" || !enc) {
+ throw new errors_js_1.JWEInvalid("missing JWE Encryption Algorithm (enc) in JWE Header");
+ }
+ const keyManagementAlgorithms = options && (0, validate_algorithms_js_1.default)("keyManagementAlgorithms", options.keyManagementAlgorithms);
+ const contentEncryptionAlgorithms = options && (0, validate_algorithms_js_1.default)("contentEncryptionAlgorithms", options.contentEncryptionAlgorithms);
+ if (keyManagementAlgorithms && !keyManagementAlgorithms.has(alg)) {
+ throw new errors_js_1.JOSEAlgNotAllowed('"alg" (Algorithm) Header Parameter not allowed');
+ }
+ if (contentEncryptionAlgorithms && !contentEncryptionAlgorithms.has(enc)) {
+ throw new errors_js_1.JOSEAlgNotAllowed('"enc" (Encryption Algorithm) Header Parameter not allowed');
+ }
+ let encryptedKey;
+ if (jwe.encrypted_key !== void 0) {
+ try {
+ encryptedKey = (0, base64url_js_1.decode)(jwe.encrypted_key);
+ } catch {
+ throw new errors_js_1.JWEInvalid("Failed to base64url decode the encrypted_key");
+ }
+ }
+ let resolvedKey = false;
+ if (typeof key === "function") {
+ key = await key(parsedProt, jwe);
+ resolvedKey = true;
+ }
+ let cek;
+ try {
+ cek = await (0, decrypt_key_management_js_1.default)(alg, key, encryptedKey, joseHeader, options);
+ } catch (err) {
+ if (err instanceof TypeError || err instanceof errors_js_1.JWEInvalid || err instanceof errors_js_1.JOSENotSupported) {
+ throw err;
+ }
+ cek = (0, cek_js_1.default)(enc);
+ }
+ let iv;
+ let tag;
+ try {
+ iv = (0, base64url_js_1.decode)(jwe.iv);
+ } catch {
+ throw new errors_js_1.JWEInvalid("Failed to base64url decode the iv");
+ }
+ try {
+ tag = (0, base64url_js_1.decode)(jwe.tag);
+ } catch {
+ throw new errors_js_1.JWEInvalid("Failed to base64url decode the tag");
+ }
+ const protectedHeader = buffer_utils_js_1.encoder.encode((_a = jwe.protected) !== null && _a !== void 0 ? _a : "");
+ let additionalData;
+ if (jwe.aad !== void 0) {
+ additionalData = (0, buffer_utils_js_1.concat)(protectedHeader, buffer_utils_js_1.encoder.encode("."), buffer_utils_js_1.encoder.encode(jwe.aad));
+ } else {
+ additionalData = protectedHeader;
+ }
+ let ciphertext;
+ try {
+ ciphertext = (0, base64url_js_1.decode)(jwe.ciphertext);
+ } catch {
+ throw new errors_js_1.JWEInvalid("Failed to base64url decode the ciphertext");
+ }
+ let plaintext = await (0, decrypt_js_1.default)(enc, cek, ciphertext, iv, tag, additionalData);
+ if (joseHeader.zip === "DEF") {
+ plaintext = await ((options === null || options === void 0 ? void 0 : options.inflateRaw) || zlib_js_1.inflate)(plaintext);
+ }
+ const result = { plaintext };
+ if (jwe.protected !== void 0) {
+ result.protectedHeader = parsedProt;
+ }
+ if (jwe.aad !== void 0) {
+ try {
+ result.additionalAuthenticatedData = (0, base64url_js_1.decode)(jwe.aad);
+ } catch {
+ throw new errors_js_1.JWEInvalid("Failed to base64url decode the aad");
+ }
+ }
+ if (jwe.unprotected !== void 0) {
+ result.sharedUnprotectedHeader = jwe.unprotected;
+ }
+ if (jwe.header !== void 0) {
+ result.unprotectedHeader = jwe.header;
+ }
+ if (resolvedKey) {
+ return { ...result, key };
+ }
+ return result;
+ }
+ exports2.flattenedDecrypt = flattenedDecrypt;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwe/compact/decrypt.js
+var require_decrypt3 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwe/compact/decrypt.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.compactDecrypt = void 0;
+ var decrypt_js_1 = require_decrypt2();
+ var errors_js_1 = require_errors3();
+ var buffer_utils_js_1 = require_buffer_utils();
+ async function compactDecrypt(jwe, key, options) {
+ if (jwe instanceof Uint8Array) {
+ jwe = buffer_utils_js_1.decoder.decode(jwe);
+ }
+ if (typeof jwe !== "string") {
+ throw new errors_js_1.JWEInvalid("Compact JWE must be a string or Uint8Array");
+ }
+ const { 0: protectedHeader, 1: encryptedKey, 2: iv, 3: ciphertext, 4: tag, length } = jwe.split(".");
+ if (length !== 5) {
+ throw new errors_js_1.JWEInvalid("Invalid Compact JWE");
+ }
+ const decrypted = await (0, decrypt_js_1.flattenedDecrypt)({
+ ciphertext,
+ iv: iv || void 0,
+ protected: protectedHeader || void 0,
+ tag: tag || void 0,
+ encrypted_key: encryptedKey || void 0
+ }, key, options);
+ const result = { plaintext: decrypted.plaintext, protectedHeader: decrypted.protectedHeader };
+ if (typeof key === "function") {
+ return { ...result, key: decrypted.key };
+ }
+ return result;
+ }
+ exports2.compactDecrypt = compactDecrypt;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwe/general/decrypt.js
+var require_decrypt4 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwe/general/decrypt.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.generalDecrypt = void 0;
+ var decrypt_js_1 = require_decrypt2();
+ var errors_js_1 = require_errors3();
+ var is_object_js_1 = require_is_object();
+ async function generalDecrypt(jwe, key, options) {
+ if (!(0, is_object_js_1.default)(jwe)) {
+ throw new errors_js_1.JWEInvalid("General JWE must be an object");
+ }
+ if (!Array.isArray(jwe.recipients) || !jwe.recipients.every(is_object_js_1.default)) {
+ throw new errors_js_1.JWEInvalid("JWE Recipients missing or incorrect type");
+ }
+ if (!jwe.recipients.length) {
+ throw new errors_js_1.JWEInvalid("JWE Recipients has no members");
+ }
+ for (const recipient of jwe.recipients) {
+ try {
+ return await (0, decrypt_js_1.flattenedDecrypt)({
+ aad: jwe.aad,
+ ciphertext: jwe.ciphertext,
+ encrypted_key: recipient.encrypted_key,
+ header: recipient.header,
+ iv: jwe.iv,
+ protected: jwe.protected,
+ tag: jwe.tag,
+ unprotected: jwe.unprotected
+ }, key, options);
+ } catch {
+ }
+ }
+ throw new errors_js_1.JWEDecryptionFailed();
+ }
+ exports2.generalDecrypt = generalDecrypt;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/asn1_sequence_decoder.js
+var require_asn1_sequence_decoder = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/asn1_sequence_decoder.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var tagInteger = 2;
+ var tagSequence = 48;
+ var Asn1SequenceDecoder = class {
+ constructor(buffer) {
+ if (buffer[0] !== tagSequence) {
+ throw new TypeError();
+ }
+ this.buffer = buffer;
+ this.offset = 1;
+ const len = this.decodeLength();
+ if (len !== buffer.length - this.offset) {
+ throw new TypeError();
+ }
+ }
+ decodeLength() {
+ let length = this.buffer[this.offset++];
+ if (length & 128) {
+ const nBytes = length & ~128;
+ length = 0;
+ for (let i = 0; i < nBytes; i++)
+ length = length << 8 | this.buffer[this.offset + i];
+ this.offset += nBytes;
+ }
+ return length;
+ }
+ unsignedInteger() {
+ if (this.buffer[this.offset++] !== tagInteger) {
+ throw new TypeError();
+ }
+ let length = this.decodeLength();
+ if (this.buffer[this.offset] === 0) {
+ this.offset++;
+ length--;
+ }
+ const result = this.buffer.slice(this.offset, this.offset + length);
+ this.offset += length;
+ return result;
+ }
+ end() {
+ if (this.offset !== this.buffer.length) {
+ throw new TypeError();
+ }
+ }
+ };
+ exports2.default = Asn1SequenceDecoder;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/key_to_jwk.js
+var require_key_to_jwk = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/key_to_jwk.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var crypto_1 = require("crypto");
+ var base64url_js_1 = require_base64url();
+ var asn1_sequence_decoder_js_1 = require_asn1_sequence_decoder();
+ var errors_js_1 = require_errors3();
+ var get_named_curve_js_1 = require_get_named_curve();
+ var webcrypto_js_1 = require_webcrypto();
+ var is_key_object_js_1 = require_is_key_object();
+ var invalid_key_input_js_1 = require_invalid_key_input();
+ var is_key_like_js_1 = require_is_key_like();
+ var flags_js_1 = require_flags();
+ var keyToJWK = (key) => {
+ let keyObject;
+ if ((0, webcrypto_js_1.isCryptoKey)(key)) {
+ if (!key.extractable) {
+ throw new TypeError("CryptoKey is not extractable");
+ }
+ keyObject = crypto_1.KeyObject.from(key);
+ } else if ((0, is_key_object_js_1.default)(key)) {
+ keyObject = key;
+ } else if (key instanceof Uint8Array) {
+ return {
+ kty: "oct",
+ k: (0, base64url_js_1.encode)(key)
+ };
+ } else {
+ throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types, "Uint8Array"));
+ }
+ if (flags_js_1.jwkExport) {
+ if (keyObject.type !== "secret" && !["rsa", "ec", "ed25519", "x25519", "ed448", "x448"].includes(keyObject.asymmetricKeyType)) {
+ throw new errors_js_1.JOSENotSupported("Unsupported key asymmetricKeyType");
+ }
+ return keyObject.export({ format: "jwk" });
+ }
+ switch (keyObject.type) {
+ case "secret":
+ return {
+ kty: "oct",
+ k: (0, base64url_js_1.encode)(keyObject.export())
+ };
+ case "private":
+ case "public": {
+ switch (keyObject.asymmetricKeyType) {
+ case "rsa": {
+ const der = keyObject.export({ format: "der", type: "pkcs1" });
+ const dec = new asn1_sequence_decoder_js_1.default(der);
+ if (keyObject.type === "private") {
+ dec.unsignedInteger();
+ }
+ const n = (0, base64url_js_1.encode)(dec.unsignedInteger());
+ const e = (0, base64url_js_1.encode)(dec.unsignedInteger());
+ let jwk;
+ if (keyObject.type === "private") {
+ jwk = {
+ d: (0, base64url_js_1.encode)(dec.unsignedInteger()),
+ p: (0, base64url_js_1.encode)(dec.unsignedInteger()),
+ q: (0, base64url_js_1.encode)(dec.unsignedInteger()),
+ dp: (0, base64url_js_1.encode)(dec.unsignedInteger()),
+ dq: (0, base64url_js_1.encode)(dec.unsignedInteger()),
+ qi: (0, base64url_js_1.encode)(dec.unsignedInteger())
+ };
+ }
+ dec.end();
+ return { kty: "RSA", n, e, ...jwk };
+ }
+ case "ec": {
+ const crv = (0, get_named_curve_js_1.default)(keyObject);
+ let len;
+ let offset;
+ let correction;
+ switch (crv) {
+ case "secp256k1":
+ len = 64;
+ offset = 31 + 2;
+ correction = -1;
+ break;
+ case "P-256":
+ len = 64;
+ offset = 34 + 2;
+ correction = -1;
+ break;
+ case "P-384":
+ len = 96;
+ offset = 33 + 2;
+ correction = -3;
+ break;
+ case "P-521":
+ len = 132;
+ offset = 33 + 2;
+ correction = -3;
+ break;
+ default:
+ throw new errors_js_1.JOSENotSupported("Unsupported curve");
+ }
+ if (keyObject.type === "public") {
+ const der2 = keyObject.export({ type: "spki", format: "der" });
+ return {
+ kty: "EC",
+ crv,
+ x: (0, base64url_js_1.encode)(der2.subarray(-len, -len / 2)),
+ y: (0, base64url_js_1.encode)(der2.subarray(-len / 2))
+ };
+ }
+ const der = keyObject.export({ type: "pkcs8", format: "der" });
+ if (der.length < 100) {
+ offset += correction;
+ }
+ return {
+ ...keyToJWK((0, crypto_1.createPublicKey)(keyObject)),
+ d: (0, base64url_js_1.encode)(der.subarray(offset, offset + len / 2))
+ };
+ }
+ case "ed25519":
+ case "x25519": {
+ const crv = (0, get_named_curve_js_1.default)(keyObject);
+ if (keyObject.type === "public") {
+ const der2 = keyObject.export({ type: "spki", format: "der" });
+ return {
+ kty: "OKP",
+ crv,
+ x: (0, base64url_js_1.encode)(der2.subarray(-32))
+ };
+ }
+ const der = keyObject.export({ type: "pkcs8", format: "der" });
+ return {
+ ...keyToJWK((0, crypto_1.createPublicKey)(keyObject)),
+ d: (0, base64url_js_1.encode)(der.subarray(-32))
+ };
+ }
+ case "ed448":
+ case "x448": {
+ const crv = (0, get_named_curve_js_1.default)(keyObject);
+ if (keyObject.type === "public") {
+ const der2 = keyObject.export({ type: "spki", format: "der" });
+ return {
+ kty: "OKP",
+ crv,
+ x: (0, base64url_js_1.encode)(der2.subarray(crv === "Ed448" ? -57 : -56))
+ };
+ }
+ const der = keyObject.export({ type: "pkcs8", format: "der" });
+ return {
+ ...keyToJWK((0, crypto_1.createPublicKey)(keyObject)),
+ d: (0, base64url_js_1.encode)(der.subarray(crv === "Ed448" ? -57 : -56))
+ };
+ }
+ default:
+ throw new errors_js_1.JOSENotSupported("Unsupported key asymmetricKeyType");
+ }
+ }
+ default:
+ throw new errors_js_1.JOSENotSupported("Unsupported key type");
+ }
+ };
+ exports2.default = keyToJWK;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/key/export.js
+var require_export = __commonJS({
+ "node_modules/jose/dist/node/cjs/key/export.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.exportJWK = exports2.exportPKCS8 = exports2.exportSPKI = void 0;
+ var asn1_js_1 = require_asn1();
+ var asn1_js_2 = require_asn1();
+ var key_to_jwk_js_1 = require_key_to_jwk();
+ async function exportSPKI(key) {
+ return (0, asn1_js_1.toSPKI)(key);
+ }
+ exports2.exportSPKI = exportSPKI;
+ async function exportPKCS8(key) {
+ return (0, asn1_js_2.toPKCS8)(key);
+ }
+ exports2.exportPKCS8 = exportPKCS8;
+ async function exportJWK(key) {
+ return (0, key_to_jwk_js_1.default)(key);
+ }
+ exports2.exportJWK = exportJWK;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/encrypt_key_management.js
+var require_encrypt_key_management = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/encrypt_key_management.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var aeskw_js_1 = require_aeskw();
+ var ECDH = require_ecdhes();
+ var pbes2kw_js_1 = require_pbes2kw();
+ var rsaes_js_1 = require_rsaes();
+ var base64url_js_1 = require_base64url();
+ var cek_js_1 = require_cek();
+ var errors_js_1 = require_errors3();
+ var export_js_1 = require_export();
+ var check_key_type_js_1 = require_check_key_type();
+ var aesgcmkw_js_1 = require_aesgcmkw();
+ async function encryptKeyManagement(alg, enc, key, providedCek, providedParameters = {}) {
+ let encryptedKey;
+ let parameters;
+ let cek;
+ (0, check_key_type_js_1.default)(alg, key, "encrypt");
+ switch (alg) {
+ case "dir": {
+ cek = key;
+ break;
+ }
+ case "ECDH-ES":
+ case "ECDH-ES+A128KW":
+ case "ECDH-ES+A192KW":
+ case "ECDH-ES+A256KW": {
+ if (!ECDH.ecdhAllowed(key)) {
+ throw new errors_js_1.JOSENotSupported("ECDH with the provided key is not allowed or not supported by your javascript runtime");
+ }
+ const { apu, apv } = providedParameters;
+ let { epk: ephemeralKey } = providedParameters;
+ ephemeralKey || (ephemeralKey = (await ECDH.generateEpk(key)).privateKey);
+ const { x, y, crv, kty } = await (0, export_js_1.exportJWK)(ephemeralKey);
+ const sharedSecret = await ECDH.deriveKey(key, ephemeralKey, alg === "ECDH-ES" ? enc : alg, alg === "ECDH-ES" ? (0, cek_js_1.bitLength)(enc) : parseInt(alg.slice(-5, -2), 10), apu, apv);
+ parameters = { epk: { x, crv, kty } };
+ if (kty === "EC")
+ parameters.epk.y = y;
+ if (apu)
+ parameters.apu = (0, base64url_js_1.encode)(apu);
+ if (apv)
+ parameters.apv = (0, base64url_js_1.encode)(apv);
+ if (alg === "ECDH-ES") {
+ cek = sharedSecret;
+ break;
+ }
+ cek = providedCek || (0, cek_js_1.default)(enc);
+ const kwAlg = alg.slice(-6);
+ encryptedKey = await (0, aeskw_js_1.wrap)(kwAlg, sharedSecret, cek);
+ break;
+ }
+ case "RSA1_5":
+ case "RSA-OAEP":
+ case "RSA-OAEP-256":
+ case "RSA-OAEP-384":
+ case "RSA-OAEP-512": {
+ cek = providedCek || (0, cek_js_1.default)(enc);
+ encryptedKey = await (0, rsaes_js_1.encrypt)(alg, key, cek);
+ break;
+ }
+ case "PBES2-HS256+A128KW":
+ case "PBES2-HS384+A192KW":
+ case "PBES2-HS512+A256KW": {
+ cek = providedCek || (0, cek_js_1.default)(enc);
+ const { p2c, p2s } = providedParameters;
+ ({ encryptedKey, ...parameters } = await (0, pbes2kw_js_1.encrypt)(alg, key, cek, p2c, p2s));
+ break;
+ }
+ case "A128KW":
+ case "A192KW":
+ case "A256KW": {
+ cek = providedCek || (0, cek_js_1.default)(enc);
+ encryptedKey = await (0, aeskw_js_1.wrap)(alg, key, cek);
+ break;
+ }
+ case "A128GCMKW":
+ case "A192GCMKW":
+ case "A256GCMKW": {
+ cek = providedCek || (0, cek_js_1.default)(enc);
+ const { iv } = providedParameters;
+ ({ encryptedKey, ...parameters } = await (0, aesgcmkw_js_1.wrap)(alg, key, cek, iv));
+ break;
+ }
+ default: {
+ throw new errors_js_1.JOSENotSupported('Invalid or unsupported "alg" (JWE Algorithm) header value');
+ }
+ }
+ return { cek, encryptedKey, parameters };
+ }
+ exports2.default = encryptKeyManagement;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwe/flattened/encrypt.js
+var require_encrypt2 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwe/flattened/encrypt.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.FlattenedEncrypt = exports2.unprotected = void 0;
+ var base64url_js_1 = require_base64url();
+ var encrypt_js_1 = require_encrypt();
+ var zlib_js_1 = require_zlib();
+ var iv_js_1 = require_iv();
+ var encrypt_key_management_js_1 = require_encrypt_key_management();
+ var errors_js_1 = require_errors3();
+ var is_disjoint_js_1 = require_is_disjoint();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var validate_crit_js_1 = require_validate_crit();
+ exports2.unprotected = Symbol();
+ var FlattenedEncrypt = class {
+ constructor(plaintext) {
+ if (!(plaintext instanceof Uint8Array)) {
+ throw new TypeError("plaintext must be an instance of Uint8Array");
+ }
+ this._plaintext = plaintext;
+ }
+ setKeyManagementParameters(parameters) {
+ if (this._keyManagementParameters) {
+ throw new TypeError("setKeyManagementParameters can only be called once");
+ }
+ this._keyManagementParameters = parameters;
+ return this;
+ }
+ setProtectedHeader(protectedHeader) {
+ if (this._protectedHeader) {
+ throw new TypeError("setProtectedHeader can only be called once");
+ }
+ this._protectedHeader = protectedHeader;
+ return this;
+ }
+ setSharedUnprotectedHeader(sharedUnprotectedHeader) {
+ if (this._sharedUnprotectedHeader) {
+ throw new TypeError("setSharedUnprotectedHeader can only be called once");
+ }
+ this._sharedUnprotectedHeader = sharedUnprotectedHeader;
+ return this;
+ }
+ setUnprotectedHeader(unprotectedHeader) {
+ if (this._unprotectedHeader) {
+ throw new TypeError("setUnprotectedHeader can only be called once");
+ }
+ this._unprotectedHeader = unprotectedHeader;
+ return this;
+ }
+ setAdditionalAuthenticatedData(aad) {
+ this._aad = aad;
+ return this;
+ }
+ setContentEncryptionKey(cek) {
+ if (this._cek) {
+ throw new TypeError("setContentEncryptionKey can only be called once");
+ }
+ this._cek = cek;
+ return this;
+ }
+ setInitializationVector(iv) {
+ if (this._iv) {
+ throw new TypeError("setInitializationVector can only be called once");
+ }
+ this._iv = iv;
+ return this;
+ }
+ async encrypt(key, options) {
+ if (!this._protectedHeader && !this._unprotectedHeader && !this._sharedUnprotectedHeader) {
+ throw new errors_js_1.JWEInvalid("either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()");
+ }
+ if (!(0, is_disjoint_js_1.default)(this._protectedHeader, this._unprotectedHeader, this._sharedUnprotectedHeader)) {
+ throw new errors_js_1.JWEInvalid("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint");
+ }
+ const joseHeader = {
+ ...this._protectedHeader,
+ ...this._unprotectedHeader,
+ ...this._sharedUnprotectedHeader
+ };
+ (0, validate_crit_js_1.default)(errors_js_1.JWEInvalid, /* @__PURE__ */ new Map(), options === null || options === void 0 ? void 0 : options.crit, this._protectedHeader, joseHeader);
+ if (joseHeader.zip !== void 0) {
+ if (!this._protectedHeader || !this._protectedHeader.zip) {
+ throw new errors_js_1.JWEInvalid('JWE "zip" (Compression Algorithm) Header MUST be integrity protected');
+ }
+ if (joseHeader.zip !== "DEF") {
+ throw new errors_js_1.JOSENotSupported('Unsupported JWE "zip" (Compression Algorithm) Header Parameter value');
+ }
+ }
+ const { alg, enc } = joseHeader;
+ if (typeof alg !== "string" || !alg) {
+ throw new errors_js_1.JWEInvalid('JWE "alg" (Algorithm) Header Parameter missing or invalid');
+ }
+ if (typeof enc !== "string" || !enc) {
+ throw new errors_js_1.JWEInvalid('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');
+ }
+ let encryptedKey;
+ if (alg === "dir") {
+ if (this._cek) {
+ throw new TypeError("setContentEncryptionKey cannot be called when using Direct Encryption");
+ }
+ } else if (alg === "ECDH-ES") {
+ if (this._cek) {
+ throw new TypeError("setContentEncryptionKey cannot be called when using Direct Key Agreement");
+ }
+ }
+ let cek;
+ {
+ let parameters;
+ ({ cek, encryptedKey, parameters } = await (0, encrypt_key_management_js_1.default)(alg, enc, key, this._cek, this._keyManagementParameters));
+ if (parameters) {
+ if (options && exports2.unprotected in options) {
+ if (!this._unprotectedHeader) {
+ this.setUnprotectedHeader(parameters);
+ } else {
+ this._unprotectedHeader = { ...this._unprotectedHeader, ...parameters };
+ }
+ } else {
+ if (!this._protectedHeader) {
+ this.setProtectedHeader(parameters);
+ } else {
+ this._protectedHeader = { ...this._protectedHeader, ...parameters };
+ }
+ }
+ }
+ }
+ this._iv || (this._iv = (0, iv_js_1.default)(enc));
+ let additionalData;
+ let protectedHeader;
+ let aadMember;
+ if (this._protectedHeader) {
+ protectedHeader = buffer_utils_js_1.encoder.encode((0, base64url_js_1.encode)(JSON.stringify(this._protectedHeader)));
+ } else {
+ protectedHeader = buffer_utils_js_1.encoder.encode("");
+ }
+ if (this._aad) {
+ aadMember = (0, base64url_js_1.encode)(this._aad);
+ additionalData = (0, buffer_utils_js_1.concat)(protectedHeader, buffer_utils_js_1.encoder.encode("."), buffer_utils_js_1.encoder.encode(aadMember));
+ } else {
+ additionalData = protectedHeader;
+ }
+ let ciphertext;
+ let tag;
+ if (joseHeader.zip === "DEF") {
+ const deflated = await ((options === null || options === void 0 ? void 0 : options.deflateRaw) || zlib_js_1.deflate)(this._plaintext);
+ ({ ciphertext, tag } = await (0, encrypt_js_1.default)(enc, deflated, cek, this._iv, additionalData));
+ } else {
+ ;
+ ({ ciphertext, tag } = await (0, encrypt_js_1.default)(enc, this._plaintext, cek, this._iv, additionalData));
+ }
+ const jwe = {
+ ciphertext: (0, base64url_js_1.encode)(ciphertext),
+ iv: (0, base64url_js_1.encode)(this._iv),
+ tag: (0, base64url_js_1.encode)(tag)
+ };
+ if (encryptedKey) {
+ jwe.encrypted_key = (0, base64url_js_1.encode)(encryptedKey);
+ }
+ if (aadMember) {
+ jwe.aad = aadMember;
+ }
+ if (this._protectedHeader) {
+ jwe.protected = buffer_utils_js_1.decoder.decode(protectedHeader);
+ }
+ if (this._sharedUnprotectedHeader) {
+ jwe.unprotected = this._sharedUnprotectedHeader;
+ }
+ if (this._unprotectedHeader) {
+ jwe.header = this._unprotectedHeader;
+ }
+ return jwe;
+ }
+ };
+ exports2.FlattenedEncrypt = FlattenedEncrypt;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwe/general/encrypt.js
+var require_encrypt3 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwe/general/encrypt.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.GeneralEncrypt = void 0;
+ var encrypt_js_1 = require_encrypt2();
+ var errors_js_1 = require_errors3();
+ var cek_js_1 = require_cek();
+ var is_disjoint_js_1 = require_is_disjoint();
+ var encrypt_key_management_js_1 = require_encrypt_key_management();
+ var base64url_js_1 = require_base64url();
+ var validate_crit_js_1 = require_validate_crit();
+ var IndividualRecipient = class {
+ constructor(enc, key, options) {
+ this.parent = enc;
+ this.key = key;
+ this.options = options;
+ }
+ setUnprotectedHeader(unprotectedHeader) {
+ if (this.unprotectedHeader) {
+ throw new TypeError("setUnprotectedHeader can only be called once");
+ }
+ this.unprotectedHeader = unprotectedHeader;
+ return this;
+ }
+ addRecipient(...args) {
+ return this.parent.addRecipient(...args);
+ }
+ encrypt(...args) {
+ return this.parent.encrypt(...args);
+ }
+ done() {
+ return this.parent;
+ }
+ };
+ var GeneralEncrypt = class {
+ constructor(plaintext) {
+ this._recipients = [];
+ this._plaintext = plaintext;
+ }
+ addRecipient(key, options) {
+ const recipient = new IndividualRecipient(this, key, { crit: options === null || options === void 0 ? void 0 : options.crit });
+ this._recipients.push(recipient);
+ return recipient;
+ }
+ setProtectedHeader(protectedHeader) {
+ if (this._protectedHeader) {
+ throw new TypeError("setProtectedHeader can only be called once");
+ }
+ this._protectedHeader = protectedHeader;
+ return this;
+ }
+ setSharedUnprotectedHeader(sharedUnprotectedHeader) {
+ if (this._unprotectedHeader) {
+ throw new TypeError("setSharedUnprotectedHeader can only be called once");
+ }
+ this._unprotectedHeader = sharedUnprotectedHeader;
+ return this;
+ }
+ setAdditionalAuthenticatedData(aad) {
+ this._aad = aad;
+ return this;
+ }
+ async encrypt(options) {
+ var _a, _b, _c;
+ if (!this._recipients.length) {
+ throw new errors_js_1.JWEInvalid("at least one recipient must be added");
+ }
+ options = { deflateRaw: options === null || options === void 0 ? void 0 : options.deflateRaw };
+ if (this._recipients.length === 1) {
+ const [recipient] = this._recipients;
+ const flattened = await new encrypt_js_1.FlattenedEncrypt(this._plaintext).setAdditionalAuthenticatedData(this._aad).setProtectedHeader(this._protectedHeader).setSharedUnprotectedHeader(this._unprotectedHeader).setUnprotectedHeader(recipient.unprotectedHeader).encrypt(recipient.key, { ...recipient.options, ...options });
+ let jwe2 = {
+ ciphertext: flattened.ciphertext,
+ iv: flattened.iv,
+ recipients: [{}],
+ tag: flattened.tag
+ };
+ if (flattened.aad)
+ jwe2.aad = flattened.aad;
+ if (flattened.protected)
+ jwe2.protected = flattened.protected;
+ if (flattened.unprotected)
+ jwe2.unprotected = flattened.unprotected;
+ if (flattened.encrypted_key)
+ jwe2.recipients[0].encrypted_key = flattened.encrypted_key;
+ if (flattened.header)
+ jwe2.recipients[0].header = flattened.header;
+ return jwe2;
+ }
+ let enc;
+ for (let i = 0; i < this._recipients.length; i++) {
+ const recipient = this._recipients[i];
+ if (!(0, is_disjoint_js_1.default)(this._protectedHeader, this._unprotectedHeader, recipient.unprotectedHeader)) {
+ throw new errors_js_1.JWEInvalid("JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint");
+ }
+ const joseHeader = {
+ ...this._protectedHeader,
+ ...this._unprotectedHeader,
+ ...recipient.unprotectedHeader
+ };
+ const { alg } = joseHeader;
+ if (typeof alg !== "string" || !alg) {
+ throw new errors_js_1.JWEInvalid('JWE "alg" (Algorithm) Header Parameter missing or invalid');
+ }
+ if (alg === "dir" || alg === "ECDH-ES") {
+ throw new errors_js_1.JWEInvalid('"dir" and "ECDH-ES" alg may only be used with a single recipient');
+ }
+ if (typeof joseHeader.enc !== "string" || !joseHeader.enc) {
+ throw new errors_js_1.JWEInvalid('JWE "enc" (Encryption Algorithm) Header Parameter missing or invalid');
+ }
+ if (!enc) {
+ enc = joseHeader.enc;
+ } else if (enc !== joseHeader.enc) {
+ throw new errors_js_1.JWEInvalid('JWE "enc" (Encryption Algorithm) Header Parameter must be the same for all recipients');
+ }
+ (0, validate_crit_js_1.default)(errors_js_1.JWEInvalid, /* @__PURE__ */ new Map(), recipient.options.crit, this._protectedHeader, joseHeader);
+ if (joseHeader.zip !== void 0) {
+ if (!this._protectedHeader || !this._protectedHeader.zip) {
+ throw new errors_js_1.JWEInvalid('JWE "zip" (Compression Algorithm) Header MUST be integrity protected');
+ }
+ }
+ }
+ const cek = (0, cek_js_1.default)(enc);
+ let jwe = {
+ ciphertext: "",
+ iv: "",
+ recipients: [],
+ tag: ""
+ };
+ for (let i = 0; i < this._recipients.length; i++) {
+ const recipient = this._recipients[i];
+ const target = {};
+ jwe.recipients.push(target);
+ const joseHeader = {
+ ...this._protectedHeader,
+ ...this._unprotectedHeader,
+ ...recipient.unprotectedHeader
+ };
+ const p2c = joseHeader.alg.startsWith("PBES2") ? 2048 + i : void 0;
+ if (i === 0) {
+ const flattened = await new encrypt_js_1.FlattenedEncrypt(this._plaintext).setAdditionalAuthenticatedData(this._aad).setContentEncryptionKey(cek).setProtectedHeader(this._protectedHeader).setSharedUnprotectedHeader(this._unprotectedHeader).setUnprotectedHeader(recipient.unprotectedHeader).setKeyManagementParameters({ p2c }).encrypt(recipient.key, {
+ ...recipient.options,
+ ...options,
+ [encrypt_js_1.unprotected]: true
+ });
+ jwe.ciphertext = flattened.ciphertext;
+ jwe.iv = flattened.iv;
+ jwe.tag = flattened.tag;
+ if (flattened.aad)
+ jwe.aad = flattened.aad;
+ if (flattened.protected)
+ jwe.protected = flattened.protected;
+ if (flattened.unprotected)
+ jwe.unprotected = flattened.unprotected;
+ target.encrypted_key = flattened.encrypted_key;
+ if (flattened.header)
+ target.header = flattened.header;
+ continue;
+ }
+ const { encryptedKey, parameters } = await (0, encrypt_key_management_js_1.default)(((_a = recipient.unprotectedHeader) === null || _a === void 0 ? void 0 : _a.alg) || ((_b = this._protectedHeader) === null || _b === void 0 ? void 0 : _b.alg) || ((_c = this._unprotectedHeader) === null || _c === void 0 ? void 0 : _c.alg), enc, recipient.key, cek, { p2c });
+ target.encrypted_key = (0, base64url_js_1.encode)(encryptedKey);
+ if (recipient.unprotectedHeader || parameters)
+ target.header = { ...recipient.unprotectedHeader, ...parameters };
+ }
+ return jwe;
+ }
+ };
+ exports2.GeneralEncrypt = GeneralEncrypt;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/dsa_digest.js
+var require_dsa_digest = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/dsa_digest.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var errors_js_1 = require_errors3();
+ function dsaDigest(alg) {
+ switch (alg) {
+ case "PS256":
+ case "RS256":
+ case "ES256":
+ case "ES256K":
+ return "sha256";
+ case "PS384":
+ case "RS384":
+ case "ES384":
+ return "sha384";
+ case "PS512":
+ case "RS512":
+ case "ES512":
+ return "sha512";
+ case "EdDSA":
+ return void 0;
+ default:
+ throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
+ }
+ }
+ exports2.default = dsaDigest;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/node_key.js
+var require_node_key = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/node_key.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var crypto_1 = require("crypto");
+ var get_named_curve_js_1 = require_get_named_curve();
+ var errors_js_1 = require_errors3();
+ var check_modulus_length_js_1 = require_check_modulus_length();
+ var flags_js_1 = require_flags();
+ var PSS = {
+ padding: crypto_1.constants.RSA_PKCS1_PSS_PADDING,
+ saltLength: crypto_1.constants.RSA_PSS_SALTLEN_DIGEST
+ };
+ var ecCurveAlgMap = /* @__PURE__ */ new Map([
+ ["ES256", "P-256"],
+ ["ES256K", "secp256k1"],
+ ["ES384", "P-384"],
+ ["ES512", "P-521"]
+ ]);
+ function keyForCrypto(alg, key) {
+ switch (alg) {
+ case "EdDSA":
+ if (!["ed25519", "ed448"].includes(key.asymmetricKeyType)) {
+ throw new TypeError("Invalid key for this operation, its asymmetricKeyType must be ed25519 or ed448");
+ }
+ return key;
+ case "RS256":
+ case "RS384":
+ case "RS512":
+ if (key.asymmetricKeyType !== "rsa") {
+ throw new TypeError("Invalid key for this operation, its asymmetricKeyType must be rsa");
+ }
+ (0, check_modulus_length_js_1.default)(key, alg);
+ return key;
+ case (flags_js_1.rsaPssParams && "PS256"):
+ case (flags_js_1.rsaPssParams && "PS384"):
+ case (flags_js_1.rsaPssParams && "PS512"):
+ if (key.asymmetricKeyType === "rsa-pss") {
+ const { hashAlgorithm, mgf1HashAlgorithm, saltLength } = key.asymmetricKeyDetails;
+ const length = parseInt(alg.slice(-3), 10);
+ if (hashAlgorithm !== void 0 && (hashAlgorithm !== `sha${length}` || mgf1HashAlgorithm !== hashAlgorithm)) {
+ throw new TypeError(`Invalid key for this operation, its RSA-PSS parameters do not meet the requirements of "alg" ${alg}`);
+ }
+ if (saltLength !== void 0 && saltLength > length >> 3) {
+ throw new TypeError(`Invalid key for this operation, its RSA-PSS parameter saltLength does not meet the requirements of "alg" ${alg}`);
+ }
+ } else if (key.asymmetricKeyType !== "rsa") {
+ throw new TypeError("Invalid key for this operation, its asymmetricKeyType must be rsa or rsa-pss");
+ }
+ (0, check_modulus_length_js_1.default)(key, alg);
+ return { key, ...PSS };
+ case (!flags_js_1.rsaPssParams && "PS256"):
+ case (!flags_js_1.rsaPssParams && "PS384"):
+ case (!flags_js_1.rsaPssParams && "PS512"):
+ if (key.asymmetricKeyType !== "rsa") {
+ throw new TypeError("Invalid key for this operation, its asymmetricKeyType must be rsa");
+ }
+ (0, check_modulus_length_js_1.default)(key, alg);
+ return { key, ...PSS };
+ case "ES256":
+ case "ES256K":
+ case "ES384":
+ case "ES512": {
+ if (key.asymmetricKeyType !== "ec") {
+ throw new TypeError("Invalid key for this operation, its asymmetricKeyType must be ec");
+ }
+ const actual = (0, get_named_curve_js_1.default)(key);
+ const expected = ecCurveAlgMap.get(alg);
+ if (actual !== expected) {
+ throw new TypeError(`Invalid key curve for the algorithm, its curve must be ${expected}, got ${actual}`);
+ }
+ return { dsaEncoding: "ieee-p1363", key };
+ }
+ default:
+ throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
+ }
+ }
+ exports2.default = keyForCrypto;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/hmac_digest.js
+var require_hmac_digest = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/hmac_digest.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var errors_js_1 = require_errors3();
+ function hmacDigest(alg) {
+ switch (alg) {
+ case "HS256":
+ return "sha256";
+ case "HS384":
+ return "sha384";
+ case "HS512":
+ return "sha512";
+ default:
+ throw new errors_js_1.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
+ }
+ }
+ exports2.default = hmacDigest;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/get_sign_verify_key.js
+var require_get_sign_verify_key = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/get_sign_verify_key.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var crypto_1 = require("crypto");
+ var webcrypto_js_1 = require_webcrypto();
+ var crypto_key_js_1 = require_crypto_key();
+ var invalid_key_input_js_1 = require_invalid_key_input();
+ var is_key_like_js_1 = require_is_key_like();
+ function getSignVerifyKey(alg, key, usage) {
+ if (key instanceof Uint8Array) {
+ if (!alg.startsWith("HS")) {
+ throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types));
+ }
+ return (0, crypto_1.createSecretKey)(key);
+ }
+ if (key instanceof crypto_1.KeyObject) {
+ return key;
+ }
+ if ((0, webcrypto_js_1.isCryptoKey)(key)) {
+ (0, crypto_key_js_1.checkSigCryptoKey)(key, alg, usage);
+ return crypto_1.KeyObject.from(key);
+ }
+ throw new TypeError((0, invalid_key_input_js_1.default)(key, ...is_key_like_js_1.types, "Uint8Array"));
+ }
+ exports2.default = getSignVerifyKey;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/sign.js
+var require_sign = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/sign.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var crypto2 = require("crypto");
+ var util_1 = require("util");
+ var dsa_digest_js_1 = require_dsa_digest();
+ var hmac_digest_js_1 = require_hmac_digest();
+ var node_key_js_1 = require_node_key();
+ var get_sign_verify_key_js_1 = require_get_sign_verify_key();
+ var oneShotSign;
+ if (crypto2.sign.length > 3) {
+ oneShotSign = (0, util_1.promisify)(crypto2.sign);
+ } else {
+ oneShotSign = crypto2.sign;
+ }
+ var sign = async (alg, key, data) => {
+ const keyObject = (0, get_sign_verify_key_js_1.default)(alg, key, "sign");
+ if (alg.startsWith("HS")) {
+ const hmac = crypto2.createHmac((0, hmac_digest_js_1.default)(alg), keyObject);
+ hmac.update(data);
+ return hmac.digest();
+ }
+ return oneShotSign((0, dsa_digest_js_1.default)(alg), data, (0, node_key_js_1.default)(alg, keyObject));
+ };
+ exports2.default = sign;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/verify.js
+var require_verify = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/verify.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var crypto2 = require("crypto");
+ var util_1 = require("util");
+ var dsa_digest_js_1 = require_dsa_digest();
+ var node_key_js_1 = require_node_key();
+ var sign_js_1 = require_sign();
+ var get_sign_verify_key_js_1 = require_get_sign_verify_key();
+ var flags_js_1 = require_flags();
+ var oneShotVerify;
+ if (crypto2.verify.length > 4 && flags_js_1.oneShotCallback) {
+ oneShotVerify = (0, util_1.promisify)(crypto2.verify);
+ } else {
+ oneShotVerify = crypto2.verify;
+ }
+ var verify = async (alg, key, signature, data) => {
+ const keyObject = (0, get_sign_verify_key_js_1.default)(alg, key, "verify");
+ if (alg.startsWith("HS")) {
+ const expected = await (0, sign_js_1.default)(alg, keyObject, data);
+ const actual = signature;
+ try {
+ return crypto2.timingSafeEqual(actual, expected);
+ } catch {
+ return false;
+ }
+ }
+ const algorithm = (0, dsa_digest_js_1.default)(alg);
+ const keyInput = (0, node_key_js_1.default)(alg, keyObject);
+ try {
+ return await oneShotVerify(algorithm, data, keyInput, signature);
+ } catch {
+ return false;
+ }
+ };
+ exports2.default = verify;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jws/flattened/verify.js
+var require_verify2 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jws/flattened/verify.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.flattenedVerify = void 0;
+ var base64url_js_1 = require_base64url();
+ var verify_js_1 = require_verify();
+ var errors_js_1 = require_errors3();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var is_disjoint_js_1 = require_is_disjoint();
+ var is_object_js_1 = require_is_object();
+ var check_key_type_js_1 = require_check_key_type();
+ var validate_crit_js_1 = require_validate_crit();
+ var validate_algorithms_js_1 = require_validate_algorithms();
+ async function flattenedVerify(jws, key, options) {
+ var _a;
+ if (!(0, is_object_js_1.default)(jws)) {
+ throw new errors_js_1.JWSInvalid("Flattened JWS must be an object");
+ }
+ if (jws.protected === void 0 && jws.header === void 0) {
+ throw new errors_js_1.JWSInvalid('Flattened JWS must have either of the "protected" or "header" members');
+ }
+ if (jws.protected !== void 0 && typeof jws.protected !== "string") {
+ throw new errors_js_1.JWSInvalid("JWS Protected Header incorrect type");
+ }
+ if (jws.payload === void 0) {
+ throw new errors_js_1.JWSInvalid("JWS Payload missing");
+ }
+ if (typeof jws.signature !== "string") {
+ throw new errors_js_1.JWSInvalid("JWS Signature missing or incorrect type");
+ }
+ if (jws.header !== void 0 && !(0, is_object_js_1.default)(jws.header)) {
+ throw new errors_js_1.JWSInvalid("JWS Unprotected Header incorrect type");
+ }
+ let parsedProt = {};
+ if (jws.protected) {
+ try {
+ const protectedHeader = (0, base64url_js_1.decode)(jws.protected);
+ parsedProt = JSON.parse(buffer_utils_js_1.decoder.decode(protectedHeader));
+ } catch {
+ throw new errors_js_1.JWSInvalid("JWS Protected Header is invalid");
+ }
+ }
+ if (!(0, is_disjoint_js_1.default)(parsedProt, jws.header)) {
+ throw new errors_js_1.JWSInvalid("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");
+ }
+ const joseHeader = {
+ ...parsedProt,
+ ...jws.header
+ };
+ const extensions = (0, validate_crit_js_1.default)(errors_js_1.JWSInvalid, /* @__PURE__ */ new Map([["b64", true]]), options === null || options === void 0 ? void 0 : options.crit, parsedProt, joseHeader);
+ let b64 = true;
+ if (extensions.has("b64")) {
+ b64 = parsedProt.b64;
+ if (typeof b64 !== "boolean") {
+ throw new errors_js_1.JWSInvalid('The "b64" (base64url-encode payload) Header Parameter must be a boolean');
+ }
+ }
+ const { alg } = joseHeader;
+ if (typeof alg !== "string" || !alg) {
+ throw new errors_js_1.JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');
+ }
+ const algorithms = options && (0, validate_algorithms_js_1.default)("algorithms", options.algorithms);
+ if (algorithms && !algorithms.has(alg)) {
+ throw new errors_js_1.JOSEAlgNotAllowed('"alg" (Algorithm) Header Parameter not allowed');
+ }
+ if (b64) {
+ if (typeof jws.payload !== "string") {
+ throw new errors_js_1.JWSInvalid("JWS Payload must be a string");
+ }
+ } else if (typeof jws.payload !== "string" && !(jws.payload instanceof Uint8Array)) {
+ throw new errors_js_1.JWSInvalid("JWS Payload must be a string or an Uint8Array instance");
+ }
+ let resolvedKey = false;
+ if (typeof key === "function") {
+ key = await key(parsedProt, jws);
+ resolvedKey = true;
+ }
+ (0, check_key_type_js_1.default)(alg, key, "verify");
+ const data = (0, buffer_utils_js_1.concat)(buffer_utils_js_1.encoder.encode((_a = jws.protected) !== null && _a !== void 0 ? _a : ""), buffer_utils_js_1.encoder.encode("."), typeof jws.payload === "string" ? buffer_utils_js_1.encoder.encode(jws.payload) : jws.payload);
+ let signature;
+ try {
+ signature = (0, base64url_js_1.decode)(jws.signature);
+ } catch {
+ throw new errors_js_1.JWSInvalid("Failed to base64url decode the signature");
+ }
+ const verified = await (0, verify_js_1.default)(alg, key, signature, data);
+ if (!verified) {
+ throw new errors_js_1.JWSSignatureVerificationFailed();
+ }
+ let payload;
+ if (b64) {
+ try {
+ payload = (0, base64url_js_1.decode)(jws.payload);
+ } catch {
+ throw new errors_js_1.JWSInvalid("Failed to base64url decode the payload");
+ }
+ } else if (typeof jws.payload === "string") {
+ payload = buffer_utils_js_1.encoder.encode(jws.payload);
+ } else {
+ payload = jws.payload;
+ }
+ const result = { payload };
+ if (jws.protected !== void 0) {
+ result.protectedHeader = parsedProt;
+ }
+ if (jws.header !== void 0) {
+ result.unprotectedHeader = jws.header;
+ }
+ if (resolvedKey) {
+ return { ...result, key };
+ }
+ return result;
+ }
+ exports2.flattenedVerify = flattenedVerify;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jws/compact/verify.js
+var require_verify3 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jws/compact/verify.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.compactVerify = void 0;
+ var verify_js_1 = require_verify2();
+ var errors_js_1 = require_errors3();
+ var buffer_utils_js_1 = require_buffer_utils();
+ async function compactVerify(jws, key, options) {
+ if (jws instanceof Uint8Array) {
+ jws = buffer_utils_js_1.decoder.decode(jws);
+ }
+ if (typeof jws !== "string") {
+ throw new errors_js_1.JWSInvalid("Compact JWS must be a string or Uint8Array");
+ }
+ const { 0: protectedHeader, 1: payload, 2: signature, length } = jws.split(".");
+ if (length !== 3) {
+ throw new errors_js_1.JWSInvalid("Invalid Compact JWS");
+ }
+ const verified = await (0, verify_js_1.flattenedVerify)({ payload, protected: protectedHeader, signature }, key, options);
+ const result = { payload: verified.payload, protectedHeader: verified.protectedHeader };
+ if (typeof key === "function") {
+ return { ...result, key: verified.key };
+ }
+ return result;
+ }
+ exports2.compactVerify = compactVerify;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jws/general/verify.js
+var require_verify4 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jws/general/verify.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.generalVerify = void 0;
+ var verify_js_1 = require_verify2();
+ var errors_js_1 = require_errors3();
+ var is_object_js_1 = require_is_object();
+ async function generalVerify(jws, key, options) {
+ if (!(0, is_object_js_1.default)(jws)) {
+ throw new errors_js_1.JWSInvalid("General JWS must be an object");
+ }
+ if (!Array.isArray(jws.signatures) || !jws.signatures.every(is_object_js_1.default)) {
+ throw new errors_js_1.JWSInvalid("JWS Signatures missing or incorrect type");
+ }
+ for (const signature of jws.signatures) {
+ try {
+ return await (0, verify_js_1.flattenedVerify)({
+ header: signature.header,
+ payload: jws.payload,
+ protected: signature.protected,
+ signature: signature.signature
+ }, key, options);
+ } catch {
+ }
+ }
+ throw new errors_js_1.JWSSignatureVerificationFailed();
+ }
+ exports2.generalVerify = generalVerify;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/epoch.js
+var require_epoch = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/epoch.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.default = (date) => Math.floor(date.getTime() / 1e3);
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/secs.js
+var require_secs = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/secs.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var minute = 60;
+ var hour = minute * 60;
+ var day = hour * 24;
+ var week = day * 7;
+ var year = day * 365.25;
+ var REGEX = /^(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)$/i;
+ exports2.default = (str) => {
+ const matched = REGEX.exec(str);
+ if (!matched) {
+ throw new TypeError("Invalid time period format");
+ }
+ const value = parseFloat(matched[1]);
+ const unit = matched[2].toLowerCase();
+ switch (unit) {
+ case "sec":
+ case "secs":
+ case "second":
+ case "seconds":
+ case "s":
+ return Math.round(value);
+ case "minute":
+ case "minutes":
+ case "min":
+ case "mins":
+ case "m":
+ return Math.round(value * minute);
+ case "hour":
+ case "hours":
+ case "hr":
+ case "hrs":
+ case "h":
+ return Math.round(value * hour);
+ case "day":
+ case "days":
+ case "d":
+ return Math.round(value * day);
+ case "week":
+ case "weeks":
+ case "w":
+ return Math.round(value * week);
+ default:
+ return Math.round(value * year);
+ }
+ };
+ }
+});
+
+// node_modules/jose/dist/node/cjs/lib/jwt_claims_set.js
+var require_jwt_claims_set = __commonJS({
+ "node_modules/jose/dist/node/cjs/lib/jwt_claims_set.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var errors_js_1 = require_errors3();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var epoch_js_1 = require_epoch();
+ var secs_js_1 = require_secs();
+ var is_object_js_1 = require_is_object();
+ var normalizeTyp = (value) => value.toLowerCase().replace(/^application\//, "");
+ var checkAudiencePresence = (audPayload, audOption) => {
+ if (typeof audPayload === "string") {
+ return audOption.includes(audPayload);
+ }
+ if (Array.isArray(audPayload)) {
+ return audOption.some(Set.prototype.has.bind(new Set(audPayload)));
+ }
+ return false;
+ };
+ exports2.default = (protectedHeader, encodedPayload, options = {}) => {
+ const { typ } = options;
+ if (typ && (typeof protectedHeader.typ !== "string" || normalizeTyp(protectedHeader.typ) !== normalizeTyp(typ))) {
+ throw new errors_js_1.JWTClaimValidationFailed('unexpected "typ" JWT header value', "typ", "check_failed");
+ }
+ let payload;
+ try {
+ payload = JSON.parse(buffer_utils_js_1.decoder.decode(encodedPayload));
+ } catch {
+ }
+ if (!(0, is_object_js_1.default)(payload)) {
+ throw new errors_js_1.JWTInvalid("JWT Claims Set must be a top-level JSON object");
+ }
+ const { requiredClaims = [], issuer, subject, audience, maxTokenAge } = options;
+ if (maxTokenAge !== void 0)
+ requiredClaims.push("iat");
+ if (audience !== void 0)
+ requiredClaims.push("aud");
+ if (subject !== void 0)
+ requiredClaims.push("sub");
+ if (issuer !== void 0)
+ requiredClaims.push("iss");
+ for (const claim of new Set(requiredClaims.reverse())) {
+ if (!(claim in payload)) {
+ throw new errors_js_1.JWTClaimValidationFailed(`missing required "${claim}" claim`, claim, "missing");
+ }
+ }
+ if (issuer && !(Array.isArray(issuer) ? issuer : [issuer]).includes(payload.iss)) {
+ throw new errors_js_1.JWTClaimValidationFailed('unexpected "iss" claim value', "iss", "check_failed");
+ }
+ if (subject && payload.sub !== subject) {
+ throw new errors_js_1.JWTClaimValidationFailed('unexpected "sub" claim value', "sub", "check_failed");
+ }
+ if (audience && !checkAudiencePresence(payload.aud, typeof audience === "string" ? [audience] : audience)) {
+ throw new errors_js_1.JWTClaimValidationFailed('unexpected "aud" claim value', "aud", "check_failed");
+ }
+ let tolerance;
+ switch (typeof options.clockTolerance) {
+ case "string":
+ tolerance = (0, secs_js_1.default)(options.clockTolerance);
+ break;
+ case "number":
+ tolerance = options.clockTolerance;
+ break;
+ case "undefined":
+ tolerance = 0;
+ break;
+ default:
+ throw new TypeError("Invalid clockTolerance option type");
+ }
+ const { currentDate } = options;
+ const now = (0, epoch_js_1.default)(currentDate || /* @__PURE__ */ new Date());
+ if ((payload.iat !== void 0 || maxTokenAge) && typeof payload.iat !== "number") {
+ throw new errors_js_1.JWTClaimValidationFailed('"iat" claim must be a number', "iat", "invalid");
+ }
+ if (payload.nbf !== void 0) {
+ if (typeof payload.nbf !== "number") {
+ throw new errors_js_1.JWTClaimValidationFailed('"nbf" claim must be a number', "nbf", "invalid");
+ }
+ if (payload.nbf > now + tolerance) {
+ throw new errors_js_1.JWTClaimValidationFailed('"nbf" claim timestamp check failed', "nbf", "check_failed");
+ }
+ }
+ if (payload.exp !== void 0) {
+ if (typeof payload.exp !== "number") {
+ throw new errors_js_1.JWTClaimValidationFailed('"exp" claim must be a number', "exp", "invalid");
+ }
+ if (payload.exp <= now - tolerance) {
+ throw new errors_js_1.JWTExpired('"exp" claim timestamp check failed', "exp", "check_failed");
+ }
+ }
+ if (maxTokenAge) {
+ const age = now - payload.iat;
+ const max = typeof maxTokenAge === "number" ? maxTokenAge : (0, secs_js_1.default)(maxTokenAge);
+ if (age - tolerance > max) {
+ throw new errors_js_1.JWTExpired('"iat" claim timestamp check failed (too far in the past)', "iat", "check_failed");
+ }
+ if (age < 0 - tolerance) {
+ throw new errors_js_1.JWTClaimValidationFailed('"iat" claim timestamp check failed (it should be in the past)', "iat", "check_failed");
+ }
+ }
+ return payload;
+ };
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwt/verify.js
+var require_verify5 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwt/verify.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.jwtVerify = void 0;
+ var verify_js_1 = require_verify3();
+ var jwt_claims_set_js_1 = require_jwt_claims_set();
+ var errors_js_1 = require_errors3();
+ async function jwtVerify(jwt, key, options) {
+ var _a;
+ const verified = await (0, verify_js_1.compactVerify)(jwt, key, options);
+ if (((_a = verified.protectedHeader.crit) === null || _a === void 0 ? void 0 : _a.includes("b64")) && verified.protectedHeader.b64 === false) {
+ throw new errors_js_1.JWTInvalid("JWTs MUST NOT use unencoded payload");
+ }
+ const payload = (0, jwt_claims_set_js_1.default)(verified.protectedHeader, verified.payload, options);
+ const result = { payload, protectedHeader: verified.protectedHeader };
+ if (typeof key === "function") {
+ return { ...result, key: verified.key };
+ }
+ return result;
+ }
+ exports2.jwtVerify = jwtVerify;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwt/decrypt.js
+var require_decrypt5 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwt/decrypt.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.jwtDecrypt = void 0;
+ var decrypt_js_1 = require_decrypt3();
+ var jwt_claims_set_js_1 = require_jwt_claims_set();
+ var errors_js_1 = require_errors3();
+ async function jwtDecrypt(jwt, key, options) {
+ const decrypted = await (0, decrypt_js_1.compactDecrypt)(jwt, key, options);
+ const payload = (0, jwt_claims_set_js_1.default)(decrypted.protectedHeader, decrypted.plaintext, options);
+ const { protectedHeader } = decrypted;
+ if (protectedHeader.iss !== void 0 && protectedHeader.iss !== payload.iss) {
+ throw new errors_js_1.JWTClaimValidationFailed('replicated "iss" claim header parameter mismatch', "iss", "mismatch");
+ }
+ if (protectedHeader.sub !== void 0 && protectedHeader.sub !== payload.sub) {
+ throw new errors_js_1.JWTClaimValidationFailed('replicated "sub" claim header parameter mismatch', "sub", "mismatch");
+ }
+ if (protectedHeader.aud !== void 0 && JSON.stringify(protectedHeader.aud) !== JSON.stringify(payload.aud)) {
+ throw new errors_js_1.JWTClaimValidationFailed('replicated "aud" claim header parameter mismatch', "aud", "mismatch");
+ }
+ const result = { payload, protectedHeader };
+ if (typeof key === "function") {
+ return { ...result, key: decrypted.key };
+ }
+ return result;
+ }
+ exports2.jwtDecrypt = jwtDecrypt;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwe/compact/encrypt.js
+var require_encrypt4 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwe/compact/encrypt.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.CompactEncrypt = void 0;
+ var encrypt_js_1 = require_encrypt2();
+ var CompactEncrypt = class {
+ constructor(plaintext) {
+ this._flattened = new encrypt_js_1.FlattenedEncrypt(plaintext);
+ }
+ setContentEncryptionKey(cek) {
+ this._flattened.setContentEncryptionKey(cek);
+ return this;
+ }
+ setInitializationVector(iv) {
+ this._flattened.setInitializationVector(iv);
+ return this;
+ }
+ setProtectedHeader(protectedHeader) {
+ this._flattened.setProtectedHeader(protectedHeader);
+ return this;
+ }
+ setKeyManagementParameters(parameters) {
+ this._flattened.setKeyManagementParameters(parameters);
+ return this;
+ }
+ async encrypt(key, options) {
+ const jwe = await this._flattened.encrypt(key, options);
+ return [jwe.protected, jwe.encrypted_key, jwe.iv, jwe.ciphertext, jwe.tag].join(".");
+ }
+ };
+ exports2.CompactEncrypt = CompactEncrypt;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jws/flattened/sign.js
+var require_sign2 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jws/flattened/sign.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.FlattenedSign = void 0;
+ var base64url_js_1 = require_base64url();
+ var sign_js_1 = require_sign();
+ var is_disjoint_js_1 = require_is_disjoint();
+ var errors_js_1 = require_errors3();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var check_key_type_js_1 = require_check_key_type();
+ var validate_crit_js_1 = require_validate_crit();
+ var FlattenedSign = class {
+ constructor(payload) {
+ if (!(payload instanceof Uint8Array)) {
+ throw new TypeError("payload must be an instance of Uint8Array");
+ }
+ this._payload = payload;
+ }
+ setProtectedHeader(protectedHeader) {
+ if (this._protectedHeader) {
+ throw new TypeError("setProtectedHeader can only be called once");
+ }
+ this._protectedHeader = protectedHeader;
+ return this;
+ }
+ setUnprotectedHeader(unprotectedHeader) {
+ if (this._unprotectedHeader) {
+ throw new TypeError("setUnprotectedHeader can only be called once");
+ }
+ this._unprotectedHeader = unprotectedHeader;
+ return this;
+ }
+ async sign(key, options) {
+ if (!this._protectedHeader && !this._unprotectedHeader) {
+ throw new errors_js_1.JWSInvalid("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");
+ }
+ if (!(0, is_disjoint_js_1.default)(this._protectedHeader, this._unprotectedHeader)) {
+ throw new errors_js_1.JWSInvalid("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");
+ }
+ const joseHeader = {
+ ...this._protectedHeader,
+ ...this._unprotectedHeader
+ };
+ const extensions = (0, validate_crit_js_1.default)(errors_js_1.JWSInvalid, /* @__PURE__ */ new Map([["b64", true]]), options === null || options === void 0 ? void 0 : options.crit, this._protectedHeader, joseHeader);
+ let b64 = true;
+ if (extensions.has("b64")) {
+ b64 = this._protectedHeader.b64;
+ if (typeof b64 !== "boolean") {
+ throw new errors_js_1.JWSInvalid('The "b64" (base64url-encode payload) Header Parameter must be a boolean');
+ }
+ }
+ const { alg } = joseHeader;
+ if (typeof alg !== "string" || !alg) {
+ throw new errors_js_1.JWSInvalid('JWS "alg" (Algorithm) Header Parameter missing or invalid');
+ }
+ (0, check_key_type_js_1.default)(alg, key, "sign");
+ let payload = this._payload;
+ if (b64) {
+ payload = buffer_utils_js_1.encoder.encode((0, base64url_js_1.encode)(payload));
+ }
+ let protectedHeader;
+ if (this._protectedHeader) {
+ protectedHeader = buffer_utils_js_1.encoder.encode((0, base64url_js_1.encode)(JSON.stringify(this._protectedHeader)));
+ } else {
+ protectedHeader = buffer_utils_js_1.encoder.encode("");
+ }
+ const data = (0, buffer_utils_js_1.concat)(protectedHeader, buffer_utils_js_1.encoder.encode("."), payload);
+ const signature = await (0, sign_js_1.default)(alg, key, data);
+ const jws = {
+ signature: (0, base64url_js_1.encode)(signature),
+ payload: ""
+ };
+ if (b64) {
+ jws.payload = buffer_utils_js_1.decoder.decode(payload);
+ }
+ if (this._unprotectedHeader) {
+ jws.header = this._unprotectedHeader;
+ }
+ if (this._protectedHeader) {
+ jws.protected = buffer_utils_js_1.decoder.decode(protectedHeader);
+ }
+ return jws;
+ }
+ };
+ exports2.FlattenedSign = FlattenedSign;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jws/compact/sign.js
+var require_sign3 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jws/compact/sign.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.CompactSign = void 0;
+ var sign_js_1 = require_sign2();
+ var CompactSign = class {
+ constructor(payload) {
+ this._flattened = new sign_js_1.FlattenedSign(payload);
+ }
+ setProtectedHeader(protectedHeader) {
+ this._flattened.setProtectedHeader(protectedHeader);
+ return this;
+ }
+ async sign(key, options) {
+ const jws = await this._flattened.sign(key, options);
+ if (jws.payload === void 0) {
+ throw new TypeError("use the flattened module for creating JWS with b64: false");
+ }
+ return `${jws.protected}.${jws.payload}.${jws.signature}`;
+ }
+ };
+ exports2.CompactSign = CompactSign;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jws/general/sign.js
+var require_sign4 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jws/general/sign.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.GeneralSign = void 0;
+ var sign_js_1 = require_sign2();
+ var errors_js_1 = require_errors3();
+ var IndividualSignature = class {
+ constructor(sig, key, options) {
+ this.parent = sig;
+ this.key = key;
+ this.options = options;
+ }
+ setProtectedHeader(protectedHeader) {
+ if (this.protectedHeader) {
+ throw new TypeError("setProtectedHeader can only be called once");
+ }
+ this.protectedHeader = protectedHeader;
+ return this;
+ }
+ setUnprotectedHeader(unprotectedHeader) {
+ if (this.unprotectedHeader) {
+ throw new TypeError("setUnprotectedHeader can only be called once");
+ }
+ this.unprotectedHeader = unprotectedHeader;
+ return this;
+ }
+ addSignature(...args) {
+ return this.parent.addSignature(...args);
+ }
+ sign(...args) {
+ return this.parent.sign(...args);
+ }
+ done() {
+ return this.parent;
+ }
+ };
+ var GeneralSign = class {
+ constructor(payload) {
+ this._signatures = [];
+ this._payload = payload;
+ }
+ addSignature(key, options) {
+ const signature = new IndividualSignature(this, key, options);
+ this._signatures.push(signature);
+ return signature;
+ }
+ async sign() {
+ if (!this._signatures.length) {
+ throw new errors_js_1.JWSInvalid("at least one signature must be added");
+ }
+ const jws = {
+ signatures: [],
+ payload: ""
+ };
+ for (let i = 0; i < this._signatures.length; i++) {
+ const signature = this._signatures[i];
+ const flattened = new sign_js_1.FlattenedSign(this._payload);
+ flattened.setProtectedHeader(signature.protectedHeader);
+ flattened.setUnprotectedHeader(signature.unprotectedHeader);
+ const { payload, ...rest } = await flattened.sign(signature.key, signature.options);
+ if (i === 0) {
+ jws.payload = payload;
+ } else if (jws.payload !== payload) {
+ throw new errors_js_1.JWSInvalid("inconsistent use of JWS Unencoded Payload (RFC7797)");
+ }
+ jws.signatures.push(rest);
+ }
+ return jws;
+ }
+ };
+ exports2.GeneralSign = GeneralSign;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwt/produce.js
+var require_produce = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwt/produce.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.ProduceJWT = void 0;
+ var epoch_js_1 = require_epoch();
+ var is_object_js_1 = require_is_object();
+ var secs_js_1 = require_secs();
+ var ProduceJWT = class {
+ constructor(payload) {
+ if (!(0, is_object_js_1.default)(payload)) {
+ throw new TypeError("JWT Claims Set MUST be an object");
+ }
+ this._payload = payload;
+ }
+ setIssuer(issuer) {
+ this._payload = { ...this._payload, iss: issuer };
+ return this;
+ }
+ setSubject(subject) {
+ this._payload = { ...this._payload, sub: subject };
+ return this;
+ }
+ setAudience(audience) {
+ this._payload = { ...this._payload, aud: audience };
+ return this;
+ }
+ setJti(jwtId) {
+ this._payload = { ...this._payload, jti: jwtId };
+ return this;
+ }
+ setNotBefore(input) {
+ if (typeof input === "number") {
+ this._payload = { ...this._payload, nbf: input };
+ } else {
+ this._payload = { ...this._payload, nbf: (0, epoch_js_1.default)(/* @__PURE__ */ new Date()) + (0, secs_js_1.default)(input) };
+ }
+ return this;
+ }
+ setExpirationTime(input) {
+ if (typeof input === "number") {
+ this._payload = { ...this._payload, exp: input };
+ } else {
+ this._payload = { ...this._payload, exp: (0, epoch_js_1.default)(/* @__PURE__ */ new Date()) + (0, secs_js_1.default)(input) };
+ }
+ return this;
+ }
+ setIssuedAt(input) {
+ if (typeof input === "undefined") {
+ this._payload = { ...this._payload, iat: (0, epoch_js_1.default)(/* @__PURE__ */ new Date()) };
+ } else {
+ this._payload = { ...this._payload, iat: input };
+ }
+ return this;
+ }
+ };
+ exports2.ProduceJWT = ProduceJWT;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwt/sign.js
+var require_sign5 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwt/sign.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.SignJWT = void 0;
+ var sign_js_1 = require_sign3();
+ var errors_js_1 = require_errors3();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var produce_js_1 = require_produce();
+ var SignJWT = class extends produce_js_1.ProduceJWT {
+ setProtectedHeader(protectedHeader) {
+ this._protectedHeader = protectedHeader;
+ return this;
+ }
+ async sign(key, options) {
+ var _a;
+ const sig = new sign_js_1.CompactSign(buffer_utils_js_1.encoder.encode(JSON.stringify(this._payload)));
+ sig.setProtectedHeader(this._protectedHeader);
+ if (Array.isArray((_a = this._protectedHeader) === null || _a === void 0 ? void 0 : _a.crit) && this._protectedHeader.crit.includes("b64") && this._protectedHeader.b64 === false) {
+ throw new errors_js_1.JWTInvalid("JWTs MUST NOT use unencoded payload");
+ }
+ return sig.sign(key, options);
+ }
+ };
+ exports2.SignJWT = SignJWT;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwt/encrypt.js
+var require_encrypt5 = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwt/encrypt.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.EncryptJWT = void 0;
+ var encrypt_js_1 = require_encrypt4();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var produce_js_1 = require_produce();
+ var EncryptJWT = class extends produce_js_1.ProduceJWT {
+ setProtectedHeader(protectedHeader) {
+ if (this._protectedHeader) {
+ throw new TypeError("setProtectedHeader can only be called once");
+ }
+ this._protectedHeader = protectedHeader;
+ return this;
+ }
+ setKeyManagementParameters(parameters) {
+ if (this._keyManagementParameters) {
+ throw new TypeError("setKeyManagementParameters can only be called once");
+ }
+ this._keyManagementParameters = parameters;
+ return this;
+ }
+ setContentEncryptionKey(cek) {
+ if (this._cek) {
+ throw new TypeError("setContentEncryptionKey can only be called once");
+ }
+ this._cek = cek;
+ return this;
+ }
+ setInitializationVector(iv) {
+ if (this._iv) {
+ throw new TypeError("setInitializationVector can only be called once");
+ }
+ this._iv = iv;
+ return this;
+ }
+ replicateIssuerAsHeader() {
+ this._replicateIssuerAsHeader = true;
+ return this;
+ }
+ replicateSubjectAsHeader() {
+ this._replicateSubjectAsHeader = true;
+ return this;
+ }
+ replicateAudienceAsHeader() {
+ this._replicateAudienceAsHeader = true;
+ return this;
+ }
+ async encrypt(key, options) {
+ const enc = new encrypt_js_1.CompactEncrypt(buffer_utils_js_1.encoder.encode(JSON.stringify(this._payload)));
+ if (this._replicateIssuerAsHeader) {
+ this._protectedHeader = { ...this._protectedHeader, iss: this._payload.iss };
+ }
+ if (this._replicateSubjectAsHeader) {
+ this._protectedHeader = { ...this._protectedHeader, sub: this._payload.sub };
+ }
+ if (this._replicateAudienceAsHeader) {
+ this._protectedHeader = { ...this._protectedHeader, aud: this._payload.aud };
+ }
+ enc.setProtectedHeader(this._protectedHeader);
+ if (this._iv) {
+ enc.setInitializationVector(this._iv);
+ }
+ if (this._cek) {
+ enc.setContentEncryptionKey(this._cek);
+ }
+ if (this._keyManagementParameters) {
+ enc.setKeyManagementParameters(this._keyManagementParameters);
+ }
+ return enc.encrypt(key, options);
+ }
+ };
+ exports2.EncryptJWT = EncryptJWT;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwk/thumbprint.js
+var require_thumbprint = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwk/thumbprint.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.calculateJwkThumbprintUri = exports2.calculateJwkThumbprint = void 0;
+ var digest_js_1 = require_digest();
+ var base64url_js_1 = require_base64url();
+ var errors_js_1 = require_errors3();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var is_object_js_1 = require_is_object();
+ var check = (value, description) => {
+ if (typeof value !== "string" || !value) {
+ throw new errors_js_1.JWKInvalid(`${description} missing or invalid`);
+ }
+ };
+ async function calculateJwkThumbprint(jwk, digestAlgorithm) {
+ if (!(0, is_object_js_1.default)(jwk)) {
+ throw new TypeError("JWK must be an object");
+ }
+ digestAlgorithm !== null && digestAlgorithm !== void 0 ? digestAlgorithm : digestAlgorithm = "sha256";
+ if (digestAlgorithm !== "sha256" && digestAlgorithm !== "sha384" && digestAlgorithm !== "sha512") {
+ throw new TypeError('digestAlgorithm must one of "sha256", "sha384", or "sha512"');
+ }
+ let components;
+ switch (jwk.kty) {
+ case "EC":
+ check(jwk.crv, '"crv" (Curve) Parameter');
+ check(jwk.x, '"x" (X Coordinate) Parameter');
+ check(jwk.y, '"y" (Y Coordinate) Parameter');
+ components = { crv: jwk.crv, kty: jwk.kty, x: jwk.x, y: jwk.y };
+ break;
+ case "OKP":
+ check(jwk.crv, '"crv" (Subtype of Key Pair) Parameter');
+ check(jwk.x, '"x" (Public Key) Parameter');
+ components = { crv: jwk.crv, kty: jwk.kty, x: jwk.x };
+ break;
+ case "RSA":
+ check(jwk.e, '"e" (Exponent) Parameter');
+ check(jwk.n, '"n" (Modulus) Parameter');
+ components = { e: jwk.e, kty: jwk.kty, n: jwk.n };
+ break;
+ case "oct":
+ check(jwk.k, '"k" (Key Value) Parameter');
+ components = { k: jwk.k, kty: jwk.kty };
+ break;
+ default:
+ throw new errors_js_1.JOSENotSupported('"kty" (Key Type) Parameter missing or unsupported');
+ }
+ const data = buffer_utils_js_1.encoder.encode(JSON.stringify(components));
+ return (0, base64url_js_1.encode)(await (0, digest_js_1.default)(digestAlgorithm, data));
+ }
+ exports2.calculateJwkThumbprint = calculateJwkThumbprint;
+ async function calculateJwkThumbprintUri(jwk, digestAlgorithm) {
+ digestAlgorithm !== null && digestAlgorithm !== void 0 ? digestAlgorithm : digestAlgorithm = "sha256";
+ const thumbprint = await calculateJwkThumbprint(jwk, digestAlgorithm);
+ return `urn:ietf:params:oauth:jwk-thumbprint:sha-${digestAlgorithm.slice(-3)}:${thumbprint}`;
+ }
+ exports2.calculateJwkThumbprintUri = calculateJwkThumbprintUri;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwk/embedded.js
+var require_embedded = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwk/embedded.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.EmbeddedJWK = void 0;
+ var import_js_1 = require_import();
+ var is_object_js_1 = require_is_object();
+ var errors_js_1 = require_errors3();
+ async function EmbeddedJWK(protectedHeader, token) {
+ const joseHeader = {
+ ...protectedHeader,
+ ...token === null || token === void 0 ? void 0 : token.header
+ };
+ if (!(0, is_object_js_1.default)(joseHeader.jwk)) {
+ throw new errors_js_1.JWSInvalid('"jwk" (JSON Web Key) Header Parameter must be a JSON object');
+ }
+ const key = await (0, import_js_1.importJWK)({ ...joseHeader.jwk, ext: true }, joseHeader.alg, true);
+ if (key instanceof Uint8Array || key.type !== "public") {
+ throw new errors_js_1.JWSInvalid('"jwk" (JSON Web Key) Header Parameter must be a public key');
+ }
+ return key;
+ }
+ exports2.EmbeddedJWK = EmbeddedJWK;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwks/local.js
+var require_local = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwks/local.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.createLocalJWKSet = exports2.LocalJWKSet = exports2.isJWKSLike = void 0;
+ var import_js_1 = require_import();
+ var errors_js_1 = require_errors3();
+ var is_object_js_1 = require_is_object();
+ function getKtyFromAlg(alg) {
+ switch (typeof alg === "string" && alg.slice(0, 2)) {
+ case "RS":
+ case "PS":
+ return "RSA";
+ case "ES":
+ return "EC";
+ case "Ed":
+ return "OKP";
+ default:
+ throw new errors_js_1.JOSENotSupported('Unsupported "alg" value for a JSON Web Key Set');
+ }
+ }
+ function isJWKSLike(jwks) {
+ return jwks && typeof jwks === "object" && Array.isArray(jwks.keys) && jwks.keys.every(isJWKLike);
+ }
+ exports2.isJWKSLike = isJWKSLike;
+ function isJWKLike(key) {
+ return (0, is_object_js_1.default)(key);
+ }
+ function clone(obj) {
+ if (typeof structuredClone === "function") {
+ return structuredClone(obj);
+ }
+ return JSON.parse(JSON.stringify(obj));
+ }
+ var LocalJWKSet = class {
+ constructor(jwks) {
+ this._cached = /* @__PURE__ */ new WeakMap();
+ if (!isJWKSLike(jwks)) {
+ throw new errors_js_1.JWKSInvalid("JSON Web Key Set malformed");
+ }
+ this._jwks = clone(jwks);
+ }
+ async getKey(protectedHeader, token) {
+ const { alg, kid } = { ...protectedHeader, ...token === null || token === void 0 ? void 0 : token.header };
+ const kty = getKtyFromAlg(alg);
+ const candidates = this._jwks.keys.filter((jwk2) => {
+ let candidate = kty === jwk2.kty;
+ if (candidate && typeof kid === "string") {
+ candidate = kid === jwk2.kid;
+ }
+ if (candidate && typeof jwk2.alg === "string") {
+ candidate = alg === jwk2.alg;
+ }
+ if (candidate && typeof jwk2.use === "string") {
+ candidate = jwk2.use === "sig";
+ }
+ if (candidate && Array.isArray(jwk2.key_ops)) {
+ candidate = jwk2.key_ops.includes("verify");
+ }
+ if (candidate && alg === "EdDSA") {
+ candidate = jwk2.crv === "Ed25519" || jwk2.crv === "Ed448";
+ }
+ if (candidate) {
+ switch (alg) {
+ case "ES256":
+ candidate = jwk2.crv === "P-256";
+ break;
+ case "ES256K":
+ candidate = jwk2.crv === "secp256k1";
+ break;
+ case "ES384":
+ candidate = jwk2.crv === "P-384";
+ break;
+ case "ES512":
+ candidate = jwk2.crv === "P-521";
+ break;
+ }
+ }
+ return candidate;
+ });
+ const { 0: jwk, length } = candidates;
+ if (length === 0) {
+ throw new errors_js_1.JWKSNoMatchingKey();
+ } else if (length !== 1) {
+ const error = new errors_js_1.JWKSMultipleMatchingKeys();
+ const { _cached } = this;
+ error[Symbol.asyncIterator] = async function* () {
+ for (const jwk2 of candidates) {
+ try {
+ yield await importWithAlgCache(_cached, jwk2, alg);
+ } catch {
+ continue;
+ }
+ }
+ };
+ throw error;
+ }
+ return importWithAlgCache(this._cached, jwk, alg);
+ }
+ };
+ exports2.LocalJWKSet = LocalJWKSet;
+ async function importWithAlgCache(cache, jwk, alg) {
+ const cached = cache.get(jwk) || cache.set(jwk, {}).get(jwk);
+ if (cached[alg] === void 0) {
+ const key = await (0, import_js_1.importJWK)({ ...jwk, ext: true }, alg);
+ if (key instanceof Uint8Array || key.type !== "public") {
+ throw new errors_js_1.JWKSInvalid("JSON Web Key Set members must be public keys");
+ }
+ cached[alg] = key;
+ }
+ return cached[alg];
+ }
+ function createLocalJWKSet(jwks) {
+ const set = new LocalJWKSet(jwks);
+ return async function(protectedHeader, token) {
+ return set.getKey(protectedHeader, token);
+ };
+ }
+ exports2.createLocalJWKSet = createLocalJWKSet;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/fetch_jwks.js
+var require_fetch_jwks = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/fetch_jwks.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var http = require("http");
+ var https = require("https");
+ var events_1 = require("events");
+ var errors_js_1 = require_errors3();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var fetchJwks = async (url, timeout, options) => {
+ let get;
+ switch (url.protocol) {
+ case "https:":
+ get = https.get;
+ break;
+ case "http:":
+ get = http.get;
+ break;
+ default:
+ throw new TypeError("Unsupported URL protocol.");
+ }
+ const { agent, headers } = options;
+ const req = get(url.href, {
+ agent,
+ timeout,
+ headers
+ });
+ const [response] = await Promise.race([(0, events_1.once)(req, "response"), (0, events_1.once)(req, "timeout")]);
+ if (!response) {
+ req.destroy();
+ throw new errors_js_1.JWKSTimeout();
+ }
+ if (response.statusCode !== 200) {
+ throw new errors_js_1.JOSEError("Expected 200 OK from the JSON Web Key Set HTTP response");
+ }
+ const parts = [];
+ for await (const part of response) {
+ parts.push(part);
+ }
+ try {
+ return JSON.parse(buffer_utils_js_1.decoder.decode((0, buffer_utils_js_1.concat)(...parts)));
+ } catch {
+ throw new errors_js_1.JOSEError("Failed to parse the JSON Web Key Set HTTP response as JSON");
+ }
+ };
+ exports2.default = fetchJwks;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwks/remote.js
+var require_remote = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwks/remote.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.createRemoteJWKSet = void 0;
+ var fetch_jwks_js_1 = require_fetch_jwks();
+ var errors_js_1 = require_errors3();
+ var local_js_1 = require_local();
+ function isCloudflareWorkers() {
+ return typeof WebSocketPair !== "undefined" || typeof navigator !== "undefined" && navigator.userAgent === "Cloudflare-Workers" || typeof EdgeRuntime !== "undefined" && EdgeRuntime === "vercel";
+ }
+ var RemoteJWKSet = class extends local_js_1.LocalJWKSet {
+ constructor(url, options) {
+ super({ keys: [] });
+ this._jwks = void 0;
+ if (!(url instanceof URL)) {
+ throw new TypeError("url must be an instance of URL");
+ }
+ this._url = new URL(url.href);
+ this._options = { agent: options === null || options === void 0 ? void 0 : options.agent, headers: options === null || options === void 0 ? void 0 : options.headers };
+ this._timeoutDuration = typeof (options === null || options === void 0 ? void 0 : options.timeoutDuration) === "number" ? options === null || options === void 0 ? void 0 : options.timeoutDuration : 5e3;
+ this._cooldownDuration = typeof (options === null || options === void 0 ? void 0 : options.cooldownDuration) === "number" ? options === null || options === void 0 ? void 0 : options.cooldownDuration : 3e4;
+ this._cacheMaxAge = typeof (options === null || options === void 0 ? void 0 : options.cacheMaxAge) === "number" ? options === null || options === void 0 ? void 0 : options.cacheMaxAge : 6e5;
+ }
+ coolingDown() {
+ return typeof this._jwksTimestamp === "number" ? Date.now() < this._jwksTimestamp + this._cooldownDuration : false;
+ }
+ fresh() {
+ return typeof this._jwksTimestamp === "number" ? Date.now() < this._jwksTimestamp + this._cacheMaxAge : false;
+ }
+ async getKey(protectedHeader, token) {
+ if (!this._jwks || !this.fresh()) {
+ await this.reload();
+ }
+ try {
+ return await super.getKey(protectedHeader, token);
+ } catch (err) {
+ if (err instanceof errors_js_1.JWKSNoMatchingKey) {
+ if (this.coolingDown() === false) {
+ await this.reload();
+ return super.getKey(protectedHeader, token);
+ }
+ }
+ throw err;
+ }
+ }
+ async reload() {
+ if (this._pendingFetch && isCloudflareWorkers()) {
+ this._pendingFetch = void 0;
+ }
+ this._pendingFetch || (this._pendingFetch = (0, fetch_jwks_js_1.default)(this._url, this._timeoutDuration, this._options).then((json) => {
+ if (!(0, local_js_1.isJWKSLike)(json)) {
+ throw new errors_js_1.JWKSInvalid("JSON Web Key Set malformed");
+ }
+ this._jwks = { keys: json.keys };
+ this._jwksTimestamp = Date.now();
+ this._pendingFetch = void 0;
+ }).catch((err) => {
+ this._pendingFetch = void 0;
+ throw err;
+ }));
+ await this._pendingFetch;
+ }
+ };
+ function createRemoteJWKSet(url, options) {
+ const set = new RemoteJWKSet(url, options);
+ return async function(protectedHeader, token) {
+ return set.getKey(protectedHeader, token);
+ };
+ }
+ exports2.createRemoteJWKSet = createRemoteJWKSet;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/jwt/unsecured.js
+var require_unsecured = __commonJS({
+ "node_modules/jose/dist/node/cjs/jwt/unsecured.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.UnsecuredJWT = void 0;
+ var base64url = require_base64url();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var errors_js_1 = require_errors3();
+ var jwt_claims_set_js_1 = require_jwt_claims_set();
+ var produce_js_1 = require_produce();
+ var UnsecuredJWT = class extends produce_js_1.ProduceJWT {
+ encode() {
+ const header = base64url.encode(JSON.stringify({ alg: "none" }));
+ const payload = base64url.encode(JSON.stringify(this._payload));
+ return `${header}.${payload}.`;
+ }
+ static decode(jwt, options) {
+ if (typeof jwt !== "string") {
+ throw new errors_js_1.JWTInvalid("Unsecured JWT must be a string");
+ }
+ const { 0: encodedHeader, 1: encodedPayload, 2: signature, length } = jwt.split(".");
+ if (length !== 3 || signature !== "") {
+ throw new errors_js_1.JWTInvalid("Invalid Unsecured JWT");
+ }
+ let header;
+ try {
+ header = JSON.parse(buffer_utils_js_1.decoder.decode(base64url.decode(encodedHeader)));
+ if (header.alg !== "none")
+ throw new Error();
+ } catch {
+ throw new errors_js_1.JWTInvalid("Invalid Unsecured JWT");
+ }
+ const payload = (0, jwt_claims_set_js_1.default)(header, base64url.decode(encodedPayload), options);
+ return { payload, header };
+ }
+ };
+ exports2.UnsecuredJWT = UnsecuredJWT;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/util/base64url.js
+var require_base64url2 = __commonJS({
+ "node_modules/jose/dist/node/cjs/util/base64url.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.decode = exports2.encode = void 0;
+ var base64url = require_base64url();
+ exports2.encode = base64url.encode;
+ exports2.decode = base64url.decode;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/util/decode_protected_header.js
+var require_decode_protected_header = __commonJS({
+ "node_modules/jose/dist/node/cjs/util/decode_protected_header.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.decodeProtectedHeader = void 0;
+ var base64url_js_1 = require_base64url2();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var is_object_js_1 = require_is_object();
+ function decodeProtectedHeader(token) {
+ let protectedB64u;
+ if (typeof token === "string") {
+ const parts = token.split(".");
+ if (parts.length === 3 || parts.length === 5) {
+ ;
+ [protectedB64u] = parts;
+ }
+ } else if (typeof token === "object" && token) {
+ if ("protected" in token) {
+ protectedB64u = token.protected;
+ } else {
+ throw new TypeError("Token does not contain a Protected Header");
+ }
+ }
+ try {
+ if (typeof protectedB64u !== "string" || !protectedB64u) {
+ throw new Error();
+ }
+ const result = JSON.parse(buffer_utils_js_1.decoder.decode((0, base64url_js_1.decode)(protectedB64u)));
+ if (!(0, is_object_js_1.default)(result)) {
+ throw new Error();
+ }
+ return result;
+ } catch {
+ throw new TypeError("Invalid Token or Protected Header formatting");
+ }
+ }
+ exports2.decodeProtectedHeader = decodeProtectedHeader;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/util/decode_jwt.js
+var require_decode_jwt = __commonJS({
+ "node_modules/jose/dist/node/cjs/util/decode_jwt.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.decodeJwt = void 0;
+ var base64url_js_1 = require_base64url2();
+ var buffer_utils_js_1 = require_buffer_utils();
+ var is_object_js_1 = require_is_object();
+ var errors_js_1 = require_errors3();
+ function decodeJwt(jwt) {
+ if (typeof jwt !== "string")
+ throw new errors_js_1.JWTInvalid("JWTs must use Compact JWS serialization, JWT must be a string");
+ const { 1: payload, length } = jwt.split(".");
+ if (length === 5)
+ throw new errors_js_1.JWTInvalid("Only JWTs using Compact JWS serialization can be decoded");
+ if (length !== 3)
+ throw new errors_js_1.JWTInvalid("Invalid JWT");
+ if (!payload)
+ throw new errors_js_1.JWTInvalid("JWTs must contain a payload");
+ let decoded;
+ try {
+ decoded = (0, base64url_js_1.decode)(payload);
+ } catch {
+ throw new errors_js_1.JWTInvalid("Failed to base64url decode the payload");
+ }
+ let result;
+ try {
+ result = JSON.parse(buffer_utils_js_1.decoder.decode(decoded));
+ } catch {
+ throw new errors_js_1.JWTInvalid("Failed to parse the decoded payload as JSON");
+ }
+ if (!(0, is_object_js_1.default)(result))
+ throw new errors_js_1.JWTInvalid("Invalid JWT Claims Set");
+ return result;
+ }
+ exports2.decodeJwt = decodeJwt;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/generate.js
+var require_generate = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/generate.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.generateKeyPair = exports2.generateSecret = void 0;
+ var crypto_1 = require("crypto");
+ var util_1 = require("util");
+ var random_js_1 = require_random3();
+ var check_modulus_length_js_1 = require_check_modulus_length();
+ var errors_js_1 = require_errors3();
+ var generate = (0, util_1.promisify)(crypto_1.generateKeyPair);
+ async function generateSecret(alg, options) {
+ let length;
+ switch (alg) {
+ case "HS256":
+ case "HS384":
+ case "HS512":
+ case "A128CBC-HS256":
+ case "A192CBC-HS384":
+ case "A256CBC-HS512":
+ length = parseInt(alg.slice(-3), 10);
+ break;
+ case "A128KW":
+ case "A192KW":
+ case "A256KW":
+ case "A128GCMKW":
+ case "A192GCMKW":
+ case "A256GCMKW":
+ case "A128GCM":
+ case "A192GCM":
+ case "A256GCM":
+ length = parseInt(alg.slice(1, 4), 10);
+ break;
+ default:
+ throw new errors_js_1.JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
+ }
+ return (0, crypto_1.createSecretKey)((0, random_js_1.default)(new Uint8Array(length >> 3)));
+ }
+ exports2.generateSecret = generateSecret;
+ async function generateKeyPair(alg, options) {
+ var _a, _b;
+ switch (alg) {
+ case "RS256":
+ case "RS384":
+ case "RS512":
+ case "PS256":
+ case "PS384":
+ case "PS512":
+ case "RSA-OAEP":
+ case "RSA-OAEP-256":
+ case "RSA-OAEP-384":
+ case "RSA-OAEP-512":
+ case "RSA1_5": {
+ const modulusLength = (_a = options === null || options === void 0 ? void 0 : options.modulusLength) !== null && _a !== void 0 ? _a : 2048;
+ if (typeof modulusLength !== "number" || modulusLength < 2048) {
+ throw new errors_js_1.JOSENotSupported("Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used");
+ }
+ const keypair = await generate("rsa", {
+ modulusLength,
+ publicExponent: 65537
+ });
+ (0, check_modulus_length_js_1.setModulusLength)(keypair.privateKey, modulusLength);
+ (0, check_modulus_length_js_1.setModulusLength)(keypair.publicKey, modulusLength);
+ return keypair;
+ }
+ case "ES256":
+ return generate("ec", { namedCurve: "P-256" });
+ case "ES256K":
+ return generate("ec", { namedCurve: "secp256k1" });
+ case "ES384":
+ return generate("ec", { namedCurve: "P-384" });
+ case "ES512":
+ return generate("ec", { namedCurve: "P-521" });
+ case "EdDSA": {
+ switch (options === null || options === void 0 ? void 0 : options.crv) {
+ case void 0:
+ case "Ed25519":
+ return generate("ed25519");
+ case "Ed448":
+ return generate("ed448");
+ default:
+ throw new errors_js_1.JOSENotSupported("Invalid or unsupported crv option provided, supported values are Ed25519 and Ed448");
+ }
+ }
+ case "ECDH-ES":
+ case "ECDH-ES+A128KW":
+ case "ECDH-ES+A192KW":
+ case "ECDH-ES+A256KW":
+ const crv = (_b = options === null || options === void 0 ? void 0 : options.crv) !== null && _b !== void 0 ? _b : "P-256";
+ switch (crv) {
+ case void 0:
+ case "P-256":
+ case "P-384":
+ case "P-521":
+ return generate("ec", { namedCurve: crv });
+ case "X25519":
+ return generate("x25519");
+ case "X448":
+ return generate("x448");
+ default:
+ throw new errors_js_1.JOSENotSupported("Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, X25519, and X448");
+ }
+ default:
+ throw new errors_js_1.JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
+ }
+ }
+ exports2.generateKeyPair = generateKeyPair;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/key/generate_key_pair.js
+var require_generate_key_pair = __commonJS({
+ "node_modules/jose/dist/node/cjs/key/generate_key_pair.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.generateKeyPair = void 0;
+ var generate_js_1 = require_generate();
+ async function generateKeyPair(alg, options) {
+ return (0, generate_js_1.generateKeyPair)(alg, options);
+ }
+ exports2.generateKeyPair = generateKeyPair;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/key/generate_secret.js
+var require_generate_secret = __commonJS({
+ "node_modules/jose/dist/node/cjs/key/generate_secret.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.generateSecret = void 0;
+ var generate_js_1 = require_generate();
+ async function generateSecret(alg, options) {
+ return (0, generate_js_1.generateSecret)(alg, options);
+ }
+ exports2.generateSecret = generateSecret;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/runtime/runtime.js
+var require_runtime = __commonJS({
+ "node_modules/jose/dist/node/cjs/runtime/runtime.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.default = "node:crypto";
+ }
+});
+
+// node_modules/jose/dist/node/cjs/util/runtime.js
+var require_runtime2 = __commonJS({
+ "node_modules/jose/dist/node/cjs/util/runtime.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var runtime_js_1 = require_runtime();
+ exports2.default = runtime_js_1.default;
+ }
+});
+
+// node_modules/jose/dist/node/cjs/index.js
+var require_cjs2 = __commonJS({
+ "node_modules/jose/dist/node/cjs/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.cryptoRuntime = exports2.base64url = exports2.generateSecret = exports2.generateKeyPair = exports2.errors = exports2.decodeJwt = exports2.decodeProtectedHeader = exports2.importJWK = exports2.importX509 = exports2.importPKCS8 = exports2.importSPKI = exports2.exportJWK = exports2.exportSPKI = exports2.exportPKCS8 = exports2.UnsecuredJWT = exports2.createRemoteJWKSet = exports2.createLocalJWKSet = exports2.EmbeddedJWK = exports2.calculateJwkThumbprintUri = exports2.calculateJwkThumbprint = exports2.EncryptJWT = exports2.SignJWT = exports2.GeneralSign = exports2.FlattenedSign = exports2.CompactSign = exports2.FlattenedEncrypt = exports2.CompactEncrypt = exports2.jwtDecrypt = exports2.jwtVerify = exports2.generalVerify = exports2.flattenedVerify = exports2.compactVerify = exports2.GeneralEncrypt = exports2.generalDecrypt = exports2.flattenedDecrypt = exports2.compactDecrypt = void 0;
+ var decrypt_js_1 = require_decrypt3();
+ Object.defineProperty(exports2, "compactDecrypt", { enumerable: true, get: function() {
+ return decrypt_js_1.compactDecrypt;
+ } });
+ var decrypt_js_2 = require_decrypt2();
+ Object.defineProperty(exports2, "flattenedDecrypt", { enumerable: true, get: function() {
+ return decrypt_js_2.flattenedDecrypt;
+ } });
+ var decrypt_js_3 = require_decrypt4();
+ Object.defineProperty(exports2, "generalDecrypt", { enumerable: true, get: function() {
+ return decrypt_js_3.generalDecrypt;
+ } });
+ var encrypt_js_1 = require_encrypt3();
+ Object.defineProperty(exports2, "GeneralEncrypt", { enumerable: true, get: function() {
+ return encrypt_js_1.GeneralEncrypt;
+ } });
+ var verify_js_1 = require_verify3();
+ Object.defineProperty(exports2, "compactVerify", { enumerable: true, get: function() {
+ return verify_js_1.compactVerify;
+ } });
+ var verify_js_2 = require_verify2();
+ Object.defineProperty(exports2, "flattenedVerify", { enumerable: true, get: function() {
+ return verify_js_2.flattenedVerify;
+ } });
+ var verify_js_3 = require_verify4();
+ Object.defineProperty(exports2, "generalVerify", { enumerable: true, get: function() {
+ return verify_js_3.generalVerify;
+ } });
+ var verify_js_4 = require_verify5();
+ Object.defineProperty(exports2, "jwtVerify", { enumerable: true, get: function() {
+ return verify_js_4.jwtVerify;
+ } });
+ var decrypt_js_4 = require_decrypt5();
+ Object.defineProperty(exports2, "jwtDecrypt", { enumerable: true, get: function() {
+ return decrypt_js_4.jwtDecrypt;
+ } });
+ var encrypt_js_2 = require_encrypt4();
+ Object.defineProperty(exports2, "CompactEncrypt", { enumerable: true, get: function() {
+ return encrypt_js_2.CompactEncrypt;
+ } });
+ var encrypt_js_3 = require_encrypt2();
+ Object.defineProperty(exports2, "FlattenedEncrypt", { enumerable: true, get: function() {
+ return encrypt_js_3.FlattenedEncrypt;
+ } });
+ var sign_js_1 = require_sign3();
+ Object.defineProperty(exports2, "CompactSign", { enumerable: true, get: function() {
+ return sign_js_1.CompactSign;
+ } });
+ var sign_js_2 = require_sign2();
+ Object.defineProperty(exports2, "FlattenedSign", { enumerable: true, get: function() {
+ return sign_js_2.FlattenedSign;
+ } });
+ var sign_js_3 = require_sign4();
+ Object.defineProperty(exports2, "GeneralSign", { enumerable: true, get: function() {
+ return sign_js_3.GeneralSign;
+ } });
+ var sign_js_4 = require_sign5();
+ Object.defineProperty(exports2, "SignJWT", { enumerable: true, get: function() {
+ return sign_js_4.SignJWT;
+ } });
+ var encrypt_js_4 = require_encrypt5();
+ Object.defineProperty(exports2, "EncryptJWT", { enumerable: true, get: function() {
+ return encrypt_js_4.EncryptJWT;
+ } });
+ var thumbprint_js_1 = require_thumbprint();
+ Object.defineProperty(exports2, "calculateJwkThumbprint", { enumerable: true, get: function() {
+ return thumbprint_js_1.calculateJwkThumbprint;
+ } });
+ Object.defineProperty(exports2, "calculateJwkThumbprintUri", { enumerable: true, get: function() {
+ return thumbprint_js_1.calculateJwkThumbprintUri;
+ } });
+ var embedded_js_1 = require_embedded();
+ Object.defineProperty(exports2, "EmbeddedJWK", { enumerable: true, get: function() {
+ return embedded_js_1.EmbeddedJWK;
+ } });
+ var local_js_1 = require_local();
+ Object.defineProperty(exports2, "createLocalJWKSet", { enumerable: true, get: function() {
+ return local_js_1.createLocalJWKSet;
+ } });
+ var remote_js_1 = require_remote();
+ Object.defineProperty(exports2, "createRemoteJWKSet", { enumerable: true, get: function() {
+ return remote_js_1.createRemoteJWKSet;
+ } });
+ var unsecured_js_1 = require_unsecured();
+ Object.defineProperty(exports2, "UnsecuredJWT", { enumerable: true, get: function() {
+ return unsecured_js_1.UnsecuredJWT;
+ } });
+ var export_js_1 = require_export();
+ Object.defineProperty(exports2, "exportPKCS8", { enumerable: true, get: function() {
+ return export_js_1.exportPKCS8;
+ } });
+ Object.defineProperty(exports2, "exportSPKI", { enumerable: true, get: function() {
+ return export_js_1.exportSPKI;
+ } });
+ Object.defineProperty(exports2, "exportJWK", { enumerable: true, get: function() {
+ return export_js_1.exportJWK;
+ } });
+ var import_js_1 = require_import();
+ Object.defineProperty(exports2, "importSPKI", { enumerable: true, get: function() {
+ return import_js_1.importSPKI;
+ } });
+ Object.defineProperty(exports2, "importPKCS8", { enumerable: true, get: function() {
+ return import_js_1.importPKCS8;
+ } });
+ Object.defineProperty(exports2, "importX509", { enumerable: true, get: function() {
+ return import_js_1.importX509;
+ } });
+ Object.defineProperty(exports2, "importJWK", { enumerable: true, get: function() {
+ return import_js_1.importJWK;
+ } });
+ var decode_protected_header_js_1 = require_decode_protected_header();
+ Object.defineProperty(exports2, "decodeProtectedHeader", { enumerable: true, get: function() {
+ return decode_protected_header_js_1.decodeProtectedHeader;
+ } });
+ var decode_jwt_js_1 = require_decode_jwt();
+ Object.defineProperty(exports2, "decodeJwt", { enumerable: true, get: function() {
+ return decode_jwt_js_1.decodeJwt;
+ } });
+ exports2.errors = require_errors3();
+ var generate_key_pair_js_1 = require_generate_key_pair();
+ Object.defineProperty(exports2, "generateKeyPair", { enumerable: true, get: function() {
+ return generate_key_pair_js_1.generateKeyPair;
+ } });
+ var generate_secret_js_1 = require_generate_secret();
+ Object.defineProperty(exports2, "generateSecret", { enumerable: true, get: function() {
+ return generate_secret_js_1.generateSecret;
+ } });
+ exports2.base64url = require_base64url2();
+ var runtime_js_1 = require_runtime2();
+ Object.defineProperty(exports2, "cryptoRuntime", { enumerable: true, get: function() {
+ return runtime_js_1.default;
+ } });
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/lib/auth-utils.js
+var require_auth_utils = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/lib/auth-utils.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.stringToArrayify = exports2.totpAuthFactorParser = exports2.whatsAppOtpAuthFactorParser = exports2.smsOtpAuthFactorParser = exports2.emailOtpAuthFactorParser = void 0;
+ exports2.getAuthIdByAuthMethod = getAuthIdByAuthMethod;
+ exports2.getEthAuthMethodId = getEthAuthMethodId;
+ var tslib_1 = (init_tslib_es68(), __toCommonJS(tslib_es6_exports8));
+ var constants_1 = require_src2();
+ var ethers_1 = require_lib36();
+ var jose = tslib_1.__importStar(require_cjs2());
+ async function getAuthIdByAuthMethod(authMethod) {
+ let authMethodId;
+ switch (authMethod.authMethodType) {
+ case 1:
+ authMethodId = getEthAuthMethodId(authMethod);
+ break;
+ case 4:
+ authMethodId = await getDiscordAuthId(authMethod);
+ break;
+ case 3:
+ authMethodId = await getWebauthnAuthId(authMethod);
+ break;
+ case 6:
+ authMethodId = await getGoogleJwtAuthId(authMethod);
+ break;
+ case 9:
+ authMethodId = await getStytchAuthId(authMethod);
+ break;
+ case 10:
+ case 11:
+ case 12:
+ case 13:
+ authMethodId = await getStytchFactorAuthMethodId(authMethod);
+ break;
+ default:
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ authMethod
+ }
+ }, `Unsupported auth method type: ${authMethod.authMethodType}`);
+ }
+ return authMethodId;
+ }
+ function getEthAuthMethodId(authMethod) {
+ let accessToken;
+ try {
+ accessToken = JSON.parse(authMethod.accessToken);
+ } catch (err) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ authMethod
+ },
+ cause: err
+ }, "Unable to parse access token as JSON object");
+ }
+ const address = accessToken.address;
+ if (!address) {
+ throw new constants_1.NoWalletException({
+ info: {
+ authMethod
+ }
+ }, "No address found in access token");
+ }
+ return ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.toUtf8Bytes(`${address}:lit`));
+ }
+ async function getDiscordAuthId(authMethod) {
+ const _clientId = "1052874239658692668";
+ let userId;
+ const meResponse = await fetch("https://discord.com/api/users/@me", {
+ method: "GET",
+ headers: {
+ authorization: `Bearer ${authMethod.accessToken}`
+ }
+ });
+ if (meResponse.ok) {
+ const user = await meResponse.json();
+ userId = user.id;
+ } else {
+ throw new constants_1.NetworkError({
+ info: {
+ authMethod
+ }
+ }, "Unable to verify Discord account");
+ }
+ const authMethodId = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.toUtf8Bytes(`${userId}:${_clientId}`));
+ return authMethodId;
+ }
+ async function getWebauthnAuthId(authMethod) {
+ let credentialId;
+ const rpNameToUse = "lit";
+ try {
+ credentialId = JSON.parse(authMethod.accessToken).rawId;
+ } catch (err) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ authMethod
+ },
+ cause: err
+ }, `Error when parsing auth method to generate auth method ID for WebAuthn`);
+ }
+ const authMethodId = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.toUtf8Bytes(`${credentialId}:${rpNameToUse}`));
+ return authMethodId;
+ }
+ async function getStytchAuthId(authMethod) {
+ try {
+ const tokenBody = _parseJWT(authMethod.accessToken);
+ const userId = tokenBody["sub"];
+ const orgId = tokenBody["aud"][0];
+ const authMethodId = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.toUtf8Bytes(`${userId.toLowerCase()}:${orgId.toLowerCase()}`));
+ return authMethodId;
+ } catch (err) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ authMethod
+ },
+ cause: err
+ }, `Error while parsing auth method to generate auth method id for Stytch OTP`);
+ }
+ }
+ function getStytchFactorAuthMethodId(authMethod) {
+ return new Promise((resolve, reject) => {
+ const accessToken = authMethod.accessToken;
+ const parsedToken = _parseJWT(accessToken);
+ let factor = "email";
+ switch (authMethod.authMethodType) {
+ case 10:
+ factor = "email";
+ break;
+ case 11:
+ factor = "sms";
+ break;
+ case 12:
+ factor = "whatsApp";
+ break;
+ case 13:
+ factor = "totp";
+ break;
+ default:
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ authMethod
+ }
+ }, `Unsupport stytch auth type`);
+ }
+ const factorParser = _resolveAuthFactor(factor).parser;
+ try {
+ resolve(factorParser(parsedToken, "https://stytch.com/session"));
+ } catch (e) {
+ reject(e);
+ }
+ });
+ }
+ async function getGoogleJwtAuthId(authMethod) {
+ const tokenPayload = jose.decodeJwt(authMethod.accessToken);
+ const userId = tokenPayload["sub"];
+ const audience = tokenPayload["aud"];
+ const authMethodId = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.toUtf8Bytes(`${userId}:${audience}`));
+ return authMethodId;
+ }
+ function _parseJWT(jwt) {
+ const parts = jwt.split(".");
+ if (parts.length !== 3) {
+ throw new constants_1.WrongParamFormat({
+ info: {
+ jwt
+ }
+ }, "Invalid token length");
+ }
+ const body = Buffer.from(parts[1], "base64");
+ const parsedBody = JSON.parse(body.toString("ascii"));
+ console.log("JWT body: ", parsedBody);
+ return parsedBody;
+ }
+ var emailOtpAuthFactorParser = (parsedToken, provider) => {
+ const session = parsedToken[provider];
+ const authFactors = session["authentication_factors"];
+ const authFactor = authFactors.find((value, _index, _obj) => {
+ if (value.email_factor)
+ return value;
+ });
+ if (!authFactor) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ parsedToken,
+ provider
+ }
+ }, "Could not find email authentication info in session");
+ }
+ const audience = parsedToken["aud"][0];
+ if (!audience) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ parsedToken,
+ provider
+ }
+ }, "Token does not contain an audience (project identifier), aborting");
+ }
+ const userId = authFactor.email_factor.email_address;
+ const authMethodId = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.toUtf8Bytes(`${userId.toLowerCase()}:${audience.toLowerCase()}`));
+ return authMethodId;
+ };
+ exports2.emailOtpAuthFactorParser = emailOtpAuthFactorParser;
+ var smsOtpAuthFactorParser = (parsedToken, provider) => {
+ const session = parsedToken[provider];
+ const authFactors = session["authentication_factors"];
+ let authFactor = authFactors.find((value, _index, _obj) => {
+ if (value.phone_number_factor)
+ return value;
+ });
+ if (!authFactor) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ parsedToken,
+ provider
+ }
+ }, "Could not find email authentication info in session");
+ }
+ const audience = parsedToken["aud"][0];
+ if (!audience) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ parsedToken,
+ provider
+ }
+ }, "Token does not contain an audience (project identifier), aborting");
+ }
+ const userId = authFactor.phone_number_factor.phone_number;
+ const authMethodId = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.toUtf8Bytes(`${userId.toLowerCase()}:${audience.toLowerCase()}`));
+ return authMethodId;
+ };
+ exports2.smsOtpAuthFactorParser = smsOtpAuthFactorParser;
+ var whatsAppOtpAuthFactorParser = (parsedToken, provider) => {
+ const session = parsedToken[provider];
+ const authFactors = session["authentication_factors"];
+ let authFactor = authFactors.find((value, _index, _obj) => {
+ if (value.phone_number_factor)
+ return value;
+ });
+ if (!authFactor) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ parsedToken,
+ provider
+ }
+ }, "Could not find email authentication info in session");
+ }
+ const audience = parsedToken["aud"][0];
+ if (!audience) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ parsedToken,
+ provider
+ }
+ }, "Token does not contain an audience (project identifier), aborting");
+ }
+ const userId = authFactor.phone_number_factor.phone_number;
+ const authMethodId = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.toUtf8Bytes(`${userId.toLowerCase()}:${audience.toLowerCase()}`));
+ return authMethodId;
+ };
+ exports2.whatsAppOtpAuthFactorParser = whatsAppOtpAuthFactorParser;
+ var totpAuthFactorParser = (parsedToken, provider) => {
+ const session = parsedToken[provider];
+ const authFactors = session["authentication_factors"];
+ let authFactor = authFactors.find((value, _index, _obj) => {
+ if (value.phone_number_factor)
+ return value;
+ });
+ if (!authFactor) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ parsedToken,
+ provider
+ }
+ }, "Could not find email authentication info in session");
+ }
+ const audience = parsedToken["aud"][0];
+ if (!audience) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ parsedToken,
+ provider
+ }
+ }, "Token does not contain an audience (project identifier), aborting");
+ }
+ const userId = authFactor.authenticator_app_factor.totp_id;
+ const authMethodId = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.toUtf8Bytes(`${userId.toLowerCase()}:${audience.toLowerCase()}`));
+ return authMethodId;
+ };
+ exports2.totpAuthFactorParser = totpAuthFactorParser;
+ function _resolveAuthFactor(factor) {
+ switch (factor) {
+ case "email":
+ return {
+ parser: exports2.emailOtpAuthFactorParser,
+ authMethodType: 10
+ };
+ case "sms":
+ return {
+ parser: exports2.smsOtpAuthFactorParser,
+ authMethodType: 11
+ };
+ case "whatsApp":
+ return {
+ parser: exports2.whatsAppOtpAuthFactorParser,
+ authMethodType: 12
+ };
+ case "totp":
+ return {
+ parser: exports2.totpAuthFactorParser,
+ authMethodType: 13
+ };
+ }
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ factor
+ }
+ }, `Error could not find auth with factor ${factor}`);
+ }
+ var stringToArrayify = (str) => {
+ try {
+ const encoder = new TextEncoder();
+ return encoder.encode(str);
+ } catch (e) {
+ throw new constants_1.InvalidParamType({
+ info: {
+ str
+ }
+ }, `Error converting string to arrayify`);
+ }
+ };
+ exports2.stringToArrayify = stringToArrayify;
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/lib/helpers/getBytes32FromMultihash.js
+var require_getBytes32FromMultihash = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/lib/helpers/getBytes32FromMultihash.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getBytes32FromMultihash = void 0;
+ var constants_1 = require_src2();
+ var getBytes32FromMultihash = (ipfsId, CID) => {
+ if (!CID) {
+ throw new constants_1.ParamsMissingError({
+ info: {
+ ipfsId,
+ CID
+ }
+ }, 'CID is required. Please import from "multiformats/cid" package, and pass the CID object to the function.');
+ }
+ if (!ipfsId) {
+ throw new constants_1.ParamsMissingError({
+ info: {
+ ipfsId
+ }
+ }, "ipfsId is required");
+ }
+ let cid;
+ try {
+ cid = CID.parse(ipfsId);
+ } catch (e) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ ipfsId,
+ CID
+ }
+ }, "Error parsing CID");
+ }
+ const hashFunction = cid.multihash.code;
+ const size = cid.multihash.size;
+ const digest = "0x" + Buffer.from(cid.multihash.digest).toString("hex");
+ const ipfsHash = {
+ digest,
+ hashFunction,
+ size
+ };
+ return ipfsHash;
+ };
+ exports2.getBytes32FromMultihash = getBytes32FromMultihash;
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/lib/utils.js
+var require_utils17 = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/lib/utils.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.convertRequestsPerDayToPerSecond = convertRequestsPerDayToPerSecond;
+ exports2.calculateUTCMidnightExpiration = calculateUTCMidnightExpiration;
+ exports2.requestsToKilosecond = requestsToKilosecond;
+ exports2.requestsToDay = requestsToDay;
+ exports2.requestsToSecond = requestsToSecond;
+ var constants_1 = require_src2();
+ function convertRequestsPerDayToPerSecond(requestsPerDay) {
+ const secondsInADay = 86400;
+ return requestsPerDay / secondsInADay;
+ }
+ function calculateUTCMidnightExpiration(daysFromNow) {
+ const now = /* @__PURE__ */ new Date();
+ const utcNow = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate());
+ const futureDate = new Date(utcNow);
+ futureDate.setUTCDate(futureDate.getUTCDate() + daysFromNow);
+ futureDate.setUTCHours(0, 0, 0, 0);
+ return Math.floor(futureDate.getTime() / 1e3);
+ }
+ function requestsToKilosecond({ period, requests }) {
+ const secondsPerDay = 86400;
+ const kilosecondsPerDay = secondsPerDay / 1e3;
+ switch (period) {
+ case "day":
+ return Math.round(requests / kilosecondsPerDay);
+ case "second":
+ return Math.round(requests * 1e3);
+ default:
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ period,
+ requests
+ }
+ }, "Invalid period");
+ }
+ }
+ function requestsToDay({ period, requests }) {
+ const secondsPerDay = 86400;
+ switch (period) {
+ case "second":
+ return Math.round(requests * secondsPerDay);
+ case "kilosecond":
+ return Math.round(requests * 86);
+ default:
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ period,
+ requests
+ }
+ }, "Invalid period");
+ }
+ }
+ function requestsToSecond({ period, requests }) {
+ const secondsPerDay = 86400;
+ switch (period) {
+ case "day":
+ return Math.round(requests / secondsPerDay);
+ case "kilosecond":
+ return Math.round(requests * 1e3);
+ default:
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ period,
+ requests
+ }
+ }, "Invalid period");
+ }
+ }
+ }
+});
+
+// node_modules/date-and-time/date-and-time.js
+var require_date_and_time = __commonJS({
+ "node_modules/date-and-time/date-and-time.js"(exports2, module2) {
+ (function(global2, factory) {
+ typeof exports2 === "object" && typeof module2 !== "undefined" ? module2.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.date = factory());
+ })(exports2, function() {
+ "use strict";
+ var locales = {}, plugins = {}, lang = "en", _res = {
+ MMMM: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
+ MMM: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
+ dddd: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
+ ddd: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
+ dd: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
+ A: ["AM", "PM"]
+ }, _formatter = {
+ YYYY: function(d) {
+ return ("000" + d.getFullYear()).slice(-4);
+ },
+ YY: function(d) {
+ return ("0" + d.getFullYear()).slice(-2);
+ },
+ Y: function(d) {
+ return "" + d.getFullYear();
+ },
+ MMMM: function(d) {
+ return this.res.MMMM[d.getMonth()];
+ },
+ MMM: function(d) {
+ return this.res.MMM[d.getMonth()];
+ },
+ MM: function(d) {
+ return ("0" + (d.getMonth() + 1)).slice(-2);
+ },
+ M: function(d) {
+ return "" + (d.getMonth() + 1);
+ },
+ DD: function(d) {
+ return ("0" + d.getDate()).slice(-2);
+ },
+ D: function(d) {
+ return "" + d.getDate();
+ },
+ HH: function(d) {
+ return ("0" + d.getHours()).slice(-2);
+ },
+ H: function(d) {
+ return "" + d.getHours();
+ },
+ A: function(d) {
+ return this.res.A[d.getHours() > 11 | 0];
+ },
+ hh: function(d) {
+ return ("0" + (d.getHours() % 12 || 12)).slice(-2);
+ },
+ h: function(d) {
+ return "" + (d.getHours() % 12 || 12);
+ },
+ mm: function(d) {
+ return ("0" + d.getMinutes()).slice(-2);
+ },
+ m: function(d) {
+ return "" + d.getMinutes();
+ },
+ ss: function(d) {
+ return ("0" + d.getSeconds()).slice(-2);
+ },
+ s: function(d) {
+ return "" + d.getSeconds();
+ },
+ SSS: function(d) {
+ return ("00" + d.getMilliseconds()).slice(-3);
+ },
+ SS: function(d) {
+ return ("0" + (d.getMilliseconds() / 10 | 0)).slice(-2);
+ },
+ S: function(d) {
+ return "" + (d.getMilliseconds() / 100 | 0);
+ },
+ dddd: function(d) {
+ return this.res.dddd[d.getDay()];
+ },
+ ddd: function(d) {
+ return this.res.ddd[d.getDay()];
+ },
+ dd: function(d) {
+ return this.res.dd[d.getDay()];
+ },
+ Z: function(d) {
+ var offset = d.getTimezoneOffset() / 0.6 | 0;
+ return (offset > 0 ? "-" : "+") + ("000" + Math.abs(offset - (offset % 100 * 0.4 | 0))).slice(-4);
+ },
+ ZZ: function(d) {
+ var offset = d.getTimezoneOffset();
+ var mod = Math.abs(offset);
+ return (offset > 0 ? "-" : "+") + ("0" + (mod / 60 | 0)).slice(-2) + ":" + ("0" + mod % 60).slice(-2);
+ },
+ post: function(str) {
+ return str;
+ },
+ res: _res
+ }, _parser = {
+ YYYY: function(str) {
+ return this.exec(/^\d{4}/, str);
+ },
+ Y: function(str) {
+ return this.exec(/^\d{1,4}/, str);
+ },
+ MMMM: function(str) {
+ var result = this.find(this.res.MMMM, str);
+ result.value++;
+ return result;
+ },
+ MMM: function(str) {
+ var result = this.find(this.res.MMM, str);
+ result.value++;
+ return result;
+ },
+ MM: function(str) {
+ return this.exec(/^\d\d/, str);
+ },
+ M: function(str) {
+ return this.exec(/^\d\d?/, str);
+ },
+ DD: function(str) {
+ return this.exec(/^\d\d/, str);
+ },
+ D: function(str) {
+ return this.exec(/^\d\d?/, str);
+ },
+ HH: function(str) {
+ return this.exec(/^\d\d/, str);
+ },
+ H: function(str) {
+ return this.exec(/^\d\d?/, str);
+ },
+ A: function(str) {
+ return this.find(this.res.A, str);
+ },
+ hh: function(str) {
+ return this.exec(/^\d\d/, str);
+ },
+ h: function(str) {
+ return this.exec(/^\d\d?/, str);
+ },
+ mm: function(str) {
+ return this.exec(/^\d\d/, str);
+ },
+ m: function(str) {
+ return this.exec(/^\d\d?/, str);
+ },
+ ss: function(str) {
+ return this.exec(/^\d\d/, str);
+ },
+ s: function(str) {
+ return this.exec(/^\d\d?/, str);
+ },
+ SSS: function(str) {
+ return this.exec(/^\d{1,3}/, str);
+ },
+ SS: function(str) {
+ var result = this.exec(/^\d\d?/, str);
+ result.value *= 10;
+ return result;
+ },
+ S: function(str) {
+ var result = this.exec(/^\d/, str);
+ result.value *= 100;
+ return result;
+ },
+ Z: function(str) {
+ var result = this.exec(/^[\+-]\d{2}[0-5]\d/, str);
+ result.value = (result.value / 100 | 0) * -60 - result.value % 100;
+ return result;
+ },
+ ZZ: function(str) {
+ var arr = /^([\+-])(\d{2}):([0-5]\d)/.exec(str) || ["", "", "", ""];
+ return { value: 0 - ((arr[1] + arr[2] | 0) * 60 + (arr[1] + arr[3] | 0)), length: arr[0].length };
+ },
+ h12: function(h, a) {
+ return (h === 12 ? 0 : h) + a * 12;
+ },
+ exec: function(re, str) {
+ var result = (re.exec(str) || [""])[0];
+ return { value: result | 0, length: result.length };
+ },
+ find: function(array, str) {
+ var index = -1, length = 0;
+ for (var i = 0, len = array.length, item; i < len; i++) {
+ item = array[i];
+ if (!str.indexOf(item) && item.length > length) {
+ index = i;
+ length = item.length;
+ }
+ }
+ return { value: index, length };
+ },
+ pre: function(str) {
+ return str;
+ },
+ res: _res
+ }, extend = function(base, props, override, res) {
+ var obj = {}, key;
+ for (key in base) {
+ obj[key] = base[key];
+ }
+ for (key in props || {}) {
+ if (!(!!override ^ !!obj[key])) {
+ obj[key] = props[key];
+ }
+ }
+ if (res) {
+ obj.res = res;
+ }
+ return obj;
+ }, proto = {
+ _formatter,
+ _parser
+ }, localized_proto, date;
+ proto.compile = function(formatString) {
+ var re = /\[([^\[\]]|\[[^\[\]]*])*]|([A-Za-z])\2+|\.{3}|./g, keys, pattern = [formatString];
+ while (keys = re.exec(formatString)) {
+ pattern[pattern.length] = keys[0];
+ }
+ return pattern;
+ };
+ proto.format = function(dateObj, arg, utc) {
+ var ctx = this || date, pattern = typeof arg === "string" ? ctx.compile(arg) : arg, offset = dateObj.getTimezoneOffset(), d = ctx.addMinutes(dateObj, utc ? offset : 0), formatter = ctx._formatter, str = "";
+ d.getTimezoneOffset = function() {
+ return utc ? 0 : offset;
+ };
+ for (var i = 1, len = pattern.length, token; i < len; i++) {
+ token = pattern[i];
+ str += formatter[token] ? formatter.post(formatter[token](d, pattern[0])) : token.replace(/\[(.*)]/, "$1");
+ }
+ return str;
+ };
+ proto.preparse = function(dateString, arg) {
+ var ctx = this || date, pattern = typeof arg === "string" ? ctx.compile(arg) : arg, dt = { Y: 1970, M: 1, D: 1, H: 0, A: 0, h: 0, m: 0, s: 0, S: 0, Z: 0, _index: 0, _length: 0, _match: 0 }, comment = /\[(.*)]/, parser = ctx._parser, offset = 0;
+ dateString = parser.pre(dateString);
+ for (var i = 1, len = pattern.length, token, result; i < len; i++) {
+ token = pattern[i];
+ if (parser[token]) {
+ result = parser[token](dateString.slice(offset), pattern[0]);
+ if (!result.length) {
+ break;
+ }
+ offset += result.length;
+ dt[result.token || token.charAt(0)] = result.value;
+ dt._match++;
+ } else if (token === dateString.charAt(offset) || token === " ") {
+ offset++;
+ } else if (comment.test(token) && !dateString.slice(offset).indexOf(comment.exec(token)[1])) {
+ offset += token.length - 2;
+ } else if (token === "...") {
+ offset = dateString.length;
+ break;
+ } else {
+ break;
+ }
+ }
+ dt.H = dt.H || parser.h12(dt.h, dt.A);
+ dt._index = offset;
+ dt._length = dateString.length;
+ return dt;
+ };
+ proto.parse = function(dateString, arg, utc) {
+ var ctx = this || date, pattern = typeof arg === "string" ? ctx.compile(arg) : arg, dt = ctx.preparse(dateString, pattern);
+ if (ctx.isValid(dt)) {
+ dt.M -= dt.Y < 100 ? 22801 : 1;
+ if (utc || ~ctx._parser.find(pattern, "ZZ").value) {
+ return new Date(Date.UTC(dt.Y, dt.M, dt.D, dt.H, dt.m + dt.Z, dt.s, dt.S));
+ }
+ return new Date(dt.Y, dt.M, dt.D, dt.H, dt.m, dt.s, dt.S);
+ }
+ return /* @__PURE__ */ new Date(NaN);
+ };
+ proto.isValid = function(arg1, arg2) {
+ var ctx = this || date, dt = typeof arg1 === "string" ? ctx.preparse(arg1, arg2) : arg1, last = [31, 28 + ctx.isLeapYear(dt.Y) | 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][dt.M - 1];
+ return !(dt._index < 1 || dt._length < 1 || dt._index - dt._length || dt._match < 1 || dt.Y < 1 || dt.Y > 9999 || dt.M < 1 || dt.M > 12 || dt.D < 1 || dt.D > last || dt.H < 0 || dt.H > 23 || dt.m < 0 || dt.m > 59 || dt.s < 0 || dt.s > 59 || dt.S < 0 || dt.S > 999 || dt.Z < -840 || dt.Z > 720);
+ };
+ proto.transform = function(dateString, arg1, arg2, utc) {
+ const ctx = this || date;
+ return ctx.format(ctx.parse(dateString, arg1), arg2, utc);
+ };
+ proto.addYears = function(dateObj, years) {
+ return (this || date).addMonths(dateObj, years * 12);
+ };
+ proto.addMonths = function(dateObj, months) {
+ var d = new Date(dateObj.getTime());
+ d.setUTCMonth(d.getUTCMonth() + months);
+ return d;
+ };
+ proto.addDays = function(dateObj, days) {
+ var d = new Date(dateObj.getTime());
+ d.setUTCDate(d.getUTCDate() + days);
+ return d;
+ };
+ proto.addHours = function(dateObj, hours) {
+ return (this || date).addMinutes(dateObj, hours * 60);
+ };
+ proto.addMinutes = function(dateObj, minutes) {
+ return (this || date).addSeconds(dateObj, minutes * 60);
+ };
+ proto.addSeconds = function(dateObj, seconds) {
+ return (this || date).addMilliseconds(dateObj, seconds * 1e3);
+ };
+ proto.addMilliseconds = function(dateObj, milliseconds) {
+ return new Date(dateObj.getTime() + milliseconds);
+ };
+ proto.subtract = function(date1, date2) {
+ var delta = date1.getTime() - date2.getTime();
+ return {
+ toMilliseconds: function() {
+ return delta;
+ },
+ toSeconds: function() {
+ return delta / 1e3;
+ },
+ toMinutes: function() {
+ return delta / 6e4;
+ },
+ toHours: function() {
+ return delta / 36e5;
+ },
+ toDays: function() {
+ return delta / 864e5;
+ }
+ };
+ };
+ proto.isLeapYear = function(y) {
+ return !(y % 4) && !!(y % 100) || !(y % 400);
+ };
+ proto.isSameDay = function(date1, date2) {
+ return date1.toDateString() === date2.toDateString();
+ };
+ proto.locale = function(code, locale) {
+ if (!locales[code]) {
+ locales[code] = locale;
+ }
+ };
+ proto.plugin = function(name, plugin) {
+ if (!plugins[name]) {
+ plugins[name] = plugin;
+ }
+ };
+ localized_proto = extend(proto);
+ date = extend(proto);
+ date.locale = function(locale) {
+ var install = typeof locale === "function" ? locale : date.locale[locale];
+ if (!install) {
+ return lang;
+ }
+ lang = install(proto);
+ var extension = locales[lang] || {};
+ var res = extend(_res, extension.res, true);
+ var formatter = extend(_formatter, extension.formatter, true, res);
+ var parser = extend(_parser, extension.parser, true, res);
+ date._formatter = localized_proto._formatter = formatter;
+ date._parser = localized_proto._parser = parser;
+ for (var plugin in plugins) {
+ date.extend(plugins[plugin]);
+ }
+ return lang;
+ };
+ date.extend = function(extension) {
+ var res = extend(date._parser.res, extension.res);
+ var extender = extension.extender || {};
+ date._formatter = extend(date._formatter, extension.formatter, false, res);
+ date._parser = extend(date._parser, extension.parser, false, res);
+ for (var key in extender) {
+ if (!date[key]) {
+ date[key] = extender[key];
+ }
+ }
+ };
+ date.plugin = function(plugin) {
+ var install = typeof plugin === "function" ? plugin : date.plugin[plugin];
+ if (install) {
+ date.extend(plugins[install(proto, localized_proto)] || {});
+ }
+ };
+ var date$1 = date;
+ return date$1;
+ });
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/lib/contracts-sdk.js
+var require_contracts_sdk = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/lib/contracts-sdk.js"(exports2) {
+ "use strict";
+ var _a;
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.LitContracts = exports2.asyncForEachReturn = void 0;
+ var misc_1 = require_src4();
+ var ethers_1 = require_lib36();
+ var hex2dec_1 = require_hex2dec();
+ var AllowlistData_1 = require_AllowlistData();
+ var LITTokenData_1 = require_LITTokenData();
+ var MultisenderData_1 = require_MultisenderData();
+ var PKPHelperData_1 = require_PKPHelperData();
+ var PKPNFTData_1 = require_PKPNFTData();
+ var PKPNFTMetadataData_1 = require_PKPNFTMetadataData();
+ var PKPPermissionsData_1 = require_PKPPermissionsData();
+ var PubkeyRouterData_1 = require_PubkeyRouterData();
+ var RateLimitNFTData_1 = require_RateLimitNFTData();
+ var StakingData_1 = require_StakingData();
+ var StakingBalancesData_1 = require_StakingBalancesData();
+ var constants_1 = require_src2();
+ var logger_1 = require_src3();
+ var utils_1 = require_utils8();
+ var misc_2 = require_src4();
+ var auth_utils_1 = require_auth_utils();
+ var getBytes32FromMultihash_1 = require_getBytes32FromMultihash();
+ var utils_2 = require_utils17();
+ var asyncForEachReturn = async (array, callback) => {
+ const list = [];
+ for (let index = 0; index < array.length; index++) {
+ const item = await callback(array[index], index, array);
+ list.push(item);
+ }
+ return list;
+ };
+ exports2.asyncForEachReturn = asyncForEachReturn;
+ var GAS_LIMIT_INCREASE_PERCENTAGE = 10;
+ var GAS_LIMIT_ADJUSTMENT = ethers_1.ethers.BigNumber.from(100).add(GAS_LIMIT_INCREASE_PERCENTAGE);
+ var LitContracts2 = class {
+ // ----- autogen:declares:end -----
+ // make the constructor args optional
+ constructor(args) {
+ this.randomPrivateKey = false;
+ this.connected = false;
+ this.isPKP = false;
+ this.debug = false;
+ this.log = (...args2) => {
+ if (this.debug) {
+ _a.logger.debug(...args2);
+ }
+ };
+ this.connect = async () => {
+ let wallet;
+ let SETUP_DONE = false;
+ if (this.provider) {
+ this.log("Using provided provider");
+ } else if ((0, misc_1.isBrowser)() && !this.signer) {
+ let _decimalToHex = function(decimal) {
+ return "0x" + decimal.toString(16);
+ };
+ this.log("----- We're in the browser! -----");
+ const web3Provider = window.ethereum;
+ if (!web3Provider) {
+ const msg = "No web3 provider found. Please install Brave, MetaMask or another web3 provider.";
+ alert(msg);
+ throw new constants_1.InitError({
+ info: {
+ web3Provider
+ }
+ }, msg);
+ }
+ const chainInfo = constants_1.METAMASK_CHAIN_INFO_BY_NETWORK[this.network];
+ const metamaskChainInfo = {
+ ...chainInfo,
+ chainId: _decimalToHex(chainInfo.chainId)
+ };
+ try {
+ await web3Provider.send("wallet_switchEthereumChain", [
+ { chainId: metamaskChainInfo.chainId }
+ ]);
+ } catch (e) {
+ await web3Provider.request({
+ method: "wallet_addEthereumChain",
+ params: [metamaskChainInfo]
+ });
+ }
+ wallet = new ethers_1.ethers.providers.Web3Provider(web3Provider);
+ await wallet.send("eth_requestAccounts", []);
+ this.provider = wallet;
+ } else if ((0, misc_1.isNode)()) {
+ this.log("----- We're in node! -----");
+ this.provider = new ethers_1.ethers.providers.StaticJsonRpcProvider({
+ url: this.rpc,
+ skipFetchSetup: true
+ });
+ }
+ if (this.privateKey) {
+ this.log("Using your own private key");
+ this.signer = new ethers_1.ethers.Wallet(this.privateKey, this.provider);
+ this.provider = this.signer.provider;
+ SETUP_DONE = true;
+ }
+ if (!this.privateKey && this.randomPrivateKey || this.options?.storeOrUseStorageKey) {
+ this.log("THIS.SIGNER:", this.signer);
+ const STORAGE_KEY = "lit-contracts-sdk-private-key";
+ this.log("Let's see if you have a private key in your local storage!");
+ let storagePrivateKey;
+ try {
+ storagePrivateKey = localStorage.getItem(STORAGE_KEY);
+ } catch (e) {
+ }
+ if (!storagePrivateKey) {
+ this.log("Not a problem, we will generate a random private key");
+ storagePrivateKey = ethers_1.ethers.utils.hexlify(ethers_1.ethers.utils.randomBytes(32));
+ } else {
+ this.log("Found your private key in local storage. Let's use it!");
+ }
+ this.signer = new ethers_1.ethers.Wallet(storagePrivateKey, this.provider);
+ this.log("- Your private key:", storagePrivateKey);
+ this.log("- Your address:", await this.signer.getAddress());
+ this.log("- this.signer:", this.signer);
+ this.log("- this.provider.getSigner():", this.provider.getSigner());
+ if (this.options?.storeOrUseStorageKey) {
+ this.log("You've set the option to store your private key in local storage.");
+ localStorage.setItem(STORAGE_KEY, storagePrivateKey);
+ }
+ } else {
+ if ((0, misc_1.isBrowser)() && wallet && !SETUP_DONE) {
+ this.log("this.signer:", this.signer);
+ this.signer = wallet.getSigner();
+ }
+ }
+ if (this.signer !== void 0 && this.signer !== null) {
+ if ("litNodeClient" in this.signer && "rpcProvider" in this.signer) {
+ this.log(`
+ // ***********************************************************************************************
+ // THIS IS A PKP WALLET, USING IT AS A SIGNER AND ITS RPC PROVIDER AS PROVIDER
+ // ***********************************************************************************************
+ `);
+ this.provider = this.signer.rpcProvider;
+ this.isPKP = true;
+ }
+ }
+ this.log("Your Signer:", this.signer);
+ this.log("Your Provider:", this.provider?.connection);
+ if (!this.provider) {
+ this.log("No provider found. Will try to use the one from the signer.");
+ this.provider = this.signer.provider;
+ this.log("Your Provider(from signer):", this.provider?.connection);
+ }
+ const addresses = await _a.getContractAddresses(this.network, this.customContext?.provider ?? this.provider, this.customContext);
+ const logAddresses = Object.entries(addresses).reduce((output, [key, val]) => {
+ output[key] = val.address;
+ return output;
+ }, {});
+ this.log("resolved contract addresses for: ", this.network, logAddresses);
+ if (addresses.Allowlist.abi) {
+ this.allowlistContract = {
+ read: new ethers_1.ethers.Contract(addresses.Allowlist.address, addresses.Allowlist.abi, this.provider),
+ write: new ethers_1.ethers.Contract(addresses.Allowlist.address, addresses.Allowlist.abi, this.signer)
+ };
+ }
+ if (addresses.LITToken.abi) {
+ this.litTokenContract = {
+ read: new ethers_1.ethers.Contract(addresses.LITToken.address, addresses.LITToken.abi, this.provider),
+ write: new ethers_1.ethers.Contract(addresses.LITToken.address, addresses.LITToken.abi, this.signer)
+ };
+ }
+ if (addresses.Multisender.abi) {
+ this.multisenderContract = {
+ read: new ethers_1.ethers.Contract(addresses.Multisender.address, addresses.Multisender.abi, this.provider),
+ write: new ethers_1.ethers.Contract(addresses.Multisender.address, addresses.Multisender.abi, this.signer)
+ };
+ }
+ if (addresses.PKPHelper.abi) {
+ this.pkpHelperContract = {
+ read: new ethers_1.ethers.Contract(addresses.PKPHelper.address, addresses.PKPHelper.abi, this.provider),
+ write: new ethers_1.ethers.Contract(addresses.PKPHelper.address, addresses.PKPHelper.abi, this.signer)
+ };
+ }
+ if (addresses.PKPNFT.abi) {
+ this.pkpNftContract = {
+ read: new ethers_1.ethers.Contract(addresses.PKPNFT.address, addresses.PKPNFT.abi, this.provider),
+ write: new ethers_1.ethers.Contract(addresses.PKPNFT.address, addresses.PKPNFT.abi, this.signer)
+ };
+ }
+ if (addresses.PKPNFTMetadata.abi) {
+ this.pkpNftMetadataContract = {
+ read: new ethers_1.ethers.Contract(addresses.PKPNFTMetadata.address, addresses.PKPNFTMetadata.abi, this.provider),
+ write: new ethers_1.ethers.Contract(addresses.PKPNFTMetadata.address, addresses.PKPNFTMetadata.abi, this.signer)
+ };
+ }
+ if (addresses.PKPPermissions.abi) {
+ this.pkpPermissionsContract = {
+ read: new ethers_1.ethers.Contract(addresses.PKPPermissions.address, addresses.PKPPermissions.abi, this.provider),
+ write: new ethers_1.ethers.Contract(addresses.PKPPermissions.address, addresses.PKPPermissions.abi, this.signer)
+ };
+ }
+ if (addresses.PubkeyRouter.abi) {
+ this.pubkeyRouterContract = {
+ read: new ethers_1.ethers.Contract(addresses.PubkeyRouter.address, addresses.PubkeyRouter.abi, this.provider),
+ write: new ethers_1.ethers.Contract(addresses.PubkeyRouter.address, addresses.PubkeyRouter.abi, this.signer)
+ };
+ }
+ if (addresses.RateLimitNFT.abi) {
+ this.rateLimitNftContract = {
+ read: new ethers_1.ethers.Contract(addresses.RateLimitNFT.address, addresses.RateLimitNFT.abi, this.provider),
+ write: new ethers_1.ethers.Contract(addresses.RateLimitNFT.address, addresses.RateLimitNFT.abi, this.signer)
+ };
+ }
+ if (addresses.Staking.abi) {
+ this.stakingContract = {
+ read: new ethers_1.ethers.Contract(addresses.Staking.address, addresses.Staking.abi, this.provider),
+ write: new ethers_1.ethers.Contract(addresses.Staking.address, addresses.Staking.abi, this.signer)
+ };
+ }
+ if (addresses.StakingBalances.abi) {
+ this.stakingBalancesContract = {
+ read: new ethers_1.ethers.Contract(addresses.StakingBalances.address, addresses.StakingBalances.abi, this.provider),
+ write: new ethers_1.ethers.Contract(addresses.StakingBalances.address, addresses.StakingBalances.abi, this.signer)
+ };
+ }
+ this.connected = true;
+ };
+ this.mintWithAuth = async ({ authMethod, scopes, pubkey, authMethodId, gasLimit }) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.pkpNftContract) {
+ throw new constants_1.InitError({
+ info: {
+ pkpNftContract: this.pkpNftContract
+ }
+ }, "Contract is not available");
+ }
+ if (authMethod && !authMethod?.authMethodType) {
+ throw new constants_1.ParamsMissingError({
+ info: {
+ authMethod
+ }
+ }, "authMethodType is required");
+ }
+ if (authMethod && !authMethod?.accessToken && authMethod?.accessToken !== "custom-auth") {
+ throw new constants_1.ParamsMissingError({
+ info: {
+ authMethod
+ }
+ }, "accessToken is required");
+ }
+ if (scopes.length <= 0) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ scopes
+ }
+ }, `\u274C Permission scopes are required!
+[0] No Permissions
+[1] Sign Anything
+[2] Only Sign Messages
+Read more here:
+https://developer.litprotocol.com/v3/sdk/wallets/auth-methods/#auth-method-scopes
+ `);
+ }
+ const _pubkey = pubkey ?? "0x";
+ const _scopes = scopes.map((scope) => {
+ if (typeof scope === "string") {
+ return ethers_1.ethers.BigNumber.from(scope);
+ }
+ if (typeof scope === "number") {
+ return ethers_1.ethers.BigNumber.from(scope.toString());
+ }
+ return scope;
+ });
+ const _authMethodId = authMethodId ?? await (0, auth_utils_1.getAuthIdByAuthMethod)(authMethod);
+ const mintCost = await this.pkpNftContract.read.mintCost();
+ const tx = await this._callWithAdjustedOverrides(this.pkpHelperContract.write, "mintNextAndAddAuthMethods", [
+ 2,
+ // key type
+ [authMethod.authMethodType],
+ [_authMethodId],
+ [_pubkey],
+ [[..._scopes]],
+ true,
+ true
+ ], { value: mintCost, gasLimit });
+ const receipt = await tx.wait();
+ const events = "events" in receipt ? receipt.events : receipt.logs;
+ if (!events || events.length <= 0) {
+ throw new constants_1.TransactionError({
+ info: {
+ events,
+ receipt
+ }
+ }, "No events found in receipt");
+ }
+ if (!events[0].topics || events[0].topics.length < 1) {
+ throw new constants_1.TransactionError({
+ info: {
+ events,
+ receipt
+ }
+ }, `No topics found in events, cannot derive pkp information. Transaction hash: ${receipt.transactionHash} If you are using your own contracts please use ethers directly`);
+ }
+ const tokenId = events[0].topics[1];
+ this.log("tokenId:", tokenId);
+ let tries = 0;
+ const maxAttempts = 10;
+ let publicKey = "";
+ while (tries < maxAttempts) {
+ publicKey = await this.pkpNftContract.read.getPubkey(tokenId);
+ this.log("pkp pub key: ", publicKey);
+ if (publicKey !== "0x") {
+ break;
+ }
+ tries++;
+ await new Promise((resolve) => {
+ setTimeout(resolve, 1e4);
+ });
+ }
+ if (publicKey.startsWith("0x")) {
+ publicKey = publicKey.slice(2);
+ }
+ const pubkeyBuffer = Buffer.from(publicKey, "hex");
+ const ethAddress = (0, utils_1.computeAddress)(pubkeyBuffer);
+ return {
+ pkp: {
+ tokenId,
+ publicKey,
+ ethAddress
+ },
+ tx: receipt
+ };
+ };
+ this.mintWithCustomAuth = async (params) => {
+ const authMethodId = typeof params.authMethodId === "string" ? (0, auth_utils_1.stringToArrayify)(params.authMethodId) : params.authMethodId;
+ return this.mintWithAuth({
+ ...params,
+ authMethodId,
+ authMethod: {
+ authMethodType: params.authMethodType,
+ accessToken: "custom-auth"
+ }
+ });
+ };
+ this.addPermittedAuthMethod = async ({ pkpTokenId, authMethodType, authMethodId, authMethodScopes, webAuthnPubkey }) => {
+ const _authMethodId = typeof authMethodId === "string" ? (0, auth_utils_1.stringToArrayify)(authMethodId) : authMethodId;
+ const _webAuthnPubkey = webAuthnPubkey ?? "0x";
+ try {
+ const res = await this._callWithAdjustedOverrides(this.pkpPermissionsContract.write, "addPermittedAuthMethod", [
+ pkpTokenId,
+ {
+ authMethodType,
+ id: _authMethodId,
+ userPubkey: _webAuthnPubkey
+ },
+ authMethodScopes
+ ]);
+ const receipt = await res.wait();
+ return receipt;
+ } catch (e) {
+ throw new constants_1.TransactionError({
+ info: {
+ pkpTokenId,
+ authMethodType,
+ authMethodId,
+ authMethodScopes,
+ webAuthnPubkey
+ },
+ cause: e
+ }, "Adding permitted action failed");
+ }
+ };
+ this.addPermittedAction = async ({ ipfsId, pkpTokenId, authMethodScopes }) => {
+ const ipfsIdBytes = this.utils.getBytesFromMultihash(ipfsId);
+ const scopes = authMethodScopes ?? [];
+ try {
+ const res = await this._callWithAdjustedOverrides(this.pkpPermissionsContract.write, "addPermittedAction", [pkpTokenId, ipfsIdBytes, scopes]);
+ const receipt = await res.wait();
+ return receipt;
+ } catch (e) {
+ throw new constants_1.TransactionError({
+ info: {
+ pkpTokenId,
+ ipfsIdBytes,
+ scopes
+ },
+ cause: e
+ }, "Adding permitted action failed");
+ }
+ };
+ this.mintCapacityCreditsNFT = async ({ requestsPerDay, requestsPerSecond, requestsPerKilosecond, daysUntilUTCMidnightExpiration, gasLimit }) => {
+ this.log("Minting Capacity Credits NFT...");
+ if ((requestsPerDay === null || requestsPerDay === void 0 || requestsPerDay <= 0) && (requestsPerSecond === null || requestsPerSecond === void 0 || requestsPerSecond <= 0) && (requestsPerKilosecond === null || requestsPerKilosecond === void 0 || requestsPerKilosecond <= 0)) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ requestsPerDay,
+ requestsPerSecond,
+ requestsPerKilosecond
+ }
+ }, `At least one of requestsPerDay, requestsPerSecond, or requestsPerKilosecond is required and must be more than 0`);
+ }
+ let effectiveRequestsPerKilosecond;
+ if (requestsPerDay !== void 0) {
+ effectiveRequestsPerKilosecond = (0, utils_2.requestsToKilosecond)({
+ period: "day",
+ requests: requestsPerDay
+ });
+ } else if (requestsPerSecond !== void 0) {
+ effectiveRequestsPerKilosecond = (0, utils_2.requestsToKilosecond)({
+ period: "second",
+ requests: requestsPerSecond
+ });
+ } else if (requestsPerKilosecond !== void 0) {
+ effectiveRequestsPerKilosecond = requestsPerKilosecond;
+ }
+ if (effectiveRequestsPerKilosecond === void 0 || effectiveRequestsPerKilosecond <= 0) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ effectiveRequestsPerKilosecond
+ }
+ }, `Effective requests per kilosecond is required and must be more than 0`);
+ }
+ const expiresAt = (0, utils_2.calculateUTCMidnightExpiration)(daysUntilUTCMidnightExpiration);
+ let mintCost;
+ try {
+ mintCost = await this.rateLimitNftContract.read.calculateCost(effectiveRequestsPerKilosecond, expiresAt);
+ } catch (e) {
+ this.log("Error calculating mint cost:", e);
+ throw e;
+ }
+ this.log("Capacity Credits NFT mint cost:", mintCost.toString());
+ if (requestsPerDay)
+ this.log("Requests per day:", requestsPerDay);
+ if (requestsPerSecond)
+ this.log("Requests per second:", requestsPerSecond);
+ this.log("Effective requests per kilosecond:", effectiveRequestsPerKilosecond);
+ this.log(`Expires at (Unix Timestamp): ${expiresAt}`);
+ const expirationDate = new Date(expiresAt * 1e3);
+ this.log("Expiration Date (UTC):", expirationDate.toUTCString());
+ try {
+ const res = await this._callWithAdjustedOverrides(this.rateLimitNftContract.write, "mint", [expiresAt], { value: mintCost, gasLimit });
+ const txHash = res.hash;
+ const tx = await res.wait();
+ this.log("xx Transaction:", tx);
+ const tokenId = ethers_1.ethers.BigNumber.from(tx.logs[0].topics[3]);
+ return {
+ rliTxHash: txHash,
+ capacityTokenId: tokenId,
+ capacityTokenIdStr: tokenId.toString()
+ };
+ } catch (e) {
+ throw new constants_1.TransactionError({
+ info: {
+ requestsPerDay,
+ requestsPerSecond,
+ requestsPerKilosecond,
+ expiresAt
+ },
+ cause: e
+ }, "Minting capacity credits NFT failed");
+ }
+ };
+ this.utils = {
+ hexToDec: hex2dec_1.hexToDec,
+ decToHex: hex2dec_1.decToHex,
+ /**
+ * Partition multihash string into object representing multihash
+ *
+ * @param {string} multihash A base58 encoded multihash string
+ * @returns {string}
+ */
+ getBytesFromMultihash: (multihash) => {
+ const decoded = ethers_1.ethers.utils.base58.decode(multihash);
+ return `0x${Buffer.from(decoded).toString("hex")}`;
+ },
+ /**
+ *
+ * Convert bytes32 to IPFS ID
+ * @param { string } byte32 0x1220baa0d1e91f2a22fef53659418ddc3ac92da2a76d994041b86ed62c0c999de477
+ * @returns { string } QmZKLGf3vgYsboM7WVUS9X56cJSdLzQVacNp841wmEDRkW
+ */
+ getMultihashFromBytes: (byte32) => {
+ const text = byte32.replace("0x", "");
+ const digestSize = parseInt(text.slice(2, 4), 16);
+ const digest = text.slice(4, 4 + digestSize * 2);
+ const multihash = ethers_1.ethers.utils.base58.encode(Buffer.from(`1220${digest}`, "hex"));
+ return multihash;
+ },
+ /**
+ * NOTE: This function requires the "multiformats/cid" package in order to work
+ *
+ * Partition multihash string into object representing multihash
+ *
+ * @param {string} ipfsId A base58 encoded multihash string
+ * @param {CIDParser} CID The CID object from the "multiformats/cid" package
+ *
+ * @example
+ * const CID = require('multiformats/cid')
+ * const ipfsId = 'QmZKLGf3vgYsboM7WVUS9X56cJSdLzQVacNp841wmEDRkW'
+ * const bytes32 = getBytes32FromMultihash(ipfsId, CID)
+ * console.log(bytes32)
+ *
+ * @returns {IPFSHash}
+ */
+ getBytes32FromMultihash: (ipfsId, CID) => {
+ return (0, getBytes32FromMultihash_1.getBytes32FromMultihash)(ipfsId, CID);
+ },
+ // convert timestamp to YYYY/MM/DD format
+ timestamp2Date: (timestamp) => {
+ const date = require_date_and_time();
+ const format = "YYYY/MM/DD HH:mm:ss";
+ const timestampFormatted = new Date(parseInt(timestamp) * 1e3);
+ return date.format(timestampFormatted, format);
+ }
+ };
+ this.pkpNftContractUtils = {
+ read: {
+ /**
+ * (IERC721Enumerable)
+ *
+ * Get all PKPs by a given address
+ *
+ * @param { string } ownerAddress
+ * @retu
+ * */
+ getTokensByAddress: async (ownerAddress) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.pkpNftContract) {
+ throw new constants_1.InitError({
+ info: {
+ pkpNftContract: this.pkpNftContract
+ }
+ }, "Contract is not available");
+ }
+ if (!ethers_1.ethers.utils.isAddress(ownerAddress)) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ ownerAddress
+ }
+ }, `Given string is not a valid address "${ownerAddress}"`);
+ }
+ const tokens = [];
+ for (let i = 0; ; i++) {
+ let token;
+ try {
+ token = await this.pkpNftContract.read.tokenOfOwnerByIndex(ownerAddress, i);
+ token = this.utils.hexToDec(token.toHexString());
+ tokens.push(token);
+ } catch (e) {
+ this.log(`[getTokensByAddress] Ended search on index: ${i}`);
+ break;
+ }
+ }
+ return tokens;
+ },
+ /**
+ * (IERC721Enumerable)
+ *
+ * Get the x latest number of tokens
+ *
+ * @param { number } latestNumberOfTokens
+ *
+ * @returns { Array } a list of PKP NFTs
+ *
+ */
+ getTokens: async (latestNumberOfTokens) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.pkpNftContract) {
+ throw new constants_1.InitError({
+ info: {
+ pkpNftContract: this.pkpNftContract
+ }
+ }, "Contract is not available");
+ }
+ const tokens = [];
+ for (let i = 0; ; i++) {
+ if (i >= latestNumberOfTokens) {
+ break;
+ }
+ let token;
+ try {
+ token = await this.pkpNftContract.read.tokenByIndex(i);
+ token = this.utils.hexToDec(token.toHexString());
+ tokens.push(token);
+ } catch (e) {
+ this.log(`[getTokensByAddress] Ended search on index: ${i}`);
+ break;
+ }
+ }
+ return tokens;
+ },
+ /**
+ * Get info of all PKPs by a given address
+ */
+ getTokensInfoByAddress: async (ownerAddress) => {
+ const tokenIds = await this.pkpNftContractUtils.read.getTokensByAddress(ownerAddress);
+ const arr = [];
+ for (let i = 0; i < tokenIds.length; i++) {
+ const tokenId = tokenIds[i];
+ const pubKey = await this.pkpNftContract.read.getPubkey(tokenId);
+ const addrs = await (0, misc_2.derivedAddresses)({
+ publicKey: pubKey
+ });
+ arr.push(addrs);
+ }
+ return arr;
+ }
+ },
+ write: {
+ mint: async (param) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.pkpNftContract) {
+ throw new constants_1.InitError({
+ info: {
+ pkpNftContract: this.pkpNftContract
+ }
+ }, "Contract is not available");
+ }
+ let mintCost;
+ try {
+ mintCost = await this.pkpNftContract.read.mintCost();
+ } catch (e) {
+ throw new constants_1.TransactionError({
+ info: {
+ mintCost
+ },
+ cause: e
+ }, "Could not get mint cost");
+ }
+ if (this.isPKP) {
+ this.log("This is a PKP wallet, so we'll use the PKP wallet to sign the tx");
+ }
+ this.log("...signing and sending tx");
+ const sentTx = await this._callWithAdjustedOverrides(this.pkpNftContract.write, "mintNext", [2], { value: mintCost, ...param });
+ this.log("sentTx:", sentTx);
+ const res = await sentTx.wait();
+ this.log("res:", res);
+ const events = "events" in res ? res.events : res.logs;
+ const tokenIdFromEvent = events[0].topics[1];
+ this.log("tokenIdFromEvent:", tokenIdFromEvent);
+ let tries = 0;
+ const maxAttempts = 10;
+ let publicKey = "";
+ while (tries < maxAttempts) {
+ publicKey = await this.pkpNftContract.read.getPubkey(tokenIdFromEvent);
+ this.log("pkp pub key: ", publicKey);
+ if (publicKey !== "0x") {
+ break;
+ }
+ tries++;
+ await new Promise((resolve) => {
+ setTimeout(resolve, 1e4);
+ });
+ }
+ this.log("public key from token id", publicKey);
+ if (publicKey.startsWith("0x")) {
+ publicKey = publicKey.slice(2);
+ }
+ const pubkeyBuffer = Buffer.from(publicKey, "hex");
+ const ethAddress = (0, utils_1.computeAddress)(pubkeyBuffer);
+ return {
+ pkp: {
+ tokenId: tokenIdFromEvent,
+ publicKey,
+ ethAddress
+ },
+ tx: sentTx,
+ tokenId: tokenIdFromEvent,
+ res
+ };
+ },
+ claimAndMint: async (derivedKeyId, signatures, txOpts = {}) => {
+ try {
+ const tx = await this._callWithAdjustedOverrides(this.pkpNftContract.write, "claimAndMint", [2, derivedKeyId, signatures], {
+ ...txOpts,
+ value: txOpts.value ?? await this.pkpNftContract.read.mintCost()
+ });
+ const txRec = await tx.wait();
+ const events = "events" in txRec ? txRec.events : txRec.logs;
+ const tokenId = events[1].topics[1];
+ return { tx, res: txRec, tokenId };
+ } catch (e) {
+ this.log(`[claimAndMint] error: ${e.message}`);
+ throw new constants_1.TransactionError({
+ info: {
+ derivedKeyId,
+ signatures,
+ txOpts
+ },
+ cause: e
+ }, "claimAndMint failed");
+ }
+ }
+ }
+ };
+ this.pkpPermissionsContractUtils = {
+ read: {
+ /**
+ *
+ * Check if an address is permitted
+ *
+ * @param { string } tokenId
+ * @param { string } address
+ *
+ * @returns { Promise }
+ */
+ isPermittedAddress: async (tokenId, address) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.pkpPermissionsContract) {
+ throw new constants_1.InitError({
+ info: {
+ pkpPermissionsContract: this.pkpPermissionsContract
+ }
+ }, "Contract is not available");
+ }
+ const pkpIdHex = this.utils.decToHex(tokenId, null);
+ const bool = await this.pkpPermissionsContract.read.isPermittedAddress(pkpIdHex, address);
+ return bool;
+ },
+ /**
+ * Get permitted addresses
+ *
+ * @param { string } tokenId
+ *
+ * @returns { Promise> }
+ *
+ */
+ getPermittedAddresses: async (tokenId) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.pkpPermissionsContract) {
+ throw new constants_1.InitError({
+ info: {
+ pkpPermissionsContract: this.pkpPermissionsContract
+ }
+ }, "Contract is not available");
+ }
+ this.log("[getPermittedAddresses] input:", tokenId);
+ let addresses = [];
+ const maxTries = 5;
+ let tries = 0;
+ while (tries < maxTries) {
+ try {
+ addresses = await this.pkpPermissionsContract.read.getPermittedAddresses(tokenId);
+ if (addresses.length <= 0) {
+ await new Promise((resolve) => setTimeout(resolve, 1e3));
+ tries++;
+ continue;
+ } else {
+ break;
+ }
+ } catch (e) {
+ this.log(`[getPermittedAddresses] error:`, e.message);
+ tries++;
+ }
+ }
+ return addresses;
+ },
+ /**
+ *
+ * Get permitted action
+ *
+ * @param { any } tokenId
+ *
+ * @returns { Promise> }
+ *
+ */
+ getPermittedActions: async (tokenId) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.pkpPermissionsContract) {
+ throw new constants_1.InitError({
+ info: {
+ pkpPermissionsContract: this.pkpPermissionsContract
+ }
+ }, "Contract is not available");
+ }
+ let actions = [];
+ const maxTries = 5;
+ let tries = 0;
+ while (tries < maxTries) {
+ try {
+ actions = await this.pkpPermissionsContract.read.getPermittedActions(tokenId);
+ if (actions.length <= 0) {
+ await new Promise((resolve) => setTimeout(resolve, 1e3));
+ tries++;
+ continue;
+ } else {
+ break;
+ }
+ } catch (e) {
+ this.log(`[getPermittedActions] error:`, e.message);
+ tries++;
+ }
+ }
+ return actions;
+ },
+ /**
+ *
+ * Check if an action is permitted given the pkpid and ipfsId
+ *
+ * @param { string } pkpId 103309008291725705563022469659474510532358692659842796086905702509072063991354
+ * @param { string } ipfsId QmZKLGf3vgYsboM7WVUS9X56cJSdLzQVacNp841wmEDRkW
+ *
+ * @return { object } transaction
+ */
+ isPermittedAction: async (pkpId, ipfsId) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.pkpPermissionsContract) {
+ throw new constants_1.InitError({
+ info: {
+ pkpPermissionsContract: this.pkpPermissionsContract
+ }
+ }, "Contract is not available");
+ }
+ this.log("[isPermittedAction] input:", pkpId);
+ this.log("[isPermittedAction] input:", ipfsId);
+ const ipfsHash = this.utils.getBytesFromMultihash(ipfsId);
+ this.log("[isPermittedAction] converted:", ipfsHash);
+ const bool = await this.pkpPermissionsContract.read.isPermittedAction(pkpId, ipfsHash);
+ return bool;
+ }
+ },
+ write: {
+ /**
+ *
+ * Add permitted action to a given PKP id & ipfsId
+ *
+ * @param { string } pkpId 103309008291725705563022469659474510532358692659842796086905702509072063991354
+ * @param { string } ipfsId QmZKLGf3vgYsboM7WVUS9X56cJSdLzQVacNp841wmEDRkW
+ *
+ * @return { object } transaction
+ */
+ addPermittedAction: async (pkpId, ipfsId) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.pkpPermissionsContract || !this.pubkeyRouterContract) {
+ throw new constants_1.InitError({
+ info: {
+ pkpPermissionsContract: this.pkpPermissionsContract,
+ pubkeyRouterContract: this.pubkeyRouterContract
+ }
+ }, "Contract is not available");
+ }
+ this.log("[addPermittedAction] input:", pkpId);
+ const pubKey = await this.pubkeyRouterContract.read.getPubkey(pkpId);
+ this.log("[addPermittedAction] converted:", pubKey);
+ const pubKeyHash = ethers_1.ethers.utils.keccak256(pubKey);
+ this.log("[addPermittedAction] converted:", pubKeyHash);
+ const tokenId = ethers_1.ethers.BigNumber.from(pubKeyHash);
+ this.log("[addPermittedAction] converted:", tokenId);
+ this.log("[addPermittedAction] input:", ipfsId);
+ const ipfsIdBytes = this.utils.getBytesFromMultihash(ipfsId);
+ this.log("[addPermittedAction] converted:", ipfsIdBytes);
+ const tx = await this._callWithAdjustedOverrides(this.pkpPermissionsContract.write, "addPermittedAction", [tokenId, ipfsIdBytes, [1]]);
+ this.log("[addPermittedAction] output:", tx);
+ return tx;
+ },
+ /**
+ * TODO: add transaction type
+ * Add permitted action to a given PKP id & ipfsId
+ *
+ * @param { string } pkpId 103309008291725705563022469659474510532358692659842796086905702509072063991354
+ * @param { string } ownerAddress 0x3B5dD2605.....22aDC499A1
+ *
+ * @return { object } transaction
+ */
+ addPermittedAddress: async (pkpId, ownerAddress) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.pkpPermissionsContract) {
+ throw new constants_1.InitError({
+ info: {
+ pkpPermissionsContract: this.pkpPermissionsContract
+ }
+ }, "Contract is not available");
+ }
+ this.log("[addPermittedAddress] input:", pkpId);
+ this.log("[addPermittedAddress] input:", ownerAddress);
+ this.log("[addPermittedAddress] input:", pkpId);
+ const tx = await this._callWithAdjustedOverrides(this.pkpPermissionsContract.write, "addPermittedAddress", [pkpId, ownerAddress, [1]]);
+ this.log("[addPermittedAddress] output:", tx);
+ return tx;
+ },
+ /**
+ * Revoke permitted action of a given PKP id & ipfsId
+ *
+ * @param { string } pkpId 103309008291725705563022469659474510532358692659842796086905702509072063991354
+ * @param { string } ipfsId QmZKLGf3vgYsboM7WVUS9X56cJSdLzQVacNp841wmEDRkW
+ *
+ * @return { object } transaction
+ */
+ revokePermittedAction: async (pkpId, ipfsId) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.pkpPermissionsContract) {
+ throw new constants_1.InitError({
+ info: {
+ pkpPermissionsContract: this.pkpPermissionsContract
+ }
+ }, "Contract is not available");
+ }
+ this.log("[revokePermittedAction] input:", pkpId);
+ this.log("[revokePermittedAction] input:", ipfsId);
+ const ipfsHash = this.utils.getBytesFromMultihash(ipfsId);
+ this.log("[revokePermittedAction] converted:", ipfsHash);
+ const tx = await this._callWithAdjustedOverrides(this.pkpPermissionsContract.write, "removePermittedAction", [pkpId, ipfsHash]);
+ this.log("[revokePermittedAction] output:", tx);
+ return tx;
+ }
+ }
+ };
+ this.rateLimitNftContractUtils = {
+ read: {
+ /**
+ * getCapacityByIndex: async (index: number): Promise => {
+ *
+ * This function takes a token index as a parameter and returns the capacity of the token
+ * with the given index. The capacity is an object that contains the number of requests
+ * per millisecond that the token allows, and an object with the expiration timestamp and
+ * formatted expiration date of the token.
+ *
+ * @param {number} index - The index of the token.
+ * @returns {Promise} - A promise that resolves to the capacity of the token.
+ *
+ * Example:
+ *
+ * const capacity = await getCapacityByIndex(1);
+ * this.log(capacity);
+ * // Output: {
+ * // requestsPerMillisecond: 100,
+ * // expiresAt: {
+ * // timestamp: 1623472800,
+ * // formatted: '2022-12-31',
+ * // },
+ * // }
+ *
+ * }
+ */
+ getCapacityByIndex: async (index) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.rateLimitNftContract) {
+ throw new constants_1.InitError({
+ info: {
+ rateLimitNftContract: this.rateLimitNftContract
+ }
+ }, "Contract is not available");
+ }
+ const capacity = await this.rateLimitNftContract.read.capacity(index);
+ return {
+ requestsPerMillisecond: parseInt(capacity[0].toString()),
+ expiresAt: {
+ timestamp: parseInt(capacity[1].toString()),
+ formatted: this.utils.timestamp2Date(capacity[1].toString())
+ }
+ };
+ },
+ /**
+ * getTokenURIByIndex: async (index: number): Promise => {
+ *
+ * This function takes a token index as a parameter and returns the URI of the token
+ * with the given index.
+ *
+ * @param {number} index - The index of the token.
+ * @returns {Promise} - A promise that resolves to the URI of the token.
+ *
+ * Example:
+ *
+ * const URI = await getTokenURIByIndex(1);
+ * this.log(URI);
+ * // Output: 'https://tokens.com/1'
+ *
+ * }
+ */
+ getTokenURIByIndex: async (index) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.rateLimitNftContract) {
+ throw new constants_1.InitError({
+ info: {
+ rateLimitNftContract: this.rateLimitNftContract
+ }
+ }, "Contract is not available");
+ }
+ const base64 = await this.rateLimitNftContract.read.tokenURI(index);
+ const data = base64.split("data:application/json;base64,")[1];
+ const dataToString = Buffer.from(data, "base64").toString("binary");
+ return JSON.parse(dataToString);
+ },
+ /**
+ * getTokensByOwnerAddress: async (ownerAddress: string): Promise => {
+ *
+ * This function takes an owner address as a parameter and returns an array of tokens
+ * that are owned by the given address.
+ *
+ * @param {string} ownerAddress - The address of the owner.
+ * @returns {Promise} - A promise that resolves to an array of token objects.
+ *
+ * Example:
+ *
+ * const tokens = await getTokensByOwnerAddress('0x1234...5678');
+ * this.log(tokens);
+ * // Output: [
+ * // {
+ * // tokenId: 1,
+ * // URI: 'https://tokens.com/1',
+ * // capacity: 100,
+ * // isExpired: false,
+ * // },
+ * // {
+ * // tokenId: 2,
+ * // URI: 'https://tokens.com/2',
+ * // capacity: 200,
+ * // isExpired: true,
+ * // },
+ * // ...
+ * // ]
+ *
+ * }
+ */
+ getTokensByOwnerAddress: async (ownerAddress) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.rateLimitNftContract) {
+ throw new constants_1.InitError({
+ info: {
+ rateLimitNftContract: this.rateLimitNftContract
+ }
+ }, "Contract is not available");
+ }
+ if (!ethers_1.ethers.utils.isAddress(ownerAddress)) {
+ throw Error(`Given string is not a valid address "${ownerAddress}"`);
+ }
+ let total = await this.rateLimitNftContract.read.balanceOf(ownerAddress);
+ total = parseInt(total.toString());
+ const tokens = await (0, exports2.asyncForEachReturn)([...new Array(total)], async (_, i) => {
+ if (!this.rateLimitNftContract) {
+ throw new constants_1.InitError({
+ info: {
+ rateLimitNftContract: this.rateLimitNftContract
+ }
+ }, "Contract is not available");
+ }
+ const token = await this.rateLimitNftContract.read.tokenOfOwnerByIndex(ownerAddress, i);
+ const tokenIndex = parseInt(token.toString());
+ const URI = await this.rateLimitNftContractUtils.read.getTokenURIByIndex(tokenIndex);
+ const capacity = await this.rateLimitNftContractUtils.read.getCapacityByIndex(tokenIndex);
+ const isExpired = await this.rateLimitNftContract.read.isExpired(tokenIndex);
+ return {
+ tokenId: parseInt(token.toString()),
+ URI,
+ capacity,
+ isExpired
+ };
+ });
+ return tokens;
+ },
+ /**
+ * getTokens: async (): Promise => {
+ *
+ * This function returns an array of all tokens that have been minted.
+ *
+ * @returns {Promise} - A promise that resolves to an array of token objects.
+ *
+ * Example:
+ *
+ * const tokens = await getTokens();
+ * this.log(tokens);
+ * // Output: [
+ * // {
+ * // tokenId: 1,
+ * // URI: 'https://tokens.com/1',
+ * // capacity: 100,
+ * // isExpired: false,
+ * // },
+ * // {
+ * // tokenId: 2,
+ * // URI: 'https://tokens.com/2',
+ * // capacity: 200,
+ * // isExpired: true,
+ * // },
+ * // ...
+ * // ]
+ *
+ * }
+ */
+ getTokens: async () => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.rateLimitNftContract) {
+ throw new constants_1.InitError({
+ info: {
+ rateLimitNftContract: this.rateLimitNftContract
+ }
+ }, "Contract is not available");
+ }
+ const bigTotal = await this.rateLimitNftContract.read.totalSupply();
+ const total = parseInt(bigTotal.toString());
+ const tokens = await (0, exports2.asyncForEachReturn)([...new Array(total)], async (_, i) => {
+ if (!this.rateLimitNftContract) {
+ throw new constants_1.InitError({
+ info: {
+ rateLimitNftContract: this.rateLimitNftContract
+ }
+ }, "Contract is not available");
+ }
+ const token = await this.rateLimitNftContract.read.tokenByIndex(i);
+ const tokenIndex = parseInt(token.toString());
+ const URI = await this.rateLimitNftContractUtils.read.getTokenURIByIndex(tokenIndex);
+ const capacity = await this.rateLimitNftContractUtils.read.getCapacityByIndex(tokenIndex);
+ const isExpired = await this.rateLimitNftContract.read.isExpired(tokenIndex);
+ return {
+ tokenId: parseInt(token.toString()),
+ URI,
+ capacity,
+ isExpired
+ };
+ });
+ return tokens;
+ }
+ },
+ write: {
+ mint: async ({ txOpts, timestamp }) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.rateLimitNftContract) {
+ throw new constants_1.InitError({
+ info: {
+ rateLimitNftContract: this.rateLimitNftContract
+ }
+ }, "Contract is not available");
+ }
+ const tx = await this._callWithAdjustedOverrides(this.rateLimitNftContract.write, "mint", [timestamp], txOpts);
+ const res = await tx.wait();
+ const tokenIdFromEvent = res.events?.[0].topics[1];
+ return { tx, tokenId: tokenIdFromEvent };
+ },
+ /**
+ * Transfer RLI token from one address to another
+ *
+ * @property { string } fromAddress
+ * @property { string } toAddress
+ * @property { string } RLITokenAddress
+ *
+ * @return { > } void
+ */
+ transfer: async ({ fromAddress, toAddress, RLITokenAddress }) => {
+ if (!this.connected) {
+ throw new constants_1.InitError({
+ info: {
+ connected: this.connected
+ }
+ }, "Contracts are not connected. Please call connect() first");
+ }
+ if (!this.rateLimitNftContract) {
+ throw new constants_1.InitError({
+ info: {
+ rateLimitNftContract: this.rateLimitNftContract
+ }
+ }, "Contract is not available");
+ }
+ const tx = await this._callWithAdjustedOverrides(this.rateLimitNftContract.write, "transferFrom", [fromAddress, toAddress, RLITokenAddress]);
+ this.log("tx:", tx);
+ return tx;
+ }
+ }
+ };
+ this.routerContractUtils = {
+ read: {
+ /**
+ *
+ * Convert IPFS response from Solidity to IPFS ID
+ * From: "0xb4200a696794b8742fab705a8c065ea6788a76bc6d270c0bc9ad900b6ed74ebc"
+ * To: "QmUnwHVcaymJWiYGQ6uAHvebGtmZ8S1r9E6BVmJMtuK5WY"
+ *
+ * @param { string } solidityIpfsId
+ *
+ * @return { Promise }
+ */
+ // getIpfsIds: async (solidityIpfsId: string): Promise => {
+ // this.log('[getIpfsIds] input:', solidityIpfsId);
+ // const ipfsId = this.utils.getMultihashFromBytes(solidityIpfsId);
+ // this.log('[getIpfsIds] output:', ipfsId);
+ // return ipfsId;
+ // },
+ },
+ write: {}
+ };
+ this.pkpHelperContractUtil = {
+ read: {},
+ write: {
+ /**
+ *
+ * @param param0
+ * @returns
+ */
+ mintNextAndAddAuthMethods: async ({ keyType, permittedAuthMethodTypes, permittedAuthMethodIds, permittedAuthMethodPubkeys, permittedAuthMethodScopes, addPkpEthAddressAsPermittedAddress, sendPkpToItself, gasLimit }) => {
+ const mintCost = await this.pkpNftContract.read.mintCost();
+ const tx = await this._callWithAdjustedOverrides(this.pkpHelperContract.write, "mintNextAndAddAuthMethods", [
+ keyType,
+ permittedAuthMethodTypes,
+ permittedAuthMethodIds,
+ permittedAuthMethodPubkeys,
+ permittedAuthMethodScopes,
+ addPkpEthAddressAsPermittedAddress,
+ sendPkpToItself
+ ], { value: mintCost, gasLimit });
+ return tx;
+ }
+ // claimAndMintNextAndAddAuthMethods: async (
+ // keyType: number,
+ // derivedKeyId: string,
+ // signatures: pkpHelperContract.IPubkeyRouter.SignatureStruct[],
+ // permittedAuthMethodTypes: string[],
+ // permittedAuthMethodIds: string[],
+ // permittedAuthMethodPubkeys: string[],
+ // permittedAuthMethodScopes: string[][],
+ // addPkpEthAddressAsPermittedAddress: boolean,
+ // sendPkpToItself: boolean
+ // ): Promise => {
+ // const mintCost = await this.pkpNftContract.read.mintCost();
+ // this.pkpHelperContract.write.claimAndMintNextAndAddAuthMethods(
+ // keyType,
+ // `0x${derivedKeyId}` as BytesLike,
+ // signatures,
+ // permittedAuthMethodTypes,
+ // permittedAuthMethodIds as BytesLike[],
+ // permittedAuthMethodPubkeys as BytesLike[],
+ // permittedAuthMethodScopes,
+ // addPkpEthAddressAsPermittedAddress,
+ // sendPkpToItself,
+ // { value: mintCost }
+ // );
+ // },
+ }
+ };
+ this._getAdjustedGasLimit = async (contract, method, args2, overrides = {}, gasLimitAdjustment = GAS_LIMIT_ADJUSTMENT) => {
+ const gasLimit = await contract.estimateGas[method](...args2, overrides);
+ return gasLimit.mul(gasLimitAdjustment).div(100);
+ };
+ this.customContext = args?.customContext;
+ this.rpc = args?.rpc;
+ this.rpcs = args?.rpcs;
+ this.signer = args?.signer;
+ this.privateKey = args?.privateKey;
+ this.provider = args?.provider;
+ this.randomPrivateKey = args?.randomPrivatekey ?? false;
+ this.options = args?.options;
+ this.debug = args?.debug ?? false;
+ this.network = args?.network || constants_1.LIT_NETWORK.DatilDev;
+ if (!this.rpc) {
+ this.rpc = constants_1.RPC_URL_BY_NETWORK[this.network];
+ }
+ if (!this.rpcs) {
+ this.rpcs = [this.rpc];
+ }
+ this.allowlistContract = {};
+ this.litTokenContract = {};
+ this.multisenderContract = {};
+ this.pkpHelperContract = {};
+ this.pkpNftContract = {};
+ this.pkpNftMetadataContract = {};
+ this.pkpPermissionsContract = {};
+ this.pubkeyRouterContract = {};
+ this.rateLimitNftContract = {};
+ this.stakingContract = {};
+ this.stakingBalancesContract = {};
+ }
+ /**
+ * Retrieves the Staking contract instance based on the provided network, context, and RPC URL.
+ * If a context is provided, it determines if a contract resolver is used for bootstrapping contracts.
+ * If a resolver address is present in the context, it retrieves the Staking contract from the contract resolver instance.
+ * Otherwise, it retrieves the Staking contract using the contract address and ABI from the contract context.
+ * Throws an error if required contract data is missing or if the Staking contract cannot be obtained.
+ *
+ * @param network - The network key.
+ * @param context - The contract context or contract resolver context.
+ * @param rpcUrl - The RPC URL.
+ * @returns The Staking contract instance.
+ * @throws Error if required contract data is missing or if the Staking contract cannot be obtained.
+ */
+ static async getStakingContract(network, context, rpcUrl) {
+ let provider;
+ const _rpcUrl = rpcUrl || constants_1.RPC_URL_BY_NETWORK[network];
+ if (context && "provider" in context) {
+ provider = context.provider;
+ } else {
+ provider = new ethers_1.ethers.providers.StaticJsonRpcProvider({
+ url: _rpcUrl,
+ skipFetchSetup: true
+ });
+ }
+ if (!context) {
+ const contractData = await _a._resolveContractContext(
+ network
+ //context
+ );
+ const stakingContract = contractData.find((item) => item.name === "Staking");
+ const { address, abi } = stakingContract;
+ if (!address || !abi) {
+ throw new constants_1.InitError({
+ info: {
+ address,
+ abi,
+ network
+ }
+ }, "\u274C Required contract data is missing");
+ }
+ return new ethers_1.ethers.Contract(address, abi, provider);
+ } else {
+ if (!context.resolverAddress) {
+ const stakingContract = context.Staking;
+ if (!stakingContract.address) {
+ throw new constants_1.InitError({
+ info: {
+ stakingContract,
+ context
+ }
+ }, "\u274C Could not get staking contract address from contract context");
+ }
+ return new ethers_1.ethers.Contract(stakingContract.address, stakingContract.abi ?? StakingData_1.StakingData.abi, provider);
+ } else {
+ const contractContext = await _a._getContractsFromResolver(context, provider, ["Staking"]);
+ if (!contractContext.Staking.address) {
+ throw new constants_1.InitError({
+ info: {
+ contractContext,
+ context
+ }
+ }, "\u274C Could not get Staking Contract from contract resolver instance");
+ }
+ const stakingABI = constants_1.NETWORK_CONTEXT_BY_NETWORK[network].data.find((data) => {
+ return data.name === "Staking";
+ });
+ return new ethers_1.ethers.Contract(contractContext.Staking.address, contractContext.Staking.abi ?? stakingABI?.contracts[0].ABI, provider);
+ }
+ }
+ }
+ static async _getContractsFromResolver(context, provider, contractNames) {
+ const resolverContract = new ethers_1.ethers.Contract(context.resolverAddress, context.abi, provider);
+ const getContract = async function(contract, environment) {
+ let address = "";
+ switch (contract) {
+ case "Allowlist":
+ address = await resolverContract["getContract"](await resolverContract["ALLOWLIST_CONTRACT"](), environment);
+ break;
+ case "LITToken":
+ address = await resolverContract["getContract"](await resolverContract["LIT_TOKEN_CONTRACT"](), environment);
+ break;
+ case "Multisender":
+ address = await resolverContract["getContract"](await resolverContract["MULTI_SENDER_CONTRACT"](), environment);
+ break;
+ case "PKPNFT":
+ address = await resolverContract["getContract"](await resolverContract["PKP_NFT_CONTRACT"](), environment);
+ break;
+ case "PKPNFTMetadata":
+ address = await resolverContract["getContract"](await resolverContract["PKP_NFT_METADATA_CONTRACT"](), environment);
+ break;
+ case "PKPPermissions":
+ address = await resolverContract["getContract"](await resolverContract["PKP_PERMISSIONS_CONTRACT"](), environment);
+ break;
+ case "PKPHelper":
+ address = await resolverContract["getContract"](await resolverContract["PKP_HELPER_CONTRACT"](), environment);
+ break;
+ case "PubkeyRouter":
+ address = await resolverContract["getContract"](await resolverContract["PUB_KEY_ROUTER_CONTRACT"](), environment);
+ break;
+ case "RateLimitNFT":
+ address = await resolverContract["getContract"](await resolverContract["RATE_LIMIT_NFT_CONTRACT"](), environment);
+ break;
+ case "Staking":
+ address = await resolverContract["getContract"](await resolverContract["STAKING_CONTRACT"](), environment);
+ break;
+ case "StakingBalances":
+ address = await resolverContract["getContract"](await resolverContract["STAKING_BALANCES_CONTRACT"](), environment);
+ break;
+ }
+ return address;
+ };
+ const names = contractNames ?? _a.contractNames;
+ const contractContext = {};
+ await Promise.all(names.map(async (contractName) => {
+ const contracts = context?.contractContext;
+ contractContext[contractName] = {
+ address: await getContract(contractName, context.environment),
+ abi: contracts?.[contractName]?.abi ?? void 0
+ };
+ }));
+ return contractContext;
+ }
+ static async getContractAddresses(network, provider, context) {
+ let contractData;
+ if (context) {
+ if (context?.resolverAddress) {
+ context = await _a._getContractsFromResolver(context, provider);
+ }
+ const flatten = [];
+ const keys = Object.keys(context);
+ for (const key of keys) {
+ context[key].name = key;
+ flatten.push(context[key]);
+ }
+ contractData = flatten;
+ } else {
+ contractData = await _a._resolveContractContext(network);
+ }
+ const addresses = {};
+ for (const contract of contractData) {
+ switch (contract.name) {
+ case "Allowlist":
+ addresses.Allowlist = {};
+ addresses.Allowlist.address = contract.address;
+ addresses.Allowlist.abi = contract.abi ?? AllowlistData_1.AllowlistData.abi;
+ break;
+ case "PKPHelper":
+ addresses.PKPHelper = {};
+ addresses.PKPHelper.address = contract.address;
+ addresses.PKPHelper.abi = contract?.abi ?? PKPHelperData_1.PKPHelperData.abi;
+ break;
+ case "PKPNFT":
+ addresses.PKPNFT = {};
+ addresses.PKPNFT.address = contract.address;
+ addresses.PKPNFT.abi = contract?.abi ?? PKPNFTData_1.PKPNFTData.abi;
+ break;
+ case "Staking":
+ addresses.Staking = {};
+ addresses.Staking.address = contract.address;
+ addresses.Staking.abi = contract.abi ?? StakingData_1.StakingData.abi;
+ break;
+ case "RateLimitNFT":
+ addresses.RateLimitNFT = {};
+ addresses.RateLimitNFT.address = contract.address;
+ addresses.RateLimitNFT.abi = contract.abi ?? RateLimitNFTData_1.RateLimitNFTData.abi;
+ break;
+ case "PKPPermissions":
+ addresses.PKPPermissions = {};
+ addresses.PKPPermissions.address = contract.address;
+ addresses.PKPPermissions.abi = contract.abi ?? PKPPermissionsData_1.PKPPermissionsData.abi;
+ break;
+ case "PKPNFTMetadata":
+ addresses.PKPNFTMetadata = {};
+ addresses.PKPNFTMetadata.address = contract.address;
+ addresses.PKPNFTMetadata.abi = contract.abi ?? PKPNFTMetadataData_1.PKPNFTMetadataData.abi;
+ break;
+ case "PubkeyRouter":
+ addresses.PubkeyRouter = {};
+ addresses.PubkeyRouter.address = contract.address;
+ addresses.PubkeyRouter.abi = contract?.abi ?? PubkeyRouterData_1.PubkeyRouterData.abi;
+ break;
+ case "LITToken":
+ addresses.LITToken = {};
+ addresses.LITToken.address = contract.address;
+ addresses.LITToken.abi = contract?.abi ?? LITTokenData_1.LITTokenData.abi;
+ break;
+ case "StakingBalances":
+ addresses.StakingBalances = {};
+ addresses.StakingBalances.address = contract.address;
+ addresses.StakingBalances.abi = contract.abi ?? StakingBalancesData_1.StakingBalancesData.abi;
+ break;
+ case "Multisender":
+ addresses.Multisender = {};
+ addresses.Multisender.address = contract.address;
+ addresses.Multisender.abi = contract?.abi ?? MultisenderData_1.MultisenderData.abi;
+ break;
+ }
+ }
+ if (Object.keys(addresses).length < 5) {
+ throw new constants_1.InitError({
+ info: {
+ network,
+ addresses,
+ context
+ }
+ }, "\u274C Required contract data is missing");
+ }
+ return addresses;
+ }
+ static async _resolveContractContext(network) {
+ if (!constants_1.NETWORK_CONTEXT_BY_NETWORK[network]) {
+ throw new constants_1.WrongNetworkException({
+ info: {
+ network
+ }
+ }, `[_resolveContractContext] Unsupported network: ${network}`);
+ }
+ const data = constants_1.NETWORK_CONTEXT_BY_NETWORK[network];
+ if (!data) {
+ throw new constants_1.WrongNetworkException({
+ info: {
+ network
+ }
+ }, "[_resolveContractContext] No data found");
+ }
+ return data.data.map((c) => ({
+ address: c.contracts[0].address_hash,
+ abi: c.contracts[0].ABI,
+ name: c.name
+ }));
+ }
+ async _callWithAdjustedOverrides(contract, method, args, overrides = {}, gasLimitAdjustment = GAS_LIMIT_ADJUSTMENT) {
+ if (!(method in contract.functions)) {
+ throw new Error(`Method ${String(method)} does not exist on the contract`);
+ }
+ const gasLimit = overrides.gasLimit ?? await this._getAdjustedGasLimit(contract, method, args, overrides, gasLimitAdjustment);
+ return contract.functions[method](...args, {
+ ...overrides,
+ gasLimit
+ });
+ }
+ };
+ exports2.LitContracts = LitContracts2;
+ _a = LitContracts2;
+ LitContracts2.contractNames = [
+ "Allowlist",
+ "Staking",
+ "RateLimitNFT",
+ "PubkeyRouter",
+ "PKPHelper",
+ "PKPPermissions",
+ "PKPNFTMetadata",
+ "PKPNFT",
+ "Multisender",
+ "LITToken",
+ "StakingBalances"
+ ];
+ LitContracts2.logger = logger_1.LogManager.Instance.get("contract-sdk");
+ LitContracts2.getMinNodeCount = async (network, context, rpcUrl) => {
+ const contract = await _a.getStakingContract(network, context, rpcUrl);
+ const minNodeCount = await contract["currentValidatorCountForConsensus"]();
+ if (!minNodeCount) {
+ throw new constants_1.InitError({
+ info: {
+ minNodeCount
+ }
+ }, "\u274C Minimum validator count is not set");
+ }
+ return minNodeCount;
+ };
+ LitContracts2.getValidators = async (network, context, rpcUrl, nodeProtocol) => {
+ const contract = await _a.getStakingContract(network, context, rpcUrl);
+ const [activeValidators, currentValidatorsCount, kickedValidators] = await Promise.all([
+ contract["getValidatorsInCurrentEpoch"](),
+ contract["currentValidatorCountForConsensus"](),
+ contract["getKickedValidators"]()
+ ]);
+ const validators = [];
+ if (activeValidators.length - kickedValidators.length >= currentValidatorsCount) {
+ for (const validator of activeValidators) {
+ validators.push(validator);
+ }
+ } else {
+ _a.logger.error("\u274C Active validator set does not meet the threshold");
+ }
+ const cleanedActiveValidators = activeValidators.filter((av) => !kickedValidators.some((kv) => kv === av));
+ const activeValidatorStructs = (await contract["getValidatorsStructs"](cleanedActiveValidators)).map((item) => {
+ return {
+ ip: item[0],
+ ipv6: item[1],
+ port: item[2],
+ nodeAddress: item[3],
+ reward: item[4],
+ seconderPubkey: item[5],
+ receiverPubkey: item[6]
+ };
+ });
+ const networks = activeValidatorStructs.map((item) => {
+ const centralisation = constants_1.CENTRALISATION_BY_NETWORK[network];
+ const ip = (0, hex2dec_1.intToIP)(item.ip);
+ const port2 = item.port;
+ const protocol = (
+ // If nodeProtocol is defined, use it
+ nodeProtocol || // If port is 443, use HTTPS, otherwise use network-specific HTTP
+ (port2 === 443 ? constants_1.HTTPS : constants_1.HTTP_BY_NETWORK[network]) || // Fallback to HTTP if no other conditions are met
+ constants_1.HTTP
+ );
+ const url = `${protocol}${ip}:${port2}`;
+ _a.logger.debug("Validator's URL:", url);
+ return url;
+ });
+ return networks;
+ };
+ LitContracts2.getConnectionInfo = async ({ litNetwork, networkContext, rpcUrl, nodeProtocol }) => {
+ const stakingContract = await _a.getStakingContract(litNetwork, networkContext, rpcUrl);
+ const [epochInfo, minNodeCount, activeUnkickedValidatorStructs] = await stakingContract["getActiveUnkickedValidatorStructsAndCounts"]();
+ const typedEpochInfo = {
+ epochLength: ethers_1.ethers.BigNumber.from(epochInfo[0]).toNumber(),
+ number: ethers_1.ethers.BigNumber.from(epochInfo[1]).toNumber(),
+ endTime: ethers_1.ethers.BigNumber.from(epochInfo[2]).toNumber(),
+ retries: ethers_1.ethers.BigNumber.from(epochInfo[3]).toNumber(),
+ timeout: ethers_1.ethers.BigNumber.from(epochInfo[4]).toNumber()
+ };
+ const minNodeCountInt = ethers_1.ethers.BigNumber.from(minNodeCount).toNumber();
+ if (!minNodeCountInt) {
+ throw new Error("\u274C Minimum validator count is not set");
+ }
+ if (activeUnkickedValidatorStructs.length < minNodeCountInt) {
+ throw new Error(`\u274C Active validator set does not meet the threshold. Required: ${minNodeCountInt} but got: ${activeUnkickedValidatorStructs.length}`);
+ }
+ const activeValidatorStructs = activeUnkickedValidatorStructs.map((item) => {
+ return {
+ ip: item[0],
+ ipv6: item[1],
+ port: item[2],
+ nodeAddress: item[3],
+ reward: item[4],
+ seconderPubkey: item[5],
+ receiverPubkey: item[6]
+ };
+ });
+ const networks = activeValidatorStructs.map((item) => {
+ const centralisation = constants_1.CENTRALISATION_BY_NETWORK[litNetwork];
+ const ip = (0, hex2dec_1.intToIP)(item.ip);
+ const port2 = item.port;
+ const protocol = (
+ // If nodeProtocol is defined, use it
+ nodeProtocol || // If port is 443, use HTTPS, otherwise use network-specific HTTP
+ (port2 === 443 ? constants_1.HTTPS : constants_1.HTTP_BY_NETWORK[litNetwork]) || // Fallback to HTTP if no other conditions are met
+ constants_1.HTTP
+ );
+ const url = `${protocol}${ip}:${port2}`;
+ _a.logger.debug("Validator's URL:", url);
+ return url;
+ });
+ return {
+ stakingContract,
+ epochInfo: typedEpochInfo,
+ minNodeCount: minNodeCountInt,
+ bootstrapUrls: networks
+ };
+ };
+ }
+});
+
+// node_modules/@lit-protocol/contracts-sdk/src/index.js
+var require_src8 = __commonJS({
+ "node_modules/@lit-protocol/contracts-sdk/src/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var tslib_1 = (init_tslib_es68(), __toCommonJS(tslib_es6_exports8));
+ tslib_1.__exportStar(require_contracts_sdk(), exports2);
+ tslib_1.__exportStar(require_utils17(), exports2);
+ }
+});
+
+// node_modules/@lit-protocol/crypto/node_modules/tslib/tslib.es6.js
+var tslib_es6_exports9 = {};
+__export(tslib_es6_exports9, {
+ __assign: () => __assign9,
+ __asyncDelegator: () => __asyncDelegator9,
+ __asyncGenerator: () => __asyncGenerator9,
+ __asyncValues: () => __asyncValues9,
+ __await: () => __await9,
+ __awaiter: () => __awaiter9,
+ __classPrivateFieldGet: () => __classPrivateFieldGet9,
+ __classPrivateFieldSet: () => __classPrivateFieldSet9,
+ __createBinding: () => __createBinding9,
+ __decorate: () => __decorate9,
+ __exportStar: () => __exportStar9,
+ __extends: () => __extends9,
+ __generator: () => __generator9,
+ __importDefault: () => __importDefault9,
+ __importStar: () => __importStar9,
+ __makeTemplateObject: () => __makeTemplateObject9,
+ __metadata: () => __metadata9,
+ __param: () => __param9,
+ __read: () => __read9,
+ __rest: () => __rest9,
+ __spread: () => __spread9,
+ __spreadArrays: () => __spreadArrays9,
+ __values: () => __values9
+});
+function __extends9(d, b) {
+ extendStatics9(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+function __rest9(s, e) {
+ var t = {};
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+}
+function __decorate9(decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ r = Reflect.decorate(decorators, target, key, desc);
+ else
+ for (var i = decorators.length - 1; i >= 0; i--)
+ if (d = decorators[i])
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+function __param9(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+}
+function __metadata9(metadataKey, metadataValue) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(metadataKey, metadataValue);
+}
+function __awaiter9(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+}
+function __generator9(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+}
+function __createBinding9(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+}
+function __exportStar9(m, exports2) {
+ for (var p in m)
+ if (p !== "default" && !exports2.hasOwnProperty(p))
+ exports2[p] = m[p];
+}
+function __values9(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m)
+ return m.call(o);
+ if (o && typeof o.length === "number")
+ return {
+ next: function() {
+ if (o && i >= o.length)
+ o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+}
+function __read9(o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m)
+ return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
+ ar.push(r.value);
+ } catch (error) {
+ e = { error };
+ } finally {
+ try {
+ if (r && !r.done && (m = i["return"]))
+ m.call(i);
+ } finally {
+ if (e)
+ throw e.error;
+ }
+ }
+ return ar;
+}
+function __spread9() {
+ for (var ar = [], i = 0; i < arguments.length; i++)
+ ar = ar.concat(__read9(arguments[i]));
+ return ar;
+}
+function __spreadArrays9() {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
+ s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+}
+function __await9(v) {
+ return this instanceof __await9 ? (this.v = v, this) : new __await9(v);
+}
+function __asyncGenerator9(thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i;
+ function verb(n) {
+ if (g[n])
+ i[n] = function(v) {
+ return new Promise(function(a, b) {
+ q.push([n, v, a, b]) > 1 || resume(n, v);
+ });
+ };
+ }
+ function resume(n, v) {
+ try {
+ step(g[n](v));
+ } catch (e) {
+ settle(q[0][3], e);
+ }
+ }
+ function step(r) {
+ r.value instanceof __await9 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
+ }
+ function fulfill(value) {
+ resume("next", value);
+ }
+ function reject(value) {
+ resume("throw", value);
+ }
+ function settle(f, v) {
+ if (f(v), q.shift(), q.length)
+ resume(q[0][0], q[0][1]);
+ }
+}
+function __asyncDelegator9(o) {
+ var i, p;
+ return i = {}, verb("next"), verb("throw", function(e) {
+ throw e;
+ }), verb("return"), i[Symbol.iterator] = function() {
+ return this;
+ }, i;
+ function verb(n, f) {
+ i[n] = o[n] ? function(v) {
+ return (p = !p) ? { value: __await9(o[n](v)), done: n === "return" } : f ? f(v) : v;
+ } : f;
+ }
+}
+function __asyncValues9(o) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator], i;
+ return m ? m.call(o) : (o = typeof __values9 === "function" ? __values9(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i);
+ function verb(n) {
+ i[n] = o[n] && function(v) {
+ return new Promise(function(resolve, reject) {
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
+ });
+ };
+ }
+ function settle(resolve, reject, d, v) {
+ Promise.resolve(v).then(function(v2) {
+ resolve({ value: v2, done: d });
+ }, reject);
+ }
+}
+function __makeTemplateObject9(cooked, raw) {
+ if (Object.defineProperty) {
+ Object.defineProperty(cooked, "raw", { value: raw });
+ } else {
+ cooked.raw = raw;
+ }
+ return cooked;
+}
+function __importStar9(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (Object.hasOwnProperty.call(mod, k))
+ result[k] = mod[k];
+ }
+ result.default = mod;
+ return result;
+}
+function __importDefault9(mod) {
+ return mod && mod.__esModule ? mod : { default: mod };
+}
+function __classPrivateFieldGet9(receiver, privateMap) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to get private field on non-instance");
+ }
+ return privateMap.get(receiver);
+}
+function __classPrivateFieldSet9(receiver, privateMap, value) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to set private field on non-instance");
+ }
+ privateMap.set(receiver, value);
+ return value;
+}
+var extendStatics9, __assign9;
+var init_tslib_es69 = __esm({
+ "node_modules/@lit-protocol/crypto/node_modules/tslib/tslib.es6.js"() {
+ extendStatics9 = function(d, b) {
+ extendStatics9 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (b2.hasOwnProperty(p))
+ d2[p] = b2[p];
+ };
+ return extendStatics9(d, b);
+ };
+ __assign9 = function() {
+ __assign9 = Object.assign || function __assign13(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign9.apply(this, arguments);
+ };
+ }
+});
+
+// node_modules/@lit-protocol/nacl/node_modules/tslib/tslib.es6.js
+var tslib_es6_exports10 = {};
+__export(tslib_es6_exports10, {
+ __assign: () => __assign10,
+ __asyncDelegator: () => __asyncDelegator10,
+ __asyncGenerator: () => __asyncGenerator10,
+ __asyncValues: () => __asyncValues10,
+ __await: () => __await10,
+ __awaiter: () => __awaiter10,
+ __classPrivateFieldGet: () => __classPrivateFieldGet10,
+ __classPrivateFieldSet: () => __classPrivateFieldSet10,
+ __createBinding: () => __createBinding10,
+ __decorate: () => __decorate10,
+ __exportStar: () => __exportStar10,
+ __extends: () => __extends10,
+ __generator: () => __generator10,
+ __importDefault: () => __importDefault10,
+ __importStar: () => __importStar10,
+ __makeTemplateObject: () => __makeTemplateObject10,
+ __metadata: () => __metadata10,
+ __param: () => __param10,
+ __read: () => __read10,
+ __rest: () => __rest10,
+ __spread: () => __spread10,
+ __spreadArrays: () => __spreadArrays10,
+ __values: () => __values10
+});
+function __extends10(d, b) {
+ extendStatics10(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+function __rest10(s, e) {
+ var t = {};
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+}
+function __decorate10(decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ r = Reflect.decorate(decorators, target, key, desc);
+ else
+ for (var i = decorators.length - 1; i >= 0; i--)
+ if (d = decorators[i])
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+function __param10(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+}
+function __metadata10(metadataKey, metadataValue) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(metadataKey, metadataValue);
+}
+function __awaiter10(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+}
+function __generator10(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+}
+function __createBinding10(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+}
+function __exportStar10(m, exports2) {
+ for (var p in m)
+ if (p !== "default" && !exports2.hasOwnProperty(p))
+ exports2[p] = m[p];
+}
+function __values10(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m)
+ return m.call(o);
+ if (o && typeof o.length === "number")
+ return {
+ next: function() {
+ if (o && i >= o.length)
+ o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+}
+function __read10(o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m)
+ return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
+ ar.push(r.value);
+ } catch (error) {
+ e = { error };
+ } finally {
+ try {
+ if (r && !r.done && (m = i["return"]))
+ m.call(i);
+ } finally {
+ if (e)
+ throw e.error;
+ }
+ }
+ return ar;
+}
+function __spread10() {
+ for (var ar = [], i = 0; i < arguments.length; i++)
+ ar = ar.concat(__read10(arguments[i]));
+ return ar;
+}
+function __spreadArrays10() {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
+ s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+}
+function __await10(v) {
+ return this instanceof __await10 ? (this.v = v, this) : new __await10(v);
+}
+function __asyncGenerator10(thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i;
+ function verb(n) {
+ if (g[n])
+ i[n] = function(v) {
+ return new Promise(function(a, b) {
+ q.push([n, v, a, b]) > 1 || resume(n, v);
+ });
+ };
+ }
+ function resume(n, v) {
+ try {
+ step(g[n](v));
+ } catch (e) {
+ settle(q[0][3], e);
+ }
+ }
+ function step(r) {
+ r.value instanceof __await10 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
+ }
+ function fulfill(value) {
+ resume("next", value);
+ }
+ function reject(value) {
+ resume("throw", value);
+ }
+ function settle(f, v) {
+ if (f(v), q.shift(), q.length)
+ resume(q[0][0], q[0][1]);
+ }
+}
+function __asyncDelegator10(o) {
+ var i, p;
+ return i = {}, verb("next"), verb("throw", function(e) {
+ throw e;
+ }), verb("return"), i[Symbol.iterator] = function() {
+ return this;
+ }, i;
+ function verb(n, f) {
+ i[n] = o[n] ? function(v) {
+ return (p = !p) ? { value: __await10(o[n](v)), done: n === "return" } : f ? f(v) : v;
+ } : f;
+ }
+}
+function __asyncValues10(o) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator], i;
+ return m ? m.call(o) : (o = typeof __values10 === "function" ? __values10(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i);
+ function verb(n) {
+ i[n] = o[n] && function(v) {
+ return new Promise(function(resolve, reject) {
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
+ });
+ };
+ }
+ function settle(resolve, reject, d, v) {
+ Promise.resolve(v).then(function(v2) {
+ resolve({ value: v2, done: d });
+ }, reject);
+ }
+}
+function __makeTemplateObject10(cooked, raw) {
+ if (Object.defineProperty) {
+ Object.defineProperty(cooked, "raw", { value: raw });
+ } else {
+ cooked.raw = raw;
+ }
+ return cooked;
+}
+function __importStar10(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (Object.hasOwnProperty.call(mod, k))
+ result[k] = mod[k];
+ }
+ result.default = mod;
+ return result;
+}
+function __importDefault10(mod) {
+ return mod && mod.__esModule ? mod : { default: mod };
+}
+function __classPrivateFieldGet10(receiver, privateMap) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to get private field on non-instance");
+ }
+ return privateMap.get(receiver);
+}
+function __classPrivateFieldSet10(receiver, privateMap, value) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to set private field on non-instance");
+ }
+ privateMap.set(receiver, value);
+ return value;
+}
+var extendStatics10, __assign10;
+var init_tslib_es610 = __esm({
+ "node_modules/@lit-protocol/nacl/node_modules/tslib/tslib.es6.js"() {
+ extendStatics10 = function(d, b) {
+ extendStatics10 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (b2.hasOwnProperty(p))
+ d2[p] = b2[p];
+ };
+ return extendStatics10(d, b);
+ };
+ __assign10 = function() {
+ __assign10 = Object.assign || function __assign13(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign10.apply(this, arguments);
+ };
+ }
+});
+
+// node_modules/@lit-protocol/nacl/src/lib/nacl.js
+var require_nacl = __commonJS({
+ "node_modules/@lit-protocol/nacl/src/lib/nacl.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.nacl = void 0;
+ var u64 = function(h, l) {
+ this.hi = h | 0 >>> 0;
+ this.lo = l | 0 >>> 0;
+ };
+ var gf = function(init) {
+ var i, r = new Float64Array(16);
+ if (init)
+ for (i = 0; i < init.length; i++)
+ r[i] = init[i];
+ return r;
+ };
+ var randombytes = function() {
+ throw new Error("no PRNG");
+ };
+ var _0 = new Uint8Array(16);
+ var _9 = new Uint8Array(32);
+ _9[0] = 9;
+ var gf0 = gf();
+ var gf1 = gf([1]);
+ var _121665 = gf([56129, 1]);
+ var D = gf([
+ 30883,
+ 4953,
+ 19914,
+ 30187,
+ 55467,
+ 16705,
+ 2637,
+ 112,
+ 59544,
+ 30585,
+ 16505,
+ 36039,
+ 65139,
+ 11119,
+ 27886,
+ 20995
+ ]);
+ var D2 = gf([
+ 61785,
+ 9906,
+ 39828,
+ 60374,
+ 45398,
+ 33411,
+ 5274,
+ 224,
+ 53552,
+ 61171,
+ 33010,
+ 6542,
+ 64743,
+ 22239,
+ 55772,
+ 9222
+ ]);
+ var X = gf([
+ 54554,
+ 36645,
+ 11616,
+ 51542,
+ 42930,
+ 38181,
+ 51040,
+ 26924,
+ 56412,
+ 64982,
+ 57905,
+ 49316,
+ 21502,
+ 52590,
+ 14035,
+ 8553
+ ]);
+ var Y = gf([
+ 26200,
+ 26214,
+ 26214,
+ 26214,
+ 26214,
+ 26214,
+ 26214,
+ 26214,
+ 26214,
+ 26214,
+ 26214,
+ 26214,
+ 26214,
+ 26214,
+ 26214,
+ 26214
+ ]);
+ var I = gf([
+ 41136,
+ 18958,
+ 6951,
+ 50414,
+ 58488,
+ 44335,
+ 6150,
+ 12099,
+ 55207,
+ 15867,
+ 153,
+ 11085,
+ 57099,
+ 20417,
+ 9344,
+ 11139
+ ]);
+ function L32(x, c) {
+ return x << c | x >>> 32 - c;
+ }
+ function ld32(x, i) {
+ var u = x[i + 3] & 255;
+ u = u << 8 | x[i + 2] & 255;
+ u = u << 8 | x[i + 1] & 255;
+ return u << 8 | x[i + 0] & 255;
+ }
+ function dl64(x, i) {
+ var h = x[i] << 24 | x[i + 1] << 16 | x[i + 2] << 8 | x[i + 3];
+ var l = x[i + 4] << 24 | x[i + 5] << 16 | x[i + 6] << 8 | x[i + 7];
+ return new u64(h, l);
+ }
+ function st32(x, j, u) {
+ var i;
+ for (i = 0; i < 4; i++) {
+ x[j + i] = u & 255;
+ u >>>= 8;
+ }
+ }
+ function ts64(x, i, u) {
+ x[i] = u.hi >> 24 & 255;
+ x[i + 1] = u.hi >> 16 & 255;
+ x[i + 2] = u.hi >> 8 & 255;
+ x[i + 3] = u.hi & 255;
+ x[i + 4] = u.lo >> 24 & 255;
+ x[i + 5] = u.lo >> 16 & 255;
+ x[i + 6] = u.lo >> 8 & 255;
+ x[i + 7] = u.lo & 255;
+ }
+ function vn(x, xi, y, yi, n) {
+ var i, d = 0;
+ for (i = 0; i < n; i++)
+ d |= x[xi + i] ^ y[yi + i];
+ return (1 & d - 1 >>> 8) - 1;
+ }
+ function crypto_verify_16(x, xi, y, yi) {
+ return vn(x, xi, y, yi, 16);
+ }
+ function crypto_verify_32(x, xi, y, yi) {
+ return vn(x, xi, y, yi, 32);
+ }
+ function core(out, inp, k, c, h) {
+ var w = new Uint32Array(16), x = new Uint32Array(16), y = new Uint32Array(16), t = new Uint32Array(4);
+ var i, j, m;
+ for (i = 0; i < 4; i++) {
+ x[5 * i] = ld32(c, 4 * i);
+ x[1 + i] = ld32(k, 4 * i);
+ x[6 + i] = ld32(inp, 4 * i);
+ x[11 + i] = ld32(k, 16 + 4 * i);
+ }
+ for (i = 0; i < 16; i++)
+ y[i] = x[i];
+ for (i = 0; i < 20; i++) {
+ for (j = 0; j < 4; j++) {
+ for (m = 0; m < 4; m++)
+ t[m] = x[(5 * j + 4 * m) % 16];
+ t[1] ^= L32(t[0] + t[3] | 0, 7);
+ t[2] ^= L32(t[1] + t[0] | 0, 9);
+ t[3] ^= L32(t[2] + t[1] | 0, 13);
+ t[0] ^= L32(t[3] + t[2] | 0, 18);
+ for (m = 0; m < 4; m++)
+ w[4 * j + (j + m) % 4] = t[m];
+ }
+ for (m = 0; m < 16; m++)
+ x[m] = w[m];
+ }
+ if (h) {
+ for (i = 0; i < 16; i++)
+ x[i] = x[i] + y[i] | 0;
+ for (i = 0; i < 4; i++) {
+ x[5 * i] = x[5 * i] - ld32(c, 4 * i) | 0;
+ x[6 + i] = x[6 + i] - ld32(inp, 4 * i) | 0;
+ }
+ for (i = 0; i < 4; i++) {
+ st32(out, 4 * i, x[5 * i]);
+ st32(out, 16 + 4 * i, x[6 + i]);
+ }
+ } else {
+ for (i = 0; i < 16; i++)
+ st32(out, 4 * i, x[i] + y[i] | 0);
+ }
+ }
+ function crypto_core_salsa20(out, inp, k, c) {
+ core(out, inp, k, c, false);
+ return 0;
+ }
+ function crypto_core_hsalsa20(out, inp, k, c) {
+ core(out, inp, k, c, true);
+ return 0;
+ }
+ var sigma = new Uint8Array([
+ 101,
+ 120,
+ 112,
+ 97,
+ 110,
+ 100,
+ 32,
+ 51,
+ 50,
+ 45,
+ 98,
+ 121,
+ 116,
+ 101,
+ 32,
+ 107
+ ]);
+ function crypto_stream_salsa20_xor(c, cpos, m, mpos, b, n, k) {
+ var z = new Uint8Array(16), x = new Uint8Array(64);
+ var u, i;
+ if (!b)
+ return 0;
+ for (i = 0; i < 16; i++)
+ z[i] = 0;
+ for (i = 0; i < 8; i++)
+ z[i] = n[i];
+ while (b >= 64) {
+ crypto_core_salsa20(x, z, k, sigma);
+ for (i = 0; i < 64; i++)
+ c[cpos + i] = (m ? m[mpos + i] : 0) ^ x[i];
+ u = 1;
+ for (i = 8; i < 16; i++) {
+ u = u + (z[i] & 255) | 0;
+ z[i] = u & 255;
+ u >>>= 8;
+ }
+ b -= 64;
+ cpos += 64;
+ if (m)
+ mpos += 64;
+ }
+ if (b > 0) {
+ crypto_core_salsa20(x, z, k, sigma);
+ for (i = 0; i < b; i++)
+ c[cpos + i] = (m ? m[mpos + i] : 0) ^ x[i];
+ }
+ return 0;
+ }
+ function crypto_stream_salsa20(c, cpos, d, n, k) {
+ return crypto_stream_salsa20_xor(c, cpos, null, 0, d, n, k);
+ }
+ function crypto_stream(c, cpos, d, n, k) {
+ var s = new Uint8Array(32);
+ crypto_core_hsalsa20(s, n, k, sigma);
+ return crypto_stream_salsa20(c, cpos, d, n.subarray(16), s);
+ }
+ function crypto_stream_xor(c, cpos, m, mpos, d, n, k) {
+ var s = new Uint8Array(32);
+ crypto_core_hsalsa20(s, n, k, sigma);
+ return crypto_stream_salsa20_xor(c, cpos, m, mpos, d, n.subarray(16), s);
+ }
+ function add1305(h, c) {
+ var j, u = 0;
+ for (j = 0; j < 17; j++) {
+ u = u + (h[j] + c[j] | 0) | 0;
+ h[j] = u & 255;
+ u >>>= 8;
+ }
+ }
+ var minusp = new Uint32Array([
+ 5,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 252
+ ]);
+ function crypto_onetimeauth(out, outpos, m, mpos, n, k) {
+ var s, i, j, u;
+ var x = new Uint32Array(17), r = new Uint32Array(17), h = new Uint32Array(17), c = new Uint32Array(17), g = new Uint32Array(17);
+ for (j = 0; j < 17; j++)
+ r[j] = h[j] = 0;
+ for (j = 0; j < 16; j++)
+ r[j] = k[j];
+ r[3] &= 15;
+ r[4] &= 252;
+ r[7] &= 15;
+ r[8] &= 252;
+ r[11] &= 15;
+ r[12] &= 252;
+ r[15] &= 15;
+ while (n > 0) {
+ for (j = 0; j < 17; j++)
+ c[j] = 0;
+ for (j = 0; j < 16 && j < n; ++j)
+ c[j] = m[mpos + j];
+ c[j] = 1;
+ mpos += j;
+ n -= j;
+ add1305(h, c);
+ for (i = 0; i < 17; i++) {
+ x[i] = 0;
+ for (j = 0; j < 17; j++)
+ x[i] = x[i] + h[j] * (j <= i ? r[i - j] : 320 * r[i + 17 - j] | 0) | 0 | 0;
+ }
+ for (i = 0; i < 17; i++)
+ h[i] = x[i];
+ u = 0;
+ for (j = 0; j < 16; j++) {
+ u = u + h[j] | 0;
+ h[j] = u & 255;
+ u >>>= 8;
+ }
+ u = u + h[16] | 0;
+ h[16] = u & 3;
+ u = 5 * (u >>> 2) | 0;
+ for (j = 0; j < 16; j++) {
+ u = u + h[j] | 0;
+ h[j] = u & 255;
+ u >>>= 8;
+ }
+ u = u + h[16] | 0;
+ h[16] = u;
+ }
+ for (j = 0; j < 17; j++)
+ g[j] = h[j];
+ add1305(h, minusp);
+ s = -(h[16] >>> 7) | 0;
+ for (j = 0; j < 17; j++)
+ h[j] ^= s & (g[j] ^ h[j]);
+ for (j = 0; j < 16; j++)
+ c[j] = k[j + 16];
+ c[16] = 0;
+ add1305(h, c);
+ for (j = 0; j < 16; j++)
+ out[outpos + j] = h[j];
+ return 0;
+ }
+ function crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {
+ var x = new Uint8Array(16);
+ crypto_onetimeauth(x, 0, m, mpos, n, k);
+ return crypto_verify_16(h, hpos, x, 0);
+ }
+ function crypto_secretbox(c, m, d, n, k) {
+ var i;
+ if (d < 32)
+ return -1;
+ crypto_stream_xor(c, 0, m, 0, d, n, k);
+ crypto_onetimeauth(c, 16, c, 32, d - 32, c);
+ for (i = 0; i < 16; i++)
+ c[i] = 0;
+ return 0;
+ }
+ function crypto_secretbox_open(m, c, d, n, k) {
+ var i;
+ var x = new Uint8Array(32);
+ if (d < 32)
+ return -1;
+ crypto_stream(x, 0, 32, n, k);
+ if (crypto_onetimeauth_verify(c, 16, c, 32, d - 32, x) !== 0)
+ return -1;
+ crypto_stream_xor(m, 0, c, 0, d, n, k);
+ for (i = 0; i < 32; i++)
+ m[i] = 0;
+ return 0;
+ }
+ function set25519(r, a) {
+ var i;
+ for (i = 0; i < 16; i++)
+ r[i] = a[i] | 0;
+ }
+ function car25519(o) {
+ var c;
+ var i;
+ for (i = 0; i < 16; i++) {
+ o[i] += 65536;
+ c = Math.floor(o[i] / 65536);
+ o[(i + 1) * (i < 15 ? 1 : 0)] += c - 1 + 37 * (c - 1) * (i === 15 ? 1 : 0);
+ o[i] -= c * 65536;
+ }
+ }
+ function sel25519(p, q, b) {
+ var t, c = ~(b - 1);
+ for (var i = 0; i < 16; i++) {
+ t = c & (p[i] ^ q[i]);
+ p[i] ^= t;
+ q[i] ^= t;
+ }
+ }
+ function pack25519(o, n) {
+ var i, j, b;
+ var m = gf(), t = gf();
+ for (i = 0; i < 16; i++)
+ t[i] = n[i];
+ car25519(t);
+ car25519(t);
+ car25519(t);
+ for (j = 0; j < 2; j++) {
+ m[0] = t[0] - 65517;
+ for (i = 1; i < 15; i++) {
+ m[i] = t[i] - 65535 - (m[i - 1] >> 16 & 1);
+ m[i - 1] &= 65535;
+ }
+ m[15] = t[15] - 32767 - (m[14] >> 16 & 1);
+ b = m[15] >> 16 & 1;
+ m[14] &= 65535;
+ sel25519(t, m, 1 - b);
+ }
+ for (i = 0; i < 16; i++) {
+ o[2 * i] = t[i] & 255;
+ o[2 * i + 1] = t[i] >> 8;
+ }
+ }
+ function neq25519(a, b) {
+ var c = new Uint8Array(32), d = new Uint8Array(32);
+ pack25519(c, a);
+ pack25519(d, b);
+ return crypto_verify_32(c, 0, d, 0);
+ }
+ function par25519(a) {
+ var d = new Uint8Array(32);
+ pack25519(d, a);
+ return d[0] & 1;
+ }
+ function unpack25519(o, n) {
+ var i;
+ for (i = 0; i < 16; i++)
+ o[i] = n[2 * i] + (n[2 * i + 1] << 8);
+ o[15] &= 32767;
+ }
+ function A(o, a, b) {
+ var i;
+ for (i = 0; i < 16; i++)
+ o[i] = a[i] + b[i] | 0;
+ }
+ function Z(o, a, b) {
+ var i;
+ for (i = 0; i < 16; i++)
+ o[i] = a[i] - b[i] | 0;
+ }
+ function M(o, a, b) {
+ var i, j, t = new Float64Array(31);
+ for (i = 0; i < 31; i++)
+ t[i] = 0;
+ for (i = 0; i < 16; i++) {
+ for (j = 0; j < 16; j++) {
+ t[i + j] += a[i] * b[j];
+ }
+ }
+ for (i = 0; i < 15; i++) {
+ t[i] += 38 * t[i + 16];
+ }
+ for (i = 0; i < 16; i++)
+ o[i] = t[i];
+ car25519(o);
+ car25519(o);
+ }
+ function S(o, a) {
+ M(o, a, a);
+ }
+ function inv25519(o, i) {
+ var c = gf();
+ var a;
+ for (a = 0; a < 16; a++)
+ c[a] = i[a];
+ for (a = 253; a >= 0; a--) {
+ S(c, c);
+ if (a !== 2 && a !== 4)
+ M(c, c, i);
+ }
+ for (a = 0; a < 16; a++)
+ o[a] = c[a];
+ }
+ function pow2523(o, i) {
+ var c = gf();
+ var a;
+ for (a = 0; a < 16; a++)
+ c[a] = i[a];
+ for (a = 250; a >= 0; a--) {
+ S(c, c);
+ if (a !== 1)
+ M(c, c, i);
+ }
+ for (a = 0; a < 16; a++)
+ o[a] = c[a];
+ }
+ function crypto_scalarmult(q, n, p) {
+ var z = new Uint8Array(32);
+ var x = new Float64Array(80), r, i;
+ var a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf();
+ for (i = 0; i < 31; i++)
+ z[i] = n[i];
+ z[31] = n[31] & 127 | 64;
+ z[0] &= 248;
+ unpack25519(x, p);
+ for (i = 0; i < 16; i++) {
+ b[i] = x[i];
+ d[i] = a[i] = c[i] = 0;
+ }
+ a[0] = d[0] = 1;
+ for (i = 254; i >= 0; --i) {
+ r = z[i >>> 3] >>> (i & 7) & 1;
+ sel25519(a, b, r);
+ sel25519(c, d, r);
+ A(e, a, c);
+ Z(a, a, c);
+ A(c, b, d);
+ Z(b, b, d);
+ S(d, e);
+ S(f, a);
+ M(a, c, a);
+ M(c, b, e);
+ A(e, a, c);
+ Z(a, a, c);
+ S(b, a);
+ Z(c, d, f);
+ M(a, c, _121665);
+ A(a, a, d);
+ M(c, c, a);
+ M(a, d, f);
+ M(d, b, x);
+ S(b, e);
+ sel25519(a, b, r);
+ sel25519(c, d, r);
+ }
+ for (i = 0; i < 16; i++) {
+ x[i + 16] = a[i];
+ x[i + 32] = c[i];
+ x[i + 48] = b[i];
+ x[i + 64] = d[i];
+ }
+ var x32 = x.subarray(32);
+ var x16 = x.subarray(16);
+ inv25519(x32, x32);
+ M(x16, x16, x32);
+ pack25519(q, x16);
+ return 0;
+ }
+ function crypto_scalarmult_base(q, n) {
+ return crypto_scalarmult(q, n, _9);
+ }
+ function crypto_box_keypair(y, x) {
+ randombytes(x, 32);
+ return crypto_scalarmult_base(y, x);
+ }
+ function crypto_box_beforenm(k, y, x) {
+ var s = new Uint8Array(32);
+ crypto_scalarmult(s, x, y);
+ return crypto_core_hsalsa20(k, _0, s, sigma);
+ }
+ var crypto_box_afternm = crypto_secretbox;
+ var crypto_box_open_afternm = crypto_secretbox_open;
+ function crypto_box(c, m, d, n, y, x) {
+ var k = new Uint8Array(32);
+ crypto_box_beforenm(k, y, x);
+ return crypto_box_afternm(c, m, d, n, k);
+ }
+ function crypto_box_open(m, c, d, n, y, x) {
+ var k = new Uint8Array(32);
+ crypto_box_beforenm(k, y, x);
+ return crypto_box_open_afternm(m, c, d, n, k);
+ }
+ function add64() {
+ var a = 0, b = 0, c = 0, d = 0, m16 = 65535, l, h, i;
+ for (i = 0; i < arguments.length; i++) {
+ l = arguments[i].lo;
+ h = arguments[i].hi;
+ a += l & m16;
+ b += l >>> 16;
+ c += h & m16;
+ d += h >>> 16;
+ }
+ b += a >>> 16;
+ c += b >>> 16;
+ d += c >>> 16;
+ return new u64(c & m16 | d << 16, a & m16 | b << 16);
+ }
+ function shr64(x, c) {
+ return new u64(x.hi >>> c, x.lo >>> c | x.hi << 32 - c);
+ }
+ function xor64() {
+ var l = 0, h = 0, i;
+ for (i = 0; i < arguments.length; i++) {
+ l ^= arguments[i].lo;
+ h ^= arguments[i].hi;
+ }
+ return new u64(h, l);
+ }
+ function R(x, c) {
+ var h, l, c1 = 32 - c;
+ if (c < 32) {
+ h = x.hi >>> c | x.lo << c1;
+ l = x.lo >>> c | x.hi << c1;
+ } else if (c < 64) {
+ h = x.lo >>> c | x.hi << c1;
+ l = x.hi >>> c | x.lo << c1;
+ }
+ return new u64(h, l);
+ }
+ function Ch(x, y, z) {
+ var h = x.hi & y.hi ^ ~x.hi & z.hi, l = x.lo & y.lo ^ ~x.lo & z.lo;
+ return new u64(h, l);
+ }
+ function Maj(x, y, z) {
+ var h = x.hi & y.hi ^ x.hi & z.hi ^ y.hi & z.hi, l = x.lo & y.lo ^ x.lo & z.lo ^ y.lo & z.lo;
+ return new u64(h, l);
+ }
+ function Sigma0(x) {
+ return xor64(R(x, 28), R(x, 34), R(x, 39));
+ }
+ function Sigma1(x) {
+ return xor64(R(x, 14), R(x, 18), R(x, 41));
+ }
+ function sigma0(x) {
+ return xor64(R(x, 1), R(x, 8), shr64(x, 7));
+ }
+ function sigma1(x) {
+ return xor64(R(x, 19), R(x, 61), shr64(x, 6));
+ }
+ var K = [
+ new u64(1116352408, 3609767458),
+ new u64(1899447441, 602891725),
+ new u64(3049323471, 3964484399),
+ new u64(3921009573, 2173295548),
+ new u64(961987163, 4081628472),
+ new u64(1508970993, 3053834265),
+ new u64(2453635748, 2937671579),
+ new u64(2870763221, 3664609560),
+ new u64(3624381080, 2734883394),
+ new u64(310598401, 1164996542),
+ new u64(607225278, 1323610764),
+ new u64(1426881987, 3590304994),
+ new u64(1925078388, 4068182383),
+ new u64(2162078206, 991336113),
+ new u64(2614888103, 633803317),
+ new u64(3248222580, 3479774868),
+ new u64(3835390401, 2666613458),
+ new u64(4022224774, 944711139),
+ new u64(264347078, 2341262773),
+ new u64(604807628, 2007800933),
+ new u64(770255983, 1495990901),
+ new u64(1249150122, 1856431235),
+ new u64(1555081692, 3175218132),
+ new u64(1996064986, 2198950837),
+ new u64(2554220882, 3999719339),
+ new u64(2821834349, 766784016),
+ new u64(2952996808, 2566594879),
+ new u64(3210313671, 3203337956),
+ new u64(3336571891, 1034457026),
+ new u64(3584528711, 2466948901),
+ new u64(113926993, 3758326383),
+ new u64(338241895, 168717936),
+ new u64(666307205, 1188179964),
+ new u64(773529912, 1546045734),
+ new u64(1294757372, 1522805485),
+ new u64(1396182291, 2643833823),
+ new u64(1695183700, 2343527390),
+ new u64(1986661051, 1014477480),
+ new u64(2177026350, 1206759142),
+ new u64(2456956037, 344077627),
+ new u64(2730485921, 1290863460),
+ new u64(2820302411, 3158454273),
+ new u64(3259730800, 3505952657),
+ new u64(3345764771, 106217008),
+ new u64(3516065817, 3606008344),
+ new u64(3600352804, 1432725776),
+ new u64(4094571909, 1467031594),
+ new u64(275423344, 851169720),
+ new u64(430227734, 3100823752),
+ new u64(506948616, 1363258195),
+ new u64(659060556, 3750685593),
+ new u64(883997877, 3785050280),
+ new u64(958139571, 3318307427),
+ new u64(1322822218, 3812723403),
+ new u64(1537002063, 2003034995),
+ new u64(1747873779, 3602036899),
+ new u64(1955562222, 1575990012),
+ new u64(2024104815, 1125592928),
+ new u64(2227730452, 2716904306),
+ new u64(2361852424, 442776044),
+ new u64(2428436474, 593698344),
+ new u64(2756734187, 3733110249),
+ new u64(3204031479, 2999351573),
+ new u64(3329325298, 3815920427),
+ new u64(3391569614, 3928383900),
+ new u64(3515267271, 566280711),
+ new u64(3940187606, 3454069534),
+ new u64(4118630271, 4000239992),
+ new u64(116418474, 1914138554),
+ new u64(174292421, 2731055270),
+ new u64(289380356, 3203993006),
+ new u64(460393269, 320620315),
+ new u64(685471733, 587496836),
+ new u64(852142971, 1086792851),
+ new u64(1017036298, 365543100),
+ new u64(1126000580, 2618297676),
+ new u64(1288033470, 3409855158),
+ new u64(1501505948, 4234509866),
+ new u64(1607167915, 987167468),
+ new u64(1816402316, 1246189591)
+ ];
+ function crypto_hashblocks(x, m, n) {
+ var z = [], b = [], a = [], w = [], t, i, j;
+ for (i = 0; i < 8; i++)
+ z[i] = a[i] = dl64(x, 8 * i);
+ var pos = 0;
+ while (n >= 128) {
+ for (i = 0; i < 16; i++)
+ w[i] = dl64(m, 8 * i + pos);
+ for (i = 0; i < 80; i++) {
+ for (j = 0; j < 8; j++)
+ b[j] = a[j];
+ t = add64(a[7], Sigma1(a[4]), Ch(a[4], a[5], a[6]), K[i], w[i % 16]);
+ b[7] = add64(t, Sigma0(a[0]), Maj(a[0], a[1], a[2]));
+ b[3] = add64(b[3], t);
+ for (j = 0; j < 8; j++)
+ a[(j + 1) % 8] = b[j];
+ if (i % 16 === 15) {
+ for (j = 0; j < 16; j++) {
+ w[j] = add64(w[j], w[(j + 9) % 16], sigma0(w[(j + 1) % 16]), sigma1(w[(j + 14) % 16]));
+ }
+ }
+ }
+ for (i = 0; i < 8; i++) {
+ a[i] = add64(a[i], z[i]);
+ z[i] = a[i];
+ }
+ pos += 128;
+ n -= 128;
+ }
+ for (i = 0; i < 8; i++)
+ ts64(x, 8 * i, z[i]);
+ return n;
+ }
+ var iv = new Uint8Array([
+ 106,
+ 9,
+ 230,
+ 103,
+ 243,
+ 188,
+ 201,
+ 8,
+ 187,
+ 103,
+ 174,
+ 133,
+ 132,
+ 202,
+ 167,
+ 59,
+ 60,
+ 110,
+ 243,
+ 114,
+ 254,
+ 148,
+ 248,
+ 43,
+ 165,
+ 79,
+ 245,
+ 58,
+ 95,
+ 29,
+ 54,
+ 241,
+ 81,
+ 14,
+ 82,
+ 127,
+ 173,
+ 230,
+ 130,
+ 209,
+ 155,
+ 5,
+ 104,
+ 140,
+ 43,
+ 62,
+ 108,
+ 31,
+ 31,
+ 131,
+ 217,
+ 171,
+ 251,
+ 65,
+ 189,
+ 107,
+ 91,
+ 224,
+ 205,
+ 25,
+ 19,
+ 126,
+ 33,
+ 121
+ ]);
+ function crypto_hash(out, m, n) {
+ var h = new Uint8Array(64), x = new Uint8Array(256);
+ var i, b = n;
+ for (i = 0; i < 64; i++)
+ h[i] = iv[i];
+ crypto_hashblocks(h, m, n);
+ n %= 128;
+ for (i = 0; i < 256; i++)
+ x[i] = 0;
+ for (i = 0; i < n; i++)
+ x[i] = m[b - n + i];
+ x[n] = 128;
+ n = 256 - 128 * (n < 112 ? 1 : 0);
+ x[n - 9] = 0;
+ ts64(x, n - 8, new u64(b / 536870912 | 0, b << 3));
+ crypto_hashblocks(h, x, n);
+ for (i = 0; i < 64; i++)
+ out[i] = h[i];
+ return 0;
+ }
+ function add(p, q) {
+ var a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf(), g = gf(), h = gf(), t = gf();
+ Z(a, p[1], p[0]);
+ Z(t, q[1], q[0]);
+ M(a, a, t);
+ A(b, p[0], p[1]);
+ A(t, q[0], q[1]);
+ M(b, b, t);
+ M(c, p[3], q[3]);
+ M(c, c, D2);
+ M(d, p[2], q[2]);
+ A(d, d, d);
+ Z(e, b, a);
+ Z(f, d, c);
+ A(g, d, c);
+ A(h, b, a);
+ M(p[0], e, f);
+ M(p[1], h, g);
+ M(p[2], g, f);
+ M(p[3], e, h);
+ }
+ function cswap(p, q, b) {
+ var i;
+ for (i = 0; i < 4; i++) {
+ sel25519(p[i], q[i], b);
+ }
+ }
+ function pack(r, p) {
+ var tx = gf(), ty = gf(), zi = gf();
+ inv25519(zi, p[2]);
+ M(tx, p[0], zi);
+ M(ty, p[1], zi);
+ pack25519(r, ty);
+ r[31] ^= par25519(tx) << 7;
+ }
+ function scalarmult(p, q, s) {
+ var b, i;
+ set25519(p[0], gf0);
+ set25519(p[1], gf1);
+ set25519(p[2], gf1);
+ set25519(p[3], gf0);
+ for (i = 255; i >= 0; --i) {
+ b = s[i / 8 | 0] >> (i & 7) & 1;
+ cswap(p, q, b);
+ add(q, p);
+ add(p, p);
+ cswap(p, q, b);
+ }
+ }
+ function scalarbase(p, s) {
+ var q = [gf(), gf(), gf(), gf()];
+ set25519(q[0], X);
+ set25519(q[1], Y);
+ set25519(q[2], gf1);
+ M(q[3], X, Y);
+ scalarmult(p, q, s);
+ }
+ function crypto_sign_keypair(pk, sk, seeded) {
+ var d = new Uint8Array(64);
+ var p = [gf(), gf(), gf(), gf()];
+ var i;
+ if (!seeded)
+ randombytes(sk, 32);
+ crypto_hash(d, sk, 32);
+ d[0] &= 248;
+ d[31] &= 127;
+ d[31] |= 64;
+ scalarbase(p, d);
+ pack(pk, p);
+ for (i = 0; i < 32; i++)
+ sk[i + 32] = pk[i];
+ return 0;
+ }
+ var L = new Float64Array([
+ 237,
+ 211,
+ 245,
+ 92,
+ 26,
+ 99,
+ 18,
+ 88,
+ 214,
+ 156,
+ 247,
+ 162,
+ 222,
+ 249,
+ 222,
+ 20,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 16
+ ]);
+ function modL(r, x) {
+ var carry, i, j, k;
+ for (i = 63; i >= 32; --i) {
+ carry = 0;
+ for (j = i - 32, k = i - 12; j < k; ++j) {
+ x[j] += carry - 16 * x[i] * L[j - (i - 32)];
+ carry = Math.floor((x[j] + 128) / 256);
+ x[j] -= carry * 256;
+ }
+ x[j] += carry;
+ x[i] = 0;
+ }
+ carry = 0;
+ for (j = 0; j < 32; j++) {
+ x[j] += carry - (x[31] >> 4) * L[j];
+ carry = x[j] >> 8;
+ x[j] &= 255;
+ }
+ for (j = 0; j < 32; j++)
+ x[j] -= carry * L[j];
+ for (i = 0; i < 32; i++) {
+ x[i + 1] += x[i] >> 8;
+ r[i] = x[i] & 255;
+ }
+ }
+ function reduce(r) {
+ var x = new Float64Array(64), i;
+ for (i = 0; i < 64; i++)
+ x[i] = r[i];
+ for (i = 0; i < 64; i++)
+ r[i] = 0;
+ modL(r, x);
+ }
+ function crypto_sign(sm, m, n, sk) {
+ var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);
+ var i, j, x = new Float64Array(64);
+ var p = [gf(), gf(), gf(), gf()];
+ crypto_hash(d, sk, 32);
+ d[0] &= 248;
+ d[31] &= 127;
+ d[31] |= 64;
+ var smlen = n + 64;
+ for (i = 0; i < n; i++)
+ sm[64 + i] = m[i];
+ for (i = 0; i < 32; i++)
+ sm[32 + i] = d[32 + i];
+ crypto_hash(r, sm.subarray(32), n + 32);
+ reduce(r);
+ scalarbase(p, r);
+ pack(sm, p);
+ for (i = 32; i < 64; i++)
+ sm[i] = sk[i];
+ crypto_hash(h, sm, n + 64);
+ reduce(h);
+ for (i = 0; i < 64; i++)
+ x[i] = 0;
+ for (i = 0; i < 32; i++)
+ x[i] = r[i];
+ for (i = 0; i < 32; i++) {
+ for (j = 0; j < 32; j++) {
+ x[i + j] += h[i] * d[j];
+ }
+ }
+ modL(sm.subarray(32), x);
+ return smlen;
+ }
+ function unpackneg(r, p) {
+ var t = gf(), chk = gf(), num = gf(), den = gf(), den2 = gf(), den4 = gf(), den6 = gf();
+ set25519(r[2], gf1);
+ unpack25519(r[1], p);
+ S(num, r[1]);
+ M(den, num, D);
+ Z(num, num, r[2]);
+ A(den, r[2], den);
+ S(den2, den);
+ S(den4, den2);
+ M(den6, den4, den2);
+ M(t, den6, num);
+ M(t, t, den);
+ pow2523(t, t);
+ M(t, t, num);
+ M(t, t, den);
+ M(t, t, den);
+ M(r[0], t, den);
+ S(chk, r[0]);
+ M(chk, chk, den);
+ if (neq25519(chk, num))
+ M(r[0], r[0], I);
+ S(chk, r[0]);
+ M(chk, chk, den);
+ if (neq25519(chk, num))
+ return -1;
+ if (par25519(r[0]) === p[31] >> 7)
+ Z(r[0], gf0, r[0]);
+ M(r[3], r[0], r[1]);
+ return 0;
+ }
+ function crypto_sign_open(m, sm, n, pk) {
+ var i;
+ var t = new Uint8Array(32), h = new Uint8Array(64);
+ var p = [gf(), gf(), gf(), gf()], q = [gf(), gf(), gf(), gf()];
+ if (n < 64)
+ return -1;
+ if (unpackneg(q, pk))
+ return -1;
+ for (i = 0; i < n; i++)
+ m[i] = sm[i];
+ for (i = 0; i < 32; i++)
+ m[i + 32] = pk[i];
+ crypto_hash(h, m, n);
+ reduce(h);
+ scalarmult(p, q, h);
+ scalarbase(q, sm.subarray(32));
+ add(p, q);
+ pack(t, p);
+ n -= 64;
+ if (crypto_verify_32(sm, 0, t, 0)) {
+ for (i = 0; i < n; i++)
+ m[i] = 0;
+ return -1;
+ }
+ for (i = 0; i < n; i++)
+ m[i] = sm[i + 64];
+ return n;
+ }
+ var crypto_secretbox_KEYBYTES = 32;
+ var crypto_secretbox_NONCEBYTES = 24;
+ var crypto_secretbox_ZEROBYTES = 32;
+ var crypto_secretbox_BOXZEROBYTES = 16;
+ var crypto_scalarmult_BYTES = 32;
+ var crypto_scalarmult_SCALARBYTES = 32;
+ var crypto_box_PUBLICKEYBYTES = 32;
+ var crypto_box_SECRETKEYBYTES = 32;
+ var crypto_box_BEFORENMBYTES = 32;
+ var crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES;
+ var crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES;
+ var crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES;
+ var crypto_sign_BYTES = 64;
+ var crypto_sign_PUBLICKEYBYTES = 32;
+ var crypto_sign_SECRETKEYBYTES = 64;
+ var crypto_sign_SEEDBYTES = 32;
+ var crypto_hash_BYTES = 64;
+ var _nacl = {
+ lowlevel: {}
+ };
+ _nacl.lowlevel = {
+ crypto_core_hsalsa20,
+ crypto_stream_xor,
+ crypto_stream,
+ crypto_stream_salsa20_xor,
+ crypto_stream_salsa20,
+ crypto_onetimeauth,
+ crypto_onetimeauth_verify,
+ crypto_verify_16,
+ crypto_verify_32,
+ crypto_secretbox,
+ crypto_secretbox_open,
+ crypto_scalarmult,
+ crypto_scalarmult_base,
+ crypto_box_beforenm,
+ crypto_box_afternm,
+ crypto_box,
+ crypto_box_open,
+ crypto_box_keypair,
+ crypto_hash,
+ crypto_sign,
+ crypto_sign_keypair,
+ crypto_sign_open,
+ crypto_secretbox_KEYBYTES,
+ crypto_secretbox_NONCEBYTES,
+ crypto_secretbox_ZEROBYTES,
+ crypto_secretbox_BOXZEROBYTES,
+ crypto_scalarmult_BYTES,
+ crypto_scalarmult_SCALARBYTES,
+ crypto_box_PUBLICKEYBYTES,
+ crypto_box_SECRETKEYBYTES,
+ crypto_box_BEFORENMBYTES,
+ crypto_box_NONCEBYTES,
+ crypto_box_ZEROBYTES,
+ crypto_box_BOXZEROBYTES,
+ crypto_sign_BYTES,
+ crypto_sign_PUBLICKEYBYTES,
+ crypto_sign_SECRETKEYBYTES,
+ crypto_sign_SEEDBYTES,
+ crypto_hash_BYTES,
+ gf,
+ D,
+ L,
+ pack25519,
+ unpack25519,
+ M,
+ A,
+ S,
+ Z,
+ pow2523,
+ add,
+ set25519,
+ modL,
+ scalarmult,
+ scalarbase
+ };
+ function checkLengths(k, n) {
+ if (k.length !== crypto_secretbox_KEYBYTES)
+ throw new Error("bad key size");
+ if (n.length !== crypto_secretbox_NONCEBYTES)
+ throw new Error("bad nonce size");
+ }
+ function checkBoxLengths(pk, sk) {
+ if (pk.length !== crypto_box_PUBLICKEYBYTES)
+ throw new Error("bad public key size");
+ if (sk.length !== crypto_box_SECRETKEYBYTES)
+ throw new Error("bad secret key size");
+ }
+ function checkArrayTypes() {
+ for (var i = 0; i < arguments.length; i++) {
+ if (!(arguments[i] instanceof Uint8Array))
+ throw new TypeError("unexpected type, use Uint8Array");
+ }
+ }
+ function cleanup(arr) {
+ for (var i = 0; i < arr.length; i++)
+ arr[i] = 0;
+ }
+ _nacl.randomBytes = function(n) {
+ var b = new Uint8Array(n);
+ randombytes(b, n);
+ return b;
+ };
+ _nacl.secretbox = function(msg, nonce, key) {
+ checkArrayTypes(msg, nonce, key);
+ checkLengths(key, nonce);
+ var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);
+ var c = new Uint8Array(m.length);
+ for (var i = 0; i < msg.length; i++)
+ m[i + crypto_secretbox_ZEROBYTES] = msg[i];
+ crypto_secretbox(c, m, m.length, nonce, key);
+ return c.subarray(crypto_secretbox_BOXZEROBYTES);
+ };
+ _nacl.secretbox.open = function(box, nonce, key) {
+ checkArrayTypes(box, nonce, key);
+ checkLengths(key, nonce);
+ var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);
+ var m = new Uint8Array(c.length);
+ for (var i = 0; i < box.length; i++)
+ c[i + crypto_secretbox_BOXZEROBYTES] = box[i];
+ if (c.length < 32)
+ return null;
+ if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0)
+ return null;
+ return m.subarray(crypto_secretbox_ZEROBYTES);
+ };
+ _nacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;
+ _nacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;
+ _nacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;
+ _nacl.scalarMult = function(n, p) {
+ checkArrayTypes(n, p);
+ if (n.length !== crypto_scalarmult_SCALARBYTES)
+ throw new Error("bad n size");
+ if (p.length !== crypto_scalarmult_BYTES)
+ throw new Error("bad p size");
+ var q = new Uint8Array(crypto_scalarmult_BYTES);
+ crypto_scalarmult(q, n, p);
+ return q;
+ };
+ _nacl.scalarMult.base = function(n) {
+ checkArrayTypes(n);
+ if (n.length !== crypto_scalarmult_SCALARBYTES)
+ throw new Error("bad n size");
+ var q = new Uint8Array(crypto_scalarmult_BYTES);
+ crypto_scalarmult_base(q, n);
+ return q;
+ };
+ _nacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;
+ _nacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;
+ _nacl.box = function(msg, nonce, publicKey, secretKey) {
+ var k = _nacl.box.before(publicKey, secretKey);
+ return _nacl.secretbox(msg, nonce, k);
+ };
+ _nacl.box.before = function(publicKey, secretKey) {
+ checkArrayTypes(publicKey, secretKey);
+ checkBoxLengths(publicKey, secretKey);
+ var k = new Uint8Array(crypto_box_BEFORENMBYTES);
+ crypto_box_beforenm(k, publicKey, secretKey);
+ return k;
+ };
+ _nacl.box.after = _nacl.secretbox;
+ _nacl.box.open = function(msg, nonce, publicKey, secretKey) {
+ var k = _nacl.box.before(publicKey, secretKey);
+ return _nacl.secretbox.open(msg, nonce, k);
+ };
+ _nacl.box.open.after = _nacl.secretbox.open;
+ _nacl.box.keyPair = function() {
+ var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);
+ var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);
+ crypto_box_keypair(pk, sk);
+ return { publicKey: pk, secretKey: sk };
+ };
+ _nacl.box.keyPair.fromSecretKey = function(secretKey) {
+ checkArrayTypes(secretKey);
+ if (secretKey.length !== crypto_box_SECRETKEYBYTES)
+ throw new Error("bad secret key size");
+ var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);
+ crypto_scalarmult_base(pk, secretKey);
+ return { publicKey: pk, secretKey: new Uint8Array(secretKey) };
+ };
+ _nacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;
+ _nacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;
+ _nacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;
+ _nacl.box.nonceLength = crypto_box_NONCEBYTES;
+ _nacl.box.overheadLength = _nacl.secretbox.overheadLength;
+ _nacl.sign = function(msg, secretKey) {
+ checkArrayTypes(msg, secretKey);
+ if (secretKey.length !== crypto_sign_SECRETKEYBYTES)
+ throw new Error("bad secret key size");
+ var signedMsg = new Uint8Array(crypto_sign_BYTES + msg.length);
+ crypto_sign(signedMsg, msg, msg.length, secretKey);
+ return signedMsg;
+ };
+ _nacl.sign.open = function(signedMsg, publicKey) {
+ checkArrayTypes(signedMsg, publicKey);
+ if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)
+ throw new Error("bad public key size");
+ var tmp = new Uint8Array(signedMsg.length);
+ var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);
+ if (mlen < 0)
+ return null;
+ var m = new Uint8Array(mlen);
+ for (var i = 0; i < m.length; i++)
+ m[i] = tmp[i];
+ return m;
+ };
+ _nacl.sign.detached = function(msg, secretKey) {
+ var signedMsg = _nacl.sign(msg, secretKey);
+ var sig = new Uint8Array(crypto_sign_BYTES);
+ for (var i = 0; i < sig.length; i++)
+ sig[i] = signedMsg[i];
+ return sig;
+ };
+ _nacl.sign.detached.verify = function(msg, sig, publicKey) {
+ checkArrayTypes(msg, sig, publicKey);
+ if (sig.length !== crypto_sign_BYTES)
+ throw new Error("bad signature size");
+ if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)
+ throw new Error("bad public key size");
+ var sm = new Uint8Array(crypto_sign_BYTES + msg.length);
+ var m = new Uint8Array(crypto_sign_BYTES + msg.length);
+ var i;
+ for (i = 0; i < crypto_sign_BYTES; i++)
+ sm[i] = sig[i];
+ for (i = 0; i < msg.length; i++)
+ sm[i + crypto_sign_BYTES] = msg[i];
+ return crypto_sign_open(m, sm, sm.length, publicKey) >= 0;
+ };
+ _nacl.sign.keyPair = function() {
+ var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
+ var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);
+ crypto_sign_keypair(pk, sk);
+ return { publicKey: pk, secretKey: sk };
+ };
+ _nacl.sign.keyPair.fromSecretKey = function(secretKey) {
+ checkArrayTypes(secretKey);
+ if (secretKey.length !== crypto_sign_SECRETKEYBYTES)
+ throw new Error("bad secret key size");
+ var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
+ for (var i = 0; i < pk.length; i++)
+ pk[i] = secretKey[32 + i];
+ return { publicKey: pk, secretKey: new Uint8Array(secretKey) };
+ };
+ _nacl.sign.keyPair.fromSeed = function(seed) {
+ checkArrayTypes(seed);
+ if (seed.length !== crypto_sign_SEEDBYTES)
+ throw new Error("bad seed size");
+ var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);
+ var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);
+ for (var i = 0; i < 32; i++)
+ sk[i] = seed[i];
+ crypto_sign_keypair(pk, sk, true);
+ return { publicKey: pk, secretKey: sk };
+ };
+ _nacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;
+ _nacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;
+ _nacl.sign.seedLength = crypto_sign_SEEDBYTES;
+ _nacl.sign.signatureLength = crypto_sign_BYTES;
+ _nacl.hash = function(msg) {
+ checkArrayTypes(msg);
+ var h = new Uint8Array(crypto_hash_BYTES);
+ crypto_hash(h, msg, msg.length);
+ return h;
+ };
+ _nacl.hash.hashLength = crypto_hash_BYTES;
+ _nacl.verify = function(x, y) {
+ checkArrayTypes(x, y);
+ if (x.length === 0 || y.length === 0)
+ return false;
+ if (x.length !== y.length)
+ return false;
+ return vn(x, 0, y, 0, x.length) === 0 ? true : false;
+ };
+ _nacl.setPRNG = function(fn) {
+ randombytes = fn;
+ };
+ (function() {
+ var crypto2 = typeof self !== "undefined" ? self.crypto || self.msCrypto : null;
+ if (crypto2 && crypto2.getRandomValues) {
+ var QUOTA = 65536;
+ _nacl.setPRNG(function(x, n) {
+ var i, v = new Uint8Array(n);
+ for (i = 0; i < n; i += QUOTA) {
+ crypto2.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));
+ }
+ for (i = 0; i < n; i++)
+ x[i] = v[i];
+ cleanup(v);
+ });
+ } else if (typeof require !== "undefined") {
+ crypto2 = require("crypto");
+ if (crypto2 && crypto2.randomBytes) {
+ _nacl.setPRNG(function(x, n) {
+ var i, v = crypto2.randomBytes(n);
+ for (i = 0; i < n; i++)
+ x[i] = v[i];
+ cleanup(v);
+ });
+ }
+ }
+ })();
+ exports2.nacl = _nacl.default || _nacl;
+ }
+});
+
+// node_modules/@lit-protocol/nacl/src/index.js
+var require_src9 = __commonJS({
+ "node_modules/@lit-protocol/nacl/src/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var tslib_1 = (init_tslib_es610(), __toCommonJS(tslib_es6_exports10));
+ tslib_1.__exportStar(require_nacl(), exports2);
+ }
+});
+
+// node_modules/@lit-protocol/wasm/node_modules/tslib/tslib.es6.js
+var tslib_es6_exports11 = {};
+__export(tslib_es6_exports11, {
+ __assign: () => __assign11,
+ __asyncDelegator: () => __asyncDelegator11,
+ __asyncGenerator: () => __asyncGenerator11,
+ __asyncValues: () => __asyncValues11,
+ __await: () => __await11,
+ __awaiter: () => __awaiter11,
+ __classPrivateFieldGet: () => __classPrivateFieldGet11,
+ __classPrivateFieldSet: () => __classPrivateFieldSet11,
+ __createBinding: () => __createBinding11,
+ __decorate: () => __decorate11,
+ __exportStar: () => __exportStar11,
+ __extends: () => __extends11,
+ __generator: () => __generator11,
+ __importDefault: () => __importDefault11,
+ __importStar: () => __importStar11,
+ __makeTemplateObject: () => __makeTemplateObject11,
+ __metadata: () => __metadata11,
+ __param: () => __param11,
+ __read: () => __read11,
+ __rest: () => __rest11,
+ __spread: () => __spread11,
+ __spreadArrays: () => __spreadArrays11,
+ __values: () => __values11
+});
+function __extends11(d, b) {
+ extendStatics11(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+function __rest11(s, e) {
+ var t = {};
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+}
+function __decorate11(decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ r = Reflect.decorate(decorators, target, key, desc);
+ else
+ for (var i = decorators.length - 1; i >= 0; i--)
+ if (d = decorators[i])
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+function __param11(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+}
+function __metadata11(metadataKey, metadataValue) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(metadataKey, metadataValue);
+}
+function __awaiter11(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+}
+function __generator11(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+}
+function __createBinding11(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+}
+function __exportStar11(m, exports2) {
+ for (var p in m)
+ if (p !== "default" && !exports2.hasOwnProperty(p))
+ exports2[p] = m[p];
+}
+function __values11(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m)
+ return m.call(o);
+ if (o && typeof o.length === "number")
+ return {
+ next: function() {
+ if (o && i >= o.length)
+ o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+}
+function __read11(o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m)
+ return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
+ ar.push(r.value);
+ } catch (error) {
+ e = { error };
+ } finally {
+ try {
+ if (r && !r.done && (m = i["return"]))
+ m.call(i);
+ } finally {
+ if (e)
+ throw e.error;
+ }
+ }
+ return ar;
+}
+function __spread11() {
+ for (var ar = [], i = 0; i < arguments.length; i++)
+ ar = ar.concat(__read11(arguments[i]));
+ return ar;
+}
+function __spreadArrays11() {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
+ s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+}
+function __await11(v) {
+ return this instanceof __await11 ? (this.v = v, this) : new __await11(v);
+}
+function __asyncGenerator11(thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i;
+ function verb(n) {
+ if (g[n])
+ i[n] = function(v) {
+ return new Promise(function(a, b) {
+ q.push([n, v, a, b]) > 1 || resume(n, v);
+ });
+ };
+ }
+ function resume(n, v) {
+ try {
+ step(g[n](v));
+ } catch (e) {
+ settle(q[0][3], e);
+ }
+ }
+ function step(r) {
+ r.value instanceof __await11 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
+ }
+ function fulfill(value) {
+ resume("next", value);
+ }
+ function reject(value) {
+ resume("throw", value);
+ }
+ function settle(f, v) {
+ if (f(v), q.shift(), q.length)
+ resume(q[0][0], q[0][1]);
+ }
+}
+function __asyncDelegator11(o) {
+ var i, p;
+ return i = {}, verb("next"), verb("throw", function(e) {
+ throw e;
+ }), verb("return"), i[Symbol.iterator] = function() {
+ return this;
+ }, i;
+ function verb(n, f) {
+ i[n] = o[n] ? function(v) {
+ return (p = !p) ? { value: __await11(o[n](v)), done: n === "return" } : f ? f(v) : v;
+ } : f;
+ }
+}
+function __asyncValues11(o) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator], i;
+ return m ? m.call(o) : (o = typeof __values11 === "function" ? __values11(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i);
+ function verb(n) {
+ i[n] = o[n] && function(v) {
+ return new Promise(function(resolve, reject) {
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
+ });
+ };
+ }
+ function settle(resolve, reject, d, v) {
+ Promise.resolve(v).then(function(v2) {
+ resolve({ value: v2, done: d });
+ }, reject);
+ }
+}
+function __makeTemplateObject11(cooked, raw) {
+ if (Object.defineProperty) {
+ Object.defineProperty(cooked, "raw", { value: raw });
+ } else {
+ cooked.raw = raw;
+ }
+ return cooked;
+}
+function __importStar11(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (Object.hasOwnProperty.call(mod, k))
+ result[k] = mod[k];
+ }
+ result.default = mod;
+ return result;
+}
+function __importDefault11(mod) {
+ return mod && mod.__esModule ? mod : { default: mod };
+}
+function __classPrivateFieldGet11(receiver, privateMap) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to get private field on non-instance");
+ }
+ return privateMap.get(receiver);
+}
+function __classPrivateFieldSet11(receiver, privateMap, value) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to set private field on non-instance");
+ }
+ privateMap.set(receiver, value);
+ return value;
+}
+var extendStatics11, __assign11;
+var init_tslib_es611 = __esm({
+ "node_modules/@lit-protocol/wasm/node_modules/tslib/tslib.es6.js"() {
+ extendStatics11 = function(d, b) {
+ extendStatics11 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (b2.hasOwnProperty(p))
+ d2[p] = b2[p];
+ };
+ return extendStatics11(d, b);
+ };
+ __assign11 = function() {
+ __assign11 = Object.assign || function __assign13(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign11.apply(this, arguments);
+ };
+ }
+});
+
+// node_modules/pako/lib/zlib/trees.js
+var require_trees = __commonJS({
+ "node_modules/pako/lib/zlib/trees.js"(exports2, module2) {
+ "use strict";
+ var Z_FIXED = 4;
+ var Z_BINARY = 0;
+ var Z_TEXT = 1;
+ var Z_UNKNOWN = 2;
+ function zero(buf) {
+ let len = buf.length;
+ while (--len >= 0) {
+ buf[len] = 0;
+ }
+ }
+ var STORED_BLOCK = 0;
+ var STATIC_TREES = 1;
+ var DYN_TREES = 2;
+ var MIN_MATCH = 3;
+ var MAX_MATCH = 258;
+ var LENGTH_CODES = 29;
+ var LITERALS = 256;
+ var L_CODES = LITERALS + 1 + LENGTH_CODES;
+ var D_CODES = 30;
+ var BL_CODES = 19;
+ var HEAP_SIZE = 2 * L_CODES + 1;
+ var MAX_BITS = 15;
+ var Buf_size = 16;
+ var MAX_BL_BITS = 7;
+ var END_BLOCK = 256;
+ var REP_3_6 = 16;
+ var REPZ_3_10 = 17;
+ var REPZ_11_138 = 18;
+ var extra_lbits = (
+ /* extra bits for each length code */
+ new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0])
+ );
+ var extra_dbits = (
+ /* extra bits for each distance code */
+ new Uint8Array([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13])
+ );
+ var extra_blbits = (
+ /* extra bits for each bit length code */
+ new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7])
+ );
+ var bl_order = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
+ var DIST_CODE_LEN = 512;
+ var static_ltree = new Array((L_CODES + 2) * 2);
+ zero(static_ltree);
+ var static_dtree = new Array(D_CODES * 2);
+ zero(static_dtree);
+ var _dist_code = new Array(DIST_CODE_LEN);
+ zero(_dist_code);
+ var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);
+ zero(_length_code);
+ var base_length = new Array(LENGTH_CODES);
+ zero(base_length);
+ var base_dist = new Array(D_CODES);
+ zero(base_dist);
+ function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {
+ this.static_tree = static_tree;
+ this.extra_bits = extra_bits;
+ this.extra_base = extra_base;
+ this.elems = elems;
+ this.max_length = max_length;
+ this.has_stree = static_tree && static_tree.length;
+ }
+ var static_l_desc;
+ var static_d_desc;
+ var static_bl_desc;
+ function TreeDesc(dyn_tree, stat_desc) {
+ this.dyn_tree = dyn_tree;
+ this.max_code = 0;
+ this.stat_desc = stat_desc;
+ }
+ var d_code = (dist) => {
+ return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
+ };
+ var put_short = (s, w) => {
+ s.pending_buf[s.pending++] = w & 255;
+ s.pending_buf[s.pending++] = w >>> 8 & 255;
+ };
+ var send_bits = (s, value, length) => {
+ if (s.bi_valid > Buf_size - length) {
+ s.bi_buf |= value << s.bi_valid & 65535;
+ put_short(s, s.bi_buf);
+ s.bi_buf = value >> Buf_size - s.bi_valid;
+ s.bi_valid += length - Buf_size;
+ } else {
+ s.bi_buf |= value << s.bi_valid & 65535;
+ s.bi_valid += length;
+ }
+ };
+ var send_code = (s, c, tree) => {
+ send_bits(
+ s,
+ tree[c * 2],
+ tree[c * 2 + 1]
+ /*.Len*/
+ );
+ };
+ var bi_reverse = (code, len) => {
+ let res = 0;
+ do {
+ res |= code & 1;
+ code >>>= 1;
+ res <<= 1;
+ } while (--len > 0);
+ return res >>> 1;
+ };
+ var bi_flush = (s) => {
+ if (s.bi_valid === 16) {
+ put_short(s, s.bi_buf);
+ s.bi_buf = 0;
+ s.bi_valid = 0;
+ } else if (s.bi_valid >= 8) {
+ s.pending_buf[s.pending++] = s.bi_buf & 255;
+ s.bi_buf >>= 8;
+ s.bi_valid -= 8;
+ }
+ };
+ var gen_bitlen = (s, desc) => {
+ const tree = desc.dyn_tree;
+ const max_code = desc.max_code;
+ const stree = desc.stat_desc.static_tree;
+ const has_stree = desc.stat_desc.has_stree;
+ const extra = desc.stat_desc.extra_bits;
+ const base = desc.stat_desc.extra_base;
+ const max_length = desc.stat_desc.max_length;
+ let h;
+ let n, m;
+ let bits;
+ let xbits;
+ let f;
+ let overflow = 0;
+ for (bits = 0; bits <= MAX_BITS; bits++) {
+ s.bl_count[bits] = 0;
+ }
+ tree[s.heap[s.heap_max] * 2 + 1] = 0;
+ for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {
+ n = s.heap[h];
+ bits = tree[tree[n * 2 + 1] * 2 + 1] + 1;
+ if (bits > max_length) {
+ bits = max_length;
+ overflow++;
+ }
+ tree[n * 2 + 1] = bits;
+ if (n > max_code) {
+ continue;
+ }
+ s.bl_count[bits]++;
+ xbits = 0;
+ if (n >= base) {
+ xbits = extra[n - base];
+ }
+ f = tree[n * 2];
+ s.opt_len += f * (bits + xbits);
+ if (has_stree) {
+ s.static_len += f * (stree[n * 2 + 1] + xbits);
+ }
+ }
+ if (overflow === 0) {
+ return;
+ }
+ do {
+ bits = max_length - 1;
+ while (s.bl_count[bits] === 0) {
+ bits--;
+ }
+ s.bl_count[bits]--;
+ s.bl_count[bits + 1] += 2;
+ s.bl_count[max_length]--;
+ overflow -= 2;
+ } while (overflow > 0);
+ for (bits = max_length; bits !== 0; bits--) {
+ n = s.bl_count[bits];
+ while (n !== 0) {
+ m = s.heap[--h];
+ if (m > max_code) {
+ continue;
+ }
+ if (tree[m * 2 + 1] !== bits) {
+ s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2];
+ tree[m * 2 + 1] = bits;
+ }
+ n--;
+ }
+ }
+ };
+ var gen_codes = (tree, max_code, bl_count) => {
+ const next_code = new Array(MAX_BITS + 1);
+ let code = 0;
+ let bits;
+ let n;
+ for (bits = 1; bits <= MAX_BITS; bits++) {
+ code = code + bl_count[bits - 1] << 1;
+ next_code[bits] = code;
+ }
+ for (n = 0; n <= max_code; n++) {
+ let len = tree[n * 2 + 1];
+ if (len === 0) {
+ continue;
+ }
+ tree[n * 2] = bi_reverse(next_code[len]++, len);
+ }
+ };
+ var tr_static_init = () => {
+ let n;
+ let bits;
+ let length;
+ let code;
+ let dist;
+ const bl_count = new Array(MAX_BITS + 1);
+ length = 0;
+ for (code = 0; code < LENGTH_CODES - 1; code++) {
+ base_length[code] = length;
+ for (n = 0; n < 1 << extra_lbits[code]; n++) {
+ _length_code[length++] = code;
+ }
+ }
+ _length_code[length - 1] = code;
+ dist = 0;
+ for (code = 0; code < 16; code++) {
+ base_dist[code] = dist;
+ for (n = 0; n < 1 << extra_dbits[code]; n++) {
+ _dist_code[dist++] = code;
+ }
+ }
+ dist >>= 7;
+ for (; code < D_CODES; code++) {
+ base_dist[code] = dist << 7;
+ for (n = 0; n < 1 << extra_dbits[code] - 7; n++) {
+ _dist_code[256 + dist++] = code;
+ }
+ }
+ for (bits = 0; bits <= MAX_BITS; bits++) {
+ bl_count[bits] = 0;
+ }
+ n = 0;
+ while (n <= 143) {
+ static_ltree[n * 2 + 1] = 8;
+ n++;
+ bl_count[8]++;
+ }
+ while (n <= 255) {
+ static_ltree[n * 2 + 1] = 9;
+ n++;
+ bl_count[9]++;
+ }
+ while (n <= 279) {
+ static_ltree[n * 2 + 1] = 7;
+ n++;
+ bl_count[7]++;
+ }
+ while (n <= 287) {
+ static_ltree[n * 2 + 1] = 8;
+ n++;
+ bl_count[8]++;
+ }
+ gen_codes(static_ltree, L_CODES + 1, bl_count);
+ for (n = 0; n < D_CODES; n++) {
+ static_dtree[n * 2 + 1] = 5;
+ static_dtree[n * 2] = bi_reverse(n, 5);
+ }
+ static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);
+ static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);
+ static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);
+ };
+ var init_block = (s) => {
+ let n;
+ for (n = 0; n < L_CODES; n++) {
+ s.dyn_ltree[n * 2] = 0;
+ }
+ for (n = 0; n < D_CODES; n++) {
+ s.dyn_dtree[n * 2] = 0;
+ }
+ for (n = 0; n < BL_CODES; n++) {
+ s.bl_tree[n * 2] = 0;
+ }
+ s.dyn_ltree[END_BLOCK * 2] = 1;
+ s.opt_len = s.static_len = 0;
+ s.sym_next = s.matches = 0;
+ };
+ var bi_windup = (s) => {
+ if (s.bi_valid > 8) {
+ put_short(s, s.bi_buf);
+ } else if (s.bi_valid > 0) {
+ s.pending_buf[s.pending++] = s.bi_buf;
+ }
+ s.bi_buf = 0;
+ s.bi_valid = 0;
+ };
+ var smaller = (tree, n, m, depth) => {
+ const _n2 = n * 2;
+ const _m2 = m * 2;
+ return tree[_n2] < tree[_m2] || tree[_n2] === tree[_m2] && depth[n] <= depth[m];
+ };
+ var pqdownheap = (s, tree, k) => {
+ const v = s.heap[k];
+ let j = k << 1;
+ while (j <= s.heap_len) {
+ if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {
+ j++;
+ }
+ if (smaller(tree, v, s.heap[j], s.depth)) {
+ break;
+ }
+ s.heap[k] = s.heap[j];
+ k = j;
+ j <<= 1;
+ }
+ s.heap[k] = v;
+ };
+ var compress_block = (s, ltree, dtree) => {
+ let dist;
+ let lc;
+ let sx = 0;
+ let code;
+ let extra;
+ if (s.sym_next !== 0) {
+ do {
+ dist = s.pending_buf[s.sym_buf + sx++] & 255;
+ dist += (s.pending_buf[s.sym_buf + sx++] & 255) << 8;
+ lc = s.pending_buf[s.sym_buf + sx++];
+ if (dist === 0) {
+ send_code(s, lc, ltree);
+ } else {
+ code = _length_code[lc];
+ send_code(s, code + LITERALS + 1, ltree);
+ extra = extra_lbits[code];
+ if (extra !== 0) {
+ lc -= base_length[code];
+ send_bits(s, lc, extra);
+ }
+ dist--;
+ code = d_code(dist);
+ send_code(s, code, dtree);
+ extra = extra_dbits[code];
+ if (extra !== 0) {
+ dist -= base_dist[code];
+ send_bits(s, dist, extra);
+ }
+ }
+ } while (sx < s.sym_next);
+ }
+ send_code(s, END_BLOCK, ltree);
+ };
+ var build_tree = (s, desc) => {
+ const tree = desc.dyn_tree;
+ const stree = desc.stat_desc.static_tree;
+ const has_stree = desc.stat_desc.has_stree;
+ const elems = desc.stat_desc.elems;
+ let n, m;
+ let max_code = -1;
+ let node;
+ s.heap_len = 0;
+ s.heap_max = HEAP_SIZE;
+ for (n = 0; n < elems; n++) {
+ if (tree[n * 2] !== 0) {
+ s.heap[++s.heap_len] = max_code = n;
+ s.depth[n] = 0;
+ } else {
+ tree[n * 2 + 1] = 0;
+ }
+ }
+ while (s.heap_len < 2) {
+ node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0;
+ tree[node * 2] = 1;
+ s.depth[node] = 0;
+ s.opt_len--;
+ if (has_stree) {
+ s.static_len -= stree[node * 2 + 1];
+ }
+ }
+ desc.max_code = max_code;
+ for (n = s.heap_len >> 1; n >= 1; n--) {
+ pqdownheap(s, tree, n);
+ }
+ node = elems;
+ do {
+ n = s.heap[
+ 1
+ /*SMALLEST*/
+ ];
+ s.heap[
+ 1
+ /*SMALLEST*/
+ ] = s.heap[s.heap_len--];
+ pqdownheap(
+ s,
+ tree,
+ 1
+ /*SMALLEST*/
+ );
+ m = s.heap[
+ 1
+ /*SMALLEST*/
+ ];
+ s.heap[--s.heap_max] = n;
+ s.heap[--s.heap_max] = m;
+ tree[node * 2] = tree[n * 2] + tree[m * 2];
+ s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;
+ tree[n * 2 + 1] = tree[m * 2 + 1] = node;
+ s.heap[
+ 1
+ /*SMALLEST*/
+ ] = node++;
+ pqdownheap(
+ s,
+ tree,
+ 1
+ /*SMALLEST*/
+ );
+ } while (s.heap_len >= 2);
+ s.heap[--s.heap_max] = s.heap[
+ 1
+ /*SMALLEST*/
+ ];
+ gen_bitlen(s, desc);
+ gen_codes(tree, max_code, s.bl_count);
+ };
+ var scan_tree = (s, tree, max_code) => {
+ let n;
+ let prevlen = -1;
+ let curlen;
+ let nextlen = tree[0 * 2 + 1];
+ let count = 0;
+ let max_count = 7;
+ let min_count = 4;
+ if (nextlen === 0) {
+ max_count = 138;
+ min_count = 3;
+ }
+ tree[(max_code + 1) * 2 + 1] = 65535;
+ for (n = 0; n <= max_code; n++) {
+ curlen = nextlen;
+ nextlen = tree[(n + 1) * 2 + 1];
+ if (++count < max_count && curlen === nextlen) {
+ continue;
+ } else if (count < min_count) {
+ s.bl_tree[curlen * 2] += count;
+ } else if (curlen !== 0) {
+ if (curlen !== prevlen) {
+ s.bl_tree[curlen * 2]++;
+ }
+ s.bl_tree[REP_3_6 * 2]++;
+ } else if (count <= 10) {
+ s.bl_tree[REPZ_3_10 * 2]++;
+ } else {
+ s.bl_tree[REPZ_11_138 * 2]++;
+ }
+ count = 0;
+ prevlen = curlen;
+ if (nextlen === 0) {
+ max_count = 138;
+ min_count = 3;
+ } else if (curlen === nextlen) {
+ max_count = 6;
+ min_count = 3;
+ } else {
+ max_count = 7;
+ min_count = 4;
+ }
+ }
+ };
+ var send_tree = (s, tree, max_code) => {
+ let n;
+ let prevlen = -1;
+ let curlen;
+ let nextlen = tree[0 * 2 + 1];
+ let count = 0;
+ let max_count = 7;
+ let min_count = 4;
+ if (nextlen === 0) {
+ max_count = 138;
+ min_count = 3;
+ }
+ for (n = 0; n <= max_code; n++) {
+ curlen = nextlen;
+ nextlen = tree[(n + 1) * 2 + 1];
+ if (++count < max_count && curlen === nextlen) {
+ continue;
+ } else if (count < min_count) {
+ do {
+ send_code(s, curlen, s.bl_tree);
+ } while (--count !== 0);
+ } else if (curlen !== 0) {
+ if (curlen !== prevlen) {
+ send_code(s, curlen, s.bl_tree);
+ count--;
+ }
+ send_code(s, REP_3_6, s.bl_tree);
+ send_bits(s, count - 3, 2);
+ } else if (count <= 10) {
+ send_code(s, REPZ_3_10, s.bl_tree);
+ send_bits(s, count - 3, 3);
+ } else {
+ send_code(s, REPZ_11_138, s.bl_tree);
+ send_bits(s, count - 11, 7);
+ }
+ count = 0;
+ prevlen = curlen;
+ if (nextlen === 0) {
+ max_count = 138;
+ min_count = 3;
+ } else if (curlen === nextlen) {
+ max_count = 6;
+ min_count = 3;
+ } else {
+ max_count = 7;
+ min_count = 4;
+ }
+ }
+ };
+ var build_bl_tree = (s) => {
+ let max_blindex;
+ scan_tree(s, s.dyn_ltree, s.l_desc.max_code);
+ scan_tree(s, s.dyn_dtree, s.d_desc.max_code);
+ build_tree(s, s.bl_desc);
+ for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {
+ if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) {
+ break;
+ }
+ }
+ s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;
+ return max_blindex;
+ };
+ var send_all_trees = (s, lcodes, dcodes, blcodes) => {
+ let rank;
+ send_bits(s, lcodes - 257, 5);
+ send_bits(s, dcodes - 1, 5);
+ send_bits(s, blcodes - 4, 4);
+ for (rank = 0; rank < blcodes; rank++) {
+ send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1], 3);
+ }
+ send_tree(s, s.dyn_ltree, lcodes - 1);
+ send_tree(s, s.dyn_dtree, dcodes - 1);
+ };
+ var detect_data_type = (s) => {
+ let block_mask = 4093624447;
+ let n;
+ for (n = 0; n <= 31; n++, block_mask >>>= 1) {
+ if (block_mask & 1 && s.dyn_ltree[n * 2] !== 0) {
+ return Z_BINARY;
+ }
+ }
+ if (s.dyn_ltree[9 * 2] !== 0 || s.dyn_ltree[10 * 2] !== 0 || s.dyn_ltree[13 * 2] !== 0) {
+ return Z_TEXT;
+ }
+ for (n = 32; n < LITERALS; n++) {
+ if (s.dyn_ltree[n * 2] !== 0) {
+ return Z_TEXT;
+ }
+ }
+ return Z_BINARY;
+ };
+ var static_init_done = false;
+ var _tr_init = (s) => {
+ if (!static_init_done) {
+ tr_static_init();
+ static_init_done = true;
+ }
+ s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);
+ s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);
+ s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);
+ s.bi_buf = 0;
+ s.bi_valid = 0;
+ init_block(s);
+ };
+ var _tr_stored_block = (s, buf, stored_len, last) => {
+ send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);
+ bi_windup(s);
+ put_short(s, stored_len);
+ put_short(s, ~stored_len);
+ if (stored_len) {
+ s.pending_buf.set(s.window.subarray(buf, buf + stored_len), s.pending);
+ }
+ s.pending += stored_len;
+ };
+ var _tr_align = (s) => {
+ send_bits(s, STATIC_TREES << 1, 3);
+ send_code(s, END_BLOCK, static_ltree);
+ bi_flush(s);
+ };
+ var _tr_flush_block = (s, buf, stored_len, last) => {
+ let opt_lenb, static_lenb;
+ let max_blindex = 0;
+ if (s.level > 0) {
+ if (s.strm.data_type === Z_UNKNOWN) {
+ s.strm.data_type = detect_data_type(s);
+ }
+ build_tree(s, s.l_desc);
+ build_tree(s, s.d_desc);
+ max_blindex = build_bl_tree(s);
+ opt_lenb = s.opt_len + 3 + 7 >>> 3;
+ static_lenb = s.static_len + 3 + 7 >>> 3;
+ if (static_lenb <= opt_lenb) {
+ opt_lenb = static_lenb;
+ }
+ } else {
+ opt_lenb = static_lenb = stored_len + 5;
+ }
+ if (stored_len + 4 <= opt_lenb && buf !== -1) {
+ _tr_stored_block(s, buf, stored_len, last);
+ } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {
+ send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);
+ compress_block(s, static_ltree, static_dtree);
+ } else {
+ send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);
+ send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);
+ compress_block(s, s.dyn_ltree, s.dyn_dtree);
+ }
+ init_block(s);
+ if (last) {
+ bi_windup(s);
+ }
+ };
+ var _tr_tally = (s, dist, lc) => {
+ s.pending_buf[s.sym_buf + s.sym_next++] = dist;
+ s.pending_buf[s.sym_buf + s.sym_next++] = dist >> 8;
+ s.pending_buf[s.sym_buf + s.sym_next++] = lc;
+ if (dist === 0) {
+ s.dyn_ltree[lc * 2]++;
+ } else {
+ s.matches++;
+ dist--;
+ s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]++;
+ s.dyn_dtree[d_code(dist) * 2]++;
+ }
+ return s.sym_next === s.sym_end;
+ };
+ module2.exports._tr_init = _tr_init;
+ module2.exports._tr_stored_block = _tr_stored_block;
+ module2.exports._tr_flush_block = _tr_flush_block;
+ module2.exports._tr_tally = _tr_tally;
+ module2.exports._tr_align = _tr_align;
+ }
+});
+
+// node_modules/pako/lib/zlib/adler32.js
+var require_adler32 = __commonJS({
+ "node_modules/pako/lib/zlib/adler32.js"(exports2, module2) {
+ "use strict";
+ var adler32 = (adler, buf, len, pos) => {
+ let s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0;
+ while (len !== 0) {
+ n = len > 2e3 ? 2e3 : len;
+ len -= n;
+ do {
+ s1 = s1 + buf[pos++] | 0;
+ s2 = s2 + s1 | 0;
+ } while (--n);
+ s1 %= 65521;
+ s2 %= 65521;
+ }
+ return s1 | s2 << 16 | 0;
+ };
+ module2.exports = adler32;
+ }
+});
+
+// node_modules/pako/lib/zlib/crc32.js
+var require_crc32 = __commonJS({
+ "node_modules/pako/lib/zlib/crc32.js"(exports2, module2) {
+ "use strict";
+ var makeTable = () => {
+ let c, table = [];
+ for (var n = 0; n < 256; n++) {
+ c = n;
+ for (var k = 0; k < 8; k++) {
+ c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1;
+ }
+ table[n] = c;
+ }
+ return table;
+ };
+ var crcTable = new Uint32Array(makeTable());
+ var crc32 = (crc, buf, len, pos) => {
+ const t = crcTable;
+ const end = pos + len;
+ crc ^= -1;
+ for (let i = pos; i < end; i++) {
+ crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 255];
+ }
+ return crc ^ -1;
+ };
+ module2.exports = crc32;
+ }
+});
+
+// node_modules/pako/lib/zlib/messages.js
+var require_messages = __commonJS({
+ "node_modules/pako/lib/zlib/messages.js"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ 2: "need dictionary",
+ /* Z_NEED_DICT 2 */
+ 1: "stream end",
+ /* Z_STREAM_END 1 */
+ 0: "",
+ /* Z_OK 0 */
+ "-1": "file error",
+ /* Z_ERRNO (-1) */
+ "-2": "stream error",
+ /* Z_STREAM_ERROR (-2) */
+ "-3": "data error",
+ /* Z_DATA_ERROR (-3) */
+ "-4": "insufficient memory",
+ /* Z_MEM_ERROR (-4) */
+ "-5": "buffer error",
+ /* Z_BUF_ERROR (-5) */
+ "-6": "incompatible version"
+ /* Z_VERSION_ERROR (-6) */
+ };
+ }
+});
+
+// node_modules/pako/lib/zlib/constants.js
+var require_constants3 = __commonJS({
+ "node_modules/pako/lib/zlib/constants.js"(exports2, module2) {
+ "use strict";
+ module2.exports = {
+ /* Allowed flush values; see deflate() and inflate() below for details */
+ Z_NO_FLUSH: 0,
+ Z_PARTIAL_FLUSH: 1,
+ Z_SYNC_FLUSH: 2,
+ Z_FULL_FLUSH: 3,
+ Z_FINISH: 4,
+ Z_BLOCK: 5,
+ Z_TREES: 6,
+ /* Return codes for the compression/decompression functions. Negative values
+ * are errors, positive values are used for special but normal events.
+ */
+ Z_OK: 0,
+ Z_STREAM_END: 1,
+ Z_NEED_DICT: 2,
+ Z_ERRNO: -1,
+ Z_STREAM_ERROR: -2,
+ Z_DATA_ERROR: -3,
+ Z_MEM_ERROR: -4,
+ Z_BUF_ERROR: -5,
+ //Z_VERSION_ERROR: -6,
+ /* compression levels */
+ Z_NO_COMPRESSION: 0,
+ Z_BEST_SPEED: 1,
+ Z_BEST_COMPRESSION: 9,
+ Z_DEFAULT_COMPRESSION: -1,
+ Z_FILTERED: 1,
+ Z_HUFFMAN_ONLY: 2,
+ Z_RLE: 3,
+ Z_FIXED: 4,
+ Z_DEFAULT_STRATEGY: 0,
+ /* Possible values of the data_type field (though see inflate()) */
+ Z_BINARY: 0,
+ Z_TEXT: 1,
+ //Z_ASCII: 1, // = Z_TEXT (deprecated)
+ Z_UNKNOWN: 2,
+ /* The deflate compression method */
+ Z_DEFLATED: 8
+ //Z_NULL: null // Use -1 or null inline, depending on var type
+ };
+ }
+});
+
+// node_modules/pako/lib/zlib/deflate.js
+var require_deflate = __commonJS({
+ "node_modules/pako/lib/zlib/deflate.js"(exports2, module2) {
+ "use strict";
+ var { _tr_init, _tr_stored_block, _tr_flush_block, _tr_tally, _tr_align } = require_trees();
+ var adler32 = require_adler32();
+ var crc32 = require_crc32();
+ var msg = require_messages();
+ var {
+ Z_NO_FLUSH,
+ Z_PARTIAL_FLUSH,
+ Z_FULL_FLUSH,
+ Z_FINISH,
+ Z_BLOCK,
+ Z_OK,
+ Z_STREAM_END,
+ Z_STREAM_ERROR,
+ Z_DATA_ERROR,
+ Z_BUF_ERROR,
+ Z_DEFAULT_COMPRESSION,
+ Z_FILTERED,
+ Z_HUFFMAN_ONLY,
+ Z_RLE,
+ Z_FIXED,
+ Z_DEFAULT_STRATEGY,
+ Z_UNKNOWN,
+ Z_DEFLATED
+ } = require_constants3();
+ var MAX_MEM_LEVEL = 9;
+ var MAX_WBITS = 15;
+ var DEF_MEM_LEVEL = 8;
+ var LENGTH_CODES = 29;
+ var LITERALS = 256;
+ var L_CODES = LITERALS + 1 + LENGTH_CODES;
+ var D_CODES = 30;
+ var BL_CODES = 19;
+ var HEAP_SIZE = 2 * L_CODES + 1;
+ var MAX_BITS = 15;
+ var MIN_MATCH = 3;
+ var MAX_MATCH = 258;
+ var MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1;
+ var PRESET_DICT = 32;
+ var INIT_STATE = 42;
+ var GZIP_STATE = 57;
+ var EXTRA_STATE = 69;
+ var NAME_STATE = 73;
+ var COMMENT_STATE = 91;
+ var HCRC_STATE = 103;
+ var BUSY_STATE = 113;
+ var FINISH_STATE = 666;
+ var BS_NEED_MORE = 1;
+ var BS_BLOCK_DONE = 2;
+ var BS_FINISH_STARTED = 3;
+ var BS_FINISH_DONE = 4;
+ var OS_CODE = 3;
+ var err = (strm, errorCode) => {
+ strm.msg = msg[errorCode];
+ return errorCode;
+ };
+ var rank = (f) => {
+ return f * 2 - (f > 4 ? 9 : 0);
+ };
+ var zero = (buf) => {
+ let len = buf.length;
+ while (--len >= 0) {
+ buf[len] = 0;
+ }
+ };
+ var slide_hash = (s) => {
+ let n, m;
+ let p;
+ let wsize = s.w_size;
+ n = s.hash_size;
+ p = n;
+ do {
+ m = s.head[--p];
+ s.head[p] = m >= wsize ? m - wsize : 0;
+ } while (--n);
+ n = wsize;
+ p = n;
+ do {
+ m = s.prev[--p];
+ s.prev[p] = m >= wsize ? m - wsize : 0;
+ } while (--n);
+ };
+ var HASH_ZLIB = (s, prev, data) => (prev << s.hash_shift ^ data) & s.hash_mask;
+ var HASH = HASH_ZLIB;
+ var flush_pending = (strm) => {
+ const s = strm.state;
+ let len = s.pending;
+ if (len > strm.avail_out) {
+ len = strm.avail_out;
+ }
+ if (len === 0) {
+ return;
+ }
+ strm.output.set(s.pending_buf.subarray(s.pending_out, s.pending_out + len), strm.next_out);
+ strm.next_out += len;
+ s.pending_out += len;
+ strm.total_out += len;
+ strm.avail_out -= len;
+ s.pending -= len;
+ if (s.pending === 0) {
+ s.pending_out = 0;
+ }
+ };
+ var flush_block_only = (s, last) => {
+ _tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last);
+ s.block_start = s.strstart;
+ flush_pending(s.strm);
+ };
+ var put_byte = (s, b) => {
+ s.pending_buf[s.pending++] = b;
+ };
+ var putShortMSB = (s, b) => {
+ s.pending_buf[s.pending++] = b >>> 8 & 255;
+ s.pending_buf[s.pending++] = b & 255;
+ };
+ var read_buf = (strm, buf, start, size) => {
+ let len = strm.avail_in;
+ if (len > size) {
+ len = size;
+ }
+ if (len === 0) {
+ return 0;
+ }
+ strm.avail_in -= len;
+ buf.set(strm.input.subarray(strm.next_in, strm.next_in + len), start);
+ if (strm.state.wrap === 1) {
+ strm.adler = adler32(strm.adler, buf, len, start);
+ } else if (strm.state.wrap === 2) {
+ strm.adler = crc32(strm.adler, buf, len, start);
+ }
+ strm.next_in += len;
+ strm.total_in += len;
+ return len;
+ };
+ var longest_match = (s, cur_match) => {
+ let chain_length = s.max_chain_length;
+ let scan = s.strstart;
+ let match;
+ let len;
+ let best_len = s.prev_length;
+ let nice_match = s.nice_match;
+ const limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0;
+ const _win = s.window;
+ const wmask = s.w_mask;
+ const prev = s.prev;
+ const strend = s.strstart + MAX_MATCH;
+ let scan_end1 = _win[scan + best_len - 1];
+ let scan_end = _win[scan + best_len];
+ if (s.prev_length >= s.good_match) {
+ chain_length >>= 2;
+ }
+ if (nice_match > s.lookahead) {
+ nice_match = s.lookahead;
+ }
+ do {
+ match = cur_match;
+ if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) {
+ continue;
+ }
+ scan += 2;
+ match++;
+ do {
+ } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend);
+ len = MAX_MATCH - (strend - scan);
+ scan = strend - MAX_MATCH;
+ if (len > best_len) {
+ s.match_start = cur_match;
+ best_len = len;
+ if (len >= nice_match) {
+ break;
+ }
+ scan_end1 = _win[scan + best_len - 1];
+ scan_end = _win[scan + best_len];
+ }
+ } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);
+ if (best_len <= s.lookahead) {
+ return best_len;
+ }
+ return s.lookahead;
+ };
+ var fill_window = (s) => {
+ const _w_size = s.w_size;
+ let n, more, str;
+ do {
+ more = s.window_size - s.lookahead - s.strstart;
+ if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {
+ s.window.set(s.window.subarray(_w_size, _w_size + _w_size - more), 0);
+ s.match_start -= _w_size;
+ s.strstart -= _w_size;
+ s.block_start -= _w_size;
+ if (s.insert > s.strstart) {
+ s.insert = s.strstart;
+ }
+ slide_hash(s);
+ more += _w_size;
+ }
+ if (s.strm.avail_in === 0) {
+ break;
+ }
+ n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);
+ s.lookahead += n;
+ if (s.lookahead + s.insert >= MIN_MATCH) {
+ str = s.strstart - s.insert;
+ s.ins_h = s.window[str];
+ s.ins_h = HASH(s, s.ins_h, s.window[str + 1]);
+ while (s.insert) {
+ s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);
+ s.prev[str & s.w_mask] = s.head[s.ins_h];
+ s.head[s.ins_h] = str;
+ str++;
+ s.insert--;
+ if (s.lookahead + s.insert < MIN_MATCH) {
+ break;
+ }
+ }
+ }
+ } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);
+ };
+ var deflate_stored = (s, flush) => {
+ let min_block = s.pending_buf_size - 5 > s.w_size ? s.w_size : s.pending_buf_size - 5;
+ let len, left, have, last = 0;
+ let used = s.strm.avail_in;
+ do {
+ len = 65535;
+ have = s.bi_valid + 42 >> 3;
+ if (s.strm.avail_out < have) {
+ break;
+ }
+ have = s.strm.avail_out - have;
+ left = s.strstart - s.block_start;
+ if (len > left + s.strm.avail_in) {
+ len = left + s.strm.avail_in;
+ }
+ if (len > have) {
+ len = have;
+ }
+ if (len < min_block && (len === 0 && flush !== Z_FINISH || flush === Z_NO_FLUSH || len !== left + s.strm.avail_in)) {
+ break;
+ }
+ last = flush === Z_FINISH && len === left + s.strm.avail_in ? 1 : 0;
+ _tr_stored_block(s, 0, 0, last);
+ s.pending_buf[s.pending - 4] = len;
+ s.pending_buf[s.pending - 3] = len >> 8;
+ s.pending_buf[s.pending - 2] = ~len;
+ s.pending_buf[s.pending - 1] = ~len >> 8;
+ flush_pending(s.strm);
+ if (left) {
+ if (left > len) {
+ left = len;
+ }
+ s.strm.output.set(s.window.subarray(s.block_start, s.block_start + left), s.strm.next_out);
+ s.strm.next_out += left;
+ s.strm.avail_out -= left;
+ s.strm.total_out += left;
+ s.block_start += left;
+ len -= left;
+ }
+ if (len) {
+ read_buf(s.strm, s.strm.output, s.strm.next_out, len);
+ s.strm.next_out += len;
+ s.strm.avail_out -= len;
+ s.strm.total_out += len;
+ }
+ } while (last === 0);
+ used -= s.strm.avail_in;
+ if (used) {
+ if (used >= s.w_size) {
+ s.matches = 2;
+ s.window.set(s.strm.input.subarray(s.strm.next_in - s.w_size, s.strm.next_in), 0);
+ s.strstart = s.w_size;
+ s.insert = s.strstart;
+ } else {
+ if (s.window_size - s.strstart <= used) {
+ s.strstart -= s.w_size;
+ s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);
+ if (s.matches < 2) {
+ s.matches++;
+ }
+ if (s.insert > s.strstart) {
+ s.insert = s.strstart;
+ }
+ }
+ s.window.set(s.strm.input.subarray(s.strm.next_in - used, s.strm.next_in), s.strstart);
+ s.strstart += used;
+ s.insert += used > s.w_size - s.insert ? s.w_size - s.insert : used;
+ }
+ s.block_start = s.strstart;
+ }
+ if (s.high_water < s.strstart) {
+ s.high_water = s.strstart;
+ }
+ if (last) {
+ return BS_FINISH_DONE;
+ }
+ if (flush !== Z_NO_FLUSH && flush !== Z_FINISH && s.strm.avail_in === 0 && s.strstart === s.block_start) {
+ return BS_BLOCK_DONE;
+ }
+ have = s.window_size - s.strstart;
+ if (s.strm.avail_in > have && s.block_start >= s.w_size) {
+ s.block_start -= s.w_size;
+ s.strstart -= s.w_size;
+ s.window.set(s.window.subarray(s.w_size, s.w_size + s.strstart), 0);
+ if (s.matches < 2) {
+ s.matches++;
+ }
+ have += s.w_size;
+ if (s.insert > s.strstart) {
+ s.insert = s.strstart;
+ }
+ }
+ if (have > s.strm.avail_in) {
+ have = s.strm.avail_in;
+ }
+ if (have) {
+ read_buf(s.strm, s.window, s.strstart, have);
+ s.strstart += have;
+ s.insert += have > s.w_size - s.insert ? s.w_size - s.insert : have;
+ }
+ if (s.high_water < s.strstart) {
+ s.high_water = s.strstart;
+ }
+ have = s.bi_valid + 42 >> 3;
+ have = s.pending_buf_size - have > 65535 ? 65535 : s.pending_buf_size - have;
+ min_block = have > s.w_size ? s.w_size : have;
+ left = s.strstart - s.block_start;
+ if (left >= min_block || (left || flush === Z_FINISH) && flush !== Z_NO_FLUSH && s.strm.avail_in === 0 && left <= have) {
+ len = left > have ? have : left;
+ last = flush === Z_FINISH && s.strm.avail_in === 0 && len === left ? 1 : 0;
+ _tr_stored_block(s, s.block_start, len, last);
+ s.block_start += len;
+ flush_pending(s.strm);
+ }
+ return last ? BS_FINISH_STARTED : BS_NEED_MORE;
+ };
+ var deflate_fast = (s, flush) => {
+ let hash_head;
+ let bflush;
+ for (; ; ) {
+ if (s.lookahead < MIN_LOOKAHEAD) {
+ fill_window(s);
+ if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
+ return BS_NEED_MORE;
+ }
+ if (s.lookahead === 0) {
+ break;
+ }
+ }
+ hash_head = 0;
+ if (s.lookahead >= MIN_MATCH) {
+ s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);
+ hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+ s.head[s.ins_h] = s.strstart;
+ }
+ if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {
+ s.match_length = longest_match(s, hash_head);
+ }
+ if (s.match_length >= MIN_MATCH) {
+ bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);
+ s.lookahead -= s.match_length;
+ if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) {
+ s.match_length--;
+ do {
+ s.strstart++;
+ s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);
+ hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+ s.head[s.ins_h] = s.strstart;
+ } while (--s.match_length !== 0);
+ s.strstart++;
+ } else {
+ s.strstart += s.match_length;
+ s.match_length = 0;
+ s.ins_h = s.window[s.strstart];
+ s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + 1]);
+ }
+ } else {
+ bflush = _tr_tally(s, 0, s.window[s.strstart]);
+ s.lookahead--;
+ s.strstart++;
+ }
+ if (bflush) {
+ flush_block_only(s, false);
+ if (s.strm.avail_out === 0) {
+ return BS_NEED_MORE;
+ }
+ }
+ }
+ s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
+ if (flush === Z_FINISH) {
+ flush_block_only(s, true);
+ if (s.strm.avail_out === 0) {
+ return BS_FINISH_STARTED;
+ }
+ return BS_FINISH_DONE;
+ }
+ if (s.sym_next) {
+ flush_block_only(s, false);
+ if (s.strm.avail_out === 0) {
+ return BS_NEED_MORE;
+ }
+ }
+ return BS_BLOCK_DONE;
+ };
+ var deflate_slow = (s, flush) => {
+ let hash_head;
+ let bflush;
+ let max_insert;
+ for (; ; ) {
+ if (s.lookahead < MIN_LOOKAHEAD) {
+ fill_window(s);
+ if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
+ return BS_NEED_MORE;
+ }
+ if (s.lookahead === 0) {
+ break;
+ }
+ }
+ hash_head = 0;
+ if (s.lookahead >= MIN_MATCH) {
+ s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);
+ hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+ s.head[s.ins_h] = s.strstart;
+ }
+ s.prev_length = s.match_length;
+ s.prev_match = s.match_start;
+ s.match_length = MIN_MATCH - 1;
+ if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {
+ s.match_length = longest_match(s, hash_head);
+ if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096)) {
+ s.match_length = MIN_MATCH - 1;
+ }
+ }
+ if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {
+ max_insert = s.strstart + s.lookahead - MIN_MATCH;
+ bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);
+ s.lookahead -= s.prev_length - 1;
+ s.prev_length -= 2;
+ do {
+ if (++s.strstart <= max_insert) {
+ s.ins_h = HASH(s, s.ins_h, s.window[s.strstart + MIN_MATCH - 1]);
+ hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
+ s.head[s.ins_h] = s.strstart;
+ }
+ } while (--s.prev_length !== 0);
+ s.match_available = 0;
+ s.match_length = MIN_MATCH - 1;
+ s.strstart++;
+ if (bflush) {
+ flush_block_only(s, false);
+ if (s.strm.avail_out === 0) {
+ return BS_NEED_MORE;
+ }
+ }
+ } else if (s.match_available) {
+ bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);
+ if (bflush) {
+ flush_block_only(s, false);
+ }
+ s.strstart++;
+ s.lookahead--;
+ if (s.strm.avail_out === 0) {
+ return BS_NEED_MORE;
+ }
+ } else {
+ s.match_available = 1;
+ s.strstart++;
+ s.lookahead--;
+ }
+ }
+ if (s.match_available) {
+ bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);
+ s.match_available = 0;
+ }
+ s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
+ if (flush === Z_FINISH) {
+ flush_block_only(s, true);
+ if (s.strm.avail_out === 0) {
+ return BS_FINISH_STARTED;
+ }
+ return BS_FINISH_DONE;
+ }
+ if (s.sym_next) {
+ flush_block_only(s, false);
+ if (s.strm.avail_out === 0) {
+ return BS_NEED_MORE;
+ }
+ }
+ return BS_BLOCK_DONE;
+ };
+ var deflate_rle = (s, flush) => {
+ let bflush;
+ let prev;
+ let scan, strend;
+ const _win = s.window;
+ for (; ; ) {
+ if (s.lookahead <= MAX_MATCH) {
+ fill_window(s);
+ if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {
+ return BS_NEED_MORE;
+ }
+ if (s.lookahead === 0) {
+ break;
+ }
+ }
+ s.match_length = 0;
+ if (s.lookahead >= MIN_MATCH && s.strstart > 0) {
+ scan = s.strstart - 1;
+ prev = _win[scan];
+ if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {
+ strend = s.strstart + MAX_MATCH;
+ do {
+ } while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend);
+ s.match_length = MAX_MATCH - (strend - scan);
+ if (s.match_length > s.lookahead) {
+ s.match_length = s.lookahead;
+ }
+ }
+ }
+ if (s.match_length >= MIN_MATCH) {
+ bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH);
+ s.lookahead -= s.match_length;
+ s.strstart += s.match_length;
+ s.match_length = 0;
+ } else {
+ bflush = _tr_tally(s, 0, s.window[s.strstart]);
+ s.lookahead--;
+ s.strstart++;
+ }
+ if (bflush) {
+ flush_block_only(s, false);
+ if (s.strm.avail_out === 0) {
+ return BS_NEED_MORE;
+ }
+ }
+ }
+ s.insert = 0;
+ if (flush === Z_FINISH) {
+ flush_block_only(s, true);
+ if (s.strm.avail_out === 0) {
+ return BS_FINISH_STARTED;
+ }
+ return BS_FINISH_DONE;
+ }
+ if (s.sym_next) {
+ flush_block_only(s, false);
+ if (s.strm.avail_out === 0) {
+ return BS_NEED_MORE;
+ }
+ }
+ return BS_BLOCK_DONE;
+ };
+ var deflate_huff = (s, flush) => {
+ let bflush;
+ for (; ; ) {
+ if (s.lookahead === 0) {
+ fill_window(s);
+ if (s.lookahead === 0) {
+ if (flush === Z_NO_FLUSH) {
+ return BS_NEED_MORE;
+ }
+ break;
+ }
+ }
+ s.match_length = 0;
+ bflush = _tr_tally(s, 0, s.window[s.strstart]);
+ s.lookahead--;
+ s.strstart++;
+ if (bflush) {
+ flush_block_only(s, false);
+ if (s.strm.avail_out === 0) {
+ return BS_NEED_MORE;
+ }
+ }
+ }
+ s.insert = 0;
+ if (flush === Z_FINISH) {
+ flush_block_only(s, true);
+ if (s.strm.avail_out === 0) {
+ return BS_FINISH_STARTED;
+ }
+ return BS_FINISH_DONE;
+ }
+ if (s.sym_next) {
+ flush_block_only(s, false);
+ if (s.strm.avail_out === 0) {
+ return BS_NEED_MORE;
+ }
+ }
+ return BS_BLOCK_DONE;
+ };
+ function Config(good_length, max_lazy, nice_length, max_chain, func) {
+ this.good_length = good_length;
+ this.max_lazy = max_lazy;
+ this.nice_length = nice_length;
+ this.max_chain = max_chain;
+ this.func = func;
+ }
+ var configuration_table = [
+ /* good lazy nice chain */
+ new Config(0, 0, 0, 0, deflate_stored),
+ /* 0 store only */
+ new Config(4, 4, 8, 4, deflate_fast),
+ /* 1 max speed, no lazy matches */
+ new Config(4, 5, 16, 8, deflate_fast),
+ /* 2 */
+ new Config(4, 6, 32, 32, deflate_fast),
+ /* 3 */
+ new Config(4, 4, 16, 16, deflate_slow),
+ /* 4 lazy matches */
+ new Config(8, 16, 32, 32, deflate_slow),
+ /* 5 */
+ new Config(8, 16, 128, 128, deflate_slow),
+ /* 6 */
+ new Config(8, 32, 128, 256, deflate_slow),
+ /* 7 */
+ new Config(32, 128, 258, 1024, deflate_slow),
+ /* 8 */
+ new Config(32, 258, 258, 4096, deflate_slow)
+ /* 9 max compression */
+ ];
+ var lm_init = (s) => {
+ s.window_size = 2 * s.w_size;
+ zero(s.head);
+ s.max_lazy_match = configuration_table[s.level].max_lazy;
+ s.good_match = configuration_table[s.level].good_length;
+ s.nice_match = configuration_table[s.level].nice_length;
+ s.max_chain_length = configuration_table[s.level].max_chain;
+ s.strstart = 0;
+ s.block_start = 0;
+ s.lookahead = 0;
+ s.insert = 0;
+ s.match_length = s.prev_length = MIN_MATCH - 1;
+ s.match_available = 0;
+ s.ins_h = 0;
+ };
+ function DeflateState() {
+ this.strm = null;
+ this.status = 0;
+ this.pending_buf = null;
+ this.pending_buf_size = 0;
+ this.pending_out = 0;
+ this.pending = 0;
+ this.wrap = 0;
+ this.gzhead = null;
+ this.gzindex = 0;
+ this.method = Z_DEFLATED;
+ this.last_flush = -1;
+ this.w_size = 0;
+ this.w_bits = 0;
+ this.w_mask = 0;
+ this.window = null;
+ this.window_size = 0;
+ this.prev = null;
+ this.head = null;
+ this.ins_h = 0;
+ this.hash_size = 0;
+ this.hash_bits = 0;
+ this.hash_mask = 0;
+ this.hash_shift = 0;
+ this.block_start = 0;
+ this.match_length = 0;
+ this.prev_match = 0;
+ this.match_available = 0;
+ this.strstart = 0;
+ this.match_start = 0;
+ this.lookahead = 0;
+ this.prev_length = 0;
+ this.max_chain_length = 0;
+ this.max_lazy_match = 0;
+ this.level = 0;
+ this.strategy = 0;
+ this.good_match = 0;
+ this.nice_match = 0;
+ this.dyn_ltree = new Uint16Array(HEAP_SIZE * 2);
+ this.dyn_dtree = new Uint16Array((2 * D_CODES + 1) * 2);
+ this.bl_tree = new Uint16Array((2 * BL_CODES + 1) * 2);
+ zero(this.dyn_ltree);
+ zero(this.dyn_dtree);
+ zero(this.bl_tree);
+ this.l_desc = null;
+ this.d_desc = null;
+ this.bl_desc = null;
+ this.bl_count = new Uint16Array(MAX_BITS + 1);
+ this.heap = new Uint16Array(2 * L_CODES + 1);
+ zero(this.heap);
+ this.heap_len = 0;
+ this.heap_max = 0;
+ this.depth = new Uint16Array(2 * L_CODES + 1);
+ zero(this.depth);
+ this.sym_buf = 0;
+ this.lit_bufsize = 0;
+ this.sym_next = 0;
+ this.sym_end = 0;
+ this.opt_len = 0;
+ this.static_len = 0;
+ this.matches = 0;
+ this.insert = 0;
+ this.bi_buf = 0;
+ this.bi_valid = 0;
+ }
+ var deflateStateCheck = (strm) => {
+ if (!strm) {
+ return 1;
+ }
+ const s = strm.state;
+ if (!s || s.strm !== strm || s.status !== INIT_STATE && //#ifdef GZIP
+ s.status !== GZIP_STATE && //#endif
+ s.status !== EXTRA_STATE && s.status !== NAME_STATE && s.status !== COMMENT_STATE && s.status !== HCRC_STATE && s.status !== BUSY_STATE && s.status !== FINISH_STATE) {
+ return 1;
+ }
+ return 0;
+ };
+ var deflateResetKeep = (strm) => {
+ if (deflateStateCheck(strm)) {
+ return err(strm, Z_STREAM_ERROR);
+ }
+ strm.total_in = strm.total_out = 0;
+ strm.data_type = Z_UNKNOWN;
+ const s = strm.state;
+ s.pending = 0;
+ s.pending_out = 0;
+ if (s.wrap < 0) {
+ s.wrap = -s.wrap;
+ }
+ s.status = //#ifdef GZIP
+ s.wrap === 2 ? GZIP_STATE : (
+ //#endif
+ s.wrap ? INIT_STATE : BUSY_STATE
+ );
+ strm.adler = s.wrap === 2 ? 0 : 1;
+ s.last_flush = -2;
+ _tr_init(s);
+ return Z_OK;
+ };
+ var deflateReset = (strm) => {
+ const ret = deflateResetKeep(strm);
+ if (ret === Z_OK) {
+ lm_init(strm.state);
+ }
+ return ret;
+ };
+ var deflateSetHeader = (strm, head) => {
+ if (deflateStateCheck(strm) || strm.state.wrap !== 2) {
+ return Z_STREAM_ERROR;
+ }
+ strm.state.gzhead = head;
+ return Z_OK;
+ };
+ var deflateInit2 = (strm, level, method, windowBits, memLevel, strategy) => {
+ if (!strm) {
+ return Z_STREAM_ERROR;
+ }
+ let wrap = 1;
+ if (level === Z_DEFAULT_COMPRESSION) {
+ level = 6;
+ }
+ if (windowBits < 0) {
+ wrap = 0;
+ windowBits = -windowBits;
+ } else if (windowBits > 15) {
+ wrap = 2;
+ windowBits -= 16;
+ }
+ if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED || windowBits === 8 && wrap !== 1) {
+ return err(strm, Z_STREAM_ERROR);
+ }
+ if (windowBits === 8) {
+ windowBits = 9;
+ }
+ const s = new DeflateState();
+ strm.state = s;
+ s.strm = strm;
+ s.status = INIT_STATE;
+ s.wrap = wrap;
+ s.gzhead = null;
+ s.w_bits = windowBits;
+ s.w_size = 1 << s.w_bits;
+ s.w_mask = s.w_size - 1;
+ s.hash_bits = memLevel + 7;
+ s.hash_size = 1 << s.hash_bits;
+ s.hash_mask = s.hash_size - 1;
+ s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);
+ s.window = new Uint8Array(s.w_size * 2);
+ s.head = new Uint16Array(s.hash_size);
+ s.prev = new Uint16Array(s.w_size);
+ s.lit_bufsize = 1 << memLevel + 6;
+ s.pending_buf_size = s.lit_bufsize * 4;
+ s.pending_buf = new Uint8Array(s.pending_buf_size);
+ s.sym_buf = s.lit_bufsize;
+ s.sym_end = (s.lit_bufsize - 1) * 3;
+ s.level = level;
+ s.strategy = strategy;
+ s.method = method;
+ return deflateReset(strm);
+ };
+ var deflateInit = (strm, level) => {
+ return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);
+ };
+ var deflate = (strm, flush) => {
+ if (deflateStateCheck(strm) || flush > Z_BLOCK || flush < 0) {
+ return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;
+ }
+ const s = strm.state;
+ if (!strm.output || strm.avail_in !== 0 && !strm.input || s.status === FINISH_STATE && flush !== Z_FINISH) {
+ return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR);
+ }
+ const old_flush = s.last_flush;
+ s.last_flush = flush;
+ if (s.pending !== 0) {
+ flush_pending(strm);
+ if (strm.avail_out === 0) {
+ s.last_flush = -1;
+ return Z_OK;
+ }
+ } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH) {
+ return err(strm, Z_BUF_ERROR);
+ }
+ if (s.status === FINISH_STATE && strm.avail_in !== 0) {
+ return err(strm, Z_BUF_ERROR);
+ }
+ if (s.status === INIT_STATE && s.wrap === 0) {
+ s.status = BUSY_STATE;
+ }
+ if (s.status === INIT_STATE) {
+ let header = Z_DEFLATED + (s.w_bits - 8 << 4) << 8;
+ let level_flags = -1;
+ if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {
+ level_flags = 0;
+ } else if (s.level < 6) {
+ level_flags = 1;
+ } else if (s.level === 6) {
+ level_flags = 2;
+ } else {
+ level_flags = 3;
+ }
+ header |= level_flags << 6;
+ if (s.strstart !== 0) {
+ header |= PRESET_DICT;
+ }
+ header += 31 - header % 31;
+ putShortMSB(s, header);
+ if (s.strstart !== 0) {
+ putShortMSB(s, strm.adler >>> 16);
+ putShortMSB(s, strm.adler & 65535);
+ }
+ strm.adler = 1;
+ s.status = BUSY_STATE;
+ flush_pending(strm);
+ if (s.pending !== 0) {
+ s.last_flush = -1;
+ return Z_OK;
+ }
+ }
+ if (s.status === GZIP_STATE) {
+ strm.adler = 0;
+ put_byte(s, 31);
+ put_byte(s, 139);
+ put_byte(s, 8);
+ if (!s.gzhead) {
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, 0);
+ put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);
+ put_byte(s, OS_CODE);
+ s.status = BUSY_STATE;
+ flush_pending(strm);
+ if (s.pending !== 0) {
+ s.last_flush = -1;
+ return Z_OK;
+ }
+ } else {
+ put_byte(
+ s,
+ (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16)
+ );
+ put_byte(s, s.gzhead.time & 255);
+ put_byte(s, s.gzhead.time >> 8 & 255);
+ put_byte(s, s.gzhead.time >> 16 & 255);
+ put_byte(s, s.gzhead.time >> 24 & 255);
+ put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);
+ put_byte(s, s.gzhead.os & 255);
+ if (s.gzhead.extra && s.gzhead.extra.length) {
+ put_byte(s, s.gzhead.extra.length & 255);
+ put_byte(s, s.gzhead.extra.length >> 8 & 255);
+ }
+ if (s.gzhead.hcrc) {
+ strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);
+ }
+ s.gzindex = 0;
+ s.status = EXTRA_STATE;
+ }
+ }
+ if (s.status === EXTRA_STATE) {
+ if (s.gzhead.extra) {
+ let beg = s.pending;
+ let left = (s.gzhead.extra.length & 65535) - s.gzindex;
+ while (s.pending + left > s.pending_buf_size) {
+ let copy = s.pending_buf_size - s.pending;
+ s.pending_buf.set(s.gzhead.extra.subarray(s.gzindex, s.gzindex + copy), s.pending);
+ s.pending = s.pending_buf_size;
+ if (s.gzhead.hcrc && s.pending > beg) {
+ strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+ }
+ s.gzindex += copy;
+ flush_pending(strm);
+ if (s.pending !== 0) {
+ s.last_flush = -1;
+ return Z_OK;
+ }
+ beg = 0;
+ left -= copy;
+ }
+ let gzhead_extra = new Uint8Array(s.gzhead.extra);
+ s.pending_buf.set(gzhead_extra.subarray(s.gzindex, s.gzindex + left), s.pending);
+ s.pending += left;
+ if (s.gzhead.hcrc && s.pending > beg) {
+ strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+ }
+ s.gzindex = 0;
+ }
+ s.status = NAME_STATE;
+ }
+ if (s.status === NAME_STATE) {
+ if (s.gzhead.name) {
+ let beg = s.pending;
+ let val;
+ do {
+ if (s.pending === s.pending_buf_size) {
+ if (s.gzhead.hcrc && s.pending > beg) {
+ strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+ }
+ flush_pending(strm);
+ if (s.pending !== 0) {
+ s.last_flush = -1;
+ return Z_OK;
+ }
+ beg = 0;
+ }
+ if (s.gzindex < s.gzhead.name.length) {
+ val = s.gzhead.name.charCodeAt(s.gzindex++) & 255;
+ } else {
+ val = 0;
+ }
+ put_byte(s, val);
+ } while (val !== 0);
+ if (s.gzhead.hcrc && s.pending > beg) {
+ strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+ }
+ s.gzindex = 0;
+ }
+ s.status = COMMENT_STATE;
+ }
+ if (s.status === COMMENT_STATE) {
+ if (s.gzhead.comment) {
+ let beg = s.pending;
+ let val;
+ do {
+ if (s.pending === s.pending_buf_size) {
+ if (s.gzhead.hcrc && s.pending > beg) {
+ strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+ }
+ flush_pending(strm);
+ if (s.pending !== 0) {
+ s.last_flush = -1;
+ return Z_OK;
+ }
+ beg = 0;
+ }
+ if (s.gzindex < s.gzhead.comment.length) {
+ val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255;
+ } else {
+ val = 0;
+ }
+ put_byte(s, val);
+ } while (val !== 0);
+ if (s.gzhead.hcrc && s.pending > beg) {
+ strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
+ }
+ }
+ s.status = HCRC_STATE;
+ }
+ if (s.status === HCRC_STATE) {
+ if (s.gzhead.hcrc) {
+ if (s.pending + 2 > s.pending_buf_size) {
+ flush_pending(strm);
+ if (s.pending !== 0) {
+ s.last_flush = -1;
+ return Z_OK;
+ }
+ }
+ put_byte(s, strm.adler & 255);
+ put_byte(s, strm.adler >> 8 & 255);
+ strm.adler = 0;
+ }
+ s.status = BUSY_STATE;
+ flush_pending(strm);
+ if (s.pending !== 0) {
+ s.last_flush = -1;
+ return Z_OK;
+ }
+ }
+ if (strm.avail_in !== 0 || s.lookahead !== 0 || flush !== Z_NO_FLUSH && s.status !== FINISH_STATE) {
+ let bstate = s.level === 0 ? deflate_stored(s, flush) : s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : s.strategy === Z_RLE ? deflate_rle(s, flush) : configuration_table[s.level].func(s, flush);
+ if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {
+ s.status = FINISH_STATE;
+ }
+ if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {
+ if (strm.avail_out === 0) {
+ s.last_flush = -1;
+ }
+ return Z_OK;
+ }
+ if (bstate === BS_BLOCK_DONE) {
+ if (flush === Z_PARTIAL_FLUSH) {
+ _tr_align(s);
+ } else if (flush !== Z_BLOCK) {
+ _tr_stored_block(s, 0, 0, false);
+ if (flush === Z_FULL_FLUSH) {
+ zero(s.head);
+ if (s.lookahead === 0) {
+ s.strstart = 0;
+ s.block_start = 0;
+ s.insert = 0;
+ }
+ }
+ }
+ flush_pending(strm);
+ if (strm.avail_out === 0) {
+ s.last_flush = -1;
+ return Z_OK;
+ }
+ }
+ }
+ if (flush !== Z_FINISH) {
+ return Z_OK;
+ }
+ if (s.wrap <= 0) {
+ return Z_STREAM_END;
+ }
+ if (s.wrap === 2) {
+ put_byte(s, strm.adler & 255);
+ put_byte(s, strm.adler >> 8 & 255);
+ put_byte(s, strm.adler >> 16 & 255);
+ put_byte(s, strm.adler >> 24 & 255);
+ put_byte(s, strm.total_in & 255);
+ put_byte(s, strm.total_in >> 8 & 255);
+ put_byte(s, strm.total_in >> 16 & 255);
+ put_byte(s, strm.total_in >> 24 & 255);
+ } else {
+ putShortMSB(s, strm.adler >>> 16);
+ putShortMSB(s, strm.adler & 65535);
+ }
+ flush_pending(strm);
+ if (s.wrap > 0) {
+ s.wrap = -s.wrap;
+ }
+ return s.pending !== 0 ? Z_OK : Z_STREAM_END;
+ };
+ var deflateEnd = (strm) => {
+ if (deflateStateCheck(strm)) {
+ return Z_STREAM_ERROR;
+ }
+ const status = strm.state.status;
+ strm.state = null;
+ return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;
+ };
+ var deflateSetDictionary = (strm, dictionary) => {
+ let dictLength = dictionary.length;
+ if (deflateStateCheck(strm)) {
+ return Z_STREAM_ERROR;
+ }
+ const s = strm.state;
+ const wrap = s.wrap;
+ if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) {
+ return Z_STREAM_ERROR;
+ }
+ if (wrap === 1) {
+ strm.adler = adler32(strm.adler, dictionary, dictLength, 0);
+ }
+ s.wrap = 0;
+ if (dictLength >= s.w_size) {
+ if (wrap === 0) {
+ zero(s.head);
+ s.strstart = 0;
+ s.block_start = 0;
+ s.insert = 0;
+ }
+ let tmpDict = new Uint8Array(s.w_size);
+ tmpDict.set(dictionary.subarray(dictLength - s.w_size, dictLength), 0);
+ dictionary = tmpDict;
+ dictLength = s.w_size;
+ }
+ const avail = strm.avail_in;
+ const next = strm.next_in;
+ const input = strm.input;
+ strm.avail_in = dictLength;
+ strm.next_in = 0;
+ strm.input = dictionary;
+ fill_window(s);
+ while (s.lookahead >= MIN_MATCH) {
+ let str = s.strstart;
+ let n = s.lookahead - (MIN_MATCH - 1);
+ do {
+ s.ins_h = HASH(s, s.ins_h, s.window[str + MIN_MATCH - 1]);
+ s.prev[str & s.w_mask] = s.head[s.ins_h];
+ s.head[s.ins_h] = str;
+ str++;
+ } while (--n);
+ s.strstart = str;
+ s.lookahead = MIN_MATCH - 1;
+ fill_window(s);
+ }
+ s.strstart += s.lookahead;
+ s.block_start = s.strstart;
+ s.insert = s.lookahead;
+ s.lookahead = 0;
+ s.match_length = s.prev_length = MIN_MATCH - 1;
+ s.match_available = 0;
+ strm.next_in = next;
+ strm.input = input;
+ strm.avail_in = avail;
+ s.wrap = wrap;
+ return Z_OK;
+ };
+ module2.exports.deflateInit = deflateInit;
+ module2.exports.deflateInit2 = deflateInit2;
+ module2.exports.deflateReset = deflateReset;
+ module2.exports.deflateResetKeep = deflateResetKeep;
+ module2.exports.deflateSetHeader = deflateSetHeader;
+ module2.exports.deflate = deflate;
+ module2.exports.deflateEnd = deflateEnd;
+ module2.exports.deflateSetDictionary = deflateSetDictionary;
+ module2.exports.deflateInfo = "pako deflate (from Nodeca project)";
+ }
+});
+
+// node_modules/pako/lib/utils/common.js
+var require_common3 = __commonJS({
+ "node_modules/pako/lib/utils/common.js"(exports2, module2) {
+ "use strict";
+ var _has = (obj, key) => {
+ return Object.prototype.hasOwnProperty.call(obj, key);
+ };
+ module2.exports.assign = function(obj) {
+ const sources = Array.prototype.slice.call(arguments, 1);
+ while (sources.length) {
+ const source = sources.shift();
+ if (!source) {
+ continue;
+ }
+ if (typeof source !== "object") {
+ throw new TypeError(source + "must be non-object");
+ }
+ for (const p in source) {
+ if (_has(source, p)) {
+ obj[p] = source[p];
+ }
+ }
+ }
+ return obj;
+ };
+ module2.exports.flattenChunks = (chunks) => {
+ let len = 0;
+ for (let i = 0, l = chunks.length; i < l; i++) {
+ len += chunks[i].length;
+ }
+ const result = new Uint8Array(len);
+ for (let i = 0, pos = 0, l = chunks.length; i < l; i++) {
+ let chunk = chunks[i];
+ result.set(chunk, pos);
+ pos += chunk.length;
+ }
+ return result;
+ };
+ }
+});
+
+// node_modules/pako/lib/utils/strings.js
+var require_strings2 = __commonJS({
+ "node_modules/pako/lib/utils/strings.js"(exports2, module2) {
+ "use strict";
+ var STR_APPLY_UIA_OK = true;
+ try {
+ String.fromCharCode.apply(null, new Uint8Array(1));
+ } catch (__) {
+ STR_APPLY_UIA_OK = false;
+ }
+ var _utf8len = new Uint8Array(256);
+ for (let q = 0; q < 256; q++) {
+ _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1;
+ }
+ _utf8len[254] = _utf8len[254] = 1;
+ module2.exports.string2buf = (str) => {
+ if (typeof TextEncoder === "function" && TextEncoder.prototype.encode) {
+ return new TextEncoder().encode(str);
+ }
+ let buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
+ for (m_pos = 0; m_pos < str_len; m_pos++) {
+ c = str.charCodeAt(m_pos);
+ if ((c & 64512) === 55296 && m_pos + 1 < str_len) {
+ c2 = str.charCodeAt(m_pos + 1);
+ if ((c2 & 64512) === 56320) {
+ c = 65536 + (c - 55296 << 10) + (c2 - 56320);
+ m_pos++;
+ }
+ }
+ buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4;
+ }
+ buf = new Uint8Array(buf_len);
+ for (i = 0, m_pos = 0; i < buf_len; m_pos++) {
+ c = str.charCodeAt(m_pos);
+ if ((c & 64512) === 55296 && m_pos + 1 < str_len) {
+ c2 = str.charCodeAt(m_pos + 1);
+ if ((c2 & 64512) === 56320) {
+ c = 65536 + (c - 55296 << 10) + (c2 - 56320);
+ m_pos++;
+ }
+ }
+ if (c < 128) {
+ buf[i++] = c;
+ } else if (c < 2048) {
+ buf[i++] = 192 | c >>> 6;
+ buf[i++] = 128 | c & 63;
+ } else if (c < 65536) {
+ buf[i++] = 224 | c >>> 12;
+ buf[i++] = 128 | c >>> 6 & 63;
+ buf[i++] = 128 | c & 63;
+ } else {
+ buf[i++] = 240 | c >>> 18;
+ buf[i++] = 128 | c >>> 12 & 63;
+ buf[i++] = 128 | c >>> 6 & 63;
+ buf[i++] = 128 | c & 63;
+ }
+ }
+ return buf;
+ };
+ var buf2binstring = (buf, len) => {
+ if (len < 65534) {
+ if (buf.subarray && STR_APPLY_UIA_OK) {
+ return String.fromCharCode.apply(null, buf.length === len ? buf : buf.subarray(0, len));
+ }
+ }
+ let result = "";
+ for (let i = 0; i < len; i++) {
+ result += String.fromCharCode(buf[i]);
+ }
+ return result;
+ };
+ module2.exports.buf2string = (buf, max) => {
+ const len = max || buf.length;
+ if (typeof TextDecoder === "function" && TextDecoder.prototype.decode) {
+ return new TextDecoder().decode(buf.subarray(0, max));
+ }
+ let i, out;
+ const utf16buf = new Array(len * 2);
+ for (out = 0, i = 0; i < len; ) {
+ let c = buf[i++];
+ if (c < 128) {
+ utf16buf[out++] = c;
+ continue;
+ }
+ let c_len = _utf8len[c];
+ if (c_len > 4) {
+ utf16buf[out++] = 65533;
+ i += c_len - 1;
+ continue;
+ }
+ c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7;
+ while (c_len > 1 && i < len) {
+ c = c << 6 | buf[i++] & 63;
+ c_len--;
+ }
+ if (c_len > 1) {
+ utf16buf[out++] = 65533;
+ continue;
+ }
+ if (c < 65536) {
+ utf16buf[out++] = c;
+ } else {
+ c -= 65536;
+ utf16buf[out++] = 55296 | c >> 10 & 1023;
+ utf16buf[out++] = 56320 | c & 1023;
+ }
+ }
+ return buf2binstring(utf16buf, out);
+ };
+ module2.exports.utf8border = (buf, max) => {
+ max = max || buf.length;
+ if (max > buf.length) {
+ max = buf.length;
+ }
+ let pos = max - 1;
+ while (pos >= 0 && (buf[pos] & 192) === 128) {
+ pos--;
+ }
+ if (pos < 0) {
+ return max;
+ }
+ if (pos === 0) {
+ return max;
+ }
+ return pos + _utf8len[buf[pos]] > max ? pos : max;
+ };
+ }
+});
+
+// node_modules/pako/lib/zlib/zstream.js
+var require_zstream = __commonJS({
+ "node_modules/pako/lib/zlib/zstream.js"(exports2, module2) {
+ "use strict";
+ function ZStream() {
+ this.input = null;
+ this.next_in = 0;
+ this.avail_in = 0;
+ this.total_in = 0;
+ this.output = null;
+ this.next_out = 0;
+ this.avail_out = 0;
+ this.total_out = 0;
+ this.msg = "";
+ this.state = null;
+ this.data_type = 2;
+ this.adler = 0;
+ }
+ module2.exports = ZStream;
+ }
+});
+
+// node_modules/pako/lib/deflate.js
+var require_deflate2 = __commonJS({
+ "node_modules/pako/lib/deflate.js"(exports2, module2) {
+ "use strict";
+ var zlib_deflate = require_deflate();
+ var utils = require_common3();
+ var strings = require_strings2();
+ var msg = require_messages();
+ var ZStream = require_zstream();
+ var toString2 = Object.prototype.toString;
+ var {
+ Z_NO_FLUSH,
+ Z_SYNC_FLUSH,
+ Z_FULL_FLUSH,
+ Z_FINISH,
+ Z_OK,
+ Z_STREAM_END,
+ Z_DEFAULT_COMPRESSION,
+ Z_DEFAULT_STRATEGY,
+ Z_DEFLATED
+ } = require_constants3();
+ function Deflate(options) {
+ this.options = utils.assign({
+ level: Z_DEFAULT_COMPRESSION,
+ method: Z_DEFLATED,
+ chunkSize: 16384,
+ windowBits: 15,
+ memLevel: 8,
+ strategy: Z_DEFAULT_STRATEGY
+ }, options || {});
+ let opt = this.options;
+ if (opt.raw && opt.windowBits > 0) {
+ opt.windowBits = -opt.windowBits;
+ } else if (opt.gzip && opt.windowBits > 0 && opt.windowBits < 16) {
+ opt.windowBits += 16;
+ }
+ this.err = 0;
+ this.msg = "";
+ this.ended = false;
+ this.chunks = [];
+ this.strm = new ZStream();
+ this.strm.avail_out = 0;
+ let status = zlib_deflate.deflateInit2(
+ this.strm,
+ opt.level,
+ opt.method,
+ opt.windowBits,
+ opt.memLevel,
+ opt.strategy
+ );
+ if (status !== Z_OK) {
+ throw new Error(msg[status]);
+ }
+ if (opt.header) {
+ zlib_deflate.deflateSetHeader(this.strm, opt.header);
+ }
+ if (opt.dictionary) {
+ let dict;
+ if (typeof opt.dictionary === "string") {
+ dict = strings.string2buf(opt.dictionary);
+ } else if (toString2.call(opt.dictionary) === "[object ArrayBuffer]") {
+ dict = new Uint8Array(opt.dictionary);
+ } else {
+ dict = opt.dictionary;
+ }
+ status = zlib_deflate.deflateSetDictionary(this.strm, dict);
+ if (status !== Z_OK) {
+ throw new Error(msg[status]);
+ }
+ this._dict_set = true;
+ }
+ }
+ Deflate.prototype.push = function(data, flush_mode) {
+ const strm = this.strm;
+ const chunkSize = this.options.chunkSize;
+ let status, _flush_mode;
+ if (this.ended) {
+ return false;
+ }
+ if (flush_mode === ~~flush_mode)
+ _flush_mode = flush_mode;
+ else
+ _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;
+ if (typeof data === "string") {
+ strm.input = strings.string2buf(data);
+ } else if (toString2.call(data) === "[object ArrayBuffer]") {
+ strm.input = new Uint8Array(data);
+ } else {
+ strm.input = data;
+ }
+ strm.next_in = 0;
+ strm.avail_in = strm.input.length;
+ for (; ; ) {
+ if (strm.avail_out === 0) {
+ strm.output = new Uint8Array(chunkSize);
+ strm.next_out = 0;
+ strm.avail_out = chunkSize;
+ }
+ if ((_flush_mode === Z_SYNC_FLUSH || _flush_mode === Z_FULL_FLUSH) && strm.avail_out <= 6) {
+ this.onData(strm.output.subarray(0, strm.next_out));
+ strm.avail_out = 0;
+ continue;
+ }
+ status = zlib_deflate.deflate(strm, _flush_mode);
+ if (status === Z_STREAM_END) {
+ if (strm.next_out > 0) {
+ this.onData(strm.output.subarray(0, strm.next_out));
+ }
+ status = zlib_deflate.deflateEnd(this.strm);
+ this.onEnd(status);
+ this.ended = true;
+ return status === Z_OK;
+ }
+ if (strm.avail_out === 0) {
+ this.onData(strm.output);
+ continue;
+ }
+ if (_flush_mode > 0 && strm.next_out > 0) {
+ this.onData(strm.output.subarray(0, strm.next_out));
+ strm.avail_out = 0;
+ continue;
+ }
+ if (strm.avail_in === 0)
+ break;
+ }
+ return true;
+ };
+ Deflate.prototype.onData = function(chunk) {
+ this.chunks.push(chunk);
+ };
+ Deflate.prototype.onEnd = function(status) {
+ if (status === Z_OK) {
+ this.result = utils.flattenChunks(this.chunks);
+ }
+ this.chunks = [];
+ this.err = status;
+ this.msg = this.strm.msg;
+ };
+ function deflate(input, options) {
+ const deflator = new Deflate(options);
+ deflator.push(input, true);
+ if (deflator.err) {
+ throw deflator.msg || msg[deflator.err];
+ }
+ return deflator.result;
+ }
+ function deflateRaw(input, options) {
+ options = options || {};
+ options.raw = true;
+ return deflate(input, options);
+ }
+ function gzip(input, options) {
+ options = options || {};
+ options.gzip = true;
+ return deflate(input, options);
+ }
+ module2.exports.Deflate = Deflate;
+ module2.exports.deflate = deflate;
+ module2.exports.deflateRaw = deflateRaw;
+ module2.exports.gzip = gzip;
+ module2.exports.constants = require_constants3();
+ }
+});
+
+// node_modules/pako/lib/zlib/inffast.js
+var require_inffast = __commonJS({
+ "node_modules/pako/lib/zlib/inffast.js"(exports2, module2) {
+ "use strict";
+ var BAD = 16209;
+ var TYPE = 16191;
+ module2.exports = function inflate_fast(strm, start) {
+ let _in;
+ let last;
+ let _out;
+ let beg;
+ let end;
+ let dmax;
+ let wsize;
+ let whave;
+ let wnext;
+ let s_window;
+ let hold;
+ let bits;
+ let lcode;
+ let dcode;
+ let lmask;
+ let dmask;
+ let here;
+ let op;
+ let len;
+ let dist;
+ let from;
+ let from_source;
+ let input, output;
+ const state = strm.state;
+ _in = strm.next_in;
+ input = strm.input;
+ last = _in + (strm.avail_in - 5);
+ _out = strm.next_out;
+ output = strm.output;
+ beg = _out - (start - strm.avail_out);
+ end = _out + (strm.avail_out - 257);
+ dmax = state.dmax;
+ wsize = state.wsize;
+ whave = state.whave;
+ wnext = state.wnext;
+ s_window = state.window;
+ hold = state.hold;
+ bits = state.bits;
+ lcode = state.lencode;
+ dcode = state.distcode;
+ lmask = (1 << state.lenbits) - 1;
+ dmask = (1 << state.distbits) - 1;
+ top:
+ do {
+ if (bits < 15) {
+ hold += input[_in++] << bits;
+ bits += 8;
+ hold += input[_in++] << bits;
+ bits += 8;
+ }
+ here = lcode[hold & lmask];
+ dolen:
+ for (; ; ) {
+ op = here >>> 24;
+ hold >>>= op;
+ bits -= op;
+ op = here >>> 16 & 255;
+ if (op === 0) {
+ output[_out++] = here & 65535;
+ } else if (op & 16) {
+ len = here & 65535;
+ op &= 15;
+ if (op) {
+ if (bits < op) {
+ hold += input[_in++] << bits;
+ bits += 8;
+ }
+ len += hold & (1 << op) - 1;
+ hold >>>= op;
+ bits -= op;
+ }
+ if (bits < 15) {
+ hold += input[_in++] << bits;
+ bits += 8;
+ hold += input[_in++] << bits;
+ bits += 8;
+ }
+ here = dcode[hold & dmask];
+ dodist:
+ for (; ; ) {
+ op = here >>> 24;
+ hold >>>= op;
+ bits -= op;
+ op = here >>> 16 & 255;
+ if (op & 16) {
+ dist = here & 65535;
+ op &= 15;
+ if (bits < op) {
+ hold += input[_in++] << bits;
+ bits += 8;
+ if (bits < op) {
+ hold += input[_in++] << bits;
+ bits += 8;
+ }
+ }
+ dist += hold & (1 << op) - 1;
+ if (dist > dmax) {
+ strm.msg = "invalid distance too far back";
+ state.mode = BAD;
+ break top;
+ }
+ hold >>>= op;
+ bits -= op;
+ op = _out - beg;
+ if (dist > op) {
+ op = dist - op;
+ if (op > whave) {
+ if (state.sane) {
+ strm.msg = "invalid distance too far back";
+ state.mode = BAD;
+ break top;
+ }
+ }
+ from = 0;
+ from_source = s_window;
+ if (wnext === 0) {
+ from += wsize - op;
+ if (op < len) {
+ len -= op;
+ do {
+ output[_out++] = s_window[from++];
+ } while (--op);
+ from = _out - dist;
+ from_source = output;
+ }
+ } else if (wnext < op) {
+ from += wsize + wnext - op;
+ op -= wnext;
+ if (op < len) {
+ len -= op;
+ do {
+ output[_out++] = s_window[from++];
+ } while (--op);
+ from = 0;
+ if (wnext < len) {
+ op = wnext;
+ len -= op;
+ do {
+ output[_out++] = s_window[from++];
+ } while (--op);
+ from = _out - dist;
+ from_source = output;
+ }
+ }
+ } else {
+ from += wnext - op;
+ if (op < len) {
+ len -= op;
+ do {
+ output[_out++] = s_window[from++];
+ } while (--op);
+ from = _out - dist;
+ from_source = output;
+ }
+ }
+ while (len > 2) {
+ output[_out++] = from_source[from++];
+ output[_out++] = from_source[from++];
+ output[_out++] = from_source[from++];
+ len -= 3;
+ }
+ if (len) {
+ output[_out++] = from_source[from++];
+ if (len > 1) {
+ output[_out++] = from_source[from++];
+ }
+ }
+ } else {
+ from = _out - dist;
+ do {
+ output[_out++] = output[from++];
+ output[_out++] = output[from++];
+ output[_out++] = output[from++];
+ len -= 3;
+ } while (len > 2);
+ if (len) {
+ output[_out++] = output[from++];
+ if (len > 1) {
+ output[_out++] = output[from++];
+ }
+ }
+ }
+ } else if ((op & 64) === 0) {
+ here = dcode[(here & 65535) + (hold & (1 << op) - 1)];
+ continue dodist;
+ } else {
+ strm.msg = "invalid distance code";
+ state.mode = BAD;
+ break top;
+ }
+ break;
+ }
+ } else if ((op & 64) === 0) {
+ here = lcode[(here & 65535) + (hold & (1 << op) - 1)];
+ continue dolen;
+ } else if (op & 32) {
+ state.mode = TYPE;
+ break top;
+ } else {
+ strm.msg = "invalid literal/length code";
+ state.mode = BAD;
+ break top;
+ }
+ break;
+ }
+ } while (_in < last && _out < end);
+ len = bits >> 3;
+ _in -= len;
+ bits -= len << 3;
+ hold &= (1 << bits) - 1;
+ strm.next_in = _in;
+ strm.next_out = _out;
+ strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last);
+ strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end);
+ state.hold = hold;
+ state.bits = bits;
+ return;
+ };
+ }
+});
+
+// node_modules/pako/lib/zlib/inftrees.js
+var require_inftrees = __commonJS({
+ "node_modules/pako/lib/zlib/inftrees.js"(exports2, module2) {
+ "use strict";
+ var MAXBITS = 15;
+ var ENOUGH_LENS = 852;
+ var ENOUGH_DISTS = 592;
+ var CODES = 0;
+ var LENS = 1;
+ var DISTS = 2;
+ var lbase = new Uint16Array([
+ /* Length codes 257..285 base */
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 13,
+ 15,
+ 17,
+ 19,
+ 23,
+ 27,
+ 31,
+ 35,
+ 43,
+ 51,
+ 59,
+ 67,
+ 83,
+ 99,
+ 115,
+ 131,
+ 163,
+ 195,
+ 227,
+ 258,
+ 0,
+ 0
+ ]);
+ var lext = new Uint8Array([
+ /* Length codes 257..285 extra */
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 17,
+ 17,
+ 17,
+ 17,
+ 18,
+ 18,
+ 18,
+ 18,
+ 19,
+ 19,
+ 19,
+ 19,
+ 20,
+ 20,
+ 20,
+ 20,
+ 21,
+ 21,
+ 21,
+ 21,
+ 16,
+ 72,
+ 78
+ ]);
+ var dbase = new Uint16Array([
+ /* Distance codes 0..29 base */
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 7,
+ 9,
+ 13,
+ 17,
+ 25,
+ 33,
+ 49,
+ 65,
+ 97,
+ 129,
+ 193,
+ 257,
+ 385,
+ 513,
+ 769,
+ 1025,
+ 1537,
+ 2049,
+ 3073,
+ 4097,
+ 6145,
+ 8193,
+ 12289,
+ 16385,
+ 24577,
+ 0,
+ 0
+ ]);
+ var dext = new Uint8Array([
+ /* Distance codes 0..29 extra */
+ 16,
+ 16,
+ 16,
+ 16,
+ 17,
+ 17,
+ 18,
+ 18,
+ 19,
+ 19,
+ 20,
+ 20,
+ 21,
+ 21,
+ 22,
+ 22,
+ 23,
+ 23,
+ 24,
+ 24,
+ 25,
+ 25,
+ 26,
+ 26,
+ 27,
+ 27,
+ 28,
+ 28,
+ 29,
+ 29,
+ 64,
+ 64
+ ]);
+ var inflate_table = (type, lens, lens_index, codes, table, table_index, work, opts) => {
+ const bits = opts.bits;
+ let len = 0;
+ let sym = 0;
+ let min = 0, max = 0;
+ let root = 0;
+ let curr = 0;
+ let drop = 0;
+ let left = 0;
+ let used = 0;
+ let huff = 0;
+ let incr;
+ let fill;
+ let low;
+ let mask;
+ let next;
+ let base = null;
+ let match;
+ const count = new Uint16Array(MAXBITS + 1);
+ const offs = new Uint16Array(MAXBITS + 1);
+ let extra = null;
+ let here_bits, here_op, here_val;
+ for (len = 0; len <= MAXBITS; len++) {
+ count[len] = 0;
+ }
+ for (sym = 0; sym < codes; sym++) {
+ count[lens[lens_index + sym]]++;
+ }
+ root = bits;
+ for (max = MAXBITS; max >= 1; max--) {
+ if (count[max] !== 0) {
+ break;
+ }
+ }
+ if (root > max) {
+ root = max;
+ }
+ if (max === 0) {
+ table[table_index++] = 1 << 24 | 64 << 16 | 0;
+ table[table_index++] = 1 << 24 | 64 << 16 | 0;
+ opts.bits = 1;
+ return 0;
+ }
+ for (min = 1; min < max; min++) {
+ if (count[min] !== 0) {
+ break;
+ }
+ }
+ if (root < min) {
+ root = min;
+ }
+ left = 1;
+ for (len = 1; len <= MAXBITS; len++) {
+ left <<= 1;
+ left -= count[len];
+ if (left < 0) {
+ return -1;
+ }
+ }
+ if (left > 0 && (type === CODES || max !== 1)) {
+ return -1;
+ }
+ offs[1] = 0;
+ for (len = 1; len < MAXBITS; len++) {
+ offs[len + 1] = offs[len] + count[len];
+ }
+ for (sym = 0; sym < codes; sym++) {
+ if (lens[lens_index + sym] !== 0) {
+ work[offs[lens[lens_index + sym]]++] = sym;
+ }
+ }
+ if (type === CODES) {
+ base = extra = work;
+ match = 20;
+ } else if (type === LENS) {
+ base = lbase;
+ extra = lext;
+ match = 257;
+ } else {
+ base = dbase;
+ extra = dext;
+ match = 0;
+ }
+ huff = 0;
+ sym = 0;
+ len = min;
+ next = table_index;
+ curr = root;
+ drop = 0;
+ low = -1;
+ used = 1 << root;
+ mask = used - 1;
+ if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) {
+ return 1;
+ }
+ for (; ; ) {
+ here_bits = len - drop;
+ if (work[sym] + 1 < match) {
+ here_op = 0;
+ here_val = work[sym];
+ } else if (work[sym] >= match) {
+ here_op = extra[work[sym] - match];
+ here_val = base[work[sym] - match];
+ } else {
+ here_op = 32 + 64;
+ here_val = 0;
+ }
+ incr = 1 << len - drop;
+ fill = 1 << curr;
+ min = fill;
+ do {
+ fill -= incr;
+ table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0;
+ } while (fill !== 0);
+ incr = 1 << len - 1;
+ while (huff & incr) {
+ incr >>= 1;
+ }
+ if (incr !== 0) {
+ huff &= incr - 1;
+ huff += incr;
+ } else {
+ huff = 0;
+ }
+ sym++;
+ if (--count[len] === 0) {
+ if (len === max) {
+ break;
+ }
+ len = lens[lens_index + work[sym]];
+ }
+ if (len > root && (huff & mask) !== low) {
+ if (drop === 0) {
+ drop = root;
+ }
+ next += min;
+ curr = len - drop;
+ left = 1 << curr;
+ while (curr + drop < max) {
+ left -= count[curr + drop];
+ if (left <= 0) {
+ break;
+ }
+ curr++;
+ left <<= 1;
+ }
+ used += 1 << curr;
+ if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) {
+ return 1;
+ }
+ low = huff & mask;
+ table[low] = root << 24 | curr << 16 | next - table_index | 0;
+ }
+ }
+ if (huff !== 0) {
+ table[next + huff] = len - drop << 24 | 64 << 16 | 0;
+ }
+ opts.bits = root;
+ return 0;
+ };
+ module2.exports = inflate_table;
+ }
+});
+
+// node_modules/pako/lib/zlib/inflate.js
+var require_inflate = __commonJS({
+ "node_modules/pako/lib/zlib/inflate.js"(exports2, module2) {
+ "use strict";
+ var adler32 = require_adler32();
+ var crc32 = require_crc32();
+ var inflate_fast = require_inffast();
+ var inflate_table = require_inftrees();
+ var CODES = 0;
+ var LENS = 1;
+ var DISTS = 2;
+ var {
+ Z_FINISH,
+ Z_BLOCK,
+ Z_TREES,
+ Z_OK,
+ Z_STREAM_END,
+ Z_NEED_DICT,
+ Z_STREAM_ERROR,
+ Z_DATA_ERROR,
+ Z_MEM_ERROR,
+ Z_BUF_ERROR,
+ Z_DEFLATED
+ } = require_constants3();
+ var HEAD = 16180;
+ var FLAGS = 16181;
+ var TIME = 16182;
+ var OS = 16183;
+ var EXLEN = 16184;
+ var EXTRA = 16185;
+ var NAME = 16186;
+ var COMMENT = 16187;
+ var HCRC = 16188;
+ var DICTID = 16189;
+ var DICT = 16190;
+ var TYPE = 16191;
+ var TYPEDO = 16192;
+ var STORED = 16193;
+ var COPY_ = 16194;
+ var COPY = 16195;
+ var TABLE = 16196;
+ var LENLENS = 16197;
+ var CODELENS = 16198;
+ var LEN_ = 16199;
+ var LEN = 16200;
+ var LENEXT = 16201;
+ var DIST = 16202;
+ var DISTEXT = 16203;
+ var MATCH = 16204;
+ var LIT = 16205;
+ var CHECK = 16206;
+ var LENGTH = 16207;
+ var DONE = 16208;
+ var BAD = 16209;
+ var MEM = 16210;
+ var SYNC = 16211;
+ var ENOUGH_LENS = 852;
+ var ENOUGH_DISTS = 592;
+ var MAX_WBITS = 15;
+ var DEF_WBITS = MAX_WBITS;
+ var zswap32 = (q) => {
+ return (q >>> 24 & 255) + (q >>> 8 & 65280) + ((q & 65280) << 8) + ((q & 255) << 24);
+ };
+ function InflateState() {
+ this.strm = null;
+ this.mode = 0;
+ this.last = false;
+ this.wrap = 0;
+ this.havedict = false;
+ this.flags = 0;
+ this.dmax = 0;
+ this.check = 0;
+ this.total = 0;
+ this.head = null;
+ this.wbits = 0;
+ this.wsize = 0;
+ this.whave = 0;
+ this.wnext = 0;
+ this.window = null;
+ this.hold = 0;
+ this.bits = 0;
+ this.length = 0;
+ this.offset = 0;
+ this.extra = 0;
+ this.lencode = null;
+ this.distcode = null;
+ this.lenbits = 0;
+ this.distbits = 0;
+ this.ncode = 0;
+ this.nlen = 0;
+ this.ndist = 0;
+ this.have = 0;
+ this.next = null;
+ this.lens = new Uint16Array(320);
+ this.work = new Uint16Array(288);
+ this.lendyn = null;
+ this.distdyn = null;
+ this.sane = 0;
+ this.back = 0;
+ this.was = 0;
+ }
+ var inflateStateCheck = (strm) => {
+ if (!strm) {
+ return 1;
+ }
+ const state = strm.state;
+ if (!state || state.strm !== strm || state.mode < HEAD || state.mode > SYNC) {
+ return 1;
+ }
+ return 0;
+ };
+ var inflateResetKeep = (strm) => {
+ if (inflateStateCheck(strm)) {
+ return Z_STREAM_ERROR;
+ }
+ const state = strm.state;
+ strm.total_in = strm.total_out = state.total = 0;
+ strm.msg = "";
+ if (state.wrap) {
+ strm.adler = state.wrap & 1;
+ }
+ state.mode = HEAD;
+ state.last = 0;
+ state.havedict = 0;
+ state.flags = -1;
+ state.dmax = 32768;
+ state.head = null;
+ state.hold = 0;
+ state.bits = 0;
+ state.lencode = state.lendyn = new Int32Array(ENOUGH_LENS);
+ state.distcode = state.distdyn = new Int32Array(ENOUGH_DISTS);
+ state.sane = 1;
+ state.back = -1;
+ return Z_OK;
+ };
+ var inflateReset = (strm) => {
+ if (inflateStateCheck(strm)) {
+ return Z_STREAM_ERROR;
+ }
+ const state = strm.state;
+ state.wsize = 0;
+ state.whave = 0;
+ state.wnext = 0;
+ return inflateResetKeep(strm);
+ };
+ var inflateReset2 = (strm, windowBits) => {
+ let wrap;
+ if (inflateStateCheck(strm)) {
+ return Z_STREAM_ERROR;
+ }
+ const state = strm.state;
+ if (windowBits < 0) {
+ wrap = 0;
+ windowBits = -windowBits;
+ } else {
+ wrap = (windowBits >> 4) + 5;
+ if (windowBits < 48) {
+ windowBits &= 15;
+ }
+ }
+ if (windowBits && (windowBits < 8 || windowBits > 15)) {
+ return Z_STREAM_ERROR;
+ }
+ if (state.window !== null && state.wbits !== windowBits) {
+ state.window = null;
+ }
+ state.wrap = wrap;
+ state.wbits = windowBits;
+ return inflateReset(strm);
+ };
+ var inflateInit2 = (strm, windowBits) => {
+ if (!strm) {
+ return Z_STREAM_ERROR;
+ }
+ const state = new InflateState();
+ strm.state = state;
+ state.strm = strm;
+ state.window = null;
+ state.mode = HEAD;
+ const ret = inflateReset2(strm, windowBits);
+ if (ret !== Z_OK) {
+ strm.state = null;
+ }
+ return ret;
+ };
+ var inflateInit = (strm) => {
+ return inflateInit2(strm, DEF_WBITS);
+ };
+ var virgin = true;
+ var lenfix;
+ var distfix;
+ var fixedtables = (state) => {
+ if (virgin) {
+ lenfix = new Int32Array(512);
+ distfix = new Int32Array(32);
+ let sym = 0;
+ while (sym < 144) {
+ state.lens[sym++] = 8;
+ }
+ while (sym < 256) {
+ state.lens[sym++] = 9;
+ }
+ while (sym < 280) {
+ state.lens[sym++] = 7;
+ }
+ while (sym < 288) {
+ state.lens[sym++] = 8;
+ }
+ inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });
+ sym = 0;
+ while (sym < 32) {
+ state.lens[sym++] = 5;
+ }
+ inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });
+ virgin = false;
+ }
+ state.lencode = lenfix;
+ state.lenbits = 9;
+ state.distcode = distfix;
+ state.distbits = 5;
+ };
+ var updatewindow = (strm, src, end, copy) => {
+ let dist;
+ const state = strm.state;
+ if (state.window === null) {
+ state.wsize = 1 << state.wbits;
+ state.wnext = 0;
+ state.whave = 0;
+ state.window = new Uint8Array(state.wsize);
+ }
+ if (copy >= state.wsize) {
+ state.window.set(src.subarray(end - state.wsize, end), 0);
+ state.wnext = 0;
+ state.whave = state.wsize;
+ } else {
+ dist = state.wsize - state.wnext;
+ if (dist > copy) {
+ dist = copy;
+ }
+ state.window.set(src.subarray(end - copy, end - copy + dist), state.wnext);
+ copy -= dist;
+ if (copy) {
+ state.window.set(src.subarray(end - copy, end), 0);
+ state.wnext = copy;
+ state.whave = state.wsize;
+ } else {
+ state.wnext += dist;
+ if (state.wnext === state.wsize) {
+ state.wnext = 0;
+ }
+ if (state.whave < state.wsize) {
+ state.whave += dist;
+ }
+ }
+ }
+ return 0;
+ };
+ var inflate = (strm, flush) => {
+ let state;
+ let input, output;
+ let next;
+ let put;
+ let have, left;
+ let hold;
+ let bits;
+ let _in, _out;
+ let copy;
+ let from;
+ let from_source;
+ let here = 0;
+ let here_bits, here_op, here_val;
+ let last_bits, last_op, last_val;
+ let len;
+ let ret;
+ const hbuf = new Uint8Array(4);
+ let opts;
+ let n;
+ const order = (
+ /* permutation of code lengths */
+ new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15])
+ );
+ if (inflateStateCheck(strm) || !strm.output || !strm.input && strm.avail_in !== 0) {
+ return Z_STREAM_ERROR;
+ }
+ state = strm.state;
+ if (state.mode === TYPE) {
+ state.mode = TYPEDO;
+ }
+ put = strm.next_out;
+ output = strm.output;
+ left = strm.avail_out;
+ next = strm.next_in;
+ input = strm.input;
+ have = strm.avail_in;
+ hold = state.hold;
+ bits = state.bits;
+ _in = have;
+ _out = left;
+ ret = Z_OK;
+ inf_leave:
+ for (; ; ) {
+ switch (state.mode) {
+ case HEAD:
+ if (state.wrap === 0) {
+ state.mode = TYPEDO;
+ break;
+ }
+ while (bits < 16) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ if (state.wrap & 2 && hold === 35615) {
+ if (state.wbits === 0) {
+ state.wbits = 15;
+ }
+ state.check = 0;
+ hbuf[0] = hold & 255;
+ hbuf[1] = hold >>> 8 & 255;
+ state.check = crc32(state.check, hbuf, 2, 0);
+ hold = 0;
+ bits = 0;
+ state.mode = FLAGS;
+ break;
+ }
+ if (state.head) {
+ state.head.done = false;
+ }
+ if (!(state.wrap & 1) || /* check if zlib header allowed */
+ (((hold & 255) << 8) + (hold >> 8)) % 31) {
+ strm.msg = "incorrect header check";
+ state.mode = BAD;
+ break;
+ }
+ if ((hold & 15) !== Z_DEFLATED) {
+ strm.msg = "unknown compression method";
+ state.mode = BAD;
+ break;
+ }
+ hold >>>= 4;
+ bits -= 4;
+ len = (hold & 15) + 8;
+ if (state.wbits === 0) {
+ state.wbits = len;
+ }
+ if (len > 15 || len > state.wbits) {
+ strm.msg = "invalid window size";
+ state.mode = BAD;
+ break;
+ }
+ state.dmax = 1 << state.wbits;
+ state.flags = 0;
+ strm.adler = state.check = 1;
+ state.mode = hold & 512 ? DICTID : TYPE;
+ hold = 0;
+ bits = 0;
+ break;
+ case FLAGS:
+ while (bits < 16) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ state.flags = hold;
+ if ((state.flags & 255) !== Z_DEFLATED) {
+ strm.msg = "unknown compression method";
+ state.mode = BAD;
+ break;
+ }
+ if (state.flags & 57344) {
+ strm.msg = "unknown header flags set";
+ state.mode = BAD;
+ break;
+ }
+ if (state.head) {
+ state.head.text = hold >> 8 & 1;
+ }
+ if (state.flags & 512 && state.wrap & 4) {
+ hbuf[0] = hold & 255;
+ hbuf[1] = hold >>> 8 & 255;
+ state.check = crc32(state.check, hbuf, 2, 0);
+ }
+ hold = 0;
+ bits = 0;
+ state.mode = TIME;
+ case TIME:
+ while (bits < 32) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ if (state.head) {
+ state.head.time = hold;
+ }
+ if (state.flags & 512 && state.wrap & 4) {
+ hbuf[0] = hold & 255;
+ hbuf[1] = hold >>> 8 & 255;
+ hbuf[2] = hold >>> 16 & 255;
+ hbuf[3] = hold >>> 24 & 255;
+ state.check = crc32(state.check, hbuf, 4, 0);
+ }
+ hold = 0;
+ bits = 0;
+ state.mode = OS;
+ case OS:
+ while (bits < 16) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ if (state.head) {
+ state.head.xflags = hold & 255;
+ state.head.os = hold >> 8;
+ }
+ if (state.flags & 512 && state.wrap & 4) {
+ hbuf[0] = hold & 255;
+ hbuf[1] = hold >>> 8 & 255;
+ state.check = crc32(state.check, hbuf, 2, 0);
+ }
+ hold = 0;
+ bits = 0;
+ state.mode = EXLEN;
+ case EXLEN:
+ if (state.flags & 1024) {
+ while (bits < 16) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ state.length = hold;
+ if (state.head) {
+ state.head.extra_len = hold;
+ }
+ if (state.flags & 512 && state.wrap & 4) {
+ hbuf[0] = hold & 255;
+ hbuf[1] = hold >>> 8 & 255;
+ state.check = crc32(state.check, hbuf, 2, 0);
+ }
+ hold = 0;
+ bits = 0;
+ } else if (state.head) {
+ state.head.extra = null;
+ }
+ state.mode = EXTRA;
+ case EXTRA:
+ if (state.flags & 1024) {
+ copy = state.length;
+ if (copy > have) {
+ copy = have;
+ }
+ if (copy) {
+ if (state.head) {
+ len = state.head.extra_len - state.length;
+ if (!state.head.extra) {
+ state.head.extra = new Uint8Array(state.head.extra_len);
+ }
+ state.head.extra.set(
+ input.subarray(
+ next,
+ // extra field is limited to 65536 bytes
+ // - no need for additional size check
+ next + copy
+ ),
+ /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/
+ len
+ );
+ }
+ if (state.flags & 512 && state.wrap & 4) {
+ state.check = crc32(state.check, input, copy, next);
+ }
+ have -= copy;
+ next += copy;
+ state.length -= copy;
+ }
+ if (state.length) {
+ break inf_leave;
+ }
+ }
+ state.length = 0;
+ state.mode = NAME;
+ case NAME:
+ if (state.flags & 2048) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ copy = 0;
+ do {
+ len = input[next + copy++];
+ if (state.head && len && state.length < 65536) {
+ state.head.name += String.fromCharCode(len);
+ }
+ } while (len && copy < have);
+ if (state.flags & 512 && state.wrap & 4) {
+ state.check = crc32(state.check, input, copy, next);
+ }
+ have -= copy;
+ next += copy;
+ if (len) {
+ break inf_leave;
+ }
+ } else if (state.head) {
+ state.head.name = null;
+ }
+ state.length = 0;
+ state.mode = COMMENT;
+ case COMMENT:
+ if (state.flags & 4096) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ copy = 0;
+ do {
+ len = input[next + copy++];
+ if (state.head && len && state.length < 65536) {
+ state.head.comment += String.fromCharCode(len);
+ }
+ } while (len && copy < have);
+ if (state.flags & 512 && state.wrap & 4) {
+ state.check = crc32(state.check, input, copy, next);
+ }
+ have -= copy;
+ next += copy;
+ if (len) {
+ break inf_leave;
+ }
+ } else if (state.head) {
+ state.head.comment = null;
+ }
+ state.mode = HCRC;
+ case HCRC:
+ if (state.flags & 512) {
+ while (bits < 16) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ if (state.wrap & 4 && hold !== (state.check & 65535)) {
+ strm.msg = "header crc mismatch";
+ state.mode = BAD;
+ break;
+ }
+ hold = 0;
+ bits = 0;
+ }
+ if (state.head) {
+ state.head.hcrc = state.flags >> 9 & 1;
+ state.head.done = true;
+ }
+ strm.adler = state.check = 0;
+ state.mode = TYPE;
+ break;
+ case DICTID:
+ while (bits < 32) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ strm.adler = state.check = zswap32(hold);
+ hold = 0;
+ bits = 0;
+ state.mode = DICT;
+ case DICT:
+ if (state.havedict === 0) {
+ strm.next_out = put;
+ strm.avail_out = left;
+ strm.next_in = next;
+ strm.avail_in = have;
+ state.hold = hold;
+ state.bits = bits;
+ return Z_NEED_DICT;
+ }
+ strm.adler = state.check = 1;
+ state.mode = TYPE;
+ case TYPE:
+ if (flush === Z_BLOCK || flush === Z_TREES) {
+ break inf_leave;
+ }
+ case TYPEDO:
+ if (state.last) {
+ hold >>>= bits & 7;
+ bits -= bits & 7;
+ state.mode = CHECK;
+ break;
+ }
+ while (bits < 3) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ state.last = hold & 1;
+ hold >>>= 1;
+ bits -= 1;
+ switch (hold & 3) {
+ case 0:
+ state.mode = STORED;
+ break;
+ case 1:
+ fixedtables(state);
+ state.mode = LEN_;
+ if (flush === Z_TREES) {
+ hold >>>= 2;
+ bits -= 2;
+ break inf_leave;
+ }
+ break;
+ case 2:
+ state.mode = TABLE;
+ break;
+ case 3:
+ strm.msg = "invalid block type";
+ state.mode = BAD;
+ }
+ hold >>>= 2;
+ bits -= 2;
+ break;
+ case STORED:
+ hold >>>= bits & 7;
+ bits -= bits & 7;
+ while (bits < 32) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ if ((hold & 65535) !== (hold >>> 16 ^ 65535)) {
+ strm.msg = "invalid stored block lengths";
+ state.mode = BAD;
+ break;
+ }
+ state.length = hold & 65535;
+ hold = 0;
+ bits = 0;
+ state.mode = COPY_;
+ if (flush === Z_TREES) {
+ break inf_leave;
+ }
+ case COPY_:
+ state.mode = COPY;
+ case COPY:
+ copy = state.length;
+ if (copy) {
+ if (copy > have) {
+ copy = have;
+ }
+ if (copy > left) {
+ copy = left;
+ }
+ if (copy === 0) {
+ break inf_leave;
+ }
+ output.set(input.subarray(next, next + copy), put);
+ have -= copy;
+ next += copy;
+ left -= copy;
+ put += copy;
+ state.length -= copy;
+ break;
+ }
+ state.mode = TYPE;
+ break;
+ case TABLE:
+ while (bits < 14) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ state.nlen = (hold & 31) + 257;
+ hold >>>= 5;
+ bits -= 5;
+ state.ndist = (hold & 31) + 1;
+ hold >>>= 5;
+ bits -= 5;
+ state.ncode = (hold & 15) + 4;
+ hold >>>= 4;
+ bits -= 4;
+ if (state.nlen > 286 || state.ndist > 30) {
+ strm.msg = "too many length or distance symbols";
+ state.mode = BAD;
+ break;
+ }
+ state.have = 0;
+ state.mode = LENLENS;
+ case LENLENS:
+ while (state.have < state.ncode) {
+ while (bits < 3) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ state.lens[order[state.have++]] = hold & 7;
+ hold >>>= 3;
+ bits -= 3;
+ }
+ while (state.have < 19) {
+ state.lens[order[state.have++]] = 0;
+ }
+ state.lencode = state.lendyn;
+ state.lenbits = 7;
+ opts = { bits: state.lenbits };
+ ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);
+ state.lenbits = opts.bits;
+ if (ret) {
+ strm.msg = "invalid code lengths set";
+ state.mode = BAD;
+ break;
+ }
+ state.have = 0;
+ state.mode = CODELENS;
+ case CODELENS:
+ while (state.have < state.nlen + state.ndist) {
+ for (; ; ) {
+ here = state.lencode[hold & (1 << state.lenbits) - 1];
+ here_bits = here >>> 24;
+ here_op = here >>> 16 & 255;
+ here_val = here & 65535;
+ if (here_bits <= bits) {
+ break;
+ }
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ if (here_val < 16) {
+ hold >>>= here_bits;
+ bits -= here_bits;
+ state.lens[state.have++] = here_val;
+ } else {
+ if (here_val === 16) {
+ n = here_bits + 2;
+ while (bits < n) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ hold >>>= here_bits;
+ bits -= here_bits;
+ if (state.have === 0) {
+ strm.msg = "invalid bit length repeat";
+ state.mode = BAD;
+ break;
+ }
+ len = state.lens[state.have - 1];
+ copy = 3 + (hold & 3);
+ hold >>>= 2;
+ bits -= 2;
+ } else if (here_val === 17) {
+ n = here_bits + 3;
+ while (bits < n) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ hold >>>= here_bits;
+ bits -= here_bits;
+ len = 0;
+ copy = 3 + (hold & 7);
+ hold >>>= 3;
+ bits -= 3;
+ } else {
+ n = here_bits + 7;
+ while (bits < n) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ hold >>>= here_bits;
+ bits -= here_bits;
+ len = 0;
+ copy = 11 + (hold & 127);
+ hold >>>= 7;
+ bits -= 7;
+ }
+ if (state.have + copy > state.nlen + state.ndist) {
+ strm.msg = "invalid bit length repeat";
+ state.mode = BAD;
+ break;
+ }
+ while (copy--) {
+ state.lens[state.have++] = len;
+ }
+ }
+ }
+ if (state.mode === BAD) {
+ break;
+ }
+ if (state.lens[256] === 0) {
+ strm.msg = "invalid code -- missing end-of-block";
+ state.mode = BAD;
+ break;
+ }
+ state.lenbits = 9;
+ opts = { bits: state.lenbits };
+ ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);
+ state.lenbits = opts.bits;
+ if (ret) {
+ strm.msg = "invalid literal/lengths set";
+ state.mode = BAD;
+ break;
+ }
+ state.distbits = 6;
+ state.distcode = state.distdyn;
+ opts = { bits: state.distbits };
+ ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);
+ state.distbits = opts.bits;
+ if (ret) {
+ strm.msg = "invalid distances set";
+ state.mode = BAD;
+ break;
+ }
+ state.mode = LEN_;
+ if (flush === Z_TREES) {
+ break inf_leave;
+ }
+ case LEN_:
+ state.mode = LEN;
+ case LEN:
+ if (have >= 6 && left >= 258) {
+ strm.next_out = put;
+ strm.avail_out = left;
+ strm.next_in = next;
+ strm.avail_in = have;
+ state.hold = hold;
+ state.bits = bits;
+ inflate_fast(strm, _out);
+ put = strm.next_out;
+ output = strm.output;
+ left = strm.avail_out;
+ next = strm.next_in;
+ input = strm.input;
+ have = strm.avail_in;
+ hold = state.hold;
+ bits = state.bits;
+ if (state.mode === TYPE) {
+ state.back = -1;
+ }
+ break;
+ }
+ state.back = 0;
+ for (; ; ) {
+ here = state.lencode[hold & (1 << state.lenbits) - 1];
+ here_bits = here >>> 24;
+ here_op = here >>> 16 & 255;
+ here_val = here & 65535;
+ if (here_bits <= bits) {
+ break;
+ }
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ if (here_op && (here_op & 240) === 0) {
+ last_bits = here_bits;
+ last_op = here_op;
+ last_val = here_val;
+ for (; ; ) {
+ here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)];
+ here_bits = here >>> 24;
+ here_op = here >>> 16 & 255;
+ here_val = here & 65535;
+ if (last_bits + here_bits <= bits) {
+ break;
+ }
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ hold >>>= last_bits;
+ bits -= last_bits;
+ state.back += last_bits;
+ }
+ hold >>>= here_bits;
+ bits -= here_bits;
+ state.back += here_bits;
+ state.length = here_val;
+ if (here_op === 0) {
+ state.mode = LIT;
+ break;
+ }
+ if (here_op & 32) {
+ state.back = -1;
+ state.mode = TYPE;
+ break;
+ }
+ if (here_op & 64) {
+ strm.msg = "invalid literal/length code";
+ state.mode = BAD;
+ break;
+ }
+ state.extra = here_op & 15;
+ state.mode = LENEXT;
+ case LENEXT:
+ if (state.extra) {
+ n = state.extra;
+ while (bits < n) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ state.length += hold & (1 << state.extra) - 1;
+ hold >>>= state.extra;
+ bits -= state.extra;
+ state.back += state.extra;
+ }
+ state.was = state.length;
+ state.mode = DIST;
+ case DIST:
+ for (; ; ) {
+ here = state.distcode[hold & (1 << state.distbits) - 1];
+ here_bits = here >>> 24;
+ here_op = here >>> 16 & 255;
+ here_val = here & 65535;
+ if (here_bits <= bits) {
+ break;
+ }
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ if ((here_op & 240) === 0) {
+ last_bits = here_bits;
+ last_op = here_op;
+ last_val = here_val;
+ for (; ; ) {
+ here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)];
+ here_bits = here >>> 24;
+ here_op = here >>> 16 & 255;
+ here_val = here & 65535;
+ if (last_bits + here_bits <= bits) {
+ break;
+ }
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ hold >>>= last_bits;
+ bits -= last_bits;
+ state.back += last_bits;
+ }
+ hold >>>= here_bits;
+ bits -= here_bits;
+ state.back += here_bits;
+ if (here_op & 64) {
+ strm.msg = "invalid distance code";
+ state.mode = BAD;
+ break;
+ }
+ state.offset = here_val;
+ state.extra = here_op & 15;
+ state.mode = DISTEXT;
+ case DISTEXT:
+ if (state.extra) {
+ n = state.extra;
+ while (bits < n) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ state.offset += hold & (1 << state.extra) - 1;
+ hold >>>= state.extra;
+ bits -= state.extra;
+ state.back += state.extra;
+ }
+ if (state.offset > state.dmax) {
+ strm.msg = "invalid distance too far back";
+ state.mode = BAD;
+ break;
+ }
+ state.mode = MATCH;
+ case MATCH:
+ if (left === 0) {
+ break inf_leave;
+ }
+ copy = _out - left;
+ if (state.offset > copy) {
+ copy = state.offset - copy;
+ if (copy > state.whave) {
+ if (state.sane) {
+ strm.msg = "invalid distance too far back";
+ state.mode = BAD;
+ break;
+ }
+ }
+ if (copy > state.wnext) {
+ copy -= state.wnext;
+ from = state.wsize - copy;
+ } else {
+ from = state.wnext - copy;
+ }
+ if (copy > state.length) {
+ copy = state.length;
+ }
+ from_source = state.window;
+ } else {
+ from_source = output;
+ from = put - state.offset;
+ copy = state.length;
+ }
+ if (copy > left) {
+ copy = left;
+ }
+ left -= copy;
+ state.length -= copy;
+ do {
+ output[put++] = from_source[from++];
+ } while (--copy);
+ if (state.length === 0) {
+ state.mode = LEN;
+ }
+ break;
+ case LIT:
+ if (left === 0) {
+ break inf_leave;
+ }
+ output[put++] = state.length;
+ left--;
+ state.mode = LEN;
+ break;
+ case CHECK:
+ if (state.wrap) {
+ while (bits < 32) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold |= input[next++] << bits;
+ bits += 8;
+ }
+ _out -= left;
+ strm.total_out += _out;
+ state.total += _out;
+ if (state.wrap & 4 && _out) {
+ strm.adler = state.check = /*UPDATE_CHECK(state.check, put - _out, _out);*/
+ state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out);
+ }
+ _out = left;
+ if (state.wrap & 4 && (state.flags ? hold : zswap32(hold)) !== state.check) {
+ strm.msg = "incorrect data check";
+ state.mode = BAD;
+ break;
+ }
+ hold = 0;
+ bits = 0;
+ }
+ state.mode = LENGTH;
+ case LENGTH:
+ if (state.wrap && state.flags) {
+ while (bits < 32) {
+ if (have === 0) {
+ break inf_leave;
+ }
+ have--;
+ hold += input[next++] << bits;
+ bits += 8;
+ }
+ if (state.wrap & 4 && hold !== (state.total & 4294967295)) {
+ strm.msg = "incorrect length check";
+ state.mode = BAD;
+ break;
+ }
+ hold = 0;
+ bits = 0;
+ }
+ state.mode = DONE;
+ case DONE:
+ ret = Z_STREAM_END;
+ break inf_leave;
+ case BAD:
+ ret = Z_DATA_ERROR;
+ break inf_leave;
+ case MEM:
+ return Z_MEM_ERROR;
+ case SYNC:
+ default:
+ return Z_STREAM_ERROR;
+ }
+ }
+ strm.next_out = put;
+ strm.avail_out = left;
+ strm.next_in = next;
+ strm.avail_in = have;
+ state.hold = hold;
+ state.bits = bits;
+ if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH)) {
+ if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {
+ state.mode = MEM;
+ return Z_MEM_ERROR;
+ }
+ }
+ _in -= strm.avail_in;
+ _out -= strm.avail_out;
+ strm.total_in += _in;
+ strm.total_out += _out;
+ state.total += _out;
+ if (state.wrap & 4 && _out) {
+ strm.adler = state.check = /*UPDATE_CHECK(state.check, strm.next_out - _out, _out);*/
+ state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out);
+ }
+ strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);
+ if ((_in === 0 && _out === 0 || flush === Z_FINISH) && ret === Z_OK) {
+ ret = Z_BUF_ERROR;
+ }
+ return ret;
+ };
+ var inflateEnd = (strm) => {
+ if (inflateStateCheck(strm)) {
+ return Z_STREAM_ERROR;
+ }
+ let state = strm.state;
+ if (state.window) {
+ state.window = null;
+ }
+ strm.state = null;
+ return Z_OK;
+ };
+ var inflateGetHeader = (strm, head) => {
+ if (inflateStateCheck(strm)) {
+ return Z_STREAM_ERROR;
+ }
+ const state = strm.state;
+ if ((state.wrap & 2) === 0) {
+ return Z_STREAM_ERROR;
+ }
+ state.head = head;
+ head.done = false;
+ return Z_OK;
+ };
+ var inflateSetDictionary = (strm, dictionary) => {
+ const dictLength = dictionary.length;
+ let state;
+ let dictid;
+ let ret;
+ if (inflateStateCheck(strm)) {
+ return Z_STREAM_ERROR;
+ }
+ state = strm.state;
+ if (state.wrap !== 0 && state.mode !== DICT) {
+ return Z_STREAM_ERROR;
+ }
+ if (state.mode === DICT) {
+ dictid = 1;
+ dictid = adler32(dictid, dictionary, dictLength, 0);
+ if (dictid !== state.check) {
+ return Z_DATA_ERROR;
+ }
+ }
+ ret = updatewindow(strm, dictionary, dictLength, dictLength);
+ if (ret) {
+ state.mode = MEM;
+ return Z_MEM_ERROR;
+ }
+ state.havedict = 1;
+ return Z_OK;
+ };
+ module2.exports.inflateReset = inflateReset;
+ module2.exports.inflateReset2 = inflateReset2;
+ module2.exports.inflateResetKeep = inflateResetKeep;
+ module2.exports.inflateInit = inflateInit;
+ module2.exports.inflateInit2 = inflateInit2;
+ module2.exports.inflate = inflate;
+ module2.exports.inflateEnd = inflateEnd;
+ module2.exports.inflateGetHeader = inflateGetHeader;
+ module2.exports.inflateSetDictionary = inflateSetDictionary;
+ module2.exports.inflateInfo = "pako inflate (from Nodeca project)";
+ }
+});
+
+// node_modules/pako/lib/zlib/gzheader.js
+var require_gzheader = __commonJS({
+ "node_modules/pako/lib/zlib/gzheader.js"(exports2, module2) {
+ "use strict";
+ function GZheader() {
+ this.text = 0;
+ this.time = 0;
+ this.xflags = 0;
+ this.os = 0;
+ this.extra = null;
+ this.extra_len = 0;
+ this.name = "";
+ this.comment = "";
+ this.hcrc = 0;
+ this.done = false;
+ }
+ module2.exports = GZheader;
+ }
+});
+
+// node_modules/pako/lib/inflate.js
+var require_inflate2 = __commonJS({
+ "node_modules/pako/lib/inflate.js"(exports2, module2) {
+ "use strict";
+ var zlib_inflate = require_inflate();
+ var utils = require_common3();
+ var strings = require_strings2();
+ var msg = require_messages();
+ var ZStream = require_zstream();
+ var GZheader = require_gzheader();
+ var toString2 = Object.prototype.toString;
+ var {
+ Z_NO_FLUSH,
+ Z_FINISH,
+ Z_OK,
+ Z_STREAM_END,
+ Z_NEED_DICT,
+ Z_STREAM_ERROR,
+ Z_DATA_ERROR,
+ Z_MEM_ERROR
+ } = require_constants3();
+ function Inflate(options) {
+ this.options = utils.assign({
+ chunkSize: 1024 * 64,
+ windowBits: 15,
+ to: ""
+ }, options || {});
+ const opt = this.options;
+ if (opt.raw && opt.windowBits >= 0 && opt.windowBits < 16) {
+ opt.windowBits = -opt.windowBits;
+ if (opt.windowBits === 0) {
+ opt.windowBits = -15;
+ }
+ }
+ if (opt.windowBits >= 0 && opt.windowBits < 16 && !(options && options.windowBits)) {
+ opt.windowBits += 32;
+ }
+ if (opt.windowBits > 15 && opt.windowBits < 48) {
+ if ((opt.windowBits & 15) === 0) {
+ opt.windowBits |= 15;
+ }
+ }
+ this.err = 0;
+ this.msg = "";
+ this.ended = false;
+ this.chunks = [];
+ this.strm = new ZStream();
+ this.strm.avail_out = 0;
+ let status = zlib_inflate.inflateInit2(
+ this.strm,
+ opt.windowBits
+ );
+ if (status !== Z_OK) {
+ throw new Error(msg[status]);
+ }
+ this.header = new GZheader();
+ zlib_inflate.inflateGetHeader(this.strm, this.header);
+ if (opt.dictionary) {
+ if (typeof opt.dictionary === "string") {
+ opt.dictionary = strings.string2buf(opt.dictionary);
+ } else if (toString2.call(opt.dictionary) === "[object ArrayBuffer]") {
+ opt.dictionary = new Uint8Array(opt.dictionary);
+ }
+ if (opt.raw) {
+ status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);
+ if (status !== Z_OK) {
+ throw new Error(msg[status]);
+ }
+ }
+ }
+ }
+ Inflate.prototype.push = function(data, flush_mode) {
+ const strm = this.strm;
+ const chunkSize = this.options.chunkSize;
+ const dictionary = this.options.dictionary;
+ let status, _flush_mode, last_avail_out;
+ if (this.ended)
+ return false;
+ if (flush_mode === ~~flush_mode)
+ _flush_mode = flush_mode;
+ else
+ _flush_mode = flush_mode === true ? Z_FINISH : Z_NO_FLUSH;
+ if (toString2.call(data) === "[object ArrayBuffer]") {
+ strm.input = new Uint8Array(data);
+ } else {
+ strm.input = data;
+ }
+ strm.next_in = 0;
+ strm.avail_in = strm.input.length;
+ for (; ; ) {
+ if (strm.avail_out === 0) {
+ strm.output = new Uint8Array(chunkSize);
+ strm.next_out = 0;
+ strm.avail_out = chunkSize;
+ }
+ status = zlib_inflate.inflate(strm, _flush_mode);
+ if (status === Z_NEED_DICT && dictionary) {
+ status = zlib_inflate.inflateSetDictionary(strm, dictionary);
+ if (status === Z_OK) {
+ status = zlib_inflate.inflate(strm, _flush_mode);
+ } else if (status === Z_DATA_ERROR) {
+ status = Z_NEED_DICT;
+ }
+ }
+ while (strm.avail_in > 0 && status === Z_STREAM_END && strm.state.wrap > 0 && data[strm.next_in] !== 0) {
+ zlib_inflate.inflateReset(strm);
+ status = zlib_inflate.inflate(strm, _flush_mode);
+ }
+ switch (status) {
+ case Z_STREAM_ERROR:
+ case Z_DATA_ERROR:
+ case Z_NEED_DICT:
+ case Z_MEM_ERROR:
+ this.onEnd(status);
+ this.ended = true;
+ return false;
+ }
+ last_avail_out = strm.avail_out;
+ if (strm.next_out) {
+ if (strm.avail_out === 0 || status === Z_STREAM_END) {
+ if (this.options.to === "string") {
+ let next_out_utf8 = strings.utf8border(strm.output, strm.next_out);
+ let tail = strm.next_out - next_out_utf8;
+ let utf8str = strings.buf2string(strm.output, next_out_utf8);
+ strm.next_out = tail;
+ strm.avail_out = chunkSize - tail;
+ if (tail)
+ strm.output.set(strm.output.subarray(next_out_utf8, next_out_utf8 + tail), 0);
+ this.onData(utf8str);
+ } else {
+ this.onData(strm.output.length === strm.next_out ? strm.output : strm.output.subarray(0, strm.next_out));
+ }
+ }
+ }
+ if (status === Z_OK && last_avail_out === 0)
+ continue;
+ if (status === Z_STREAM_END) {
+ status = zlib_inflate.inflateEnd(this.strm);
+ this.onEnd(status);
+ this.ended = true;
+ return true;
+ }
+ if (strm.avail_in === 0)
+ break;
+ }
+ return true;
+ };
+ Inflate.prototype.onData = function(chunk) {
+ this.chunks.push(chunk);
+ };
+ Inflate.prototype.onEnd = function(status) {
+ if (status === Z_OK) {
+ if (this.options.to === "string") {
+ this.result = this.chunks.join("");
+ } else {
+ this.result = utils.flattenChunks(this.chunks);
+ }
+ }
+ this.chunks = [];
+ this.err = status;
+ this.msg = this.strm.msg;
+ };
+ function inflate(input, options) {
+ const inflator = new Inflate(options);
+ inflator.push(input);
+ if (inflator.err)
+ throw inflator.msg || msg[inflator.err];
+ return inflator.result;
+ }
+ function inflateRaw(input, options) {
+ options = options || {};
+ options.raw = true;
+ return inflate(input, options);
+ }
+ module2.exports.Inflate = Inflate;
+ module2.exports.inflate = inflate;
+ module2.exports.inflateRaw = inflateRaw;
+ module2.exports.ungzip = inflate;
+ module2.exports.constants = require_constants3();
+ }
+});
+
+// node_modules/pako/index.js
+var require_pako = __commonJS({
+ "node_modules/pako/index.js"(exports2, module2) {
+ "use strict";
+ var { Deflate, deflate, deflateRaw, gzip } = require_deflate2();
+ var { Inflate, inflate, inflateRaw, ungzip } = require_inflate2();
+ var constants = require_constants3();
+ module2.exports.Deflate = Deflate;
+ module2.exports.deflate = deflate;
+ module2.exports.deflateRaw = deflateRaw;
+ module2.exports.gzip = gzip;
+ module2.exports.Inflate = Inflate;
+ module2.exports.inflate = inflate;
+ module2.exports.inflateRaw = inflateRaw;
+ module2.exports.ungzip = ungzip;
+ module2.exports.constants = constants;
+ }
+});
+
+// node_modules/@lit-protocol/wasm/src/pkg/wasm-internal.js
+var require_wasm_internal = __commonJS({
+ "node_modules/@lit-protocol/wasm/src/pkg/wasm-internal.js"(exports2, module2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getModule = getModule;
+ exports2.ecdsaCombineAndVerifyWithDerivedKey = ecdsaCombineAndVerifyWithDerivedKey;
+ exports2.ecdsaCombineAndVerify = ecdsaCombineAndVerify;
+ exports2.ecdsaCombine = ecdsaCombine;
+ exports2.ecdsaVerify = ecdsaVerify;
+ exports2.ecdsaDeriveKey = ecdsaDeriveKey;
+ exports2.sevSnpGetVcekUrl = sevSnpGetVcekUrl;
+ exports2.sevSnpVerify = sevSnpVerify;
+ exports2.blsCombine = blsCombine;
+ exports2.blsVerify = blsVerify;
+ exports2.blsEncrypt = blsEncrypt;
+ exports2.blsDecrypt = blsDecrypt;
+ exports2.greet = greet;
+ exports2.initSync = initSync;
+ var tslib_1 = (init_tslib_es611(), __toCommonJS(tslib_es6_exports11));
+ var pako = tslib_1.__importStar(require_pako());
+ var moduleBuffer = "";
+ moduleBuffer += "eJzsfQmAX1V1939fZv4z8599TfLmzSSZJDPJ7EvINpOEECBsARUMhplkBhkg0SRu3zcMURCDCqYVFdRaqKi4tVRbpdoqUhfaqkWr";
+ moduleBuffer += "VguWtFXBtVGsdaH43XPPuefed++dybAY+kmCznvvvvd/795zfr9zt3PujY0fvDoei8XiDyU3XZa49trYZclr4a84jV97WRz/YKI4";
+ moduleBuffer += "TV0rb6avxWMMki+L74/LP/svi4n/Z65VN9Xz4pi4dr/6lbiKiZfLD+wX752Fj+3fL/9Awn6ZTm8RD2evVS9UZ/K9s/C71H7xtMyD";
+ moduleBuffer += "ONu/H14bk5+UL5OZmrksPiPel9h/Lb5cfCi5X34pjin7Iasx/CC8M48fmZ2dFU/Oyq9l4AqusTizIA1xVXqt/ieeksWbFXcx77Mg";
+ moduleBuffer += "Q/kb+dMcZJWzKz6yH38Iec7gPXlHXGMJZIlkUlL9Kskp1147I+U5A3JJ4SEN+ZeXs3R5DV7CIfGBiuHkKyYur9m9+xUTV+zbe/nk";
+ moduleBuffer += "vt2TBw7sP7B73+QrYlVwq9a4dfDQgSv2Xb778slDsQr7Z1ccpNuxvOfW/onpyT2H8FajcWv64MvHr9p91f79Byd3T740thju1xn3";
+ moduleBuffer += "J/bvv2pyfJ/8ZN7Ozr6XXT0xecCfnfGDdDu2BG4tgluX796JBZgY6e/pnRoeGhmZGh+f6JvEn3teDVII5pACSyj67uHh4Z7uvVOT";
+ moduleBuffer += "E/3dvT0j3b34bnpmz4FXveTQ/t09e3umenuHe/vHB8e7h7v3xErgmcX4zEsO7N8zefDg7v7xod7h/qE9ewa6+0ZGBibwoSX40Msn";
+ moduleBuffer += "Dxy8Yv++g7unBocHBwYHJgeGB/fuHekbwKea8al9+/dO7u7p7h/vnZoa3js4Od7dN94b+diByZe+7IoDk7v37Bkf6Z7oGR/pH+/u";
+ moduleBuffer += "HRAfKzU+dvXBzZjvyYnugcnB3omBvu7xnoHuYXzVUnrV+L69+68+/Yqrrtr5qn17dg/sGdkzMjAwPj4wODHY3T8Sq4Fnl+GzQmUX";
+ moduleBuffer += "yMefN37VyyYP7u6Dx8bHByf3Tu4ZHurfgw+T0K6a3Hf5oRfvnurtGZqYmJgamhye7N871Y94aKKSTr5id3df/9RIT9/k0GDf4OTI";
+ moduleBuffer += "8BCWIeAH9u0fP3D5wd094iP9E1O9kxMT4+NT/X2oRCWxyVce2t3TN9E/NLR3vGdyfLxveGQIi1kXRfTUy/btOSRUgNloIbVAcXb3";
+ moduleBuffer += "jk8Mj/eMDO8Z7uvf0zs4HtHcFYcmD4wfEgwbHBnYOzgyMt7fv3ewVzyI2aV8HJy8amr3hCiO+H//3pHJ7v7u4X58gqTyCpGV/a/Y";
+ moduleBuffer += "PdAr1D7VPbS3u29q78DUMD7TSmK+av/E+FUXvlhkt3tgT0/vyMRU39DUnqmeicnIu/C53X2Te0S2Jya6RyZH9vSr79VHy/2yfXsn";
+ moduleBuffer += "p67YN7k3In+h0N0D/T0je6YGJ0YG+sfHe3r2xlqNBw6KB/p7ByaHuqeG9gz2j+8ZGeyNhUaJpw7sv3r3SM/44ND4wFR3/56R4fGB";
+ moduleBuffer += "/ghWrzg4euDA+Kt2D06Bfqa6R8b3Tgz2TAxgRrrooX0HD43v2zO5f2q3fHrsZVNTgshD/SP9AwND3ROCcr2Te4bwN/TpPeNXXbV7";
+ moduleBuffer += "fGRyqn9wcKi3Z1IQc6o3Vms/0TcxNd7bPzwg8DXQ2z/UE2uzgTPRPTjZ0zOwt2eiu2eyp3siQsa9+/dN7h4Z7psYmJraMy5wvmdg";
+ moduleBuffer += "uA/z0a4KuHN8anL7vkOTl4ssT4zsnZoSWZ7qFrTs6e7GR0kWk/uEtRHE2dPdK2C/d7Kvb2hv3+QkkZvUOoFlF9ye3DsgJNs3sHd4";
+ moduleBuffer += "vHcvPtPDvHjFFYdePPGqQ0JkU0JLgpZEuKHJvsmJoeGh3u7h8amhvu5YnUW4qUmB7p6eyYmRnuHuqRGyPZ2OIi66Yt+hYdTdXgHV";
+ moduleBuffer += "wZ5+YZN6+ien+gYj5ae8qM8P9g/2jg8ODgIq+wemYu0Giw6+bGJcvnBkaGC8e3BqZO/E3h7BpgHMZNRyjPQO9O/pn9jbNzEy1du3";
+ moduleBuffer += "J2o5AJiiHIIVwz0TewaGBI1GYkstaE9ODfcODwpLPdi/d7y3h8BhMmPv5MTLLlc1oDT5RePuoRcf2P+KWAySK43kqyev3n/gVYat";
+ moduleBuffer += "VTTbd4X45iuFpdh3YHJq96HxiasmY8uSj+V/mo/H4tAui8WTSXEWTxYKsYI8EcmJONyD/2Uy8SykxrPxRDqbScTkz+Lx5el6cTfe";
+ moduleBuffer += "EEunxDsysYT8l4ZbmUR1WjyTjqXj6UQWvpFJx6rjmbJYR0z/Ex8Rf8WHMg2xWKM4L4j/x4uJeGJFLC7+puUTkI2VcfkvE5P5jMcT";
+ moduleBuffer += "CchhAnKXkI8U4vLGqpj4YiYLX4zHU/DLTDwmruXNTFz964QsxlLxGDwSh4/iz2UhE3gl0ouQR1H8RDwp8iL+ZZPxLiEPuJuEZ5KN";
+ moduleBuffer += "IrE6IQuTlL+OSfGAzPQ/EEwSRQk5EgWLrZZvjqeg8ImsOE+LIqWgKOVrEkKU8Ux3Bn4gEhLi++KBHvhlJpsSX8/IJ7Lw4nQimdDy";
+ moduleBuffer += "TKJUU+K/GMhAFAUVmxVXICOUgMh6NpPNiF+Kz8pyJTNpWSjxjaamFJYQZAffB2xIccn8iCzHMpC1FH5LqiCZgNtSmcmU+HYSHs7C";
+ moduleBuffer += "/ZTKmvhNCgojpQOp8WxaCiaTSgo9gjrhM2lIiiMoxQuz8WR5Wv4KrsS/rBCSKEwsLX4UyxQy8NNEPJUSnxWiTMXlJ+Ip0HcSsgbi";
+ moduleBuffer += "F28rgxIk5CtEFsVvE1AMOI8Ve1OQaShxJp7qQzyWgzL65VP4aQmLhFQHFAFKm2xuHhgUYoxjGVMSnImh4ThmXwgzKWXa0gKMSENq";
+ moduleBuffer += "Uosjlo2JLKcKIqspKTopfFCNlH08nUnFpB6k1FOk3US2fiRRKUpZDuXLFteu25CCUoAAM/FEKpVIin9CiKlkPJlKJstEksgYoE9o";
+ moduleBuffer += "LgW4ESoT6WWpcpEbcQpUSqdAVolsGXwiLcUEb5JmQXxH4CQBVE7I0ov3i1cDikQWk5JVSRB/UrwrKaQm/peCvyn4m5BvwqMUEibE";
+ moduleBuffer += "8D4CDqgkkyEr8PKEpEuC/omv0xsE2tMxTpf34B9AXIonGZPKhUKQnEXW5SNJfFR8IlWaeEn8J+K//bHD8bSQdlUmL/poo4cP3xsr";
+ moduleBuffer += "zb41WZtBK5qItU3u2XtwfPP+q4UZnRzdt/d5kweumHrV80WNskWcvXxy71mTr4r9dabW+1js65mCeSP2X5lSeU2335ktl5f4KnjT";
+ moduleBuffer += "LzLFg5Mv37nvJdsmDz1vz+SVFx24KvbfmQKm0a/+LlMycdVB9crXZ/Piim79URZubd0nuwSxX8oHt0zi1Ruy6csPTIpuzY+zkepC";
+ moduleBuffer += "tEL274ndkK4yEg9MYuqD6WqzE/fKl+w/cGh3bzwuKimrJtmNP3h/vNG9tZfe9rFEhfG2KZGZ2CdzkV7iK6EjtP/AZOwTWbOmE5X+";
+ moduleBuffer += "gUOxofzDQlOj8dIfx7+R+dfc/fl/zry35B9yP4v/Sf4mUYl9N/dE4ou5YzlI+0X8aP496TtKPpt7Q/xI/sH4l5I/yf84D3f+O/5W";
+ moduleBuffer += "ebw1/7b8L/L/lf9Z/j/zx/OP5X+Y/1H+5/nb8l9I/rG4/8XcI7nH8/+euzP/eP6ukjcmP5v8efqx9CPJG+LvT383/Y38+zMPZr6S";
+ moduleBuffer += "eTT7j/lPJe5J35V5NP2u/LH04fT70h9O/kvyS4mH07fn7xDv+a/cE/H35z+Qf138E8ljmb9KX/3l+OP5r+e+kYPXfi755fwH859I";
+ moduleBuffer += "fy/9scx7Ml/K/Gn+z/PfyTyc/7Pkkfgj6YeSf5P8XuZT6Xvzt5fck/tM/r78NxKQ8cfjx/JfEK/8Uv5f8r9O3xj/fubT6fdnHsjf";
+ moduleBuffer += "kTyW+1L68fTr4z/MfCZ94W0l/5z/ev5rIhevyf1T/kuZD6S/lf9m/t8Tfxf/ceatubflbs5dn/tFFv77Vfa/s7/Mvjf1a3H8QfaL";
+ moduleBuffer += "uX9Jv6/kP3K/TN6Qe33+c/GHEz+N/2vuA5lv5l+b+X7qTSLj9yWP5v4t/53c+zMg7Y+n3p57KP2N+L/nv5p5PPtI7l9zt+W+l/tO";
+ moduleBuffer += "7ru54+lHc1/N/yb7cPINie8mHs+/PffT9Nfi/5H/Tv6B+I3Zv8n9de6zue/nfpD7Wubvkm/I3xL/dvp7+ZKbP9D+0/zHXxq/OT4b";
+ moduleBuffer += "xILEQEI054M4HFKzYWbsc/d8+rPls2O/Ff8qrgsrxx776i3fK8yGNZQSZOhkZiw4Ar9Ohc2B+GFW3w+OzIRV6qmgcuwHH7n7kfLZ";
+ moduleBuffer += "MDf2BD5RI58oqifCvPqpzEYqzMyGZXyzxspQtcpQqfpVjZmhTNA8G5arW2XyS2X6SXEpMvTrL9/3OZHltMpQTqYX5cM59bAoWi6s";
+ moduleBuffer += "gaKpnAZZ+VyVfK6CC5iX13nOcYHvVKui16ovlcpnS/nZkkjRc2F2Nqzjm1VW0etV0RvUr6rMomeh6I3qVp38Up1+ErJerYq+RmWo";
+ moduleBuffer += "VqZHsyWEWDMbtqmrcvmIJcoCifIj73j03jRInN6XlulSoEK+WpSFsApEqWSDwg4qTiDKxXynRN4p4TstfKdeCXmRykODfLaBn+2O";
+ moduleBuffer += "CLkQ5mbDdr5ZtIRcq4S8RGfVEHIOhByoW+3yS+3RQtUrIS9VGVok06PZEuqqgTzTVaN8BJXGOmwhpZGQW9T71viVVgV6pas2Q2ms";
+ moduleBuffer += "ycWktIcffOiOilmWLmlYqk5zRyitGBYDyZOI0v1KY9SHy+ZU2nK+0y3vdPOdDr5Tq9S5QpV2iXx2CT+7MqLOYpifDVv5Zpmlzjql";
+ moduleBuffer += "zlXaJhjqzIM6O9WtVvmlVv0kFLdWqfNilaEVMj2aLQGMGsgzXQXyEQseHQQPUmeg3rfUgMdSDQ+hTiUWQlBjFB7LZWImKBo4QmhI";
+ moduleBuffer += "7WswLCO9v/odN32yMGvjQWpfg0HovSYsA70rRRKpKyKknkE0aBxoblcrgCl9E5ARsC1zwqNnTnjs4Dsr5Z2VfKeX79Qp4PQpua6S";
+ moduleBuffer += "z67iZ/sjwKkJS2fDLr5ZbgGnQQFnQLPEAE4pAGdY3eqSX+rSTyKZCTgjKkN9Mj2aLQHBGsgzXXXKRywg9hIQCTid6n0X+4FYBVj9";
+ moduleBuffer += "rYlVC4g7ZGIWgMOI7TAQxrDrIYSVzbJyCIproghT1YG81GY+XESGaHHUEAmMNYSVgDGG3TLDBmkLYtkaBoLAGIFZAYDY0HICjDEk";
+ moduleBuffer += "6xVI10Y5K8nIFt6F4lK+Y0PxHL7TL+/0853T+E6DAuk6pcMB+ewAP7s+AtKGUDw7yDfTFkgbFUg3aKoaIC0HkG5Utwbllwb1k2h1";
+ moduleBuffer += "CKSbVYbWyfRotgTcayDPdDUsH7FAfxqBnkA6rN434gd9FfDityYvLNCfgy0JACmz42IfmpcSmstmtfVE2HdE0azsZaVhmXoMNDMX";
+ moduleBuffer += "kB+LJKrDi2cUirWFE/htCdOAX8uWLovYUoVfxrNmUbWiikJ0eA7R/EQIZsDXKwooeAVr5QsCL4LX8gu4OVSrKLAlan2sCtcBeiff";
+ moduleBuffer += "sYF+Lt9ZL++s5ztb+U6josDpCiEb5LMb+NltEQq0hNWz4Sa+WWFRYI2iwBnqV2wtgALVQIHt6tYm+aVN+km0eUSB81SGTpfp0WwJ";
+ moduleBuffer += "MtVAnulqo3zEotRWohRRYKN632Y/paqAdb81WWdR6lyZmAcKMPdGfFzpJK6UGY2ZPh9XuokrlQaplhpcYQIhFtNBZtbmj6SWTSBg";
+ moduleBuffer += "SrDIoJBgSBBWAEMY8mZNoBmyzGIIw/scScNwhwDsCTnBlqRe0UoZ4/BcMkw2K9ZarGAS1SpaKcgGWxbECiZRnaLV+VF7aTVHHPIM";
+ moduleBuffer += "8x2bPBfwnW3yzja+s5PvrFG0OlOh7gz57Bn87IURWgVh/Wx4Ft8sWLRqU7S6SFfxBq3qgVaXqFtnyS+dpZ9Em0q0eqHK0JkyPZot";
+ moduleBuffer += "QdAayDNdbZePWDTdSTQlWm1X7zvPT9MqYPJvTSZbNL1AJpYCrZjPm338Gyb+lRlNvXU+/m0h/lUaRO00+MekPI1olTWsdp/R7mD+";
+ moduleBuffer += "jVBdVWEQFZtoy6P862VSAv+Yq4J/7WEB+MeU7DH4p5vac/IPOBd0u6wb4UfZeJ0rK+vwHGFoTsgzpkmtoqqqNMILyIAi03SNYTON";
+ moduleBuffer += "m7p1iqqKBsH5C2IaE7NBUXVX1K5bjTKHkBv5jk3IS/nOhfLOhXznRXynTVH1eQrJF8lnL+Jnd0eo2h7WzobP55slFlUXK6pepn7F";
+ moduleBuffer += "hhFUWAtUnVS3ni+/9Hz9ZCC7i0TVcZWh58n0aLaCmqAe8kxXl8hHLOq/iKhPVL1Eve+FPupXBdVgHX5rWgeL+pfKxHKgKtuI83yc";
+ moduleBuffer += "3kicLjMavKf7OH0+cbrSIP+wj9NLiKo5h/ydUU5voTq1wiD/aT5ObyZOFxzyeznd4eF0R1gCnGaSYjtXMpuJ7nKaq2DF6T5+dGQu";
+ moduleBuffer += "TgOPg3bNV5fJbGQvkA2V8FzBTGTwPNxl6tUp+qvKLbyUDP2J2Mtkb1D0V9QKdi2IvUz2RkX/qWj9YzVIHZJv5zs2yS/nO7vlnd18";
+ moduleBuffer += "58V8Z7Gi/4Rix2Xy2cv42Ssi9O8I62bDPXwzsOjfoug/rVVn0L8O6H+lurVHfmmPqWTIENF/n8rQhEyPZkvQvxbyTFeT8hHLnLyY";
+ moduleBuffer += "zAnRf1K9b9xnTqrAnIyrq+f5zMnlMrEIdoLtzgt9dgL1VhaUG439M312YhfZiUrDoGz02YmdRP+8Y1AsO3E+1f0VjkGx7MR5ZCcK";
+ moduleBuffer += "jkGZw06UOAbFshM9fjuRAkvRGZptb91KmM9OsFnpO6GdYAO2hezEZn50zhofbEOwZD7rwCblUtlIC8+HvveJ7IEyIEGDMinKQoQv";
+ moduleBuffer += "pArpSVgEMimqHg+mFmQR2AKtcUzKJZ6qzzUcl/Ad23Bok3KFvMOGhM0EjBmQSdmvGDctn53mZ18SMSmdYcNseNWcJiWpBNmkUq4O";
+ moduleBuffer += "kkoyo7I8o/w+VWAnnYyASn9CpZOxcdKpCE46mTeZHr5U/j0g/x6Ufw/Jvy+Tf18OCLs6aALsNM2EyZnwakgRx1fQ8ZV0fBUd/w8c";
+ moduleBuffer += "m2YEZ4REktwsgqsmmRElgqDgSavwpKU9aZWetDJPWtGTVuVJq/GkNYChb5ZpzSrtKikVmRji/AKmyJ+G/1f+nZF/r5F/Z+Xfa+Xf";
+ moduleBuffer += "w3F5eHVcSkq+NxXURYQkrkJ5I9RCctMqPGlpT1qlJ63Mk1b0pFV50mogDad8efL6SnmJtSBOQ9dRjQh/5V18TfgaLP51eLgeD6/F";
+ moduleBuffer += "ww0RmdRGZCKuVssbq7VM3LQKT1rak1bpSSvzpBU9aVWQhvO+ap6YKnastXEeu5ZqcPgr7+JrwtdhUY/g4UY8vD5S8PpIwcXVkLwx";
+ moduleBuffer += "pAvuplV40tKetEpPWpknrQhpOO/K0/TY2sCmBE7q149hswL+yrv4mvANWKw34uGmSOmqI6UTV2PyxpgunZtW4UlLe9IqPWllkIZT";
+ moduleBuffer += "jjzLjo0ibOvgXG61/Isp8i6+JrwZi/CmSBHKI0UQV2fLG2frIrhp5dCQsdLS3udEE6pSplVGW2HY4pK3QpxbxBR5F18THo3kszSS";
+ moduleBuffer += "T3H1AnnjBSqtFNpMTlqFk5aG38pZxoCnxbEViI07nIDEOSZMkXflazgzeSMzeWiD7ZU39uq0gidNZEbOgwfszIKtSmws4hQ5TgZg";
+ moduleBuffer += "ykbzkznjkznPJ3PwSXRSYfcUbItiExPdLXA+ttN8cdZ4cRZejB4s7KuD7VRsfspbYYn584zxc2ypYgM0pR+6mBqhxoQLNSvpJdEW";
+ moduleBuffer += "qHod3ZZvmuHmJrgOBTv0j/Tz2uuIWqLmz9mJhst1mu9j+rX4O/m5GdnahgZslo5SAufMGF/kMpS4+cpy0lo7X/R+bv/z7BHrcMtC";
+ moduleBuffer += "sqkzgi8kHarGdI6OBTrK7J87Y2Qs42Y/ZefJKFGOk1b6S0QZ4F4R94TUxIvmwHlPpYA664RJRD50A6Cbk6djBR3V1IMs+PkzRv6z";
+ moduleBuffer += "bsEzbsFTdvYNWbAnEnU65pAF5ZDtEPcsuTfJLjRsly6wRJN/KqLRhSUbgMbvhbL3GqZFhqnrI4WVJGElFc1F74qOULAgrc2mYWiS";
+ moduleBuffer += "rjwXufKcF1t5V8TrTyxPEomoKujXXPdwF5+79ey1xHXRLku+pc+EfDUgyKRjBUgeOdpahuU0crmBaxxRYUJpwwrZLSmfQx+Npj4q";
+ moduleBuffer += "dNVqyDDpqqjRVdHCIM8uLRqX2r9n20JVRLJ9EyvqZj7j1g0P3/CQTTU3fNTJiyyVlf0uVKYhTs0BVOEajwrXqC4vukowh3FI4AxW";
+ moduleBuffer += "LbbKnq6CS10F510F51wFZ10FZ1wFp2y5G81MrfMLF6zzMkPzN7G+38hnb+AzbqvzWB+P79WrE267X2JhoPg7wYB2Ly6bBxNtHky0";
+ moduleBuffer += "zYGJNjUMYqXjMOlFFlbIIBNi6heOmPoTIIZVqhHDINKIYRBpxDCINGIYRNpqe0DEmtMg2r0AEBXngNLrGTY38tkRPnsdn3Evlwek";
+ moduleBuffer += "eRC6Vp1wr/dyC1RVzwiotAN78WmAbLEHZIvnANniOUC2WI21qXQaO9snLy/zgg87xQqChQgEa+eDYOEZgWDR1paBSg1BRmU9Jy0M";
+ moduleBuffer += "lWkbAzM4NzEnKqsWgM0bGH2v5bPr+ew6PnsNn/FYlDEBQyfsmc9jU1dYKK15SijlAhPKfzeobfGgtmUO1LbMgdqWOVDbouMzIun7";
+ moduleBuffer += "5eX0PGgm40mYro1gWmG5zofp2qeBaY7X0Jj2WFqNabZKHuM7L8y5waS7xyxLjoEJXjIHzGueJNhfzSA+zGfXqhM1UxBco05m1Mn/";
+ moduleBuffer += "VSc8MK3mGQIOfeDx6cCC/In6hzi8zYV1KFBjUcA23FUWBezWQdGigN1iLCMKOLj4Py4uXuXi4pUuLl7h4uJqFxcv5yS2Fi9zoXKI";
+ moduleBuffer += "kw7akp4JDrjo4W4uT9qYM8czwUujeiE4NT9lUAXSdozFWKDitEyf5vVpUZ/m9GmVPs3q0xp9mtGnzfo0pU9ViXFO6RppzASE49dd";
+ moduleBuffer += "g7NP10hzQSnSCl0jTQ2lSHt1jTQ7lCIt2zXSBFGKtIHXSHNEKfKT10jTFE2pdVJKnJQ6J6XBSWnUKbkj7xtteFkYD0rf99IgPnrt";
+ moduleBuffer += "wTARNL7vpQcGE51BLIgHZSI5ETTIlA6ZkpcpdTKlXaYUZUqJTAlkSk6m1MqUFplSJVMKMqVBpmRlSr1MqZEpNTKlQqYUZUpGplTL";
+ moduleBuffer += "lIJMaZYpaZmSkykpmVIuU1IyJSlTKmVKrPRdhxLvjc8mrm2LjXZfGd4Vb48Fd8VxTjMx9uqH3vyd2GzIDYLE2B1PfO9biVkyLEmd";
+ moduleBuffer += "/uuPfeZ/kjr9CZX+lq/c9hnf82/7w7+8vcyT/rm/+tDXU570Txz91b+Vet7/ha8e+26F5/nvXveLX/nSb7v/B7/0fffOj33++0Y+";
+ moduleBuffer += "H1fp73/zA1+KQzwAkE52qGnK72r5V7YIQ1mThlhTzDehGqD9jXckYuH746M3ffiHtyWv+rDgOE3JspzfH/9wyN9OGkZE5zSt8pgk";
+ moduleBuffer += "+6FNIU38ZpWU0M5o716ukGV0aEp9p2CYp+j8dV5lkPuXkTylVJ7qVJ4K1Hj4rZFFkTFqh1SpjGF1UkJGz9aR0RPCWitaTjv0U7cI";
+ moduleBuffer += "8koCZepD9dSkUc9WGhLIieKSBHRcjB0YUqIkUK0zZUggqSRQoyQQDbShIuSVBDh+FduE0ewJQVFDjvNfRfWyJSgCOdd0RUNQRUtQ";
+ moduleBuffer += "3FhIKflyq0FO2Vo6U2FsujWmJqBsGYICSd4cUFlNzUn17CJD3gUhXJI3t/6cMOlSJW9u9UTCpNNK3u1K3lYoX4aQZUeOqghQM3tC";
+ moduleBuffer += "LXZAaK1fLdTu5g5xmaGWMq0WskkciqVaSVirK6k1RNQk1ELaNFp1Wi263VFnqaU8ohaBRNIuO/ViG84OMq20Wl6LqP1hawzgQ9pd";
+ moduleBuffer += "pqSD3g5N/GxgaLcoVEna5ehUAdmodgtKuzzVkTW1m1Ha7VTatfy0stSMJO3uVBnDmLdo9gQISLuc/6U+EORUb4vdxmqp8Wppl2oi";
+ moduleBuffer += "pvBiaiNHtVu0tWuDQqo/UK4kUe02a2QS5Hjio8VAZsvcICAs8ajOkgWBoCYCAsEyG0vS+97imsKORgy6rLc7+AAwE5ZCJb2o85/h";
+ moduleBuffer += "dCcjSrMKS2v4gbq5gvjZL7/OxFJWYalbYcmKtFTGj7DEwa7o/GL5JpYqLHH+d/ogR21sw3HuQgKdgyZq71igU64kc6KJQNgfBaEV";
+ moduleBuffer += "qE/oMtBEEGcQykl7JxrIQRNhl0G4eh40MeRKFHY5vnyZh3ce0BF2OVp6yYJAZwVmZRzsYvxI1JK4YUwYtsUReUYgPa+LUBmJW9fu";
+ moduleBuffer += "nzoUTQaa5hR2dbipvQAFB9OzX2lkAYqcwu6Qwq7lfFtFxoCwy/FxOKYUzZ6AuB1J6g0TvRDnOncKu+CilVrtVqhbrRetDOmUAjkH";
+ moduleBuffer += "TPUvDK1EIuWZGo4QzE+IV2LHYlXQLgOvHKGOKDbxSuzgAOaVC8MrscOC+fx4FZaE2MEwDz2WxANrYgePhC4xYK2D6WxYd9oVKLGD";
+ moduleBuffer += "nSkwkDFqG+2AX+X3q4O3tQcwrxZQoYSOQRQcGKV9y2UMal6xY5QfsFcOqVLsYN/oyMohecWOMcUO9Ggd1U9DkXjVAA5zwyjVaPb0";
+ moduleBuffer += "KhIct73RRyJgRFAZ4QT1cNl9o8/LCcslPeVQ6cKFcGJEUie8UJjdOVig12RQrONYTiQP+mnpeNHVEVaooVbddAi3UBg08oDd0F0e";
+ moduleBuffer += "EOu2KgGuXBgPiHUWfU7IA2KdRR87qDTKA2EDiXVMH1+okhMXkFWs4ziDToMuOnzbpkt3tKmRU6zjiHF0voxadde7Hr0T1bSvZhK0";
+ moduleBuffer += "E4h11Uro0lNLL5CggzJkiGqJYp0OVLXX6Sgq1nHwRWSdjhLFurMV66wQk3JqwBDrLop0Ca3s6dUNdqjHtvvIqVjHfio83vS8KFtP";
+ moduleBuffer += "yDo/WU/AOhnlVWFyDb2XmLtJxWZmH4ab2rHZVkjMFkm+cLWoXcjbjeNBXHYRm7ly2rowdhGbVcxIuJVoeUJ+EZtXRvtWfn4xCQuK";
+ moduleBuffer += "zcw4XzPawy9is0XLaMCPs/4ELznCtNzssdnO2io5xWaOzes2aMiVm0PDoWjjK6/YzP4Y6IAcrYXsyKoZdKANlSOPZii0m4jN50QW";
+ moduleBuffer += "TmAmGoFhMoq1VLGZl4lwlmsqV2zmSKDIck2lis27FZvlEgn8QhrhKCo2X6YyhouJRLMnSE9s5vxf5CP9dpfNNKrMoWzPM9j8PJaP";
+ moduleBuffer += "w2YyAuNRI/Ck2dxns9m2Ev0LYTNQPqg2AqmIw1z/ppWVYL/GtQvh8Fbp1hquFdbgxKwlK8EhYiu9rI3GqamJU10HCysRGLzVzUiH";
+ moduleBuffer += "t2QlWqO9Zj9vmdy80AozeXhhvCUrYdHdWlHIXheEl49guu/w1DFOYGNeWQleImnIoDdXxg69xyL0F/UlWQn23EO//2itqayCtgUY";
+ moduleBuffer += "QKI8NDXzoZ1HVoLXT5NewczwGR1TKoNdC8pKcEicqCCjVqJMWQkOHucqFEBdUFZij7IS0qtMr1eBgxblzug2Li8UzZ4wJmQlOP+X";
+ moduleBuffer += "+YyJx0rQbBQH0KJ1wagNjvV3rQQZF/aYHH+GrITf+pzASvQ7VgL979nWpJX1YbvxgoVYCbAMQc28tsG2Pv5lWCzbgO2FcCUMB9id";
+ moduleBuffer += "Ssca2Nan1bAGuvIPI9ZBLzGj7IOwPh2GPdDNaccekPXhlQ2HF2YPyPpYZuSE9oCsj2VGhua1B6JOJOvDZuQcT51otxqE2SDro9bd";
+ moduleBuffer += "ocbFWdHGg2M2zo6YFVG/k/VhV2/pS2jV8nbY+QyGtYU6ZnaC75Qp67M3shQFWw6IGaVP6QWo6i17k1Aqh2nVcHKGHw03AM1RPRgg";
+ moduleBuffer += "wwHbCSVIJ53MiUrnqWGyRk46rxhnpZMNlOkyvhWjWzG2FSNbzRjPYEMwORMmZmQhAnGcpOM1dJylowz/VO2uWVF4UeYpaCqjOePV";
+ moduleBuffer += "uQrKUuHCTm06nSyNSn9CpZOlcJ4npjvpxE8nnXjkvJ8Q7zxP2HTSCWy4XhHP/spYUKoyClRxwF+MEcWV4Mzg2PliRdGJfiZIMJSE";
+ moduleBuffer += "YAkw8lbA4ixTgHHSCTAqnadiCTAqZpDSMXYMUV5GWIe/Mh1fQgGsiWBKAmKKFP+6OJ0cUSc3qhMZ+DmjutYEisthNARBcb5mMIFC";
+ moduleBuffer += "Ru0Hq3Q6gUKl84LIBArneQKFk06gcNIJFM77CRTO8wQKK1zwbMPe4ET02WR74C8uReCJGrUCMM93tF6utI7LRbC8yvViYVY6r6yM";
+ moduleBuffer += "go/M9GITBUfQsNeBKeejWi+Xar2cdHdUKfEP1MkfqpM3o1qLEbW+GIaWUa28LkKJUiuG8fXqdFKrSn9CpZNanedJrU46qdVJJ7U6";
+ moduleBuffer += "7ye14gJGHAGIlRW2aUuo7oG/Mh1fEt6CmnoLHt6Kh7dJkexy9FZUesN4IhZIUenNij3GJiS2DXFeAc8vRs28WGrmxST+XXS8Venj";
+ moduleBuffer += "NnXydlRMVUQxV8CMGCqG13rJK8XIgKpgvU4nxaj0J1Q6KcZ5nhTjpJNinHRSjIp6jSx1iI0M9P/Dc5mOLwnfgSJ/Jx7+SJZ52pF8";
+ moduleBuffer += "lZK8FcKOzRhsj+C842ko2yukbHeQBK+g4zQd36VE+8co2rqIaOtgPh1Fy67aOSVaGekTnKHTSbQqnVeRJ9E6z5NonXQSrRXZi6G0";
+ moduleBuffer += "2CpEd0psWGIKhh3djrK7QxbqSkd22LBULUQpnTopnToSwjAdr6TjnyjpvBulA21e8Z6sEgr3hbNKKBi/eIFOJ6GodHaZIqE4z5NQ";
+ moduleBuffer += "rIhkbORjPx4dVfBcpuNLwjtlZkMqdbBVlIy77FiKDjpupeN7VPES8vUrRe+CCsbD+BlVMAzcu1SnU8FU+hMqnQqGrjvshIu9H+yl";
+ moduleBuffer += "oGcTnst0+RIc5JgJKuV/cp2tShUvj10WDLx9L6pirehiUWZ5MDWtMvs+fOZ9cX2Hsms5z+MAL3bK0Hkez+Uo0FrMUE1Qw/0yHAvC";
+ moduleBuffer += "8Rsc9lkNS8BgPngOMjmHfyV2WbFrif5+cI5zNzNBNfcqcY4Gp+cvFF1f9t+EBPYuxNE17ADjrZ3UB8ceNY7BYz8a3VRUb7iCfkkv";
+ moduleBuffer += "0q7PzcbLPAHAffo2vYM943RPOaWloJK6jN9ZIlnt/k7P0W60f2d/VQ+08wsb3RfqEKxFzgut4Iu17gub3BfqsIJ2/wvtfOrlD9Oa";
+ moduleBuffer += "EM6Xlrhf0n6Sy+b4ksWz98bdT610PxW4n9L+Q8vn+5S9uMWd+oOciQvcPGxx89Dq5kFH53fOmwfLOibcLLzHI4etbh463DyEnIQD";
+ moduleBuffer += "FYknk5M7PNK43ZOVM9ysdLtZ0WOoqoRGGP/Ak8/duz25+xNP7q50czfs5q7OzZ097LKA3NnV/B/p/HC+3+nJ9zs8+V7v5nuzm+8h";
+ moduleBuffer += "N996QYNNTzXff+zJ97s8+Z52s32Fm+0dbrZPc7Ot/RRHn1y27UVZ3qYzygV6q6dAb/EU6BaPInrdEp3jlmjMLZEOETvz6ZXo7Z4S";
+ moduleBuffer += "3eYp0a2eEu1yC/Rit0AXuwU63S2Q9t8+66kUyO7IvUlnl4t6s6eoN3mK+kZPUd/gUd4qt6znumU92y2rXiXj+c9EWd/sKesfesr6";
+ moduleBuffer += "B56yHvWU9XK3qOe7RT3PLap2RNC7AHHS7qdeVHuQ5bU60yyE6z1CuM4jhNd4hPBqjxAOexTe5kphjysFvRQjK1xHGUw8c1J4vUcK";
+ moduleBuffer += "N3qkcMQjhdd5pDDlCuEGjxC2uULYy0k8oaabyobrmEp6+dMVgj3kqoMZWTqHXOEcdGVzwBXNS13JvMSVzH5XMPtcwehQTEYHr5oZ";
+ moduleBuffer += "8Jqf0rtdi+eZFMy1rmBmXcFc4wpm0hXMBlcwM65g/q8rGB3cqmJajS6Pimk1EMO0WaclRPdk6V7xzEmKo13GYiy0aIBpiT41AkyN";
+ moduleBuffer += "qFIjlNSIH03r06Q+NUJJVSFVKKkRqEmhpFVjdihpccwOJTXCTSmUtGzMDiU1glTlJyPhppRS7aTUOCluuOkGJ+VFQb2Esyjgi/TN";
+ moduleBuffer += "w4cP5647L4w3b0h0QrTlhqAQwEUHXNQGpfKiHS5qghJ5EcBFdZCXFy1wURHk5EUDXFQGWXlRAxdlQUZeFOGiPEjLiwJcFGG1WnGR";
+ moduleBuffer += "g4uqICUvUnBRFyTkRSyA8M/icUgc7Z5uj5V+dDyxfzZO4aEH2mPBAdziMotbXJbp8DO9zC1oIezAzSxDWEKeOYMDjNqnStWLYWmQ";
+ moduleBuffer += "xIVTeTopi+GJVbNGzBn0mkXGQyNUspzgzGSBiL5y+Ch3orHBjd0eXiaiLfI1Y+dINWOudmbD8cRwSDM/LAZpzGx7JLM52AlR7zwl";
+ moduleBuffer += "1wPJQWY5yAjz0GxmthAOQGbZ0w8HADAOiEtQqragY0dkuS0Hjx6nqA2L7Nf2DDnOBYPLdYYwLWsSsss9fCzcoOf2wrogPxOxD1ji";
+ moduleBuffer += "QthmxjfI9QbDoM3Yl9L2bc0F5UYAHTqF4uBRdSSfuF1ie2DGKZqRbCyvDhUNrF23zUX2Lf/tqmDA2IgGx+DRXK6fS2zFGVyr0ZBc";
+ moduleBuffer += "SksObrCPiJ6tV5ZPqRBH9MLTdV0Y1gcVM2ScTZEWw+SssdcmzC8K1obGyKrtuVIOAudRcKzwLOcFnMaRo3h1oIMBQ0M4A2ZFw6WU";
+ moduleBuffer += "DmrCFOiANaZWjIjooJSmKXBQeR7ht8+ysMiBFWcwtlrCZzkOqRFXmHBU2tWOZbZi9ArkOrS0UuvElLbhIqRacCE7v0OtGW7WVXbY";
+ moduleBuffer += "HJSgsrZFlFUTpmeNQEgYahP2NjT2Q7M99pJBubG7JLrnWRuZYlCN5FK9oCAoiyFyhk+7OLC2QU0aaaddY28Q3A81BxpojEKlmmr/";
+ moduleBuffer += "CCfkhoJyo57KKE4czXcIqZPiay3Fax8sMFYcdIYhjPbGFudEqCSqKpxg7ozgQWlc70Gpda9jtvTWpjxaqeOb7JXm2TNLuTyFvJUc";
+ moduleBuffer += "tIvCLbqpGK4IqhEFyyIoaICdL3k8OoTRPyGY0PDzj4YazeACwOzejvuAWTGEGLMk6d8MsBkwPEW8+9+is9XpQYVCwXJGAeMNvTrb";
+ moduleBuffer += "AAXsoZ3xQQqjiuoIoGdE7RQGP8hldtkoNVI7O4KldQpLLWFFUGYYqUoDS+wIJlfJWu+67zNe5SaHjMfFBoz0JpIYFcNYKwZDAiME";
+ moduleBuffer += "Lo0ieyfTJQ5OjEAxvSeq3r/Bs82Ys/sDO/ApjzVFG5zkDrfqae6wJahBZLF3WxbjpIqzkT3VhISKgCx2F7Q2hxC4K9e7+5FjuxXo";
+ moduleBuffer += "hlNX0latACgOGFE0PT4o4uznZmGbCVndjCzGMLpIJwFZHASxzYApYxcjLuoJ9DivYm3Uk4IKzcIs4pNB20X43CAwS4adidxKps7Y";
+ moduleBuffer += "x5hwbMFziYJnINo3ZQaYzzBMD2NWwVPXPtaaAxUATw43RYgjgvUMyeKoYQRcButMd1EbmT7s8ZC6sX+IrtZ0QJ2OMeANdnQ8kBXq";
+ moduleBuffer += "p30G1XBxyBuKQZ0cnqP7x2FDUItoZZ/+LMUXzRouy9JzoATQyuEE6PujRwDlRlS8/xA60EYRjaOfMrdBC8B7wNiUe5MP3rhA+Zag";
+ moduleBuffer += "WqF1I6PV2t4mDWhl/2Lv4gHoddlMROqJGv9RwnzKsPT9bLYNcmQI86cLPdles8jGPECeiYP2HeeumQd6k9hg0GBCH6HdjM9uNdBu";
+ moduleBuffer += "bXos97GrD8qMPa9MG89o7zwR2uUOEewNjVSy1xNA9DMlFp8Q7T5k+/DMDq+RHRfVmd4FRvvE673g2CXMDpVjXwreQnapYgC0kcJt";
+ moduleBuffer += "esm4cGWwFBnAbr1ZjMkxdlbCXSBErz00nK7RW13HtMhtBNgLCjcojbKEVraWtr8BNm8aMCJid/oog65vW0X9Sgw4lxnAXMOZ/lJg";
+ moduleBuffer += "AEfdrPHRCZccX0Hk3BStpC4ke502aqTtBo+YcAXi0WahJ9vF/CyiUd4go8k35hYyG/gTZAwGIUcrgEFWdWT5yI8yrSIMGiEG1RkM";
+ moduleBuffer += "xPrFCo0fVgzqEP2BMoNvvQaDmFYLYFC94YTe52WQtRf5XAzSdcOT542PLTy9obdK1Tsx6p0XeVt0IxZkR4QW2jGc15NVxhX3kgnP";
+ moduleBuffer += "0GvwhauCJmQVx7llMYalZtZwRgdXlaAGWMULIFt7PIl6pdrYWg1diKLMo23PZB21Emg4YLjo7/LREFdSPieoVax6AbOK+YveikVg";
+ moduleBuffer += "Fe8Yf5qPorg0dwsRfme0Mr2UWFVq1JwX+bh5AXFzi2g029ER51MVl3cqWOQw8xUJLpuDBYOxFxIrK4x1G5Da0fgKoq9ipbVbXB2w";
+ moduleBuffer += "ktscPT5WjvlZOUqsrHdYbbES6VuGe7StcDiMPqpMVcVKPdGs/LaYlc16UQKiPLJSezKckJXRWCGTgZp389VNJ+KdDuXScRc8XaV3";
+ moduleBuffer += "OPPtbaZdXa2gD+2oqQKslIlGl/hwvZ67CjuDZchUDsbK4pqBZebWimoeTNnqWV68LGwMlise4ZLeMDkRVgaTTCqZLBfbCyqDxpkw";
+ moduleBuffer += "S5uPZXHVPTjup+NL6PhSOsqtRyqNeRk1h8UzVzxfxbNUPDel11flTV4bRQ7KwOCw26a17yPGCMgdzXmTGfTZi1om2i9LtgtWgePe";
+ moduleBuffer += "gN6IlvaSssyU9OMNtgVLlbSWsoDY+uFCxyVgddjm7fCZMNxOsoEM4q5oA+ZysjpFo7Vysc92TZHt2ioETY0oHrZBq5oH08Xm7Fyf";
+ moduleBuffer += "6UJrKpv1tYbVehFZLWMbY2rjbIxarUvZlEWsFu0CAnU5W70LfVYLzeN222qhma0Hq8VW70yf1TrPb7XOIqvV7Fg9y2qh1esgk4YN";
+ moduleBuffer += "CDRYGA/IobFVwQpjhT+0isMRm7Zge6TXYlnYiMaJWhNP3paxg8xCWxO41ro2crynq+DkcrRAMMiEO5WykwVGIe+JtKXIwxUAGnSC";
+ moduleBuffer += "b+6AMUq71+AqN1hoo0nRlCXqNTH1OH9IkOpIhf98H48R2CtpcBf3TONhAFXhlzjWwCLwLiLwOTNhSC0tHv+7gKhXNBoyL/DxF6Hf";
+ moduleBuffer += "QraSqat6BBVGj+A0H3XP81P3LKJunUN9i7pjfuqq3nS9Uf3u9FF3JEJdrrixqm4G6nKj+kIfdfv91FUd6RXGdOWZPuoiWSXJhqhD";
+ moduleBuffer += "jiEVGLW6JMJf1YnRq7cwK41RRz3WuFCOzje2YzJTLw2xk890i1+v7D1/2599jnHrOUG3AWMeodxoJDEHEXrrg2WKPZXMHu75IWRr";
+ moduleBuffer += "gD3c+V7ONDW6eLQNPfYqKZSQx2jOI/ZUG6tcXGxwkDv8VcTBbaLgNDbBQ34XEntKjLX4nu+jIEISBjWD0GAfIr0C2McV1w4f+87y";
+ moduleBuffer += "s+9MYl+dUXF42/zb/ewbI/bVGysNnGawjynZH2EfN5b7iH3NxqDOqI99vVxJAft4TgAruTZgD8/gD/vY16XZt4HIIglGs/TIoSGm";
+ moduleBuffer += "2AyT0eCUwSYdZOzjlTv/cyKu+eq+jXzGyzwY9aHmn2ad7v4OEF/aZ/V8O86VoOMCkwjB0knjxsuidddZBPGaWZs81mjidiLKGYKJ";
+ moduleBuffer += "NAazKqrOPPDE4o6kl7a6OKy6Uho2gyLYeywJKozBnqUGRZg3I36KIBzkbrNsoM81KMKWvNdPkR6iiNkjPNNHka4IRaxR0TRA3GqG";
+ moduleBuffer += "YSOWuYQzDv1EEWu6IAkQZ4e2PoMikfYXTeCeTluWSRagD4cLdGPwfn6I64WAeN1LA/Ya7HqBvvkrEXNmyYW4rmI0BdsIiGWGB45v";
+ moduleBuffer += "UVgqZCd0tXNUNXRGhZ4HNDPClxloZogjEOVGheUGkE8jW1ttz7OTNzuje60fyP0EZHPAD8FtrR2iVweLALmXgFxvDKIPs1k01gjp";
+ moduleBuffer += "9gM5ICA3G7OwPT4g6xX7AMjsg7GIgLxiNmSfwlbGvGFrcU9TuYfLZgVEQDEtyJ5xgKh3DtGQ1OPqCwUnh054bbLPEutpKA1dbZ3b";
+ moduleBuffer += "CS9ls+znRQ4qCLpUVIhyiCc3Y69tWQF4Y3x6zewaP97QnlQDXhia3jn7Vj/elhDe6g289vvwplfxjeBtM+Gt2Vh8BDGI/brFUX0r";
+ moduleBuffer += "vPFSOhsIbytm9dL/gYE3pUOqduVE5xYFDGm4MNjNRE3BwguHynmRw1P6Xgyxw5DhSaUN3Py1eZbq1wrD309t/RnBhl6LBrCRj8pB";
+ moduleBuffer += "bm3OeMH6uTJq0Jb4sbGIsFHv2DILGy0RbLAt2ELYaDaWzVluYGNlVDcKG7zmXAdhY4WxXwLiBVtPPI6A7juAkGArqU8CA7cHIN2a";
+ moduleBuffer += "Oy34dFu6QC3PbxXY6cfwcwtJj3Wz2kWzwqdHDEjN23rcSnqsN3DQadiIrVHhKD0yn04nPTYbC19WGnpkMm7QHKsyqFNLelwxqz0H";
+ moduleBuffer += "t7DKDeNdYHOLmyIrE0zL1Zp6KF2AHorzamR+tlWRzOuNjT3qfDLf4pf5EMm82dEZeuWwIhCkm0nmHVFRVIPMqqN6QJ8RbnllNFq3";
+ moduleBuffer += "0fLSaKVKnqbMSjzS0yguJ/k0Gz6o9T751PrlkyH5rHDka+0OUqJRcIYqn6y1q59m+TjSkoIOyyL4bPaVpU6XZb3Ki9xcs/5J5EXv";
+ moduleBuffer += "AFbG3/Aoy3JYxr3jZH6iYQLGplZGoEG5PjV2sgr1qRGJ0K5P2/TpgD4d1KfKpRAP18hwCnTcN/aukgEUUV//Up3yBKa4cQVFJ8Xd";
+ moduleBuffer += "kMrdtMrd/MqNT2h2UoyIBd7GKqm3saqhbawO8DZWzbSN1QHeoqqatrGClHJjQ6pAplQZG1u1yJTQ2PyqQabgNlZF2sYKUtoj21hB";
+ moduleBuffer += "SptMKaVtrCBlQKbkaRsrSBk0NrZKyZR1MiWF21gFseBA8TUlwQEMWnj7eHz/rEiTkQo5jFSo9EUqgIbCFSpSodJoYGKkgl6mT5E1";
+ moduleBuffer += "LHMiFXIcqaA3EPJEKiDpdaCqjFSogI9yqwxbLv3RGsOOVGCz6EYqwO/DQR22FNY5kQo5jFTIzxr9QBmpkI9EKmAerEiFfsis9v1l";
+ moduleBuffer += "O2xsKVWmIhW4wpRucRy5hO32kijxbce86NKFxtp9HKnAntoyUmG9EalQqzy16yMllpEK2sjLGUIZqcAtMXt/qTy0KXkszRupgIM7";
+ moduleBuffer += "UtV1HLFQ6UQsoJ1kua3QEQsDPCaqw80tt96qoN9oGq7zmGxn6ybDKXqRlhw8wh6wul3LM7K8VrSMVNgaiVQoRZFmIyKVkQq6fScH";
+ moduleBuffer += "xGWkAvt6WssXo48Ot2ixRRwVO7W9pV9kLeig39AQjhtYkQrYAB/UcQKLWKbnRKUmoxnSoB9GozeaoYz0ikssDViK2awVY/rSbzEU";
+ moduleBuffer += "s8VSjB4N1O1d7fOma+tyrRNT2pEOIqmEl+yFL4ZjOp4ybA4KqKzFEWXVhKlZwzdZumukQFncGrPcl9H1g7sv6MtrrdGKo3+SSzJS";
+ moduleBuffer += "oV9P8JNXoaVdbFGt157E21hZDAvaRhekW4xCBTXPUsIAgTpCALp4M94blMobwhJQuYUFR+UrhHKcFb8RAdzXS4MlY10gUu2QF5yU";
+ moduleBuffer += "09EnWvealPP3aDu1sk01GgOZahBBRypI/4zNhn9Gi4pUWB5BQQP4Z1iRCmXzRiqkAAU83IoNect/D4dHJP1lpEK/EevR5IMN9su2";
+ moduleBuffer += "CrtIKOhgFFhDKTJSwdgkzAMp7MDXEkBXRu0UdtqlExQbJcQXjr6vjKKiDiYE19GMBYNvh4JSi6hOK52VXGsillViKGgwtyOMOrmK";
+ moduleBuffer += "PqLpJr7UQJGOYrAW+zVw0unAwQCsd7hX9/x41N3aBGm+SAUnBmaRE6mQw0iFUidSQcbAcA/ZjlQoi0wkzBOpIG1VC0Cx3xhA6/FB";
+ moduleBuffer += "EUdhx4TdnTtSAXutMlKBR1EW+2CqIhUQ9E1Ro9pLyGozLGirgc8mEw+Az/VCT/YOjl1k6kpmrfgkwjFjFhkDyAW/DkZtoJAZiGZP";
+ moduleBuffer += "5awNWTSJPMRcfiJkVkVGwZA70RFKhUzfzPWTj1Twzabx+kbaJ8eOVOD5UY5U2KHQCvUtRCqoplDYGOywIhVyGKlQMPdAgfmroBCJ";
+ moduleBuffer += "VLDXZ5d+ETy9jINA1swuzkVJm7oI4N1vRCps9MEbJ+s260iFDYxW5gWGoqQAreybv9wHfZzdi0YqMFk2EebTzt4ziHknUmErRCpg";
+ moduleBuffer += "BcQkQTaWAOTZYJjcsFbzl82CAYMJfYR2M24AKRONySNurbTR3qXQDgEMlQZl0KIHUau9ALTXGvMvnQbatce2tTi6F+0a4/PPDmvv";
+ moduleBuffer += "DN2w0z4Z2utCe2dE3XB8kQrKK8GKVDjdiFRYrCIV2IMh99QiFQrAAHZywolba+8fI1KhESjTb7gCneejDHo4bPFFKjDX0DNDzqCz";
+ moduleBuffer += "S543UoH8moicG6OV1E7iUdqokc4weMSEyxKPxsC70ZpdP5NoVGKQ0RupgMyWg7wZg12j1Mpom7VZZe1ss4lpFWHQMDGo1okbQAYx";
+ moduleBuffer += "raIM4klKZhAEMFQ6AUPWLpMLYFC9wUKsjDojdY7LIN1+0TXCQnnjY4v2N5zfy9D1mLaD0dgRUUcqsP+zjFTYZkQqrFT+z+yvl3tq";
+ moduleBuffer += "kQoVJ45UQNdBWUctBhr2G8v5X+yjITrhnhPscCMVmL/o3Cjjf9iZ0RupgL6Ji4jw50Ur013UCiozas4Lfdy8gLi5eUZ0TaxIhYuI";
+ moduleBuffer += "miVOBYscZr4iwWVzMGswdiex0vT5RWpbrktnMlUjrESy1kZWURgyWMlUHfWzchOxst4IvEWmWluGINV7bVZi1VOJAQyVRgusy2Al";
+ moduleBuffer += "U1WxUkcjICvnCGBoNerGuVmpe58+3s1XN52Id9p1V/v58lpKC4xZcCIVOISBIxU4wAD6/eEOvUZtuEr5CXOkQg4jFRrMSAUV+6BM";
+ moduleBuffer += "sPYBDYtBh+IRugnL5WDKg71MKtwJQEYqlAfFmTBHkQo5ilTIUaRCjiIVchSpkMNpmaDcs9rWk4tU4KCDoshBgydSgQdNMABB+kJw";
+ moduleBuffer += "9II3UgEDD2S7YKVcYvhEkQoYhXD6vJEKGIBQiEQq+PZDomCERjKIF0cbMFNkdUqN1solPts1SbZrCzghYSOKB4jQqpaA6Zo/UgGt";
+ moduleBuffer += "KQUga6ulfLbrDNOHbZwNUau1i01ZxGqpSIVaw+p53Z0v8lstNLMyUsGyetEdachqOlbrTLJazYbV2+SzWtv9VgsNywqyXjo4WTlB";
+ moduleBuffer += "8aovlTDeYQUwLNwe+cY7fL3KhbYhFmrLdCzCAlsTGKmgjZyOVBAGxIhUqAgaDBcFdHsojza8MFIBAApBQjVAPebvHoOr3FxEiG7T";
+ moduleBuffer += "vtbLmHpWNEN1pML3RiogsBf7IxVUhV9wrIFF4IuJwDJSAVtaPFZ+AVGv1GjIeCMVEPqLyFYydVWPoM7oEXgjFc73U/dMom6tQ32L";
+ moduleBuffer += "utv91PVFKpzno+4mP3WxHdAc6Ujv9FF32E9dNWxkTleeYVA3EuxI1B2cMZoC5AmPGyMsidDVWKtrgePUJxr50cx0x3ZMZupIBR2L";
+ moduleBuffer += "oFv8OlJh/ra/jlTAgbcGYA+3etE7BVtUzEGE3g4dkFhk9nDPzxepgJMZHdH6FSG7knzAMIyBx2hUTG61MWh4icFBK1JhMSwYoSIV";
+ moduleBuffer += "eORxJ7Gn4EQqWBRESMKAHXiMMfsQ6aWRiutsH/t03FuEfduJfbVGuL63zX+Gn32biH1mc/k0g31MyeEI+6wO74IjFRT7rNWLKoF9";
+ moduleBuffer += "PIM/YrCPm9+tmn3rqcpCX9y8wZ5Bg0Pa68XHJr02mV4w7OlEKuhxfV0Lar87HbPgG1vVrNPd337iixmpgFYcHRe4lYJgWUXDbsuj";
+ moduleBuffer += "ddeZBPGaWZs85VGinEFE2QZ7meMYzMqoOkuAJ8wdHGk8P1rx6S0XwRmPKYK9xwJAnG35UoMiVqSCQ5EhokitMU4zT6SCQ5EeoogZ";
+ moduleBuffer += "qbDdRxEjUqHFiVRIRSIVkDbeSIVhoog17ZWECmL+SAWcnpORCltpLT50kUU/fwfoxuD9/BDXLp4a7L5JrPkjFXQl4otU8IXlaAq2";
+ moduleBuffer += "ERAbDCd5dCTHMQyuufME5x3i11Q1rIoKvQTQzAhf7kMzAlEOuFUYQEa7Jj3HmQ3LjGqD0b3WD+RhAnKtUWEguL2RCg6QewnIZqQC";
+ moduleBuffer += "gtsbqeAAuZOA3GyMSngjFQzr2GJ4NzcRkCtnbUdsHAPiJg2678opgzEFRCdSwQSiL1JBj6svFJw6xGWhlnghkQolADr2skRXR4xM";
+ moduleBuffer += "SUeFKL2Q8wbeUA3SG52rMXO+mkG4xo83FalQa/QYvLNFrX68BYQ3M1Khw4e3JX68jRHemg3PKTNSoSOqb4U3a0HWMsALL5PeaeCN";
+ moduleBuffer += "F7zFald6YW9WwJA1NfqXmajJWnjR7qY+5OgIBB+GtA+7jk9YaG2OHrh1gA32lkaX2HQUG60RbJREdVMDurXwYo3bL/Fjo4mwUW94";
+ moduleBuffer += "9ZQb2GDALIpgg23BZsKGGYViRiosjupGYYOXlFxB2DD9HccMW8gDBnp9UIhCwfkYAAZtRo+6TWkNe3VbtkAtz28VtK+89sXALnst";
+ moduleBuffer += "6JFdNOt8ekQHoRJbj1tIj/UGDlYZetwSFY7SI/NpK+mx2VjIuMmwEUzG9ZpjVQZ1WkiPlcYawGbECBvvLJtbHakASoxEjKAeyhag";
+ moduleBuffer += "B1/syPwWW7MN+0P1IHN266z1yXyzX+aDJPNmR2foecOKQJCOkcxXREVRCQ3S6qge0B+CW14ZjdbTyfETrVThacqs4JGeRjHty+aJ";
+ moduleBuffer += "VLDk0+KXT4bKV+PIty4qn4JGwTZVPllrVz/N8umoizzlpcHAZ7OvLLW6LDtUXuR+jPVPIi86AqSSv+FRVknk0xSpIPMTjVSo1KfG";
+ moduleBuffer += "7ggV+tQfqWBENfgjFfr1qRG0YEcqGOEJRtCCG09g7IlAkQpuFEKpk+Lud1BwUn6nkQqxIB5URiIVICUfiVSAlIpIpEKMIxUKFKkQ";
+ moduleBuffer += "40iFWopUiHHEQylFKsQ4UqGOIhViHKlQRpEKkNJvxEDkZMqAEZeQkinrjNiFWOkdL0y8aDZBGypc1h4LLsP4hGyQhemr/5EaVdU2";
+ moduleBuffer += "RSgsVrshtJtBDOSRrHcp5BiFXLASh5x5kCtJmAVLGopOfiDf9D82C4QNoa0MGnQ1HRYU99hxGocEdOXJvQt2Go+GWCw1MpdWARTc";
+ moduleBuffer += "jCng7iOSw2EFjkHwxzsNF+mgQu07UKGHBsIutSw4d0dyamF5rvU6aUwNiaw9fHB5OM6+vSApz1uwR9k6VS65Km6fsSpuSbAOy8Vm";
+ moduleBuffer += "qwt6DqJc0MAKl4nMGz6HYd4YrsGSl4qSN0AcKanFbthhCWiXgCrtPBlWB8vc2PFgpRrP3MTjmXqPy/VRu56HLSY655dN2l2vdaUW";
+ moduleBuffer += "j1lwIwZO9ZyUJsijdJnhUVoarEe58fgH7WQqe9XhRvS0Zwf3hA7tmMHZFN5soUx2bmGrDmsgH+sUibES2b8w2lss3pVavDXhSj22";
+ moduleBuffer += "HlYGGx3x5mhsAOt/Hoqg+pIHNhOwRJBfrjyytFTHgzSypvQeibbMdS2md0gq0+I2m/KGhzv7g/UqPUhfyS7DV7IQ9KIeuIlD2+hK";
+ moduleBuffer += "8YV5YTRW6r5D2Gx0eISKGnSgRlgra80wNUNhJ9ymwHgY6cJQik3KMCN0KLeMUaC3VIeN/j7BcJJRGcuIC4e7EGcgYgR1yjsmYR2e";
+ moduleBuffer += "V+v0Jw2tZpROa7VOF4P790ZLpZuiKk2Bl7utUmviJk2Nf0RDo6VLMypTnekWCcdc+XYviAa/zOhpftXwUEChNeZXG2vMF4NVqF+9";
+ moduleBuffer += "IwZt2UL6lT7RHEi13BjsEIZppR6SCDtkhyNsclaew76R5G5hBiO/GHihbHyGLQ4osL+7TO2pDmOeSsO8PAd2fkPqsFoQwdZhCUEF";
+ moduleBuffer += "/fGZEdh+awk6ZgK1O5ZSt+Z7C+zcw/t9l4u2McW1McTkNMS6eWDRFCxXsGiyYNGsYbEUdsuwvPutNrbZzNQt/FoPKnjDWcOVv0MD";
+ moduleBuffer += "wlS10Y9na9mpkJIno8nUyAed1tY05RgNLUUoWmRyHxE17BUOG5MMAkQNehOkcIUcSQ7bZmynLxxkkNalCEhZqVf8F/YWxjXCbgde";
+ moduleBuffer += "OBTVJQyoEzjCQ/LLGYJhrzBLEoHKtFjAQ7SWEgAx4tFyZ6wUNpHgxq7CKtS/T9SN1LPgjhT2r1YE3U5cNQ4DJtRK+WkDb2VOPNIJ";
+ moduleBuffer += "0dYWDNsrTKjoREabHIFZ7wLNByoNpTYPqPRQp2+RSN1153Ehe6sdnlPk/b7qFPgAArDVVKXWft1MpBYLyjCMXIFPLtuvhkPC08zo";
+ moduleBuffer += "qxyAT42KhINymDXsUaOvPOSPo+1o+ijQjVmxVkZshAMOYnFoYXWwyt1uiiMScPigCtCspBKuklgPFzloVoP7iGpr2U+cjVtF/WoE";
+ moduleBuffer += "LlvDbgLuMtEuoNUJeUiN9tUI1tpeNjSnI/vLvQbQkQUD4CHgXdYgoZa2LzEgWzsnZPUu2BZke4LTngJkWyzIzg9PPSqrx+Q1UHWc";
+ moduleBuffer += "lJ4x9U0s8ZBldJLH2B2B4+zqFYylwdlo+N1XB/Uz0ZpILuGkYVxi7j4Rnm4Gm8hZK/bt3ybHoyDIMxpsSFOo0i5X0hYQzK8z5PgU";
+ moduleBuffer += "hPFa2MehsCFRVRGMBxnGHNiG01ZJMJ4cY3MONdccXiCZisQP3H2ZDQFOsAItRFWwEngxwtbYosMA0UF0mjppSJg7UsNkVs9RZpp5";
+ moduleBuffer += "QovCjUlfKXsHjQwsp2GxALnTarMAabMVRrUsFrSZLOiAMDdmQZvDgnAOFujNCmBccIEs0Bu72yxYKM61adY416PbesRb+wNoHwEd";
+ moduleBuffer += "2a03y+Iox7IItLXzDm95rAwq9GmE8jdBT4nuNIp251ik4d2G07WKGdIrXfnChOcZ7j04taa8gsIL5ax6uN1xfcHJellpVFvLSYtO";
+ moduleBuffer += "IjgwhGc7dMJwzg2iliRmnON60WF0Xg6YwbvG1UkKhuUO1XAtmzxRDiOD2bacQRxbqf0vw9Ml80SVZnPsTOLYatFdpahkphiOQ59O";
+ moduleBuffer += "VLNIhXMIsuPbaTSSkLN1YJGtyJMV3BaK8EktY1nu8GnYzyfk5dnBhYpP7AiB1KTl4gtGsy8bJBbAJ3vBy+C8E/Kp+4R8evLc0bWF";
+ moduleBuffer += "j0Xav02zyNwYSZ1pTzftjcqOmLURkhihJtxFK1Mcg4ZduA4aeIzJMns7Ve0bp2oJYzn+lMAwoR492LJIxYuYAjI5vFjSNEjJ5fjB";
+ moduleBuffer += "dQ3eu4uOl9LxRXTcPRbo5fgTxnL87GTOITfKtTbgrTSMJbbphMPhUiIHizB/BdNdSbSxdMzcC6iN1KCdxMOLpf9QeP4MuiRpVz70";
+ moduleBuffer += "n5O1cyMtccqG7PnS4y7c6RgZ6bMXbBSNM5JcPQuLdYiOcXLhAKXh8BJpnsJzHQOEDnuVZIjQd5At7g6yPCt1AHp4nrRHEJhkWZ6z";
+ moduleBuffer += "yfIMQRAbOkzwiBxaJTA/ooGcDJJgf1SVbJkdClAdk500bXHQGg0C8yxzg7ZoxDY32J7YFlzimJsxv7lB+3Ru8HzH3Kzwmxu0TzuD";
+ moduleBuffer += "i1UoHpsb2rQHQqewpYtjUGhGeM56UXC+MiN6W/bmqC1SZkTbmZaInTENiq9r7mumPjOGR0+ZLswEOUsK6T3shSFAwyHnMAtAHw6l";
+ moduleBuffer += "SUkHKqjo0BhwpY+1oqzC6yhUmm3UNslEzTnLjXCTaFYSfTJMH84nYlWumKBKEV4geQo9EIuPiNZqmv5Dj1ru6yu/xJV6fe1wu6Qn";
+ moduleBuffer += "MNsi4iARccNM2E5R9DxmtpXq7VykownshLAji4cI/DzZQabgGBFIe8g67WmHdAj87TDV6W04K9LxWkkI/AuCnQ7pFvlJhy3jWmgC";
+ moduleBuffer += "B5GqhxrHinTMReRTCqiDpOM2Mw6DSIecpTjuBi2HxZp/xt4UyDJeYcAY1XaHsU1vGx/ttLfNQgnoaz9rAvr6iT4qagKit1PBXI9U";
+ moduleBuffer += "9MVkVJpopsp2qQ50R5ytC8rcsW1uJ55G9ZjZF9vBo2rnRSsJBFYjzedj2AWP4a0lMq3UC3UIDQLFIGDcItMIkWkjrIuDww88LbCC";
+ moduleBuffer += "KJDW3gKidwcMC0ccLukdlIJ2g0bYPpR91B5Rq+UgolnVQhaJFvlJhHBdEfQ4DFoeYRA3FRGuI+BgaDEIBwAHiEFcqSCKTwfKIYPY";
+ moduleBuffer += "NaY5wiBuaKIbThv0OrHxxo5WWOnI2Is+ctTBRRG3K1qgf3IiSg6DFtorVk8VzE+V+YeMtfHXtNDLhepxPh9VfHWVpsoqooAR9hVu";
+ moduleBuffer += "ljPGMIaBkersuYQ4q6Oxe2yq8IiJchkzh9NGuI+EhpmJMkDY3wQO5TgAya5QPYTYEmOgr0cSAgb6EPo8RklL+oJ2GmasFfFEDZLT";
+ moduleBuffer += "K+eFiyQ1wnoH9R1+1JObLZECcc6OntrnOoJzhG29xjnXaThEvZxwbo1PDwQjDs5rtB3vNBo2CMfTwJMSWzQ88ooTa4B2mGFOaas+";
+ moduleBuffer += "FoVtdB1qP2z14mM+AM9v1zWUfRbeNyao/XQ1qDWUOwmiK41ZjJXoGzGsVq+17E8ddEOraOCjLqrnJISy8ZhgB453LVJw5hoZnXbl";
+ moduleBuffer += "6E6FAU40VzkAJ6/stYZH2zDiYEUUJA44QzZIYSgwmoYGmDKnCE2u5lv90ETUhMEaFSTAtX+LH5doAzMwsWbNqzRpY1c05tcTBP6V";
+ moduleBuffer += "Cpc8S5vihkHQRe6oOKw5/HRgpp22fS6/C21caKdeDUefe+9KQkJBx1wIVcgJiDUO1VEH0lmtykBTQEgo1QvThK0ScjBHhKvTdUTV";
+ moduleBuffer += "4qBJLXlWohcZC1skxsLl5Cmt5wKb/WhCBbYQ2Pp9VZmDHzQirTALWhs1Ihk/fsgzLwgVfrj1qNc9CFYrOMg25BofHPT6iU8eGHop";
+ moduleBuffer += "PG2J6j1gKfOARUMkS2orGKsGtEjXgzDpsKnZr/oaUlupXmA1bJaACAPV/OCGSZlf9SjoJdJwiHZeCdgkZQQWRWuCer/ilSNFs90Z";
+ moduleBuffer += "RlcJ1roVwNQSBMr7mH14lmmtD5GqsMWTVKtKG6o0nFqevDp1IJyO/tHz3imPYttJ2AUdGyQkJtd1yDnwrfcrjPxCQWHsmlQv1RjW";
+ moduleBuffer += "qC3DmDOVEYUxZ/JUtZex4pzV1ZWKhqJyzQQ1qrHIMR0oY1AU7KyEFJHuZznly2rI3ZB47knL3kcgHXrYQJIp6CCYsFrOf4dpx0l9";
+ moduleBuffer += "Q0S67NKxmvESrhYNwFIY4lRQbvJZi0qSbVdUGtVgQXCZcY51QsnIxZk2KhTK7W/TSk45LS2vnNILlJjGKDpol4JM2O9ttZyLDUuU";
+ moduleBuffer += "E5ml4g0kk2XRfK+OLNFvbR0i1b1JKRpEAP5uZqHSCyhUiad46HtIbooFKEeBFTIUqZbp41Ki68jhUuYdXL7crMyfgSQjlpyyjZ86";
+ moduleBuffer += "TtlyMRXllG24VBv+2Yb7teGU3aBPDfdrY/n4lfq0U5+u0qe9+lS5nOIh4pStPbE97tWGMzU5Za9znnGXj1/spCx1UvqclGVOSpeT";
+ moduleBuffer += "snrMdcrOKafs8WA1OWVfFqCv9njQRU7Zl5HD9XiwjJyyLyOn7PGgj5yyIaVBpiwlp+zLyOF6PFhMTtmX0fLx47x8PKSslCnryCkb";
+ moduleBuffer += "UjplSoGcsiFllUwpJadsSOmVKSXklA0p62VKmpePv6x4XNzA5eM/dXn8LHDQPn5f7Mow0R4LEqO56XCpKPq9qeK1TeLy8IrpsExc";
+ moduleBuffer += "d08Xvx8X1w90TId5uKbbvdOw7Pzo0bi63zMdJkXCsdi0eubewWlBpfjocfXMUZGQgW/E+Zkj+emwJGwcjYmEO+MiZewzN9/87q+/";
+ moduleBuffer += "8cgvG4aSx/Li+qt3fOZdj3744ceTQ8lvwvW73vbDm47983UP3nztUPIBSHjLx2955/98/eg934wNJe+Xv/iHjz3xb/ff//Vvi4R7";
+ moduleBuffer += "IeGnx77w0fv/+mev3jGUvEdcjx7vmg7LRUu2sfiDhLj9idf/4Qd/+r4Hf1YzlLwbHn/09p+89Ykb/xqu74LrO2+//edf+Onnb/gT";
+ moduleBuffer += "8cXbIeFDj//4+v9442s++4D4wK2Q8PV/eOstH/37+3+1cih5FK7/9g1fhw/ecKP4xRH44j35aSoiiGr1dLhYVHD4+dGjIjepIC8k";
+ moduleBuffer += "R2Jrnw7T4vjNhBKbSMgKsd2eILGVwRuT8i6o5HCS0ktF+q0pmQ5iPqbSS06ueO8W2KgTOTtJ4qXCtUpR9U2L/gSJNhlklVDH/uy3";
+ moduleBuffer += "f/DZu37zyddVDiUfHRTXN/7NdR/+1K+uf+dqIQa4fuAr737tnW975KZRIQa4vuV9j3zovk+8585zhRTg+ke/es+/f/qmu+6QUoCE";
+ moduleBuffer += "z3/obY987etv/81HRB7uhYQffunHr/vNZ478KiekANdfeucHf/ye//nOT1tEseH6J/90/K0f/NYPP/xu8YO7IOFNn3voyJdue9PP";
+ moduleBuffer += "3wblhoQ33/CBuz74s3/+i9NFseH6u3c9cusHP/Ce67Oi2IMA20EA0b1xKGworu8qnQ7bRCkzxUuCxiAl8AFlTQdxAEA2aGQeCoCB";
+ moduleBuffer += "cG4tkdBIidNHBe2G8X5OXP4S7yTF6f0l0+EI3sn4YSPlZ8BGys+EjRSgCRspQRM2UoIGbECAo3cLi1MhcpdxYCPlacBGytOEjZSn";
+ moduleBuffer += "CRspTwM2Up4mbIRASzUjj66cFn2RJH46r2EzejiYDmuAi6XKzC0Bm9aGAgKW3lOYRnELW1aYDtdqod5axkJ9VNw57VkQarnI10kS";
+ moduleBuffer += "p2Jhe7BYCTIlROzh3129Uf7d3hvl3629Uf4d7bX4d6TX4t/h3ij/ftkT5d/xHot/j/ZY/DvWE+XfN3ui/HugJ6hj7tUDWIfBxqWC";
+ moduleBuffer += "pOBeRhhv5F5N0A4qLxVaZkN9+9B0uAJNdYipgKPD4vcrFRsfEI8sw3tJPzykzAx4SJmZ8JBCM+EhpWbCQ0rNgAcIbfS4qFpKRM6S";
+ moduleBuffer += "DkikDA2QSBmaIJEyNEEiZWiARMrQBIkQYs6oBZdOhz1Sgj8A17NSXf81T4fLxfGYENEqqgFFUkFooBuFLJ4ZmQ47UdTirrjo0qK9";
+ moduleBuffer += "fe10uFqJ9ri4t+ZZEG2FyNlJEqpiXkPQrMSZDwremq/Lqvm6rJqvy6r5uuyar8uu+bqsmq/Lqvm67Jqvy675uqyar8uq+bqCcmbe";
+ moduleBuffer += "EtCoqOIDUcKUYB7U8Mi85UEDqLwgtMym+Zhoh6xD41yv+Xiv+P165GMrpqbmMMldlknusk1yl22Su2yT3GWZ5C4wHaJOqRZ5SrmG";
+ moduleBuffer += "ucsyzF22Ye6yDXOXZZi7bMPcJRqCup5rhZZAHj9dqkEyerh+OiwCd/qnww1U09VBCz9AEQEfDw9MhxtRyOKueHCTFuoxcW8UhSoK";
+ moduleBuffer += "KC7GngXRloicnSShKs6VBz1KnFlh3Hy13Qqrtlth1XYrrNpuhV3brbBruxVWbddh1XYddm3XYdd2HVZt12HVdh1BBXOuAzS6Zjrs";
+ moduleBuffer += "FSXMC85BrY6cKwbloPKc0DIb5ttXT6NZXqJ5eHgNNZEWY1p+DkO8wjLEK2xDvMI2xCtsQ7zCMsQrwGCIyqNP5CjvmuMOyxx32Oa4";
+ moduleBuffer += "wzbHHZY57rDNcUdQZtRxLdNhv5TbD8CTL6fruKrpsAV4s0b18aqg8duLAgIm3osdb2hIHu2e1sK8vYfbm8dV+kkVaLXI00kSpWJZ";
+ moduleBuffer += "N4yT4EdLBTJ9NVu7VbO1WzVbu1Wztds1W7tds7VbNVu7VbO12zVbu12ztVs1W7tVs7XLjrlkGWhT9EEGRPmygmNQfyPHWoJuUHeF";
+ moduleBuffer += "0DFD45joKG1GcHQYTSLx+y3IvWZMzc5hfNst49tuG9922/i228a33TK+7UGfyE3WNb7tlvFtt41vu2182y3j224b3/YgrRjWL+Ul";
+ moduleBuffer += "uVWh67Ly6XArMGXVdHg61WVlMJg1gGIB3h3unA63oWDFXfHgGYZ4xb3tint3i4sznwVxVsNCACdHnIplg7BEBH60VBix3xuWGRx7";
+ moduleBuffer += "NDNNDEuM3p8CE0w8g6HQhivDeHtMNJdy0D5bWvz7uDh/IAUdpKUw9haeTUllMD5XUvxGSlzcLdIrhbbSxc9lYOhl9GgSfhAfPS6O";
+ moduleBuffer += "tSBLcZqZDuW4jIRmVfHLcjAvOw1e08VbINyvsvgovOyB7HQ4JC6bio9lxaEWU+8W+Vkkn5U/PJYzfyjyIb9xNA/fEI/BT8UnxWWV";
+ moduleBuffer += "uCdeAA9RRh4ogTdV4UPVor20CNLFh8QX8YE6yDyU5mfwlrtLp2G3Sch4PWf8WOk0+Kuq7w/R9wsgh1r8ZYko0Fcg9e4a8QIhf4El";
+ moduleBuffer += "4I3IVwHyJd/ZFbu7Pqws/hOUtEq95u7yaXFBuTlaARcyjyJLZBDjQeXa2F2JAF4rUvC1UHvCa6sD+ULxnSrQobhROy3+PhqbVjce";
+ moduleBuffer += "qIYiiQfkjfvjdCMdLBVFukQW7A4Y1767fjqoxtOjDdNCgPL0uMjR2UKsl0D270q0lgSNImMwZB6UrI3dC9o63jAtQCSbTymZu6Rg";
+ moduleBuffer += "cmOQ6IrdXxbG4VswfCDyFwwH8rIVLFD1dDCClxkwOjXTQRtewjgfFGItXi6D34rL0/CyTHR3UCwJmbeMvGqtFDxuCcqKxxPiiRwN";
+ moduleBuffer += "6Q8GRWw45NCclYOpq+cRQVFgTG+AuqSBh65E6dU44tHB6ZM5eNVxEscClREMPKOAslnbOK1GG4SCwwoUCYxaHm7i9tgDjYYIjzWx";
+ moduleBuffer += "CO9uerZEuOTkj/+lf1/H/+q5R1QMfCN/6cjIX3cQHfMrD2i0b5mCwgM9c0DhdzMgdfLG+BoUlzyje8uDVTiCwGN5NIrXpcREI3dr";
+ moduleBuffer += "niUxdZz8cbuS39dxuyXGiLk7YpcTdRfWTDlRVX0Iar5c8aB4sK748SyYEHqujJ8THejif8lxK/EcVH4FrOGykAr13X+BBFvwUAqv";
+ moduleBuffer += "hE6/uKoDI7xsGt6b4e+Lc3pvBipFeJVgL/yqLqjAR3POo6I6hSdEhbAeJoa2Yvfi+DrR+ArjotGsa9ZyXbOWq2lYqFkrdM1a8WxV";
+ moduleBuffer += "CyLHG6fDJSexfk0bYyL3xqBtRnWEKPtGaE7HdfftNBgJERIuqim3tTAQWal7uocr5R15r2jI9lilrnIrny3Z1ot8neQqt9ascv2D";
+ moduleBuffer += "kP9/VrlFNiBVRpWregIVolUue+kZnugWUGrAijf9v6biFR9cD/P06ZNWAZdost29YTpsV7VL3ByAvC8GHTY1vwZXi8KiqpYrsFrO";
+ moduleBuffer += "/a+plpdAdXGyq+VqJbi0QOLvT7VcH6mW01Qtx4lVMKIgVF1UE2k1wTo0tlWqb7Me+dXKBrZrLgP7u5pAO0303U/a9Fm5MX22blrK";
+ moduleBuffer += "6wewPhhDYvTYZ2LTAc2a3S3Ow1Y1bVYZbERhblLCG0XhjT1LwmsTeTnpU2TtSmhxARofjzZaPNpo8WijxaONNo822jzaaPFoo8Wj";
+ moduleBuffer += "jTaPNto82mjxaKPFo41G87YY9IqypeXkWI6brSlqM+ZFA1W0GWtwJD+uRvLLg81oUztUC2YLtl6an6WWS/EktgdrFam4IZgOmggb";
+ moduleBuffer += "FcHpWPkMKAu0DQV3hhLUdhTUmc+ZJt7vawOviinU7Gng5bnbVRC9Okmh5YiEgu5o3d5CHa0+3RE4vIg6Av2//1RyiCR7VNgpZUKJ";
+ moduleBuffer += "OmoRTyffvWjamDVczH2po4uNvtTtS7gvdXzxc6gvZVBNVs7Y//w9olyzolwTM07qFXHDXat4pGs1R6cKJfRsdayelS4Vd6aa2BBT";
+ moduleBuffer += "L2rRCTpPKKxnqwNVPOkdqCaz/7To97H/1GR0n5qIOQVjtFKOahaCPByWipNSGGNMqKnAtTHRDoqPxrelNgk4xAYTR6C++6Pj98WC";
+ moduleBuffer += "xtHbxaH4+UysNMDQHA7LEekQv/N3ZyQaeIuFpvaYgGO8IxELm0c/d8+nPzt71YdVXOssx2KGGVGSV7/jpk/KmFCMMaN4tsTYww8+";
+ moduleBuffer += "dEeFJ/0j73j03rROf0Kl//rL930u5Un/wUfufqTck/7YV2/5nvouRhPjblG4F0qIcW5ygxPcJyEjwx3DyhlYDF8uY5tQS+SqdZox";
+ moduleBuffer += "5BCOMnK6EqJFKd+8J4ReYFdHENMJr7zJ68ryEsccoMp7lvO6bs0fZunMUPhwcARzOLPg0mFJsBxUCtj6ItAR2pVjoMbyWaU6VqaM";
+ moduleBuffer += "Fy3OzFfCp1awtCOgymekZBDGSYVIafxh0GPSwZ+TTvhT6Tb+nHTCn5NO+JPpGOkZ4kLzuFYTBkTj4tEQDS0MV1FCL0UQK9KxgY6N";
+ moduleBuffer += "BvQ8wNNrgbKCZjgGk1WlV65npWlxsfpg8QBLkXoZRFbpTFBrKxfWm7DUrFfv1TDWGk9q1RsQD/TGxM8c2HOnwH4K7M8VsBdOgf0U";
+ moduleBuffer += "2J8rYC+eAvspsD9XwF5zCuynwP5cAXvDKbCfAvtzBewtp8B+CuzPFbAHp8B+CuzPFbC3nwL7KbA/V8DecQrsp8D+XAF75ymwnwL7";
+ moduleBuffer += "/w9gf7rAGIuxUMRpmT4t6NNSfVqiT/P61Fg+2FgHOK1PM/q0Up8qTSEgrpEQpUV0JXSukRqnFAmyyKK+Eo7XSBhRigTuNRJSlCIh";
+ moduleBuffer += "fo2EV3TB3honpdZJqXNS6p2UBielccxdCrhcLQXcHDTSUsCw/ECZSG6GpX3lUsCQUpAp9bQUMKSUypQ6WgoYUkpkSi0tBQwpeZlS";
+ moduleBuffer += "Q0sBQ0pOplTTUsBNtDhwMyw1LJcChpS0TEnSUsCQkpEpRVoKWC6QIFNStBSwXBRPplTwUsBNsBRwEy4F/KuBxCXsSrSrPRbsQlsq";
+ moduleBuffer += "Ww+yvSx7iHJMRI4CynFvOdMj5zblbL74E1PrVM9KZIdy/8uUJkeYCdLoM8O7R+QiRjlPa2ezuUsGOfyBXuFeAVzbc8BWWIIL72eM";
+ moduleBuffer += "LToKZJBsQwFGFN9qLv1N99rUW+V2VgWIVlVeTLABstq6Sm/ebO0LEt3nntZX53qlimynbc7CdNCGWdLbc/Aa6g0qS3Lh/WKQF8Sl";
+ moduleBuffer += "DJVzhrgyy9B22o1koKP5bJ4jn6kZa7tbK6vW9qNBKdkm20qGuaBhhioFVRDeZbJRFUR6dtUL2eKGGhVk1rgEWWEasRhGAZqpPowU";
+ moduleBuffer += "gMtTIswSCaWFhcKb4ZygcGm14P5if/nsHVutXUv1vu6JoHGG7LsqPW9Q0qRKLze8qBOlzwsiWPtv414IGbPcFdFyW/u+pmiPFNz7";
+ moduleBuffer += "omX+AvOeKIWgTUmrlaWl959dPK8wcmp/u3a/PKjVwztARDdogk1zFNeCJpSW3mtGrfWvZD0rl3EPq3CrnKRHUMvnF1SHFlSJMCP2";
+ moduleBuffer += "rri2nBZF5ZSmXWzk1kN6I5wTCKgoeE3SDVm6vIuY3GBybuElZuaXn71ZKO4twvsxBGorhbAhqEHp6h0a1BL/Cj6zch+zsNqV7vIT";
+ moduleBuffer += "SdfabrFFNvhcwXbNKdiCaPjQFiILlWuOtoDCDX7C+QXKu0nVC1NI2uhkbfCeHicQdpuzOWtU3riPhd6/Qu6QxHKe4e0TwsagGbWx";
+ moduleBuffer += "irWhtu9Sup8NYRudsOx3oY2uebUhd0tLn1ARfVoRomVP2phbDyuiekgEuCOZ3PYk7LQUsHoOBdQJy0za62Ht9fKP51dOw8z8+glW";
+ moduleBuffer += "RVRi7bEI2xqRhpqCWtSe3keQ98erVNqDvavCUtbe8Im0N3IC7a19prTXF9We3G8892QUVw/1caelt9Xz6q2N9iOUe4XqbRVPoLAq";
+ moduleBuffer += "UbOQtnudbUJPpMzGmfn1SbtU8QZluOcX7wIZqD3swpqgErWt94DkbUlblLZVLygsD1pUnnE7I+jhhRXBEBcA946BnU6Ccti/J0E7";
+ moduleBuffer += "DydgMyA8bqTjJjqO0hE2OxU/ge2BhDkX7QuRN/U13HCpVCVcp/qKSKjN9IYtdNxKx9PpuI2OuD9vmfivCd4vkK7eX0t3avn9ZVRV";
+ moduleBuffer += "wd/t9Psz6XgWHc+m4w464kbf1eK/Rni/sIPq/bQxm0q4Tg0nYMu1mX5/Lh3Po+P5dLyAjjvlW6rEfw3w/gZEHG1LiM0eNeDQS8dB";
+ moduleBuffer += "Ol5Ix4voiJud14n/2uBVuN9vHd1so2MPHZ9PxxeMmaMY9aL1iv91Euuxj19P5IG/F8u/l8jnISgnRxUbcBL7/0UyrPBXbpEuGmxp";
+ moduleBuffer += "aowA03HEAPs32EAR3R+5iyLYDdw1CfckGiZjBP0q0d5EW5TVw0O4pzLtQUSbvPF4VjJqoLzP6OEUfpr7amS38Hcp369TzqcWnegn";
+ moduleBuffer += "2srxjwtuHvTIzGLnhWnfa9NzZ6lvYW94IX+S3xW6eS26edVjTe1zfCnn+15uAVlf8WReeAnng199sVumTrdM9W6ZeFtBqiYyz3TJ";
+ moduleBuffer += "eMBtyZN/f8It6Avcgj7fLWiPW1Del1XnSI84BAvIW2K+HD45USx9qp97HueYP3yRK6MLXRkNujLqdWXU4MpID4Ese3KZxrFRPQr/";
+ moduleBuffer += "NEW28ul9fScXg/NxgSvL811ZnufK8lxXls2uLBtdWeqhglVPpTRUU7gTHE9TtGueicycw2XjbO1wZX62K/OzXJmf6cp8uyvzWlfm";
+ moduleBuffer += "Za7Mm9Sep0+pfFh161mmZ1z2/c9c3s7gwnMut7lKOd1VylZXKVtcpWx2lVLpKqXUVUqNoY2Bp1tcbHG5U0nPvGZOe6azOsai4UyP";
+ moduleBuffer += "uirb5Kpso6uyDa7K1rsqW+eqbMhVWbmhqwqjPSC6SzPPjAxko3osxs0PcVrUp8ZEmH/2y5jySuhTY07MmAhL6VNjo02eHpMHc+JJ";
+ moduleBuffer += "9hbo1JjWoueMySfaBdOd6Gp0UsqclCYnxd1x050wK3dSjAk8nvqqV1Nfl9KkUSfMCsEkU3ApzIvJqa9dNPV1KU1itcuUEplSSlNf";
+ moduleBuffer += "u2ii69Kgiaa+dtG01qUwkSanvnbRBNWlNM1WI1NyMqWapr520dTXpTTxVpApKZlSRVNfu2ifzkuDNpr62kXTY5fSVBxMfe2Cqa9d";
+ moduleBuffer += "OPX1kbXxZTDxdTR5ZZhsF9odLcgd9mi18iAxmjk03bo8iHUkWlrb4NDQ2g6HmtYlcCi2BnAotC6FQ651GRxSra1wiLWGyU3iHcsh";
+ moduleBuffer += "vj85dlj8uzc2lHgBLLU2mDgblgmIDSbOkyuvbboy7BhMXDgKi659MTZdfH0uhOVHiuc2jyYOtVaOxloT4l2JoPJ0eFdH4ozWOBy2";
+ moduleBuffer += "tCbgsKm1Ag7rWivhMNxaBYf+1mo4dLfWwKGztRYOHa11cGhvrYdD0NoAh5bWRjg0tDbBoaa1GQ7F1hY4FFoXiQwuG0wch90Ulw4m";
+ moduleBuffer += "fg7H9sHEL+HYNph4HI5LBhNvTIpjMJg4AsfWwcT1cAwHE4fhuGj01ofvuiU1HaYGZflbRv/gxm/fmJ0O06LQcsGrPz/y+FdSV4YZ";
+ moduleBuffer += "FEjT6IP33/WR+JVhFgV1LAGbEyVHjydgF7Ak7HcZlqGowvLiOyAL4pdXwWzdYOLF4iC+s1ccxOsvg1IcS7Sm4PidRGsajo8mWjNw";
+ moduleBuffer += "/FGiNbuA7Gcx1xnMbBrzmIKsFYIyYdGSsOepzEaHkFNrDo4/T7Tm4fhLWCNeHB9PtJbiqx6n7EoJpkmiKZJwKWWlhLKSp6zkKCuN";
+ moduleBuffer += "ow9e/+DfJ1mSDaM/ffdn/zHNkqwffejXr/5JhiVZN/rB+25+X5okWcQMs8RmMEevxAwcwvy8ZAESO1E2Tyyx4ydLYrWjj37g3z6d";
+ moduleBuffer += "uFJJrGb01R+76ZY4S6x69FNv+PwdAlgksarRv/3Nn98lJOqV2BvjmKUjcczC9XHM0uH4SZHa4fhJklrl6M8/8au3ZBlnFaOveedr";
+ moduleBuffer += "f5W9UkktMfqtn73pDo2z+Ogb/+joY8k5cPZOktqtJLVbSGpHT47Uji5UaosGxUfBPg2KTIBdGhSZAns0KDIJ7COpNpBU60mqdSTV";
+ moduleBuffer += "WspqDWW1mrJapaRKwiQZkujQxj2QgD2BleTeJLP7QAJt8tcSaJS/mUCr/FBCmuWnq+RFo5/+0B8+GL9Sm+VfH7/hNfErtVn+/Cdv";
+ moduleBuffer += "eCI2rc3yF//2I7APilfJHyIl30VKvpOUfPvJUfLtC1VyIym5gZRcT0quIyXXklRrSKrVJNUqkmolZbWCspqgrMaVVEmYJEMSHWTV";
+ moduleBuffer += "o946Um89qbeB1Nv4DKi3cfQ/v3nnfyaMuuIDN371n1JmXfFP9303Pa3rin/5g+99PDuHev+a1HsPqfcvSL13nxz13r1Q9daSemtI";
+ moduleBuffer += "vdWk3ipSbyVJtYKkmiCpxkmqiyirLZTVZspqk5IqCZNkSKKbQ71VpN5qUm8Nqbf2GVBv7eiffvuGT2WMiu3Nj93zqfSVumK75+7H";
+ moduleBuffer += "fqsbVVWjf3X47a9NzWGiv0jqvZ/U+1lS770nR733LlS9laTeClJvgtQbJ/UuIqm2kFSbSapNJNVGymoDZbWeslqnpErCJBmS6OZQ";
+ moduleBuffer += "b5zUmyD1VpB6K58B9VaO3vTob+9PXqlr4L/69r99NWHUwF/5/PsHp3UF/MhX77wjPgd5HyLtfpO0+zXS7gMnR7sP/O+vgE961fva";
+ moduleBuffer += "tzz0NwmjR3TPfT+C7g1XvY8/+OffTxlV75vffuy2uVqlPyL1Pkrq/Q6p99jJUe+xU1WvU/V+7XvvvytjVL2ffMtdH80aVe9Xf/zz";
+ moduleBuffer += "n2aNbtpv3vvxH2XmsM2Pk3p/Ser9Oan3+MlR7/FTVa9T9T78p4d/kDaq3r/86Fs/bVa9R7//lR8njar32w99+bNz9Y7emMAsHaEs";
+ moduleBuffer += "XE9ZOpw4OX3KxKmq1656H/mzv3gsYVS9Dz32jn8wq97f3PKFh2NG5/f4vR+4bq66952k3lspC7dQlo6eHPUeXah6n0N171tf8+Yv";
+ moduleBuffer += "xY2698g3v/3TuFH3fvEnd3wiYdS9f/mr+96TnKvbS+q9i7JwJ2Xp9pOj3tsXqt7nUN370duO328Okf791/79F2a39x9veewhs9v7";
+ moduleBuffer += "2MN/9ZnMXN1eUu89lIW/oCzdfXLUe/dC1fscqnt/8tpP3alHJmtG//Pzb/lc1hjP/dGb/vVbWaPu/eVv/uO27FzdXlLv/ZSFz1KW";
+ moduleBuffer += "7j056r33VN3r1L03HL7+16IlrKqL0be891PfFk0rVW+M3njPbUdSV4aqAhm9+eZPfFE0ragmMdSbIJnFSWaVJLMKlNkJi3LCrM5Z";
+ moduleBuffer += "oVUGbdOtbUFF0D7d2h4kgqXTrUuDeLBsunUZqb5IaheyWjLdugQ1HgTTrQGCIGidbm1FXAThdGsYdLTGC8m0nKAMErD7UWK6IxYL";
+ moduleBuffer += "K0YbDgkZHX4i+dLR3KED4jT3cnklzhpefkBOeSZGU9OtiUK8NCb+g/XE22AaNgazeA3isAQmXGMw+VUUh6UwtRqDGb+cOLTCJGoM";
+ moduleBuffer += "JsJgbvRoEuZM71iTaL526WxbbPSBlNwwO7EJpjsPJ8LM6L2x7WWxIDZ6a2Ja2PLY6F3i2CSOR8SxOYitSN6VCIOx5IwQTjCWmGld";
+ moduleBuffer += "KQ7xmdZVo989/pk3ZFozoz+5/9W3JVvrRj/yL0f+IduaHv3537/6W5nW+tESUUWIn9+dCFtbO/8fe28DZNdxnQe++/fefX/z7vwP";
+ moduleBuffer += "MH99LwbAgASIwe+AAAXiQeIPTMmkHYZRUtoqbZVcYQ1UWwLN0KpaiBxbkBbZpZ1xwrhgi07GNhMiMeGdeOkEW1bWY5uSYJuxxy65";
+ moduleBuffer += "gmyYMipmIibRJtiybGNTsrjnO+f0vX1n3iMI/aS2akEJc1/37T59Tp8+p0+f233apNSdaTqDnIt+NovPrnuCFT+bS/eZ2fQ+M5fu";
+ moduleBuffer += "pud+es7jzSU/m06P4deqn02l95vpdMFMpQfoeZCeh7SVWFutKxYNxaqp71v6vq3vB/R9R98n+n5Q3w/p++HglJkI8Sl41yJhQM99";
+ moduleBuffer += "i9QR+JzOI9TDSHoHzyEeoR7k7wbuv75Ksxie+P4pF3SR2kv+ThWh3teDNMHzjYAGKz2vUoN4fjEgteuZ+7Sp3dpUS5tqa1MD2pQI";
+ moduleBuffer += "A0toAbilgNsKeEABd6jCfgU8r4BjBVxXwA0F3OwFOFbAdQXcUMBNqjCrgOcU8LgCjhTwmAKu9gI8qoBHFHBNAUfo1Stm+Mpp8/kL";
+ moduleBuffer += "xnyOd1W/2k1+BBkm418Xsge06eSKGZSSM5/LZtySM1ryA4rc/YsBI3VsMSghsyegxg/jSUidQD9fMR0BeW8fkCe18dYV05aSO/uU";
+ moduleBuffer += "3KmNH9DGF3o1fkQbPwpeXDFNAXlPH5B7tPH4iqlLyb19St6jjR/Sxg/2anxRGzfY43HFRAJyRx+Q92rjo1fMiJRMP8cb2vOSqZbc";
+ moduleBuffer += "q41PaePTvRrfoY0fh4SZE5/LphhUS0BN8a8L2bSC2mUO9ymRKVqDOgATHYDDOgCHtgzAqyqLX1RZXFdZfENkcbc52qcpqwjuM0f6";
+ moduleBuffer += "lNityLQVmZYi01FkBnoh01Jk2orMgCID+TVmvk9TVqL3m8U+JRYUmboiEysyTUWm0QuZWJGpKzINRQYyP2eO92nqgCIzi9HTs8RB";
+ moduleBuffer += "RWZEkRlVZCJFptYLmVFFZkSRqSkyZT3xAdtk/CNXskPaKH4/eMFq7lxTPOCWPeWUnbmgCJ7QQXt4y6AlBHYVOsPRFTtdoDsdoCcs";
+ moduleBuffer += "AoW2OOmWfcApO2sROKoIHOmFwBFFYIu+KIDOOUA/YBEoNMYet+xJp2xqETCKwGIvBBYVgbLO2OsC3eMAvcciUGiNe92y9zpl91oE";
+ moduleBuffer += "jisCO3ohsEMRgN6YNrs+l00zsNqPXDEZKwn+jZagGkQP5SWmi5d2yh3WATmkA3JQB2TSa+J6rzl8H7RCgYyokaK93e+FjJ2mO4rM";
+ moduleBuffer += "gCLTVmRadzrvz0MrFMgYs1BCZv69kLF6o6nINBSZuiIT36mtsMMccJE5yGqkaO/AeyFj9UakyNQUmRFFZvTbty9mMPYOXbDDMckV";
+ moduleBuffer += "Fk9ih7ZYGQ/i9al+5WeUisM6eHf1GrzHdPDeX9Ifs4Czsx/gnVssjhN4/UC/8rOKyHvqEVeRFXokBZy5foDntlgfH8Drk/3Kp4rI";
+ moduleBuffer += "e+oTV6E5+gRw9vQDbLZYIvfg9b39ylsj4j31ymJhl9AEf3+faey4Np2ZY7cxEu7IHhnWATqkA3hQB3DCE3w/0+dBRWaX2d2nxClF";
+ moduleBuffer += "5o7skY4iM6DItBWZFozYvsbRCbvS6GscPaDI3JE90lRkGopMXZGJWa8c7NPUBxSZA32No5OKzB3ZI1VFZkyRiRQZXHw4eIVUhV2N";
+ moduleBuffer += "3GYyHL5CaojLHuo3Geb2yDEdtPf3MqLvL/QKKQdSEaJPXKB7HaCZRaBzhdTPVtvlPqfsTovArr4GESFwQBFYAF+vkGqwC4MC6G4H";
+ moduleBuffer += "6H6LQPMKqR0uO+eWne9lEB1RBI72QuCQIsA3+l4x4wJ02gWaOkDnLALVK2YsX2YWZaedslMWgcWS3pgR3ZTOWK1DthAbfXsvpDtx";
+ moduleBuffer += "Nvjz5r4L6b2i1XdfSPficNXnzfyF9B5McbRMupCmhq206Qukbu7HdFjMjvtYs+QTYLqv57xICvyAedCtt2BOlert7l3vPnMIiy13";
+ moduleBuffer += "Nn6gVG++d739mzo+m4LdneVFmQvZNOzb2aLWHJ/4VOusyJ41E13vbDrR8iK4o+ApSjNxOKV7DDsTHhBZxMAeO+pjmqoe9RdEa+wV";
+ moduleBuffer += "JTIvOmNOVIgR9TYl2m5ClNuI6LpE9HBL1HIsWjgUpVwx7MT4tGGfxqcM+0qeNuw6+bhhl8xHDXtonjDsC3pUZAIeIlrgXsVlrDTB";
+ moduleBuffer += "rOFJNsNlPGG04EmWzSU8yaJa8USGL3oi08t40gx5y5OBdRNPWji/gyet3m/gSVP/dTxp6b2BJ9kY1zyZUdfpCUdd1jKT3XhpT1BZ";
+ moduleBuffer += "DEDKJP9ahh/qko9999vct9v41wreXvaXzPbi3XZ6ptOmYvac5lgk5uJJfCyrmKmTPgsMGdPX9XlNn1d1cc9Csud0QPVO+hvWlDvp";
+ moduleBuffer += "f1Xyfc5fL/LfkHyP89eK/Nf9wosmxyz4kxX2UWdh8nqU+9Zwr7KHXWiU/U4gIxPl/KXk5yN4d8X7ZoLkF6JuRdT2WpCxGfhakI2c";
+ moduleBuffer += "zSjbRKb2kUno7nn/FXyZCJ9dkjlvhVJ4XiJUIs7mKfGbuBmTnhfy7FgybvpLlMz4NyEocxRpjGgpbVDzYzRWxuFR7F4Ml0zV1Jey";
+ moduleBuffer += "JjreF6Z0L3FuYykbdXMvc268lI24uVc5t7OU1dzca5w7ALSKXNPkX8sY56P8cwU/R/jnKn7W+Ocafkb8c51+noZb9Cu/9NMr/6my";
+ moduleBuffer += "yFPiafhF//2P//TKocXCz8lsoVaFIz7Uwhj1/8NtZt0emhylMn5fDRZlLq2YMUI8+QoJYPcd7J4yrXxkkv5Y9lm/AvQKgWag/YHV";
+ moduleBuffer += "uskSQEWm7QJZKYCsvh8ghoGg+BqTsx4u3a7KAlcZhwYbN1VCIwXxp86mYy2v2cR4awVN+vHmj65Xkr9Z50tBq11vifeI4Kf/7NI8";
+ moduleBuffer += "9E53I7zror/ror/rojd3XfR3XfR3XfR3XfR3XfR3XfR3XfR3XfR3XfR3XfR3XfR3XfR3XfR3XfR3XfR3XfR3XfR3XfR3XfT/7Vz0";
+ moduleBuffer += "v/3dc9H/9nfDRf/bd+6i/+3346K//rffn4v+76e+98LDcNHfqJ/N/Dls018HMkRXFp6uQDFWsiD5Yxx52JAXcVZDBDrJuyF5SRYV";
+ moduleBuffer += "eTclbyKrFnnLEeeZLC7yViRvPqsXeauUV0EbAQLeKTzKQ7ImyfWqJCOFUpNkVRHSZCzJtViSdU0K+MQFv1wtgd8og18tg79ZBr9e";
+ moduleBuffer += "Br8u4Cdc8Ctl8DfK4NfK4JfjEviNMvgNAW9c8Ktl8DfL4NfL4FfK4G+Uwd8Q8PMu+LUy+OVaCfxGGfxqGfzNTX0PmaCpOiT4f/Hu";
+ moduleBuffer += "n7z7e++++//8zRdw6VLl9C/+IWIQ/tq7//sLConKIv/dd3/vf/5P7777hzMKIpDsV77+m7/yt776+qWvVZRMX/J/7R+89PLv3fyD";
+ moduleBuffer += "X31b8zc8yf+X/+qXfubtP/sPP/47mn+jIvk/8y/e/Z1f+OdvLG/X7gGG0HM06KHKyTgIs/C8CZ+8gntCKL0a4rYc/IiyKp4bYRZT";
+ moduleBuffer += "nWtc53xWP581ETDydvQt96bvZh/6bgR96At607ce9KRvlbIDU3vqCv2+bKmMiLjzNFmD2kCpuxllDSpzXcrEpv4UdcAA3tygDuBL";
+ moduleBuffer += "UwhCxG+rpvkUIHB3rEXnsw5u5aDfy1S0TuUuCRTKWaHeRNz3kJu8fS+tBD17ablPL93sMwpu+L17acPv2UtrlF0z9SfRSxfdHjif";
+ moduleBuffer += "Jdw5AegKTMz9SDOS9GObiRrkIe5zP3bfkdotM4AB1OLKofbOepWGCs0gVYZyS/oyMg1A0cG2XGW+dK/aju4UHb0uHT10Hoying2Y";
+ moduleBuffer += "P93Lge3r1eDO+nrV79nXK37vvl7u09c3+0mc17OvyY6ivh7gvr4kuDfMAJM5zF3AdNVNQ3pJStRNwkSN8IBUbgxxiWu+cmOw4MaG";
+ moduleBuffer += "J9y4ZXnZAjeGGHxk+68G/kSmyZhcq2pJHtnKsA1mWBV8xsCoKsPaTxUMW1GGXevBsA1qavR8NnY+GyfOMYd8HlDdq77l2Zp/Zzxb";
+ moduleBuffer += "83rybNXrzbMVrzfPlvvw7GZvLblRAc8S7obLgnvHJEzpBPcC0zUA4tFRwrMBM8xEbWMh8IWr41ziHcvVkYKrG8rVMS5x3StxdQwl";
+ moduleBuffer += "Pi5MvRjpoBkCU8e5/Ug7+EYNI4D5jeFV05It4RjzfbXE9+u9+H6jxPdLvfi+qny/bvk+WvD9hvB9+/lsktYcOu7WPB7f3WueZf26";
+ moduleBuffer += "d2esP3W2F+cXejPe9OZ70pPtvVh+kdmczjDzPFpDkzQx6qkBA+VtCoKYl7SgpmHNPZXuQFn5OYdc5kK6E7nycxdyeS2Y7uaeiNN5";
+ moduleBuffer += "ls2Y1uNI19J7OF1L7+Wh4ad70dfS6D5gJ4DuQ/vycz9yBeYCcuXnAa4epwd5lMTpIU7X0sPMJy89ws146VHUFvIWMcbl5zTX8tJj";
+ moduleBuffer += "GAWSdT+Il5/HgZI0fgIFpMUHkCs/P8CNxOlJHjBx+iCen0pP4ZGkXSo4weVOI8OkH6SMec74EDIW0oco4xhnPAyKKvzzESwKIFno";
+ moduleBuffer += "QxlLQ2aYB9+j3I6H2+YSVY6XRFgTM/FkLqzLKqxTomB9FdZthbDeUGGdFFHsIazrgU70kSqD8VwW12KM+AYEF31V0wKDIjwspTdL";
+ moduleBuffer += "Unq5l5SulaT0nV5SerMkpZd7SemaSuk7m6U0MNtFEVVUzYzJJCzqWiSXzaJTIrXXpVwNWU9kJLQ17ospWs9SN5iHzDE4BQiRaROa";
+ moduleBuffer += "R/ndNPgwS12PXpwpWECibvaae809Zo+Zp44hLWZ2Ew/H+fU4eCOdt8vptaK/djodVXTRnNM3Ra/scLtDiCfa66xiM8tQtmBxMhw9";
+ moduleBuffer += "ktqBQHzm3hgAM4d5rDyC8/kCbXgxuAq6P2iOmiNq0VTFZBwzh80hcxDzA2FwgOgWwhJ0qBC2UBBWxYgQwvb3JOy+grBBUNE2I0/B";
+ moduleBuffer += "a1m3hMUYiDXQZgw9JwT5GjohhFlh7qfntOSGIJSlxTxMhA4JhIHFYB3EdM0papQGAv2Nn2J74UFzEhEFqPwH6Jm4hHSo3AN2vifM";
+ moduleBuffer += "0LMtkGVOFIS0MJrFsDxuLUpFOWTyFumtkscotxnlD9FbJa+9GFwDcjzbEQgYiwSTbHgZv7GOX8GN7fWbMUZeFThALmKVi2qOUpDb";
+ moduleBuffer += "urcqrq2rQlMBKU0gYE476C0GG3X2fREK0j5NXdrILWkkZKv3/HncpMr55bYXg+vQGcv1pQwBztfqS8lvegaeiYXkhe2wGOtwUPw8";
+ moduleBuffer += "HBQfhoNirW6Do6/LQlIcFOyp4OVowA4KH86D2C5RA3ZQQMWyM0LzbkreBDsyNA8OCmhedkZo3orkzWeNIm81UidIZBfJATsoIrvu";
+ moduleBuffer += "DdhBEdlVccAOisguoQN2UER2VRywgwLJhiYjx5+i4JerJfAbZfCrZfA3y+DXy+DXI3XNOOBXyuBvlMGvlcEvxyXwG2XwG9bL44Bf";
+ moduleBuffer += "LYO/WQa/Xga/UgZ/owz+hnUYOeDXyuCXayXwG2Xwq2XwNzf1PQ2LgB0U0W3sr6C3gyLo46AI+jgogj4OiqC3gyJgB0VgHRQRkHUc";
+ moduleBuffer += "FFWk4aDgF6sRTS0BOyjIkM4dFA0W+vi29PV0UAR9HBRBHwdF0MdBEfR2UATsoGB9S78vWyqr6qAIxEHB1N2MSD8G1kHB60MovEAc";
+ moduleBuffer += "FB3uDOugqIkClu6AgyLhtYU4KEh7WgdFoA6K2Frht++lng6KoI+DIujjoAj6OCiC3g4KjsYkyp9+X3R7AIZBIA6KBnVcnftRHRSR";
+ moduleBuffer += "OiiGeIj73I/WQcFrNUy+gTgouHfgoGip8g6sg6KKier8eR1s4qAIrIOipqtA7uh16ehhTGSBdVAE1kERqIPiDvq6p4Mi6OOgCPo4";
+ moduleBuffer += "KII+Doqgt4OCIwJTXw9wX6uDoqkOihHuAqargYkRvWRdGHahGoiDAtwY5hLqoIh4varcgIMC3LhledmBOA8z+Mj2Xw38qbJxFFgH";
+ moduleBuffer += "Rd2aFsywDWZYjY29wDooqtZ2YIatKMOu9WAYHBTjbJKOwuwMxEExCPb6lmfsoLgDnvV0UAR9HBRBHwdF0MdBEfR2UATsoIjZuAys";
+ moduleBuffer += "gyIRG5NWNIE4KAYR/Yg5kjsoZEWznYXAF66Ocol3LFfHCq5uKFcnuIQ6KCxXJ1Di48JUdVA02f+RjXL7kXYwHBRDwm8Mr5qWVCuS";
+ moduleBuffer += "+b5a4vv1Xny/UeL7pV58X1W+X7d8Hy/4fkP4Lt6JaR13cFCMYKB4lvXsoLgD1vdyUAS9HRRBbwdF0NtBEfRiufodZjBaxdkwC4Gq";
+ moduleBuffer += "qo8isH6HFLk19VEE1u+wgwmM0zkWuTjdyelauovTtXQ3c9xP59GF4nfYg3EhP+8BlwXmvUBFfu5Fbqw+isC6IO5jSHG6n8dBnC5w";
+ moduleBuffer += "upYeYE546UGAFY/CIR6IXnoYKEvWEcCURo8ClZr6KALrbziG3Fh9EwH7G44z/+P0BJ6fSh8AtIp6JAJ2d5wEVGngQUbLS08BpGR1";
+ moduleBuffer += "IUSeuiYCXUGkHwSesfongGecPoQnvBOBWPrpI8hI0kcpQ1wbZ5Bh0u+jDHFtPIaMhRT3Tohr4yMGzNT1dYDVdT7msu9HximsZmKI";
+ moduleBuffer += "Krgng3MYq0Aak48zpR4cAoOqbdXjMaj+DNHYKv3TorGtx2P7k7l+uKHSPyWy3UP61wO1HCLVLqO5cMPjMUxCPMQoqscjsctLFvub";
+ moduleBuffer += "JbG/3Evs10pi/04vsb9ZEvvLvcR+TcX+nc1iH7EfIrAej8iulEX/577K6cVgGV7YD9Ni+LCZN7vNLrPTzBE5w+xQGGa6ecKIlOTM";
+ moduleBuffer += "obWgMnXIKwgzDkUFLbMuEYIyYdxgTTtj2cCGrPVT3FP4KQbQ+YNM3VF6qk9jEKyPmZ+n6fn4k3blPQZ3gMzLFV20fr/2xGJwEaR/";
+ moduleBuffer += "Hy36D6oVVBMzc8IcMAtmP/UaJpD76Jn3Qqi9sK/ohQjYSy/s7dkL9xa9MASSZdW/hyht533TwIimskfgR8+X7m2VhC4ofcrSn5gx";
+ moduleBuffer += "dqx/hN6OqbNkMVgBMY+yk4J4bf0zw+aEOU5ER+oaEUJGQAiv9c0x7FTJCYnhoXoKjgqXkKq4OMwha4Wy+6KuhDyIUIOOJ4dnYvOY";
+ moduleBuffer += "TL/q1LgE5B4mpIYZtZoY8w8pYnCAyNzcEekHYh9Uv4ygEOknog/AmZH7VarStDlT+GBqi8EqGovYpBMQ8L6ILrCOi47ruHgEW2Ge";
+ moduleBuffer += "FJfF5bqBA2JZnBUBvBZzleZKvomih48isj6KsIePIuzho7A+BddHYR0Bro/Crt5dH4VdclsfRej4PCKeTF0fRVj2UYRlH0VY9lGE";
+ moduleBuffer += "PXwUDvjlagn8Rhn8ahn8zTL49TL43EfhgF8pg79RBr9WBr8cl8BvlMHnPgoH/GoZ/M0y+PUy+JUy+Btl8LmPwgG/Vga/XCuB3yiD";
+ moduleBuffer += "Xy2Dv7mp73MfRVgywaI+Poqot48i6uOjiPr4KKI+PoroNj6KUH0U0XneZ1D4KMI79FH0om+5N303+9B3I+hDX9CbvvWgJ33wUYRl";
+ moduleBuffer += "H0WoPooB66MI+/ooOtZH0f4OfBQRjKKohyHeq5dWgp69tNynl272GQU3/N69tOH37KX356MIyz4KdRkXPorQ5D6KtqyK29+OjwKO";
+ moduleBuffer += "h/fpo+iYTT6KO+rrVb9nX6/4vft6uU9f3+wncV7PvhYfRafso+iUfRSdfj6K0cJHEZZ9FOFmHwW4kfso2r19FO3356MYKPsoBjb5";
+ moduleBuffer += "KMCwfj6KMWum9vdR3BHP1ryePFv1evNsxevNs+U+PLvZW0u+Px9Fp+yj6Gz2UXTULnZ8FKMFVzeUq+Ouj8JydVx9FGBq2Ucx0dNH";
+ moduleBuffer += "0S77KNqbfBTt9+ejGCj7KFy+ryrfcx/FWNlHMfa+fBR3xPpTZ3txfqE3401vvic92d6L5bpyn9V1PbwSuq6HV0KdCfBKqDNjh8md";
+ moduleBuffer += "GXMmd2bsNLkzY5fJnRm7Te7MmFdnxh51Ztyjzox71ZmxV50Z8EqoM+M+k3sw9pvcg7Fgcg/GAZN7MA6qB+OQejAOqwfjiHowjqpX";
+ moduleBuffer += "AV4J9SrAK6EuhBl1MNxvcgfDcZO7PE6Y3KkBP8Ulu3Mid2qcVKfGg+rUOCVOja54GuCfmLDuCXgaPmSsp+Eh8TTAOXHMOifsJopH";
+ moduleBuffer += "sZevt0vhjHUpRP1cCtsKl0Kn7FLoqEthu3UpdLa6FBxh3eJSmMhl8Q5cCu2yS8GV0rWSlL6nS2Gg7FJwpXRNpfSdzVIall0KoXzp";
+ moduleBuffer += "t+paJDdUFw6k9rr92sxuHhLaWDZKqMvhYV6PkiDTmj8yZ/jdDPhgqOvRi7MFC7Aw3ZdvoxDnxDzxMN9jMaidt3uLc6LNWyuKjiq6";
+ moduleBuffer += "aOcW58QAb61wukOIZ+cEVOwOy1C2YAdoAEzy1godCHY/SQfMHOGx8ihWtgJtRP0NH6LF9dGyv2Gclv3YRpHwdHGQ6BbCBgt/w4GC";
+ moduleBuffer += "sBpGhBC20JOw/Zv8DQPs5b7P7rtUfwP7DkxKz225twTbMLCp7zg9Z560ToEBkRZaJ3esb6Kj/obTpkuNjrv+hlPmQSIa1J2k56BL";
+ moduleBuffer += "CLaIfMDO97wbpEZWH/wNDxSEtDGaxbA8Ufgb6uKMB3nHsIPkqQJl2Yf4EFb8+Q4P9jfwbEcgYCzy/pCqjF/rBBDc5JtYjJFXY2eC";
+ moduleBuffer += "dYGqn0JQCnNbVzdR5Jix0FRASovdIR900FNfhGz+4PbPyx4dk/siIuuLqOmKo9x2P4/E/zTqd14Yh0di1bceCZrsvOSX7cLN559H";
+ moduleBuffer += "/E/glpQj/scw2xzxz2OmOeJ/FBcdHfE/jcnmiP8krjs64j8L5X3EfwIT2BH/U5i/jvgfxp05R/xPYgo74j+Km3OO+E/j3qQj/odw";
+ moduleBuffer += "bRJ+fBwa7oh/Kht7Phs+yZdUm2Gczct8M2SQ+So2gYyayeezkVf5SpULeRnjGf8MzuuMaCp8bAmlx8x2qQgYtiLB2PZ8Nv4q36rD";
+ moduleBuffer += "l2N7JjpD6iEHJZUFli+wfDPOSeIAkiGBTgV0ZLZb0FVqRUHXqJWJ57OMftb1Km7PxGcEugCl0TisMCO3xUiasC0SG6VFPssI3xWS";
+ moduleBuffer += "ESFgBIGqmQQuI9zqNlAMBGLCxSJAuMw+n+2in025yBoHE0u4CA4kCcMuChYjRcFiRMPMxSi2GO3iJAkLklVCcEYQrBGCRhAkTQFc";
+ moduleBuffer += "xxmrCeAKBBuEq0WQcJ1+PttNP9t6+bZnWj1wFRyhWFwULcaKosVYUbQYk+C5GDcsxrs5SWoESVLcZqcQEBMBM0JAnQgwQgBZ1aAl";
+ moduleBuffer += "Y6y3WwJaRIslgGiZej6bp58dvVDcMwN9aREaSDEPuyRYipQES5GSYClSEixFTdNyKWpZiuY5SatkJEl7m7nnszGmatLS2iACldYm";
+ moduleBuffer += "Eai0tmgqVVrbROu00DpAtE4JrR2idcfz2Sj9HNRL1D2T3IZWoRHOaJdETztASfS1A5TEUDtASYy0A5TEqnZA2wwIxdIBA5biUU52";
+ moduleBuffer += "zCCSoJo6YFKp3inog+oZ6RZQrULWNtNWyAaoA6akWzrUAUT1kFC9eidUC7VE+6RLrKcYKrG+9owSG2rPKLFW3SmxVe0ZJbZmhlxi";
+ moduleBuffer += "IXlzgiokj4jdxnTPYOBOMt3TIHaU6Z4CsWPKbaJwO+jWe9LfN187ikHO121lvk6W+Tpa5utYma/by3ydsMTExCMiZoLpmgbnhK4p";
+ moduleBuffer += "ELOd6UpBQQq69MZ3z3RuJ4VtxT2XwomyFG4rS+H2shSmZSmctcjWCENCdpbxngKygrcBhgZ46930nmn313lNxS3XebNlnVdCNTSm";
+ moduleBuffer += "rPOmLTJVwoCQmWa8ZoDBDPCSa9JxPLfXDFHXtvMZYro8Q8yUZ4gp21hEli81NiWz7uvSQr08H9oRm8+HU+X5cIcFFurV7kM6YdfO";
+ moduleBuffer += "LLmAcAF8t4L7suD16la665XkFW87TsTTz0fCU+oO85bUJePhuCuftMf1Ux5OyRr1maHuC5mUD5I/CwGX/uHUtu+/IG44qoyL0Lrf";
+ moduleBuffer += "kJ9VWbPjZ41+flN+xv4pqhO2Ks1uhf7gxjQs9k/zyWD2/tmfl/Kfp+WkPF/r9bJeqMvTiK9TY6TTeawmRk0NmqoaR2R6LHtMtxGy";
+ moduleBuffer += "4Ux8b7K7OI+pbgjBJ1kS/PKMiaV8icsZsrqVd18Xaj1pgphGJV/+jUryF7iiSw6+zz6X/Eqc/GdfXKFkiF6c8+sveDBEk7NZPFfx";
+ moduleBuffer += "X/BPFf8zle6feo+H1Hv061+8+z8+3q4hBmiTBkj30+eIE5e/8kaF2szqD7XD7mxaw8n5s2lIZb7x7ru1jxDdUbdK7cbP/fWscva5";
+ moduleBuffer += "rneOXnnPnu2eXEprTVPr+s92X3zjjQoQz7yH0FJaafk4KE2QutuohPfcWYJa684+MvlsGgTAypv3Q2qfpChCkFJ6nKXf4eP020t9";
+ moduleBuffer += "U83CdgUMp1SlFXKUmBEqgJLonOnnuuG5JepbbvSRSbyYTNGDHrVgvHalSfzovqK0+d2Eae7eCoB988xkFnWD57LKc9QLwbmQMeq+";
+ moduleBuffer += "8MNMHIlYN3g2q3Rf/hJRlQVU4ZUvWfrm/TgLMRhonY2IEzyoYtuW8bvPm+qPnKNRgcBYlW7wjFyrRrysIC5r2PU4h7pzqUW9F3Vf";
+ moduleBuffer += "ExQ/0g6YW9yBliWVh9pE8tOlHval44RHfupxb1JmklWo73x0E34QohNpTUAi0coqD3OMgpFuIp1ZmRR4bU8ZZpg431TkXjhf6EIV";
+ moduleBuffer += "HJynYVyZBPMM4uT41D2UXeFsQPPpHSUB3beAqQ+q3Qr3RY0GlyAylVMDUlid1LpJd8TU5hHH4+HJJcNCRbRHYLyvyXbA3WL7hvoZ";
+ moduleBuffer += "wLirUaySd0uG6BH07wxw4r4njEiiSOO0cC0eKRKC+SwpJRouZ58Bm54997Tw3Mt57hU8r9wBzzHiLc9x7yjWRrQ4VK5XWHlQQcv1";
+ moduleBuffer += "LARUwlvaJd34uryAdsxHb9SlFRkN12ez8ByGB7dKWp6v/POYR4RiE8LCXAP9wNPHFYV4AN0mg4Zqk9YZD+IYjcMYeNc4qArGkU84";
+ moduleBuffer += "MfsT6fwJlT7/IUQTxosR+4LHV9hNHueAupZ0D6RTJynV9GsJKBRUVx9qezQ0crIrfcmuMtnVgmyazZjsCsiuMNlVHaykGpTsijyq";
+ moduleBuffer += "dgSjs0gA+0kjOPm67RLpnFAkGL1TRe/4z4hi82ns1KAbqD6Nnfo5yGiwSUZTDAQisRlwR9qxSV0iSu5MVpukGa+Czoa8swSlHsY6";
+ moduleBuffer += "75s4Q7KZYhRX4caZhNxRp0KsaYZhLuRqI6t8xPBYO/v4ORF/K/U+Eir1vsilI/VeIfU+hrdnpd7TPvMh3v4mqfc2S71XSL1nAZel";
+ moduleBuffer += "3hdEHKn3tkq970p9wKrISr23Wer9XOr9pjPLFT3iPcZT1prtoMc5+b8uh0vd5eXz5zAXPHcKc1NM0zZJfIUjBnUhx3hP5LzwMKkO";
+ moduleBuffer += "0dKQkORZgyR4HhMniWXt+nb8bKXV7hcxWmLWEPybmqTBhdLrwHvdTkCGRecM4ADf7lX7gobViyQEaYUjDnFewCMmqy0h3AprH7Ae";
+ moduleBuffer += "U+o1SxQQM95HJjEqkQm+kWn0Jtp8dxbNX/qSlfaVL+mA5oa4ZPcy/WLhQ2INiVc08Yr75ioSr2niNbfYOhKva+J1t9g1JL6oiS+6";
+ moduleBuffer += "xTaQeEMTb7jFriPxpibedIvdQOKrmviqW+wdJN7SxFtusbfdNzeReFsTX3cTt5D4uia+4SaWv/yG5CDxzS85iYt4801NXHATK0gg";
+ moduleBuffer += "hzvaTVxC4kVNvOQmVpF4SRMvu4nLSLysiTUkXtHEK+6bq0i8ponX3GLrSLyuidfdYteQ+KImvugW20DiDU284Ra7jsSbmnjTLXYD";
+ moduleBuffer += "ia9q4qtusXeQeEsTb7nFbiLxtibedovdQuLrmvi6W2wZI/sbmviGW+wi3nxTE9/8slNsBW8ufEWZ5Ra7hMSL+uZFt9gqEi9p4iW3";
+ moduleBuffer += "2FUWs25nCaqc5k2+l5hY4VZY47mjO4/IViTMZ5doAmFtgFnAmn4mWOrO06/uG6i6vLwMicQkTCY9r+g+8kybp6cWDAeodXo8Z6oP";
+ moduleBuffer += "twPRAIUaMHyaj7UKZrmlNFBlAh0DpS0KpfaITDJQJB7pkWZP6DQLWk3E84foIqhPXwCRuqydaeu8m1Y4GtLWXgnKHVHf1BGB0xH1";
+ moduleBuffer += "Hh0hUZvOwjggYKw1abohgz3oQiczintojm3w0qr7kiQXGXJj0Y9vo/hQnldpcs/x1BIr3kq3JtZQCMuAiKwwNx5u4+7vANP38+eA";
+ moduleBuffer += "Mt81TVjllo3MUrQulG6qJH/ksTlFK9jcpnNMGupqLArIpKkUJg3hsdmSq1hLrrLJksNkhXWDUGPEiiHGy2zFXOCRmdtitSIT6MMM";
+ moduleBuffer += "OptGxBqdgGhQUeJ1myBYPMXRoqjrPcwmL5aJmZd82WO7jmPsUi+hGEwWvJe+gVXi5aYv1tbIkZ7BLj3qmSoWPP17Jtps4xJqm3sm";
+ moduleBuffer += "ENMglr5XiwWPAD0TNWXkwSDKPCu1+WTLNrkvg8wrkLV2odjCuS1a4bUTFhTdDi2DOb9bsSZiV1hPcByr0pN1bW5Vsi3JauJ1RWuJ";
+ moduleBuffer += "5QPDyF0T+AJLMWkKKsxm4iCYu4kOlTcv10Kg2po8YE8AuCJ13mZ6e6qfQEW5sgVapCAqFkRuLhd98Vq/skIeGyd8OhntVArbzEQf";
+ moduleBuffer += "afvbv1Oe+fn6hdfBHg84T8JCyvqFTV9P1i+ehI3U9YtdvRQSI0KSr14qdvVCOXYwhxjM1Gr4HoN5y4LtjgczLwg2rVz88spFOrVJ";
+ moduleBuffer += "pmwCT9D/vd0ff/7kCyaa9/emRyDKe9OjSM2ni0jNp8eQmkvvR2ouPY6USU8gZdIHkJpKP4DUVHoSqYn0QaQm0lNIjaRdpEbS00gl";
+ moduleBuffer += "6QeRStIPIdVKH0KqlT6MVJw+glScPopUmJ5htZJ+H1IVqB88HgNb4OKBgkXoDzxmkIoR/QQPg1QLUU/wyJBKEO0EjzmkRhDlBI9d";
+ moduleBuffer += "SE0gugke80hNIbYJHvcgZRDZBI+9SOFuGh+P+5CaRzATPBaQ2osgJngcBCfm/YXsw13+UckOdSFW2Ue6s8+dyw7TXHcOJRey7zeH";
+ moduleBuffer += "u5Tvn3smO3zU/wT76g7QO3OQch4/6n+cc/YjZ4Fynjjqf4xz9iHnPsr5gaP+RznnXuTspZwfPOo/yTl7kHMP5fylo/4TnLMbOfOU";
+ moduleBuffer += "8+RR/8OcsxM5uyjnLx/1H+WcHciZo5ynjvof4pwUORnl/JWj8ApSzixyDOV8FPFYkTONnBnK+asIzQqRC89R9iHK+WuI0ooyHzmH";
+ moduleBuffer += "yencEkc8XKCsv9qFbLzww1cQ8bP6qkGncBUapOdIpM9dMTN4baqnzcWixPS5Z/hcgGf+2rmMVNY0LYyx0+NVqjf7rJkmq4SG+NPU";
+ moduleBuffer += "gOlRe5ZqU9WPniMYNX5DFadRMZSKn6SKWY+KqVT8K6WKboufoopzPSrukIpP9W3xWaq4q0fFnVLxL/dt8dNUcb5Hxd1S8cm+LZ6n";
+ moduleBuffer += "ivf0qLhHKv6lvi0uw27c26PmvVLzB/s2eQE17+tRc5/U/IG+bV5EzYUeNfdLzSf6tvkiah7sUfOA1Hy8VHPGaXMFNWv6meMwqnz4";
+ moduleBuffer += "3BIDedV8PwFcIjj40IJpcPnT52yDl1CNcZ+RjJc8HvpHAOEojWwC/yylF5E+Rmlq8zka7ya8crqCOnh5P14ep5ez/HIPXs3KqxN4";
+ moduleBuffer += "9QC9MvzqHrwy8uoDeHWSXqX86l68SuXVg3h1il5l/GovXmXyqotXp+nVDn61D692yKsP4tWH6NUcv7oPr+bk1UN49TC92smv9uPV";
+ moduleBuffer += "Tnn1CF49Sq928asFvNolr87g1ffRq9386gBe7ZZXEV49Rq/m+dVBvJqnV9mhK6f/5A9e+vetz2To+8+cftf77GdO/8dfXvvawGey";
+ moduleBuffer += "WpHzX3/3N74UfiaLi5xf/sI769FnsnqR80f/+q2f63wmaxQ5P/qFH/9Vgtwsct6l/6hMa0tOe0vOwJaczpacZEvO4Ks0wmafI8U3";
+ moduleBuffer += "iLF0tvsuaToMophU2SQiWFewS+5Vg8Q8pNR0JDFHiXvNgCQMpNC0JTFFiX2mJYkJSJlpSmKEEvtNQxIJpMjUJQFb4YCJJYHVwkFT";
+ moduleBuffer += "kwSMhUOmKgkyGYgTR4kd9Dgmj+PyeEAeJ+VxSh6n5fEheTwsj0fl8X3yeOyKw7nzDs/OO9w67/DpvMOh8w5vzjtcOe/w47zDifMO";
+ moduleBuffer += "D+j3YP47G/rM6fjiq92Jv8HCl1WJH8yiz543if4y1fOm4/wecH63nd9hFwPpPM1WrRxG2MVwe4Hymk4eD0rKazh5PHQpr+7kYYA/";
+ moduleBuffer += "T3mxkwcxQBs1m5eJShP1FfPfOv9t8N8m/23x3zb/HeC/Hf6LXjFDn3l1SfThEdGH09CHierIRcmbQV5H8+6XvFnkDWjeCckzyGtr";
+ moduleBuffer += "3gckL0VeS/MelLwMeU3N60reDuQ1NO+DkjeHvLrmPSR5O5EXa94jkreLdbjmnUGeVfIR6RO+eOIchwY/g9K7z2Hf4HfaczSM7SCh";
+ moduleBuffer += "n53i50Dxs138bBU/m8XPRvGzXvyMi5+14me1+BnkGjEfzblGHNqiEYe3aMSRLRpxdItGHNuit8a35Exsydm2JWf7lpzJLTlTRY4K";
+ moduleBuffer += "pEdD8Bx/VSX2Tb16jqbRa+yuomEIvk5y1huSNcBZ2zlrXbLanLWNs74oWS3OmuCsq5LV5KxxznpdshqcNcZZa5JV56xRznpNsmLO";
+ moduleBuffer += "GuGsy5JV46xhznpFsqqcNcRZq5LFg3KQc172mn/r7pLr7pLr7pLr7pLr7pLr7pLr/xNLLs9dZLmrK52pndXVtySnvqVMY0vO93B1";
+ moduleBuffer += "la+lEmctRQbEIdJlzmqq466mBtzVVNtdTbXc1VTTXU013NVU3V1Nxe5qquaupqrFagoLWXPobNf74bsLqve1oGo5v/EBzV1ENZx3";
+ moduleBuffer += "1mzOjebcZKa3d5dH/39dHllXS6HLinWRuyDScs6CSNXa6JYydxdE3/sF0Tcmfe+Fk9iNvF7bdNuRXDjEgXr0MpuN0IlyYy8XCp3w";
+ moduleBuffer += "ufZGoFDjydSKvGUbBCYu8lY1AI9edLSmMYM1iaA3zrVKCFLj3JRkAww7NxbViiSC48RFck3f2iuA9K0mb2hSL/RB+KCqQ6BetWRv";
+ moduleBuffer += "Y9LANQrZRh5WUDe1IeduIEC2Ny9JAKOVaFM03aDX5SMhN7vl8hHN3nL5iOZvuXwkkPwtl49o/uaLLIKlPGo9AthzWJ34tPd5vbpB";
+ moduleBuffer += "4tTkFwLJdUA42v8ZmiUCPh56e9LWg56kIWxKL9IQ4qMnaZWepPUiC/F9+OIJuXFmI8zwKdYG16kRfcSmBy9ewLHpKmJ/nxfiV0IJ";
+ moduleBuffer += "FxG59wNpaBt760wgPXI9v2ZmI0CPvP/uWO3dHStBH04HfbrD78NpvyenEdpI7sTpSHzz4hoAuQ5G7+8I9VA7nwnO7zuK5cInzEjU";
+ moduleBuffer += "dzXpu5q94gjx9RtyN0hYPvtbl+sq3F69FpR7dYw71sa/4SuY3P4Mb9ufa37P/lztM7xW/N79udynP296vSXHW9L7agYRkU9uhvBL";
+ moduleBuffer += "UX7G5FINic3WdC9T0ijy7mVKHPlPrkZZ5XPf+d1JsdydNGDvTmrYW6Ywpi/nLHxKAn4Qe1rCnmEOY9eydyO1pctNfkNSVQ9W41A+";
+ moduleBuffer += "OHAtv4Rn3cf+8PfPgXWvJwfWvN4cWO0j4Ctebw4s9+YAn+HmiCfjOPguI9pGoR0r7vf4lDBg5Db3J9U4ukV+cUZNg8TgeiKN+NMQ";
+ moduleBuffer += "RuTXJtXyW6gQkU9uILF38TSduztugleOzhnWgA355U5tjj+QX/+URwts2TuSCt5pkJ+qnM3PeXc9v0Vnw7sz3m1UevLu1NmerFvo";
+ moduleBuffer += "zTnTm3FJT75JHBPcbyBxctJJYy+TSqeMvUJIL5upyo07a1U4QBFEJN103c4tGzSmdN3Opfy6HUTIgksUoT3SQG/vwYU7Gnhmt1wB";
+ moduleBuffer += "gwt3bHiaPcZeFINrdzSKk9y8c6PKN+9oIJp9elsOrt3RQC/79Yoc3Lmj0V0OyDU0uHPHxoA5ZOxlNbh5RyOR6OU7tXRMLsTBHTwS";
+ moduleBuffer += "y2VRLsTBtTsSy+V+uRAHN+4c07AxuJuFL9u5ZkPb+nI5y0mEA3nqSvagvcFr0OR3Rskgz07Z27kSvcjDL0JPaZDLmr2NrWPyq9p0";
+ moduleBuffer += "lNOKhcZ2U8Z2k0RrW487rXQqqEB8Ir037tam0KuRvRhrWO6LM/nVWbGNXBHb27UKodHQUWWhQWCkQmg0PFLVBmQZEaHJ47TgLi17";
+ moduleBuffer += "hwCJ1GKwUoM7yhw088aYJgcdmTSD5kENGzVrZvT6r2nq3FM2xkqovTfldBtWbNQ7DemdRhFsgwNlm+2UMZQH8MCdNsMcQTaycUSY";
+ moduleBuffer += "KdIb9zjdIB0AlXbYoVwinEi3aHCZqjkpNA8tBpdA1XGzYHZpJDRFZhj+cg1JMkfPCRsCtWp2WFJIkxAZHTvxN+SCo1EJOjLI8W3r";
+ moduleBuffer += "9hKbugQoQf/skRCxSklHKTm0hZIhjlxaULIYrALZYxyURYKU6E0vcrXNPhNI/A+ieK/y+V4idsRGUwmAbijoJqBErs/ZDZqljRB0";
+ moduleBuffer += "SMy4AxLVRbGsK5YnHCwXg8vA56gaOmK8EDZj5oiRO9nEMgqkxYBIAtkSGzbC7Uhmv/Sw0zTunLlfLingpheDNTTiNoEgLXKHnMQz";
+ moduleBuffer += "0ouZeIo/f14hL+aQF4OrNXykQDBTBEPh20/nKs3f2ea3XgjtHbfVOf6OIWeZ4sm0xify6EeTw8LSv8cmU989pZqf48H7GJu908f5";
+ moduleBuffer += "xO2P+o/zWbHL9SUOmBvwdvUs7q7/2a9Xkp8nIub9tXrawvO1elrH83I9beP5ej2FVYhtlHF3o1S+qeUHtHyHmkBI04bUyxJ8a8kG";
+ moduleBuffer += "k9+l3kKArqyGQ6lUFOd8osfDF5C4EKcM72JMigVboVsY9iZJHhNoyZcD+rGAWAXYEHsDGPxxFTUW8OfwbQEmP4Hm53Fe+Fs4uEpA";
+ moduleBuffer += "bhZA9tJsQ495U0sjBeUD1CkBIZkE0pde9wUa4UXFKslvR1i1J2/776M6irYRYNkMuLTdviLcA3nLxnbE8p/nNMwJDebOaMBg8Lm3";
+ moduleBuffer += "Cavk79H42Fe5TKxHeDb6u4axolccgR+Mt1OKw73y++RfRnA3d72zA34YoJFu8CyfTseRt+ihNo0HPtHNeK8VfR/LiGvRQMNZ9Bom";
+ moduleBuffer += "xOHTlXSIJGDhbFafq+h4Hn4Cx/JMG+eo/ZSs6DQkyDGl6gDcoIq0nB+G4RKaIRPyDDZi6nuCmCeKihlhfVQnWwfyOSTBrNIhGtLe";
+ moduleBuffer += "WQLYIDAY5niEfAa9TTSQYAbPZiEK0LBc4kaHnmiTIOC4YtHSMFqIuzEXZBByXVc6xGdlqdkKXO71rgeXer37zT/5dWycNvXT4SJx";
+ moduleBuffer += "rU72Q/edP6Vu+UKNSy+QMsD+8FuU193ZXUWP/cewgn3/Mc4dkPAuEctxu3lakyaqMCho3q3xpvjgf4Dg8aFRHNJOfpzVxVle3tH0";
+ moduleBuffer += "99gkImQhQEXwWBvShVPyMK0jonfJtFC+CtsSejzortuRBmMoY+HmkfUhKUcrLwIHQftxDPEQx3Zs0zXZRu8/1g4x4vg6c+z4RjM1";
+ moduleBuffer += "qX5siUNc0UIhbwa3pbNuOYY/D0i5S3zlPbEq+UmgvBEgPga1K0lasWHpRQP5n2Fsr4eI/NE2kSRpZUDzM42b5FdRGB4t0jGSoHHM";
+ moduleBuffer += "93Mew0i3UlG3SQg692nyXxDLoC352OeuBUhYcHuGFKhirS49mfyzmJKr1SUO/t5BW4EZsNUb8iMqIEfJvw5YxfILafIP8aJj6zT7";
+ moduleBuffer += "1Wm5L/4QWJDFzmOBsUCn1ZOvIZ/mG74QOUjewlyiVAJGWwpcwzXZXV9ety0uPmljel1Qva9yvU4qxnukjUZryT+OcSoFt7yrclop";
+ moduleBuffer += "lFOCPyP4cyPOat3wI9DSiKTNWumLMc1r9FyPm4Z/XKpnkS10Swt9Q1XYLSoUJY9hT/97q+Cwl/YLoYJDRcTvgYhvEfEVEb8HIr5F";
+ moduleBuffer += "xC9PUBOW9NWC9Km0gseEYhW5WNUUq4iPXRBZl5kqGo3Jj1VlXMmPZf7RonI4rLUG6K9BF/Cq0Ka2WADEorUYRyhIJ9e8Cp945tMW";
+ moduleBuffer += "eGr3yWhP/s8Q2nvA9wOLQebLWBHtb8e4znvJv8NIwOB7ywdWPWrYkr8bFpXtZXlU9azUDS29N2pA7D1aFmz95FWnZVujXP6VOjLe";
+ moduleBuffer += "qC3NVypHK9T71J5/9nhllWYs6vDKr9eOVn6uLgMItP8YD1vbCiMgo18UgSoLGt9oGNJWlUvyrATKMBSxkF6/VUOvP6yHYZBPrfUw";
+ moduleBuffer += "0USGImZQUCGEAjCoxs+qoicC2YNB+oLELnA7jnDZ3HEQ6HLHud3u9aztK/icfUHOPiiZvPelA/sAyWsqMB41UruZq1mrfaWXWQMx";
+ moduleBuffer += "p63K46ravUZgwWT+GuyhQHL5c8q8jwDtVlqXI5HWb4YiZcs0SmuuzcNgrQJHd9Ks1a0+m/yUZ8GR8Nd6CH/NCr+CY6pFTO1wQQco";
+ moduleBuffer += "9jgTWPvuQF2plaCue5/8roClXnfBxt8esgKT5lgVJ7kP85fHff+FMb5rIrKfsK7KF6jKba8tZK9+r3ujL4W9L46+GPa+OfpWz2v9";
+ moduleBuffer += "2O3R6/ro6/JF4nKIoCNsPTYMf3kTDwi9uhoWLojbXWzAXvStgZvZA90jcjP7RXuEbmYXTI/YzfDRbQ3fzD56YHotwKeCPcGlkCwY";
+ moduleBuffer += "fB+EXybULwBrofodbPRP8VPfCApfy/XgTii93JvSSz2D97PHqDelPYP3syuxF6nX5HPJ5UBcuBdx4wA+e0qw/ZhJXbXO/Nj52HHd";
+ moduleBuffer += "l94Qf/CGjUXfftL2xrh8Ect742rf3qj16I2rPn9w3NwblzV7c29c0vzNvXFR8zf3xi1P8jePXvnYcdUXxt8KhPEGLp26Xlu9Ysdy";
+ moduleBuffer += "y0ZcppLveG6H3fDVm1d3XIKXAumwcRk+Ni70eO6PgaBs+EWHXfP7dVi1l6B4/HV3c4dd1ezNHXZZ8zd32CXN39xhFzV/U4e9I98m";
+ moduleBuffer += "rnnyCeKdQMR+Ht6uprpYl8Oyi5U/Bn0aXkDbpTc9HT02WDEPxQAeu8iOwaDcpfxB47KPiNpWItd97dJ2HrB4zPBn1kIivTsZg9cr";
+ moduleBuffer += "PcfgtUrvMXis9xCc7z0CJ3oOwHVxlm8z/F0PPyFGyxIlvsOfGvBLxpyfsg/4op/yALvspew2fjRtyPcOlGyLe/yjNJDlFkT+dO4E";
+ moduleBuffer += "+5avveyeHNTL45c9DTs+6DDsFgc+H9bPSyuBugGGHY5d8oVjozLChR0jcve6cuyqJxwbE60hDY3ljnHh2E3HX/20w7DFYBlGNCJW";
+ moduleBuffer += "s++S6WkWhBQ0dArkJyB+gvZ4gW8HsiiYbitQbEKILXI37NXverMWNX8RzQ/wNQz8XXpLN97Sj6Ad6ST7mXTCVQOeOEXF3bnm6bDW";
+ moduleBuffer += "T5TMwGPyGRmy0S6EgtpfidgElI/ay/Z6UbmQhtu/6En0avnusOopBSozrNPmJYK7iMyps9J6I2/ikjTRFgK8rU1MoIWQ/bH4TCYN";
+ moduleBuffer += "qMRR/VX2YHA0d3wuc6ovBpexirmGvSKwMLNAwlhXyNx9xdsu4/QmLjs6Bo/28reCz56e//wF/Fz+Zu2zpyc4d3n5Vuezp+PPX8CL";
+ moduleBuffer += "+KJm0O+Ji1IO+fMXuTr9OnbxwoULi8EtXH0RG/7CiXAF3Vt/+zcryX+oSaPvfM8a5Q9QXcR1irsX/47T5I3vYZMreZOX3Cavfw+b";
+ moduleBuffer += "vJQ3edltcuN72ORq3uRVt8lr38MmL+dNXtMmEbtFl+W0EiCb/fU5f/AFw9vOPI6CScLFodhj+J05Ent8xJ9LR/CYSkfxeCAdw2Mi";
+ moduleBuffer += "ncDjWDqNxwjNAfQ4nO7AA2de6LGQ7sSjlc7gsTfdhQeOzNBjPjV4hCkC+dMPk23Ho5JNPp+Nn6T1ciyBhRGJGZHOxzkQ+3ZECEY4";
+ moduleBuffer += "1wiHRbSIkTjsgUZu9Wwg10kbRxogbD2JmZ1JPNdHQa4JzpD+yiG5QWB9AeVruGfSE2c4mu2k2SWQA2Ms5JAaUcg1amRGIlRXcfAF";
+ moduleBuffer += "jTiRzyWirTQYCEjbYGDjvtsGaxI+VwJKVxFzFo1y3OxxbjQFKlPcKIeNlsjmI3n7hMqcRANv4lQOUKmXUBEUSNmOuxhYhEIbYlcQ";
+ moduleBuffer += "qtl4vhahhiA0r0kNqjyJuL4SkD61AXgbhN8uwa9qZoDqbo5CPJLjJ2Hk90jI5CcZ1XYPVAVFsnDHXQwtwjUb5zlzMSwQ5vDEFuG6";
+ moduleBuffer += "RXjPaSd0MiLHT9to6xzGmQMIS8hnCW0/A1J2M9LG4t8mUrYp/hJl/h76meC8FEjp9CVFSCBrZdylwBKkFBQE1V0OKAWWII0ibwlq";
+ moduleBuffer += "UQcyQfdoMsFbfB6dlPDbVQkwLpHxZy2pTaJvp427PmdJbUkQeg4sT6ROCKmJGQWpGqr7Y0zq4G1IFRKJ4EmXQi+/ekCjXU+5FNqQ";
+ moduleBuffer += "60phUASZP8MEz2tSo5AL/R1LsETKJgvsjF4SkEpsbgTvnrURuzka9aQSvdOGoN9mBawjgekzJppsMI3LjjNz759oIZZIT11aPUWw";
+ moduleBuffer += "bgOwT7q0RtoxSqvVc0qrDcavtNY0PLvSCl7P2nsiOFD5LJPNUa1Tlbqd0gNtInCX9ECLuGokOHgHxwTvgKtJfn2DcnW2zNW0zNXt";
+ moduleBuffer += "Za5Olrlqylwds5cENCSg+AyTtQ18my1CzBu90WGX3BfQxtk8EJDcTgJb+T0OKoEzZQmcLUugKUvgrrIE8jUH9noMUidzennDDov2";
+ moduleBuffer += "KHDdKVd1fJIRbPXXdk1FLdd2c2VtV8I0MjvL2m4MikmuIZkALtv0rhDCZYfEf/8UI9DsNTNUtel8ZthWnhl2lGeGMWiGEZ4b+VKN";
+ moduleBuffer += "CZlqn+UGquVZsJaD1llwojwLjuIKlhGZ7j+Nm7BObw29HiH0+nmOvB5jKdgr8nqskcfpB+6a6RGBHC/wtZEhIPr6drWJvDmUm1jq";
+ moduleBuffer += "brz8GxwyL6hwWOfuNTcdUyU3fdVNsCXFQdxx4sSb9z+WVa9kI6ff+LV/87mIOCBEzfsfzRpXstHTP/3lN/5xSOMF2UtE8p/8xj/9";
+ moduleBuffer += "UUoLS0dtrRlb68msfiUbs7V4EC6h2q/9xT/8lk9yodUUiozZMQsl1eKjtvh2fa/FJ20rT2Q14KbVxrXamK02VW4ls9U+nDWBnFbb";
+ moduleBuffer += "vbm1+XJre2y1R7P2lWzCVrtnc2v3crkJW22vrfahrHUlm7bV9mm1CVvtPi43bavtt9VOZZ0r2TZbbUGrTdtqB7jcNlvtoPCF6hka";
+ moduleBuffer += "4ttsqUNsXAZnzCF+T5JGJeY4oDMLcWAOIJd1zUGeQihfSs27pe7LS4VmP6SI5XABd30QdK2x161xr1Njb14jMPskPxug/G12fEDy";
+ moduleBuffer += "h6iqCDErhwGFQ3AXCkjzDqQ9Tgv3SD5uWsMxbAt3movIvQwlqKHpYOpkYhUENXS4AD7lAM+cRnc76JPasg1NcBFRFKxn0VDI+w9a";
+ moduleBuffer += "0ODoIwuCGjpWAN/uAJ90Gh0vUZRL0phQNNaDojbmyk0UPVAAn3WAG6fRtERRLuijQtFoD4qaUPwuRTsd0DMO6F1Ofk3IqZkdPAxr";
+ moduleBuffer += "Cg3zj8zSNVMXRMj4tkjIREUrgxEZ3ijVoJmBS1WXIP25whIl7eoqYbtpFdpqW1lbiY4LHUU1t1lR7SyrkJmyotq1WXXMllWH6LXA";
+ moduleBuffer += "0VFWtQ0WemOs3ITougR+NVtikm/aic6IHUJzH39UpbmJCtHUhhy24bazBFfPFCW4wGxeoMqcl9tTUhZemUqH3OI7neIzefGIuYkr";
+ moduleBuffer += "V4awa9QdJsOYQO1AicwQw+ks8XUQDKbLdHTZiXYmiyaJewSzjs2/TlsYGDZ/Ls8PwGfcDlTlb4Uy2rvcV7jcYrKoP+GMvOm8foj6";
+ moduleBuffer += "tIDKWECgn5zhJQMEAJk9CtAO2ZEcYIN3MZ2BqdQEkMaZKybCfssuQ9J6ULR8I10ko/3K+cyOIzOA/a98lRtZfFfyEXme+41fXcCr";
+ moduleBuffer += "QbySoeK8uohXw1dyxJ1XL+LViKlfsXkjJ3Fqn6y2Kyw0nPESMkIn4xIyAifjZQ97Giu4G4JMDThYPHzcOK22wlrx82r+E49VvgAm";
+ moduleBuffer += "QFR6vlXF4+MauFhFDlwsHeHAsbN/47XzMI2Q/AzQxldYsnJ8GTZpxNZOJccBQJg5ya/EqI5bUuRGD/rxjF6Z4sHPD9+QPJv/9X/x";
+ moduleBuffer += "/H0vVPkSv+hsFs4hBgF2YG1D08k/wNf1G8FSNpohoOebobW3iNV7/DfCxeA6bu0o3beyKWU3TYTz/nqILRocVBefPz0HFsGh/iEs";
+ moduleBuffer += "Ti3pTYIJKA26Q0tpJBAQzRnVwuTv06DZV4kRWz/otpaQqCc/TczZ75EK2FdBxPpnUg+baRHluSptesm/idse9lBs6/JWqeGl7j54";
+ moduleBuffer += "0LZ1q3y/x3PHKxUy8L0THs2yHECZ711Jfr+OPRzUmP2Jyxu44TD56VDa8KgNxEzGTa2+WfRH6JfPYZkJForyoQwJ07ytO7Ukd8ba";
+ moduleBuffer += "9NwS3wicp/cuyRWymubwsS3enNlaSmvSS23qpbYg8U88097jJ+kBorhtsSGKD5yep3HSoefCxezgq7jb5QC8jss3Zz/Lzw3/BxCe";
+ moduleBuffer += "lVQMW0agzXS68bPd5W8F554h4wYdmfzDKtpGW2kD+5sr1pSeX2KH/IFXk9d8No5xDrt7OLfJjbfH37sYTPh82818zgjibcYhafNi";
+ moduleBuffer += "wcRiEAtdIwR6hNpiWDHp5uSfkrBa8kYcho6YA5ApX5H3kn8UyHsZZAJukMANAvWqpGUzQ+WEF+cjc4Qv/+n6vENVvszXk5/C8YUW";
+ moduleBuffer += "FDffG8E3S4TJzwYS+SeRcECxXDEx1vUfoSExhB35yR8SiH2VRIq0shjvcAdEcpyGxxABbS4lOCaA+kNOmQDnFEAWUYduqaJGKLu0";
+ moduleBuffer += "vOQPa7L5h3/xxiEeU7SYmeetMCaR+z9ihGqomjEdMNVuhGKDS939WoxgSrGKbP7hLTsjS9298n5I6scar/jUWXQfyPGpowadzsc2";
+ moduleBuffer += "qn8LFUSqhtoYzNugF2gjYgFq0gvAaPEe6hGSTwhXBIEbIdEmUYXMRZDHkVweI44GLaBbeGGpjIjhfgF6RNDz9lX24moOjDDfjrCF";
+ moduleBuffer += "JdN0x1e8GMzLzmQfO5NNlPx5HSOf40ZVsfZM/ktcXJpCpI+CigarXC6V/CgHJG4IdxqmSu+b/CFKyGugG7zuPu0GKQAASksDOyw9";
+ moduleBuffer += "kuruHL9nBiqKDREBH+WFNlbqkHD0vSdSrcTVTOd4BfcCe8crNGl2K2inxmgBjxrwaOfs4GI4N2DxqKHhdt6nNenTmoaobkufbjO1";
+ moduleBuffer += "5J8wd7cJvfRgegN5H+733iC13f1yuJSr20LD04Avy7IVvtpchdvHDUXQWjUr1jWJxq/0bRXrWkmsN0gDRXMYN1NLaaAqifgqjTTo";
+ moduleBuffer += "DXqXDLUQFSvJNUj1Xlj6g8nliF4yDfg+zjsfjlmFhc84/sIiybg7cSEsVzYouLFyaDjFA5Mxtm3Sgjj2hdjxSfJvQ6nVEcGmdkkx";
+ moduleBuffer += "/EpgereWt/BIO2SZxnnXUhuLQWLa/Ak++U3WOQv40I5abVE9INM0gCGfv0vA0kA4xxPVoIDDTt9AdAjPJgmE/wEdkVzQthtIuxzi";
+ moduleBuffer += "fxA1I73azSf9LsqCb5XD+7YqC8LuJ2MBzF9aF3Q7YWA6OvbupEXs0v3JuCmfw5nZvE0xIq5pDbIZMdcGLM/z/lTWUNWELmzkwoVi";
+ moduleBuffer += "uGiOjHwxnwIqQbh+qya1dNj5KJZgvlUF7PKad99SNWN3SMrlUZHS7OkG6ohGmZBWdcW7KhiwZm0waRE2SYjeIElWtViFWqwVarEK";
+ moduleBuffer += "tVjL1WI1F2EGXnOU/wGBHTDsGg9vnSuFtm08gYotouKsilXJg6CzpHIEveQ3oly7kpl3LUwPIP+NMA1cIcf6mVp+mw86HfVvqNDP";
+ moduleBuffer += "ziHmVLzER0EozZ8iHaGPrdDHjtBbaa9D2uOStK96fJzE1LHlJxvLDY465HcXb/j/RsWOCVoH7fE/KSL8PItvfd5/2rbCJ058pyhE";
+ moduleBuffer += "q3JbXVWHCfJ+dFW0VVcBe9FV2LfZrXR385aDqPs29vJAO/1RjHH4tD0OhsQn7FAmHSW3Ny0sJV/l8XqMBjA9DhMrIkQBbLC6bQpA";
+ moduleBuffer += "Pv2IkwQ/GwiYtlgfDc78VR/G8Scw7dGI3F/5oRMVHXSU/ddlIv5SRYTsc97SnkplkfNO4VRIxHtzxA8aYcNRxIdLyXLiHmBZ/FR2";
+ moduleBuffer += "cDFYwK+n0wWCPIcdWgKl2p1d4kvKJTG+RB2HX+bgYqVDj4XFSk0Fr8Wb/QFkMaA1F6GKrWHJqto92DfZ/Xolt1j8o7lcicXTQoEH";
+ moduleBuffer += "ctnQi9ECpxgsC+B4wJa+WdksSm0V01Xvv6GYjkFvjsAjzRXGuhbSmMhmfZNs0lB/EYeeKf+ilw7iecFLa3gue2mE5/m0jcen0xE8";
+ moduleBuffer += "cDMkPT5FFg89PklDiaWj4UzZwwR3GGLQcWdTNon/Hi3ETIMWXoQqT7BNpHjl1cCYTxyze5yqjYMclp3xPWRlQXbGeX4UaschO8d0";
+ moduleBuffer += "Ok+ofMI0UrVjS9kEJOO3yGqG1p+kh1VVZI4n0GWs9RM0mwq4hHfHTTqloPRPmaaZ2E9cmyCuqalCRU+dTd7kayiaUNsJ2RGitptA";
+ moduleBuffer += "wcJoCgwfByhT5lmiapsrUsnxnFdNYW4TdjgVHBcGNXLWdkxDNXBHNHCH5z6cPudFHsZ2h3u1exjnDtig5CGW0i8aeek4Vamhih1o";
+ moduleBuffer += "HYzDJkZgx4xjYHa4cSCXtzF+vJI01eDBWbxiqJlhxUdGGT0In+ECHx51w6VRN6yjDsMpweD7FEkQj6NOMY4I9i7SsyteSSNf9GDn";
+ moduleBuffer += "sJKUIXhBx+uyjtfzNFwPvErjskODMsFo3eO/xIv1OqyHeXocBIiETytOwObxyQaqYjqnWiMEtU21DqAfh8DTOtSTMHXInYuHROsT";
+ moduleBuffer += "4UPdieOVw5QRyPUviFhxvPIJqvm1CsbEBPsD6rwXs15YHXVYJx+mRw2bTuqGt6/UoTBO4SQ+oprWAfIYPaqIX1qHQliw043/BP2i";
+ moduleBuffer += "sfIxNNeNnztR+SGCfpPbiN0+w+h9mg8UppG7cpFpMND1S2DXL0HP9cuQrF8CWb9YkqPkC2yzDOkpF3cZg37254RKHEodNBFxqA1t";
+ moduleBuffer += "Ao40wXLsINUewSdZO5VC+yfUxvwSq08CfxBHJPN+Jqr30mMQBymH5LqaIXTfCM50IhLhkNwuOiQkDIlqH1KTqV7oYlpoqy4eggzE";
+ moduleBuffer += "hS4egojEuYjkTVtFykMhzlWyi1qoI0E+IHJXz+6rPEBjjQ2oIXseiH7PshtKxIJMKcBoUiZLxyitit4O7UwZ4rACvpl0v17kwaZ6";
+ moduleBuffer += "i11n+PXVkDQ4AdsIafz2tLZwE+a+yjfCjAxbvqCq+ws4AdH989CSHXJoo1HWVkhh537HpmixVvnT8ETl52CvEUeW8aT+/qYv9ts3";
+ moduleBuffer += "1H67ydfGHvW/7uceOf8iykbHK6sBkR0mvxW+lz0YCbzLgcB7Jcjdee9n9Rf1MAS3mlLivoEEjOSGIHZ78jG1wgzktdUnxfXkQzVV";
+ moduleBuffer += "rT2V8Gq+WFvB8WRG2NjPGskvBibw+YrNpyFdBOQCRxWZx0SLMySkqDhQ86dT3pL6KbJzRgzXQ52QW3vJw97neX/FI45K1UEXFM/N";
+ moduleBuffer += "PnReIqAaAooBf1IAX+IDf/yBkkodfFXWe8sK+bwA/jTDpZoHBXx2yCyc9n+gLVta0TA2fPjmENSND6H8KALcYUeWDzF8gh4ks49i";
+ moduleBuffer += "aQMt5mMCAQsa0GI+mHlYFMoCPWipOi9bpLkb3U6Moaqwnk5HRFVFLD/CqKqqKj40PgLvjaqqCKjAVc2qKhDLjrRVVbVVcBp3gvO6";
+ moduleBuffer += "kSwe/pLfZFN4jtU1mCGfeKU7b9ftW/t5AX3Lnd0EpbySXUBjiLjKq9B5evC8w1elT9Ejgdripe8IPgQv8m3IrK8cdKEg/WICCnBn";
+ moduleBuffer += "bOSucye21GvKrmlRcIEam1SmO1AyNoNuxzU2pS5g6n1Z3FRhc+YYRm5LuekJg/y0/4Os4ALpYfH58B3urpLTmkGh5AqFBvX2jbJ6";
+ moduleBuffer += "eztXb2+persu6i3YUOXxZpjuwvMaqzcOincYY7eKm/msMmMNum6VWeB8KlhjzfPNML23rJgWNimmCIoJu84XFv0NVUxvBmp0ThEp";
+ moduleBuffer += "U/AJjLsr1xZ/8YKCmoWCWsBE4CiowCwUCmq2WAtik4mvG29x+CcbRquvJj+PrSg4fI+duC/5Vm5irINfpF5d83JPE617L/q2nZiZ";
+ moduleBuffer += "4JSmkvlidZpamcYae0zSE5SeEMzj5H/zzITFfKIf5hMlzKFamwSjyRLbovYI85dxbp3W2BlBbTrKlYzfTWvsJlSsttJ08UZRZ41t";
+ moduleBuffer += "v1nYbxi5q44aSF732EZmtBsO2g1onkqOPa+xG1uwz9fY1U1r7Ia7xg7cNbb69IIea+xA1thVWWMPltbYg3zwI0i+oGvsRNbYg5zp";
+ moduleBuffer += "rLFr+Rq7tnWNHWxdY1ffY4294KyxD+Vr7CMEGZ+OFEoNa+yqrrFrWGMv8C/S/7TGrpkjWGPXeq2xa6U1dm3TGrsmi+eaOAJ9dSEX";
+ moduleBuffer += "a2x+j5AFVaeYXWMv2NL5GrsGWUS5ZPMau8YrHdh13GONQu3Vykufmtjs1pvdcLzZCjti2PnCp50vfFqYYdr5uq2Vr7Fb8jWtaVc7";
+ moduleBuffer += "6glv8hr7EPJpjZ3gyWvsJs/GDTzP0zzTxPwS4fEsjZom1thtPD5JQ4mlo+6ssbcT3O0Qg1FJi3eLOr2Z/CzW2HVZY9chGSlSvMau";
+ moduleBuffer += "Y8x3nDX2AFUbADksOwNYY0N2BrDGlnJmALJj19hDcxU2gNNJBLNYygxuwpgRWJ05WZJmO8wMpKWDz1MzBK2DVufsInYm+fHA7MD5";
+ moduleBuffer += "Oty62kFfkRhwmRkpM0m6Wj57TsrCchK92snXNuBzh8XcvrG8mxTeTZoZXrsmv8Bn/SfRL538CxW/RaE5ZnBHmDQE660Dc34pX+YN";
+ moduleBuffer += "5V6CIaA3KegNsZeg45QSL0FqDLwExvESDBVeghRm41DuJUgZcYWRCgwf+/cnGamhwkvAJQfy0ZYKiSk7xJv0wi6odXCOYpHFq/JR";
+ moduleBuffer += "6bxRXoCXvASjPC5yL0FdvQS0roWXYJKq1FDFisooJGkIMjRqJiFao7k3Pm9DvAR1KyzbC2Ex2xUfkRN6ED7bS16CFg/lQm62q9xA";
+ moduleBuffer += "IDoQH9jILAlDhSQQ7IxmisJLwHOKeAnEpKuqpCUqaTWRtAaMtrYZIrHqQN6sl6CJL5fz9DgEEJ3CSxCktDZHjCWqFRHUQaq1gH4c";
+ moduleBuffer += "A0+bhZHGDhA7b43JvMXuEV4ijrFGQb0mPr99gmrCS9BRL0GTvQTNwkvAjqAP04O9BE3Yix9CmDvY103AegCzCLwETVidh+kRwPjU";
+ moduleBuffer += "CZNM8ybGysfQnHoJmmx6NwsvAZdlL8GYTNz0l+awPwgxLtATtI5nPLCOT0yD+nAQGkvW8dQWzFTFORsspmvMMAkRTuv4QemMQ1jH";
+ moduleBuffer += "5z2xgHX8GABP0YPX8WNiEHMvUVVQ1qJHG/PCmEwfY6bOg75Z6PsxuOZY349hlE4U+n4Mg3giH8R501btM7MmctXhohYqr5r0Xgf0";
+ moduleBuffer += "dL6OH6aidh0/zBYUjC42cYd1HT8t4zfm2EgdeiL6oczJMQ5vZw16rjl5yz4HKMK5cde2WyXb7h0P4F/2adzR85JPY5CeL/nECXqu";
+ moduleBuffer += "+DQW6fminwZi+9FEEu+rfNEnGaGVPgzHr/FO51/zbcfEHBXXru1jPjbeyFOI65wUSOyv/HP/ROXfERJgyBt4tjmYegyufRHPiMOm";
+ moduleBuffer += "x+jY1/Ec5ADpbG6+4y0iPHts6scrb3syTSCuHdzatNxmO7NqDTaEAstqojWqRs0VMdh8GGzVwqArfcBtYa9iFSbaG5Fc8NSwBloL";
+ moduleBuffer += "Xy/kI0ucfDaEAZVAiNXVzJ89OabUb/nycbDGX/7cj4MJ44EK+afBa/rZxf0yiHHRZiMsecWHjA/Lxzyr79kNaisN5x/zhvOPDsNi";
+ moduleBuffer += "MdlJali+jA6zG4yHGr7JR/k3eXqBFe9wbgHlHwOHTVUlYhgSUS0kYhgSUc0lYlj0EcNuLXEMIxGFYZGBYXCYY4vJaOZRmOgo7PQZ";
+ moduleBuffer += "hXVdgagfN+aNZaWBzWquPPw3OMcREjv4H0VBMiq/EJuEHbttU08DKGtbCauiqu6LChQ6YpThqLnNIhQQcrNgbAzDOO6+5RVlyHhG";
+ moduleBuffer += "NLi3vZIAftWDoRxjjFaATV0u3MG4iUgNBjwZtEk1ylSSpGz8jmMBHSOqg/B+nEPsKtxxXYaRVhsHA0J6zUB1boixXKrC2lRUDZBv";
+ moduleBuffer += "6OI1lu/SsR6Ql6xXWMA5xKzI8GuUMeQu+x6FNuZfxNmXVVjPi6ziJEUiJzI6cvKjJidQIjkpU+cTPxJaIUcKQaDbeXsXXQ2CVmi+";
+ moduleBuffer += "X8YBDETxjovZht8R0hd9dAOHt4ixHkq+xPON5akEVMjZ6RCPwZS4wEjBEFtoSpKOkyL5XMTHVmMNsioLoJgjdWn3YZayPZQdQR+N";
+ moduleBuffer += "dw/rjDWOHXQLi/yLFkiH+Betf2jCGocqnKBHGxPWOPorEWa26MELmXER34K1wG/dVxEdN7MsolSu21gys4WIjnebSFsRLeoLYMQm";
+ moduleBuffer += "lOE0m0vrOLDsMZisO5k04RTuOpeRy36a8e6bhZ+GjP+psjO6gDAlasWECBiDY/0c7dz6pa+GUJghLpZwHTc3wsXgMv+6rs6Ur7Iz";
+ moduleBuffer += "ZQ8cNofUYROpk6WqTpa2tPpwGyEUcctCiMPndnenxP3BuXvdzxjy1QqN3FuN+D+1wlu9x78VLvoroThtbqrT5ut4EiPfZo/0Uf8G";
+ moduleBuffer += "nsTKtwJxCl2mOrd4R/9R/zp7q7te8hM19bAvqIc9UjfRoU1uoirmk7oJio6mxk/6L0fS2KVIGl+JmoLNi5Fsk6W//tZWgk2tVF1n";
+ moduleBuffer += "FPRbuZWroQB9PZRWXgubQhsYgVbSTGZf8VclS0TGFDbGVvONsVP5xtgp3Rg7hWlhSpeOU9gYW7U7tQIZVfl8HeQbYzNMMlP5CM4w";
+ moduleBuffer += "BwW6MTYzAealjCcWFA50N2w3eAwbcfPUw6Rgp/LdsVPWU4PdsZmZ0t2xGaZnnkUzcQ/ku2Mz7I6dKnbHZpDgqWJ3bAbZnip2x2Zi";
+ moduleBuffer += "FPpNbjQ10lUzc7gTze6OnbFmyoyzd2OBd8fuoefCxewQ745d6Lk7VpckvDt2T7E79pC7OxZtpTuo7Ztk2sj6fp6vF4Qj7TWfkjQV";
+ moduleBuffer += "7KbH4aVsr0rGdqyudH/sduxeVMS2Y3/sPrPbKebsj52bw11q7DPbDqunig/sc5bAuX7+vrmSx2zFP6vuAzIg+fsittAFErSVHfSE";
+ moduleBuffer += "d1Y7w+6xvTwpJ39RN7XkNyO+nZJMh8DZfqavUS8v0chLCC4N9kBj9MDXH7ArDC5wqoitlQFHSMVws/vLIlHDkVhR7H6ryGeDGn82";
+ moduleBuffer += "EHdT1C02i26qXiuqw3Mt28gGsEU/m6dnYS4MwHnyloed+bkvdmDev+5ZjgwA9LxTmkpCZQ4Ao6fNAA+XdRqOH6esr1OP3kdPMsbT";
+ moduleBuffer += "e+j5Oj33k4wOJH9eJ0EZwPrHen52zuH2OzhEu5W0rcMn/2CWW9sNqvw3Q94+R5Z3I/k/atawC7DpfQSzEQ5kjMlU1CiCSZNFbb99";
+ moduleBuffer += "8aeEYF+lkVXlSwIMTP4FGHFW5e8Nhh5huXlpvArzu2EjIGI0qf+0sd6tfD8GQXfZExs7Ol6JhVusKBrdz3niYW1vfvFu5Vw6SH0z";
+ moduleBuffer += "yB+IeGdq8nleECQSwbpl90Xyxp928sVQ4i/CP0aPumk83Gbeu6CrTR0Wwn3dRJ0TUuxVMYMIITzItJk2ifYzaZtPVQixsrW56mxt";
+ moduleBuffer += "bsjW5kTtvX7vraO0kVxqMBhFpqFWAA/Var5eECy1Xm6z802zkbAQXQ1nxr7KBLGz/TCffPjPuFeiO5l/GiI2Vrad8D6Jkzn8akqs";
+ moduleBuffer += "DPHp8pGHcetAZc1OY4Gdq8x/drvKqQeUR17rRCUWX6rdYEyPxhKPJGlUdnsKIlUXES8kRGhMD3araZXDwx53YImVxm188gQxsQbL";
+ moduleBuffer += "ieHk/l44Y0AGU4BGbrL47rSKbmdpF56j6JwX1H4Tys47m7Xm4LzC+qIOp+irySXE3p2AFm3BilXZbpnWHv9jZEw6+39bOM4bWe+x";
+ moduleBuffer += "83EDhQNeYtZNK/lXoWntr/wQFflaJd8UXUPef095f1zkxcj77yjvj4q8KlpZ9tJZPOHlasF91sbj2XQbHp+iYdqCFy3B42law7X2";
+ moduleBuffer += "VT6RDuHx8XQMj4+l44LspONrjnTrbDpM6YSVCyH75/XwhW4lko98LSy/f5bP1CAuPI7WNNMJWkI2j1c8ekzQ1CgaI1nKw3pHIoO8";
+ moduleBuffer += "Qz9SMyPi8zdiEIulIYvvpswSgZydYaclD6Y6byoXLyYis+aGR901POpieNRNM1f0Ldn2TeTJR6sWvra1kl/x4NyS8dFEwxP6SUoc";
+ moduleBuffer += "EsM6TCoYJvx+2PGmD+vkh2MDEgSWV9at5AKtpqEOJnj7lHQuzhZNUJEJIokFk4DKEY181zW25UOS8gxPaR3Gqw4eJyptrPOPV1rM";
+ moduleBuffer += "A/f/hDqVT/gzHbXMfAI+duv1hEyj3lG7sTrCe6uI6D1/UleH9HB+BoPoVv8Cq/+m+2G5hnT+YdkM56Dh3XW+KC/IHu0J9eaxropy";
+ moduleBuffer += "l3Gd/TRovZ7PzHVmGbusm+xmwRjEeI2c8RqUv2Sy5Dr7ESGoYPCwZfCw49UfLn8iDMDg4ZLBsyHzqlDTwstK8hWf+zWb5A/2+ef5";
+ moduleBuffer += "IP9wEDjbC4PS9sJA9rLy9kJ8E0/+ryDfTRj0200YbNpNGBR+H+KR8qUJvgwXfGmCL8M5X5q5C7RpN+zZDYgLAttluX4AtpyZUGd+";
+ moduleBuffer += "Ln7qRC02gde578EVceZPKLO2KLZmDyVWF5U0jOofJ9lnFqcFi7kX4+eg7HhXxsJ7Kb1BUXqJKL2OKL0Jk8LpT2p1OB3CrF6jOdsM";
+ moduleBuffer += "PUMvZnG49LT32dPm8xcIch0v0mdIb+dOnyCdpGqoXjfjhF4D0at4b1vDjJEi3UZzf4ivIiPUAXCnCxNHXQfQqKh8Mj9HZSobLfw/";
+ moduleBuffer += "Ib6FxCcqB6j2IfgpRH21yKKq7KO8/ZjybV7zRGUP5d0L0bJ5C3D7t2AkfBhfI/HhoGW24cNBSz4ctGB4PIAYKvhw0III4m6aseMV";
+ moduleBuffer += "6kozfryyF0P7eGWeHgHuBm4BSUPtwPfSKnw5PHPR8P0oZRrZ8b6g5r/OkqXzUTWOPy2bdgKxvgPZtDPKuwudI1JOh5BpL5/wRonu";
+ moduleBuffer += "YzqL2807dgSMI8Q7MWQMLnD2Ek6YhNg9SJzflg7yB6b3NatWew/Ib3ugubMrf3WrnagMghQo7VFTh9kyCpYt0GMWG4ZGwbl5erTR";
+ moduleBuffer += "9aOygXJUPpPwR7cJekzA6zSKD3KIthRA9Y8atpdHzWR5QNHPYezlkeExio0/1TzRxDc+TlAHwaMnemTU7FTn1CgMtZ2FHuEqO53P";
+ moduleBuffer += "gkUzuXOKh/rOXKWMinNK3js1mlSG1cIAHItZ1cwXI2vAzLM7acXDCuoVj9hKz1XseBvAjoKsZvaLXEXWaRTgNmvc6IXV/D1sGefA";
+ moduleBuffer += "qOW3CBKG8XXP3If9Dqg7wAOaF6/Jz1flFo1pID+AMMxSZhqKzK7ZpnXNRnRM5/t9B1ilD0DU3YXgx0mtozf4dRYJle7ajzDFco7U";
+ moduleBuffer += "PNHOVDlYJV+AGwnuDkpP8EcJt+4pOCoZ1aqDZs1FM3GwZDSuM5bXSlgC0BOyyOTVqfuKup86a1r6h/7SLJP83RCQVqwTc9rM6Xwz";
+ moduleBuffer += "jflmrhgn05hv5vJxUuDBiM7lg2Na5ptp/dY2JyNit9ni3Njk2sBnys2ejY9T/sKS2edm48Cm2UHwt3Ov/l02nXag47bnZyh3yNdo";
+ moduleBuffer += "Y6nfIfAIrR052r2q7O5THh+vZZkx0+XY9jOFXTDDTiRYGTOOi8VQrkzqxuw5TgrCwLhL6MEzrHG+KQN/A2RmcvvAfV0CZb/tcIGZ";
+ moduleBuffer += "vM+N9LlRZGekzzNjkt/ns5rZ6R9b1v9eWBQXsHOGy26Ni9QbGciaMkTXl/csH1vqvWF5fut+ZcR6T345NgvpAZpgfRO1EJMAfvoQ";
+ moduleBuffer += "dxsLnRVMqfa0f8XuLcZl83w4pyIbJ4dwuQyiq4eIGO7GGbhB7zcQiQChnwgzXyPfh3wtZth9LSiczW9yzleDEoBXgsXgqie/36Sm";
+ moduleBuffer += "3wDZG1zyerAkDnXA4cZfdlzXr3DOS47r+irnrDm9tc45V4vQCNSh2EGo963aLs2qspfR2cnovxgt+i/Ldmv/MnXwmm69Xgu4s+Ez";
+ moduleBuffer += "rMmOLgYyASCBuxVyHuqEd3V/TDZ1f5T3YJNqCM0u2BG8o/tRehyGzgqxi6/wtUN1CXjtKOieT+CKH4S0+Na7tXNkrtFPuHX9hycz";
+ moduleBuffer += "r1vRVPDI5PHKWz676INrvnjJ38DzXnybCjnWbljoJQZOaK/Do33qLK/eFjiMACJDcMAJXy0OHxZHxNEnxOLwZPOqJxZHhSNH8AFT";
+ moduleBuffer += "tTgqugc2+WkWAtj4qz6bG56YG4PN73CQ2y3v+ypfCVud7xBakHqtdg7jRmmMbN3nOs/lm9+FNut30OaulK8z+U7bZK0QpT4ccgpL";
+ moduleBuffer += "7i7IYdXcti8znAWCEaUw10fMIRzRS/nek61Nb0GuwAUw0H7kwPC/LRhSP8LVQU0cce++GEHfNUVzJL/Pv96kXz/B/ftK/ouUVPIF";
+ moduleBuffer += "fnvDX+KDzF534rkmvg2JdlwovmtC0Bm5/LOmCHd2GOJdwWdN/oRZyT9rVkieycisQPKn6DEC67ICyU84Isy775LwYln77DNHNyta";
+ moduleBuffer += "4LTKIYP/5MdKwV9kfVwEf/lFrI8R/GUmg4ejCP7Ca+Q7Cv4SuMFfAjf4C6+kneAvEoGGg7+E5eAvHDMmSPBNTr9xhfyBR51P4Zbg";
+ moduleBuffer += "L2H/4C/hdxb8hRsOkp8KpY0i+Ev4/oK/hJuCv4Sbgr+EvYK/oNE0do9XMhKv8fHKxB6v3BT8ZfD2wV9iJ/jLYJ/gL2iLv09sCv6C";
+ moduleBuffer += "UHjJP7rj4C/1fsFfxE3rBn/5JQ+LOCGv5TC01SNKRGtz8Jf8MGv/4C9wvGHDixP8pZEHfxkoBX/5qXLwl5oEbxkV5+YANjRvDv5S";
+ moduleBuffer += "KwV/GSgHfxlwyiA0xMB3HPylJmecR4++d/CX2tE+wV8GpL7sHNLgL8M2+Mtw/+Avw/2CvxSOx4iW507wl9am4C+tfsFfWv2Cv7Te";
+ moduleBuffer += "O/hL/bsQ/KUthyerGvmlLaxpb4n80i5HfpECqK2EtMuRX9rucdR2HvmlvSnyy7hEfhl3Ir/EZhCRX2KJ/BJL5Jc4j/wSA4/xnBex";
+ moduleBuffer += "RH6JczxiObJsOzSWDo018su4jfwS9478EupXKY78EpQjvwRbIr9YQbaS5wSBYJVVDgIRWvq2ynQ5FkQp8ku4OfKLPV7C1y3HcPF+";
+ moduleBuffer += "SSO/jJthRH5pO5Ff2u8z8suwE/ml7RS3kV/GEflleHPkl0GR6nFs8kPkl96t5S3kkV+GN7XB+5rKkV/aUmtc9A7ING2OqZZHfgmF";
+ moduleBuffer += "czxLDReRX8I88ktYjsPCBdu5qW7jsITyDQB7XsqRX0L5Xhma8aObIr+E5cgvYX4W5E5a/DYiv7SdyC/t/pFfwnLkl/C9Ir+0+0V+";
+ moduleBuffer += "CRn0nUd+sSElnMgvsRtSIt4UUiLuF1Ii7m4JKREeLR1cbjmRX1o9Ir+0NkV+aakjQpz+qloDXfYE7DUIXSEP5GDh23z1XBH5Rb7d";
+ moduleBuffer += "xEvpwJYDvyz05QO/ee+/54FfOSKGU2mjubXRgPyaDD+KU2kNnB4rnUpr4LSBttJwI7+gqHMq7T10VQP2x/vRVVHvuDX5qbRw06m0";
+ moduleBuffer += "uG/kl/ZtI7+EciqtXTqV1ja4uMeHkcJgxsX0aHPmdxD5JfyuRH4Jv4eRX+z2oH6RX0Kn2PuI/DJ+dEvkl++9mPJ3lFZ+Tmg0/3Q6";
+ moduleBuffer += "KrLZ2CSbDY380uBTacN4XsAdXA09Xd6QyC8NfOcYx+NZGjUNifzSkMgvLB0tZ8rOj4cNumLB9vDP4FRaS774s3nOn/p42dXaHPll";
+ moduleBuffer += "bK4igWxYdsZs5JcxJ/LLWM/ILw2czVjK8L00+bJGftn1npFfmm7kl11bIr/UzSTOdE32jvxSL0d+4Y+hFkY9j/wiuw5KkV+45FjO";
+ moduleBuffer += "q7owt66b+cf0i2nO2sFcAw+KBh60Grg40zXIvZqf6VLrGN+vcKZrjKqUbORBjMM6RuCgGcPAHMwjv+RtyJmulh1qQ84Zs6EeZ8yG";
+ moduleBuffer += "Sme6RiVQRj7qhvJwNoj80pDILzyOBotxxO7whnOmizWyG/kl1HE6rOM0lnGqkV8GOfLLOCrJma6GnMBv9Ij80uLIL9hZO05Q21Tr";
+ moduleBuffer += "gHzRSXAa9FbxRcaZiwdE6xPhA3JcaIDlEfUaEvmlUYr80pD964XV0YB18mFcAgeXakNiJjQk8ksDeuMB6GB8mm1I5JeGRH7R6cZ/";
+ moduleBuffer += "gn5x5JdGHvmlwWe6GoWjtKEb5p8GuvyxpFGc6WpIbBbGw5iY+jGiPkRsloaNzYKjsBZnic0irUtsloE8NsuAxGbJe4JjswwA8BQ9";
+ moduleBuffer += "YriTBiQ2ywAoS6SzcPMdr5AGRPkOmNZROWeba8uBPE7WwKY4WQPlOFl501bVDZTDZbmohcorJ3TBhBObZcCJzTKhO7RKsVl0G8MM";
+ moduleBuffer += "rVsKX1/AsVkG6Vk4BNmzpbFZAnVoBuzQHO9tDyH+kBubJeDYLIETmyXg2Cwz6mUPODbLoE1hy57GZgk0NkuA/v6mLxbWN9TCuulL";
+ moduleBuffer += "jIev+7nDDLFZgjw2S5B8JXwviy0SeP8ve28fpcdV3glW1a16q97v6i+p7W5L9RZiRp7YQUlAUoQBV5/YxmOIvef4sOwe5ix7hj84";
+ moduleBuffer += "r3wmllC8mXNkqW0L0wnKpLMRRGeiyTQJxBrGThowQQkmtLEnqywmKMEETeIlnaxnI4I30wkOEYyC9vn9nlsf70fbssGZOTtYx/3W";
+ moduleBuffer += "vXXrfjz33uc+97nP/T2njeaXY7P4+dbphfdn47BZRoWdEpulVYhq3z02S0uxWdrxw1Lzl4rN0kr43Vhslob9dOoFsVlaV4DN0hrE";
+ moduleBuffer += "Zmnol1MvA5ulodgsUy+AzdJ62dgsrRfBZmkNYLO0KtgsfoHN0sKJi18gneBi8EsBZhlL81EiDwGz+ArM4oM81+kmcSdPvWRZ8BWY";
+ moduleBuffer += "xVdgFh/VnlYcopZeohio7hAwi18FZvELYJaB7waAWXwrC0oaWFNXZEEf9hmlLKjf6vFbpEVPV0XCooZBtaRCMvQrwCz+EDCLP8Dh";
+ moduleBuffer += "CpV+weFKbgbe9vwgb3u24G3PWN52XnmbArMYC8xiLDCLqQKzGAKzbLNHNobALBN5KFfjrxp8bIFZKlxp1xBXssAsxgKzkCuNArMM";
+ moduleBuffer += "w5v4yp3Gwpv4I/AmfhWYRTejAGaZpBcWcKeQVxBh3FwCs4TYpg4Bs4RVYJbQXrgqUo8FZrEG/nM7FAEBhUAenstrPrdZzecGaj4I";
+ moduleBuffer += "fgoUD6n5Ry34aZr6VwJ+GlTAT/1K0nHALMN6eCkgfsSq4HflKvjcGFqtLv0qMEtrpPabArO0qltgv7oFtio3f8wW2B8AZpka2AJP";
+ moduleBuffer += "AXEv8eNfHARmmWJkZQscFVvgaHQL7H9vgFkiHuvYXKIqMEtUALNECswSKTBLNG4LHA1sgaOhLXCke9tI9XSe1fCWW2C+j/T2d5Gs";
+ moduleBuffer += "BGaJhrbAkZqXRKPALFGhvY+GtPfR4M4kUpE6Vza3Kspmm3dQ0d4PALN0B4FZusUWuKsa8/oQMEvdArPULTBL3W6BFVSypaCSU4pW";
+ moduleBuffer += "GSj4aU3BT9sKWunr7JgYB8yybQT89JdeBPx0orIFVihhgp8+Qt8FCswyjS2wvTQzXQVm0ZtYuLwmn8kWuAdglu2D/gvSVyXbMVsm";
+ moduleBuffer += "cHS03bNg/DvyPeb2bOWCLBP/Cugsdbzz8SfCXGDC7bm90oQ9l6xaKE0MoLNMKDqLfTNie7Sd+0tr2pmAOBPFERLfIpGis0zkZoIR";
+ moduleBuffer += "5OxOuZOnnZ3dyXdQvSS/Z4Wd/MSQMRuMrHvYyfcqO/nOEIZrZ9DqOs+jqXnQMjrZraArgxiuJd5uYUKt13CmhzFctxUYrtuUeNtG";
+ moduleBuffer += "MVy3jcdw7SiGayKfDAAZbcN06mAibUsSzK9thca8KGMIw7VEZ+kW6CxVTNlBdJauorPUh9BZ6gqHV1d0Fk6HTjkdiM6yCYZrjs5S";
+ moduleBuffer += "t+gsdbuT53RrKTpLBzv9HDFUMVw7iuFKdJZGuZP3exOyf/ULdJapHJ1lZgjDlUqKfPGaKTBcZ3STOFOgs9RxBSvHcG1sjuEaK4Zr";
+ moduleBuffer += "pBiuLcVwnVIM10AxXGuK4dpWDFd/GMN1l2K4Nl4cw3VGV29iudqdfF3RWeqKzhLB+lhoOAW2laOzDKCsTpVrtqKzzGAnP6XEIDpL";
+ moduleBuffer += "QQmisxRmx5GaHbfU7JjoLDOKzjKj6CwzuobM2EFfQVmdgfqMTJ8YQnNVW+IQ4dKW2Bad83521lxpR1ypmm/7CsBOI+gsk5I038lP";
+ moduleBuffer += "KjpLaOXcyUF0lpDoLBPyWwJPhERnacnvaiVO0VnCCogFBTyLzhJadJbQorOExMWI8EtcjJC4GL4KgLKahERnaSg6S0h0lrCCzhLS";
+ moduleBuffer += "qDDf3Ye0v20VoSo6i1SiQGcJLTpLaNFZQvTaY67eljuDX5/oLCE6fNVVmdOis4QY72PQWShsDqKzRC8LnSUaRGdpjaCzCLHixbHo";
+ moduleBuffer += "LLjv14Iqlwd40Qugs7Sq6CzRCDrL5CA6y+QgOoti+haIXvmB2yR1U4QLHkRn4Qu8z08EJgfRWSYVnWVyFJ1lskBnmRxCZ5kcRGeZ";
+ moduleBuffer += "LCx4JwfRWSZ1DkxaBzv2pmdo0Vl0FE5sMgobdhtida0hbeAHBjbZ3ODwP8eYyiTJB/+bkbBEZwESSqPng1nnHw2hszB3mV4VdJZw";
+ moduleBuffer += "FJ0lpFVfBZ0FCru0Iz/ldWvWQdFZwgKdpVFFZ2lRtTsFuCSZfBNEZ4kUtIvwpgU6C0G88mVhi92LEXOKt3O2DKCzhIPoLKGis7Ts";
+ moduleBuffer += "DhaaR3KPEp0lJDpLWKKzhERn6VT3fkRn4ZOis3CyHta5+lMKcnhIL7zerRP7Lp3X78bUhQooHEBnCQfQWUKisxQcBKUoOktIdJaw";
+ moduleBuffer += "XG1Ca0q55IEMRGcJK+gseZ+W6Cw6WMrGV9FZcgYj3SJLkhJOkxRrEYineRRWjCBgQT41Y1QKKTrLFpgx8tsthRnjlgKdZYuis2xR";
+ moduleBuffer += "dJYtis6yBfSKtTMBJ+YrnFhrsGtRvwKdJYcUk3S4ADMAKdYchBQrLsAwY19hxeIBWDG9ADMymCrQYsPoLFvGobOYF0BnMURnAdDv";
+ moduleBuffer += "hYpmGugsuGS1Mai9segsxqKzGKKzMEx0FmPRWYxFHTHD6CyG6Cymgs5iiM5iKugshugsrUJfDXSWqNRXF+gsxqKzUHPzHH4VncVY";
+ moduleBuffer += "dBZj0VmoGbLoLKZAZ4EXop8NrY59l9WxB1ZX9CNDuiKLzlIhtLHoLMais5gcnYW1OR6oHSsu4oyW4g+VUqtqpAbQWYxFZ2Gmj/pa";
+ moduleBuffer += "CtBZjEVnMS8BnYWWq1eAzuLn6Cx2vfZfEJ3FL9BZfEVniawSwR9AZ/FH0Vlovjqfq2teOXQWf3cFnaU3CLSs2rxBmGX/JaKz9K4A";
+ moduleBuffer += "nWX7JugsuR7witBZ/JeEzuIrOksAOWwQnaU2Rum3Y0BtBnQWBWSFABlYlV/XIpd0K0tpF1iqQ8glXSKX+LlWpYJcgtQWuaSryCXd";
+ moduleBuffer += "CnJJ1yKXdC1ySbdALukqckmXyCXTg8gl0tAutByDwAzjFJuvLtuYOb26BWbQC/wQLTpSP2npaY+3zVNchX52EHN6CJihWQFmaFaV";
+ moduleBuffer += "m4SxpHTZSZrxecnpNcTP/IsqCEMTV0ib1SukIeL+mcQNADMo/Og2hR9tKa5pW4F+r1Kg3ymFNyUW8LsBWIqroxP4eWdvBj/v6G3R";
+ moduleBuffer += "yo4FZphUYAYYvjcLYAYq+QFFEP8S7d3rvTrN3gHMMImzf7ibzIEZ/JcMzOCr3F1XQd0vgBk6qkjoFMAMnUFghk6V53SU53QI7FkA";
+ moduleBuffer += "M/hVTGM60GzGsmmp5+OjXgFmqOteZLIKzMD3kxVt2qQFZqgXwAwUqpvxfSJIKzBDjvA7CszgF8AMhVFkDsxQROTADJMKzDCpwAyT";
+ moduleBuffer += "Cszg29KG8Blk5fCsXbCP7cNksX3wFXvBL8CAcxNonwi9oJhP+43q2dEAZK8PLFt7XmXhf/NDo11qJTlr9+pD2AudAnuhU2hPO2Ow";
+ moduleBuffer += "F5qKvdDcFHuhPmgRhLmIPpzM+3AAUXnwFIDYC5MD7Az7Sb3WAUIS3DDGXTHFXvDLzQNv31i1oF9RC/oD2Av5XTIMH7/EXqA9jz9o";
+ moduleBuffer += "z5N/UtdPaKajWkC/3NXVk0nbL4QdmSz7hagkkyUqSaHgqOcmM7kJ0C7Nu9rlA9gLnQJ7oZhhI9gLHcVeaA5hL4zyrvoYPtVRrkOI";
+ moduleBuffer += "5XfK9GYXJ2UXk4rEXmjaK/EvwNemlK81lK/FytdmkwQqPeGck70JGAVHgFiYAPbCtkHshQ5eJAPYC35vTj7D551ki1SvJQWHtF1p";
+ moduleBuffer += "JTPCKy32wjS2d80Se2G6ur2bVq7uwV0LBfLpAeyFJm7o/5B8/SPlpfmmYi80q9gLTdzdv1bifqC4Qq+aX0AutxS0ua2gzVcpaPOU";
+ moduleBuffer += "gjY3FLQ5VtDmWQVtngH2QhMQDNdhaAN7oYlhskNRnqUHuLMag9r8dolMCt9OPgeMLoQDh/IRTqPtobwP6Q4YizyU5wkDDa55DbKk";
+ moduleBuffer += "RhJY7fx04d/JLw7n8+7fQuCFjlDfl56oJWCjDenrKen2q3pTVI9f0apZGz8aX/Yoq66eGBKA1JiQHwIvTCcdAC9MK/DCNMDgr5Of";
+ moduleBuffer += "FrTL0wq8MK3WUdPor3n5oV3AtAIvTOMCRSw/Plj7tAIvTCvwQoV+cEVc4HdMV4EXprGJ7OTAC80SeGG6AF6YHgJemB4EXqgWU+w7";
+ moduleBuffer += "pweBF6Z13zkyzAvghe4o8EK3BF7oEniB8PwEXugSeCEaC7zQHQu80EXNnpGcCuCFSL/tcjR3R4EXupsCL3RL4IXc3K6rIPwV4AXK";
+ moduleBuffer += "sTnwQtcCL3QrwAtdW1NIowq80C2BF7o58ILuZOhTII0Kww5+Ox54IapWM67UktU4z1qeHailAi9QRq54NdBXOfCCyu1dAi/8Wx85";
+ moduleBuffer += "vRzghbwemwEv6HWhFwNeKHYtLxN44d++VOCFvNpXCrygdn058AJcq4m4sb0UCrZzfwgRo+qFpyexudcFAi/0FHihp8trr3JchPr3";
+ moduleBuffer += "FHZ3wIFDvq5Us8rVtkxQwvQWfhu0sttz4IXeiwAvDJq+BFbR4FswP5B+0CBxb3+8NeLOUWPEKvCCPwC8YDYFXjCbAi8YAi+YCvCC";
+ moduleBuffer += "6psUeMEQeMGUwAuGwAumArxgCLxgKsALzMACL/DZAi8YnpGYCvCCIfCCqQAvGAIvmArwgiHwgqkALxgCL5gK8AIICguhCvCCUeAF";
+ moduleBuffer += "UwFeYF0s8AKfLfAC9VQKvGCgDogK4AWjwAt+1dSJwAtGgRdosfl2GlgKazAKvGAUeMEo8IIh8EKhRhsAXmB+BF4wVw68YCzwgrHA";
+ moduleBuffer += "C0aBFwyBF0zJl3KgsjWfOGU9rwq8oJe9fStu+Dnwgv8iwAtBBXXBK1AXvFHUhe9uhOfGrDnqwneVm6+oCzaP9YEBMmrEtpPpm9+D";
+ moduleBuffer += "MusvoUyLuvDdlllFXbB5lagLzCuqlj2IuoA8KqgLo0WPVK6sC/LwibqwtYq68DLy2DqIumAK1AVToC6YAnXBFKgLpkBdMEOoCz4n";
+ moduleBuffer += "MUsuziswy1m54rhCZ/aVoy5sHYu64G+CumAs6sKzU557dEsOuqCX6aWDEgf18Bf+/vI3Ln/x8uVv/fTRI6m34Cz8+y9/R/L97OXf";
+ moduleBuffer += "Ohr/32AP0OAj/vLlL/7M1y9f/vI2jV620R9+7olP/tzTj578C0fjF238Zz9y4tQXN/7w08/a+A2j8V/5j7/+r5/95td+9vM2ft3G";
+ moduleBuffer += "/+svXP78r37mycWrNfqcRLsiyfmpQUWjwykYwxmOK9mXyKtVPxUG5N35yOHDUu9qK/wxrYDtqD/ainOeRg+3AtKWP64VjsYPtYJx";
+ moduleBuffer += "Qy1Y1RasmbSJ32VfJExpSXw4xQ3w6M5HJM1pbY9JordJMw6n5nBal+jznLqSSr47Z15KM1fGN3PZjG/motmkmd7YZmKQj2sqFkZ0";
+ moduleBuffer += "lkEnXWsWReRAU2cPp3AEX2NTT2pTZROoTQ3ZOE+pUWeSs9rsetK8M6fGDDq9Qo3VTakRjKHGqtQrGKXGio0epsayjR+mxqKNH6bG";
+ moduleBuffer += "hqvxw0PXJTVWPe34DaMdnxxO2ziDZVOX8oHcUGrUkXLdrRJMBCQkqSXhnSXBlo0SbEaHj1ImSmY0F19nyVmvJNiatxnBzLhZAklp";
+ moduleBuffer += "lGCrNnqYYCs2fphgyzZ+mGCLNn6IYNjioapuuoVkMDrndx5OW7CHYlMvGjt82trUDlLefZgWykrSC64dPZakMYei0GsCGg0dg2aQ";
+ moduleBuffer += "pJMctTIGp4oZecazJLVjUEg6jc5wKzPSfSljEOfgY8bgjfvHDsFd40dgMn4AxmPH3xnWVdY0F3YLeMQsuqiPbeKc4EmHHMw8QCc4";
+ moduleBuffer += "5wExXIBbyKazx4HEo/VeU1Et7pBx3Eo6byOxjWVcLRBb+kveO+ivbhIzwUV+mnSSbqW/Njx02EQyySRLmkecTFQ6bNnTDpvSAa69";
+ moduleBuffer += "MZlMva3ssFVXO2xamYb2zHSyZaDDLjhlh72z0l97zIasHgnRS5KGbU+9bEjZhnZZ+S2YfVrtmbK+bUxFrenWsop1zOG8cmquAMfD";
+ moduleBuffer += "+lKKv4jiW8kWJaM3SsYNaR4gy9tKJE0R5s1TLiBJhJEmdSY57dpR3dYk7MBdYAUep0aznBNS/iIl7iTUXnJt+X5Z/iLLJ5/GCHJt";
+ moduleBuffer += "C+yUIUtLUHw+Y/ba0qOiiCUtoqkNGFNEjBJkC8nvd9oC7IST75eJxpb4fD1b/XyPORmATfnYGWzIhvQJjkxcOlv46JexHV5ZfBX7";
+ moduleBuffer += "esG9N8X5v7w9C0FBAhgBwn4uX37oP/zt5csf7d6bGImRhAtvel+e9txg2r/66V/+yMUv/6dPPOUcHpP4/GDiD/2/f/ux8//HB//8";
+ moduleBuffer += "C2MTrw8m/vrDv/izH/8vz//uq8fV4sJg2i/8P5f/0x/88q8stjXtQ5nbz9wD8Sej+CxmqUp5n+mIlJdSyvNzaC0sXJ5KeQ5naBqA";
+ moduleBuffer += "RRiudLiqlYYL0N4ybkXj4rRWxq1q3GwalXF2sY/A7WTrxrgNXSGT0GZlNFjT4DkbjGxQM4irGSyagQxWBzNYH8xgXTOYrWawPJjB";
+ moduleBuffer += "2mAGG4MZYOE2YHrSVmHWl39Chan7ZPzcbYuw8t93PvWty7+x+LWvfsmxxdj4966+7wuL933z1I9otHBzxJ799t8+9fG//No3v2FT";
+ moduleBuffer += "n9NyZA2u43fZo42NTmlhE5hFRpf9UOIv5vPYgAkII8MMwHzepI5rm9RxdXwdV2z0cCWxKHNFhDqmmO2crC3W2lbvZL4ygpeIKGN0";
+ moduleBuffer += "6YxYXY+SSy55BBDoDtvmQcbrHFYKrLngICZfTg0XU1mdX6ypudg93NR1Z2xTzznjm7oLLW2ypWdzaaHJlnapjGHtQrJVk3O+MGmx";
+ moduleBuffer += "ahNIcaOS4nROCnBcWbfwrWebuMIlJCDnNXbVtUQ7bKkFoaShKjClVudtBbXWJZ9JWd8she/GymkKJgrufCX0SsaTKx5HrbGU0jUF";
+ moduleBuffer += "qIpWaBIZItdz9bbotliFDNTZwGMAtjq9q/B7Rw86Nl37egC718W4Nw+663fXJMbKEL1tHECmt52ao15CbRKeetRT9VJupRHxKt0w";
+ moduleBuffer += "JykOu9rsJJV14LSU9Hg1e4ALmMlFuXoSF710zqCHI3QpGpnvN1q5EE6NXLX/lsyY/lu2/Xch779J238hhIDEWLkJVpi6pk1w2Igg";
+ moduleBuffer += "goFWSzo6NDRRW3ufc6SdqweUCexKpaNrbNikLNywB0uTq3HnXPdIInY02ThpHZZ9bdeWSoPQWm3KTLUNAUWYNLByAO6vvrqQnhqQ";
+ moduleBuffer += "e+SLeam/lX9CkKRN+cfY9bqd7NAv2rLeo2aJ5AqBwMeyjlG73Qoo2wAEx0p2USQl6+SafOaxkjUrxM+VGyJuZVrs5VdhDtqKiHCA";
+ moduleBuffer += "wpSGFOsPg9uwYsUWgWMBJrGoTw+nmPxahAc/sfaG2erja068BFXzio/l88z3l8/vL5/fXz6/v3x+f/n8/vL5/eXzRZbP+Fi5cn6u";
+ moduleBuffer += "JSvnPFbONZNjsizmi5zJV06uJB5XTi5efr66eFw5i/XIxq2pojkxGjxnF0gbzNdLX4NYZmvlt1jfTJnY6rjzxPlKF9isXC7Rq56U";
+ moduleBuffer += "bpmBqTIDj2uZGeEGnq5Ow+zAK1SogyzB47Li2Uklw9nj+hktuA9SoavLGDA57TLmcREzUtV7H1B1wuFNa7iyWQ2dcTUcW7tlJcM6";
+ moduleBuffer += "dNYel1rA4ORLbV2qmUQLb1o6hmGl6lNtwzmqrGXQyhDy8vVPB9Zh27AV27AzRcNW2bAXa9XiJq3aGNsqrmXjWiayhUe+37Ej2ssZ";
+ moduleBuffer += "j9XxEpj1ZM7ssFoJl/Hy1dmD/CF8ABSoKwXqjHQxqWucd16+IIf59CNt7qiS5vQQafQYKF8lQfIBovibEGXXeJokY0kSj6eILg+T";
+ moduleBuffer += "qLbqhAkctOHJcuVZjt2bQBSsyb189dmiODa6anm5OnmWVTc9Q9lX1i/PLjZXE2NVli9POZ6sXkQH2pVew/4w6TZQJe+JbkF2yDvA";
+ moduleBuffer += "bzpbdBJXB8yUpKkd0NRTAT1PabEDCnmkWIs8q5BuUJnr5arYwS66W7uoxjyWcgGyc2e+oqCL7GpEtJ4bS7Ey3iOyirRpTtYGXU4n";
+ moduleBuffer += "5HebFXamwc4lbirnp+DefmUaBXkbItuGyaF1p0HN9NZKhVHXmm1Nvsxdo1Vt7TGnUZmrbLEReDqX2wQYRaRuG6X7WnoNaxjXGdU1";
+ moduleBuffer += "N+3CZ9eUAARsoDpcxhrF6rGKQvx8oZJoUIsVOpkfCPB4L2lLOVxDcLJ3ta4xXEPOGDXdMFxDPOw0ZA1Z6rjeUWu57eU3C17Kv8SB";
+ moduleBuffer += "Kai7v7PV9Ywf1MKo3mi22p1uPDG5dWp6ZgthlRxCWcGJ4S75OfbxJxyYc3oLPkCfXCI3x1+Keqa1dTT1qc1TbxlN/ejmqWeA7+tk";
+ moduleBuffer += "fh9WOx7NXGBG6mWefrpRfOrt8fZKxAkXx/76GxMzvtXfTTAuL9vRh5kpnp5y+mpDU5Y0rSW5Nn9bteOfyPN3Nf8nnfH5DmY2NdrI";
+ moduleBuffer += "1U9s2sjJsUWfGy76ZzZp0mDRE4OZWTotPvqyMotH27Hy6Kbt6I5tx5PDRR+7oqI7o0Vf2Lzo9mjqpU9umro1plmbp26Opj67eepG";
+ moduleBuffer += "OWIrRHjmk0NE+MAVEaE+WvTFzYuOxoy639w0dTimWZunro2mfnbz1EE5EmTaZh90YQLODxP9iSGEfArftzRitpyXIJvZ57wZqy/B";
+ moduleBuffer += "9RaSPSiXt+ESIuthWF+XKHw8DMnL2e2SoloLfzPmYSxxznyvmIcZ2+lPf2yo03/xijrdGzuNLpx5WTPYHaABezCD379ymnxqfC+2";
+ moduleBuffer += "HSwTbrb1FmJLjnCUU5966fWBM/ByaF5JBqO0Rg72cnbzYw3ZTW3DbmrZ5HpIirCeQ82iiwe/1NPIiwFV4rrGxVQ55upFjZulujLX";
+ moduleBuffer += "GLq6Z3LxvV9qvqpZSbCSCwEAKsEygzjPYG0wg43BDFYGM1gpM5hNc1WnO6B3xDYyKoOrNoNaoY4xFMlGlDdQolDTpLKb1Q3hYBvQ";
+ moduleBuffer += "hwm2XIPf0D6wOKzn9qZpNQ5hrtqql4qkQLfEmu2yq4IZhaKFZIkqghpLGawZVAh3PqK6sviwXsHPhdLmnY+UKqtmrtbsqCqwVNSE";
+ moduleBuffer += "Vo7SWq3ZWhVn9I2yVth1Tah0i4rV8oqNbb5uX2RLkGtRZUuQayyhxMJmCBos2olsyZUYtApfyvcBuVpPdVirHpRYIu5TgbW30F/p";
+ moduleBuffer += "/hf6K6u7sruR7QV5EuqoqHDKdTxNlZR7qgRWsb9TVbg2cyVQU5W/VcqdHUe5c5Zyp3PKTVjKNaxuS60OWlYXkrZGuti3XdzdI/tD";
+ moduleBuffer += "OL4GgunbHhHRf4tuCO6EYqid9HSLqXI+Kj1V1ral+qU6pf+igh2tR0wFVZwkd+bSfx3qHRACndp9W9GpsTXM3qZCvVU/yzgDCh5k";
+ moduleBuffer += "+KusqtWarLB82Rc0VTXLevhqI0Jxv15sAiLdPVH0P0dkYKq2VPQHCZj9NVXTE91jb8+niGSzx5zXT2FQEnD/u8esUw2xxwBTWEfi";
+ moduleBuffer += "HgMsYsRd9Gilcfmy0BY4xAtH95gLXlJa4Mv+Pf6iq6cWsnk4W3fnjmBX8ToP1qLu68DRjiDoCCUl2ErDI4cRjmAeh1R1DbeElC6S";
+ moduleBuffer += "NTUcy6SUcJK2jyR8syPt6JtpIaeE59NYw7PS0S5+JjU8n04hPJ1OaziB5SIy3KLhHans5OSxkUjWUYJcWwny6ibIQTaM8ncqQeow";
+ moduleBuffer += "mZG/frJV/kZIbpi8weQtJu8y+YRNPsXk+KjOjww+CvhRxI8a/KjFj7r2owl+NMWP8GkTn6bXLFy9dDi9mn/n+Jcq8u0PpPMLjQdl";
+ moduleBuffer += "W5d0j8BmSj6ImcUks5hmFltYem3gs9mF5W87rFP9CMYN6wRqz9kEc8x3vkjWRNXRPVfbBFczwdVMACuhI7Z+kgO/sfWc59+rHoJN";
+ moduleBuffer += "9PYDag1thOTyyRY2NWJTG2xqS/7O2gZNHIHClg2aYoNm2KDNm3LVUEkxS9qCkqZJ2ojlNVhei+V1K+VNobwJljfD8q68pGmWNI2S";
+ moduleBuffer += "JklI7coGy2uxvC7Lm6iUN4PypljelZc0y5ImUVLMkqY5jLS8FsvrsrwJljdVKW8rypu54pLmWVKMktosaZIlTXPAanldljfB8qZY";
+ moduleBuffer += "3kxRXgfloSRlGA8cTo0t0B8oMCgKTKTAazSN8HLkYSRFajnOA/argF/5/Mo9sJtG+GahAwXKliUU8gcytOwQzdMhd9jsz9vc7RCX";
+ moduleBuffer += "72pSij9YScn+jbDVT0zxrd+8P3Knj1aPoCElxr8aUqqBCSV+oJOSn5bG37gfRrP4UQ9qaVvj4UYRloa1+MOh6uxpstfS4JqBo1cf";
+ moduleBuffer += "F3d5NmnRf2b7abe4M7Hs97lGxv00LiKXJLLBVTudqF6mcHjAArPBjpawTnxcKSP+CAqSVQfxAQHS5aEoPFLBK63Z3Ooq16YtG26o";
+ moduleBuffer += "FJdOVku70ZYmq7xtnttPp8vS3Lw0T0vjmXfqlg2+aOCGNG8UjrfLJl4gyvRg29YhnZRVLCs3plraNJYqIi4cCyYhqnXFGfjZo3//";
+ moduleBuffer += "uJNXVWRqdG3etGb80w0lWoF4VlfBuUowd+Cmy5qrx1+Q6NNmWT1AFbYJWfKRUOVzWbU6Sjs/2aIlXWGluTbTHpaZh9oGT7u4W+QR";
+ moduleBuffer += "F3mMHT41/dqtdGXe3otetb0bXrW9F7xB1CrPVmnR5L3OFhnN6wprU+1Hg34MZTKxTjPJFNol/F6qJw8OU9pXbX3l2Vc8S84r0E6m";
+ moduleBuffer += "9e2UUsah5UNRCo/T3lv3gqPmSKHYdLPodjoZDA+kHqCcHNyyTk127e1wi4WLdA72wCsutuwmc/eDn1w2B9IgA9Z4Zg7Ai0DmHcrO";
+ moduleBuffer += "/fKTvFqcePc80gM8orkVX+e+ai/xOlEvQIyhc0oRjWQ1S0T2DN+IzzLc3kv8PBriZ/4m2vRNa/RNHW/q8giflup7NciE5wVtp8nL";
+ moduleBuffer += "fWUTvYEmdnG/Km+JZNmLBlrsosUeW0zKFe3jJv3K2udSIhzXvk3etEbfvFD7mknNv3G4+HpevKS039WkXWkNH0C7LbFQFcX/s38U";
+ moduleBuffer += "2y9c5wWv8g7JjviNvOHp9mXf11Qi0X3VK1yK0FSGjQ7QA75Vwuf9Brqj3zJHNUnVTvLQSUE+LNFFC47UxA7DoOimPLZoxcKffX3r";
+ moduleBuffer += "2MFoX4wdjmPetca9i/Au2nRI0h9qhaJFXaIKTaNhmkoM6Xln21F6eqP0hPpHnkBSDO74AEf7ufc/6WRefAhRiUadR5TRqDVH455F";
+ moduleBuffer += "XKBxi67GXURcw8Z5GrdyXOKmEOcIX/o37tVdzjOpU7b26Sed+GHfacqzDf17CZ2re/7RDvRQ57z8VP+iXmxy0jA/nawNnk5eUJXO";
+ moduleBuffer += "yPHkeRs/dD551kYPH1Ce0cPoC65eJ4t4nIfVSjfy8uqiW9p2FEY84WBlTrvUFo1WxtH4ocpEGjtcl5Nal9NuyiPR827asDcY4Kit";
+ moduleBuffer += "zoNDBbm0h275Xp2WAHpIJ9+dGVfhaLDCS6ouG6nwRUfjhyp8wUYP1/gstX1mydXz1LOWirPQOOlJH20aruW6Zw/82kj5dqhN8jat";
+ moduleBuffer += "5geqE4X+ASfGK5U2nRzXpsZgm/b2k8aYJu3U6KEWzWrscIMWc5UU5iWe6Krl3T1aKuzsgdS78kNrRO1NG9b0hUYa2jV6wYbn+ZFS";
+ moduleBuffer += "oqOUGDIjIiV+SikxyRTLmkVXzZRIia4qbAtKvLlCCN7t93CWaisRl6VDq5VrgYoSmxgtNSpWIMBrv1jLIcntDHKjnVJC2wdtTlw2";
+ moduleBuffer += "ZxY6Le22ifLuZI16Kc+aJmLHoJMnupPXaM5CEw3QVlrPpEYPY8/Ko79AQYgmOFAsa+AM5GcbwA/biFEmotZp2ALBifFp5JRF2cbF";
+ moduleBuffer += "zznx10JNsawpZJVAqmzxW5V3J/VdYN8tV9+t6Dvfvlux74g4kXt3dHgDrghEyp4YUKMePNJ6SASrxdC9Bpur9VauVz/X7OsISBvq";
+ moduleBuffer += "a1VkMEYtQ062UZgk8QmPSmI6vWzGvw9pbaPR1zmexvnHa40+rRoIFZ5Hrjvq1ntCM0HWXQaZy2oNkGS495dOxl+jTivsp/N6hzKd";
+ moduleBuffer += "0qiNENiRvG+aTmvUYq3Pu7F5IfQpj6K2IAp1Cft6nzOdRQy0stliS33lpq2iuVwnvTx4LoILDc1gsQ5EGXwKOIvVOmCIEOJuqg7P";
+ moduleBuffer += "GQihc5YbvOguobrdr2wHNnv8LrunuLqsJ+y4JvMADLO25AGYLE8VzTHAKrMBXDSfzt372pqzxgCUspWC3rFrqxfZykSwsCiqhbOI";
+ moduleBuffer += "q1mpuYSUnk9I3WuSkqJ5PZWGVyU55fzEjo8g4ajApC+KbRXFdotiOyU1fAwapYaf2DHVKGrfKrLximw6RTbdsvb+S6z91Xn1QbQ4";
+ moduleBuffer += "r/1E7lLYtifMaxTlY6CelGMjgGCbd+Sqjh3bjQGqs01eAEBn3YmPpg5PntoMAAcGR0GuDUmHtjADfzt0J6CopeJUJvkRVbYa1ZT6";
+ moduleBuffer += "R1TDGqoiFVo0amDrqsJtHDkMYzmpKoTZpHEEe2KqDKnwbVI9ROVuy6b0kEgVfyF1jsYqyajybTNVOklFT1f+wpoTmUZMqeq7pmaV";
+ moduleBuffer += "xqpEsqqliYXGg6rJpSqRhRlUy6OO14f+EsY2wcBXHatagh0OtPBQpKI+sX0fUxk1YVPJ2DiSdO2rLl/F9lVXdaFtKMxY87x+E6px";
+ moduleBuffer += "G9CBNlGQn1Chnde1w+xCNDeCXlb4kn0zvsa1oXyh8UQe1DqCI1pNdU72+hGqXl+ABsM5QrPZQHdFyNFnjl6Ro9ZXNrvo+PqRl1DT";
+ moduleBuffer += "2bymkZKhwXxbHBHtoueY5RXmOM/dPo4XkGPEHFUlaobqWwcdgqrWz7N5m4G8/QHV5OTCd6zSEHl4UE16g6pJn1+ZAdWkB9WkoWrS";
+ moduleBuffer += "o2qyu/D3qpo0A6rJCauStGNOvqtZBWilkoVq0quoJn+n6baPWghd7gYS93rnlOwRcAK/z8G+yM1OeX0cxjtB5jX3OZnizBJ3NoEr";
+ moduleBuffer += "drWMeMbpE3MaMKGAd69d7wQWpDc+2eiZAicVmyKg1Sk2qC7ZcG4QfxW7e1NgXRK1O47/wlMHgaaEHzVExWrSeTrqDKjKYKz5mLx6";
+ moduleBuffer += "h8guNj9CQcRfCvSLWvGWyJLUtsZfti/DykuPL0Vcj//Ivo0qb81QO9z42+5LaodmWa9k6bPAY25ZYKPyNhguEDJF/G3vZRTa1Gx9";
+ moduleBuffer += "ZAv4CXen94yb45ZjCLg0bpEinoFNxY9lrg6BW7W/ExiZ9eNHQ82tVckt1Nw2BnLz9jl3MLcNmtvkuf0PRW5PVXJrV3KLNLdjXjU3";
+ moduleBuffer += "s895O3M7huF5Zz48/ycdnqpn97KnnaHxaez47AyOT7ccn251fCqujpC5E/8ptU8VErtVErsliV07Pk1lfLpFc+ijlAoE4BnCeETN";
+ moduleBuffer += "TAA7eZ065twJNkQbFqBPJuC9ajsUqflRqAY+NbVCgVeDzOm50GJQCwK8PgMcrututijQVEmot0vqKeAYzM/cZo+Gn0CH9DAtWVcn";
+ moduleBuffer += "c2+hkRr6hNX24yeCkVYA6Z2yuQd4bXWJ4pB2YKXAv2u+WILGuASBJkBtYFQ2mqBWSRCNSxBWEoTjEkSVBLVxCeqVBMG4BI1KAn9c";
+ moduleBuffer += "gmalmWZcglYlgTcuQbuSALpTHZ1KwKZuZmSMfShwu7SwreXYyKdlCwG4EEV6Vo850svx2xLGYlNkX+3CYZFu29Omfc8zmjwBDnDq";
+ moduleBuffer += "ib1ykLaZBG56fhv7t0XueOAZ4ddhBCMruMYDXD4u46M8/pyrTpIZ73OnAzyIBt5iFDY12fmgTzNmI6X59MSELXsXL2nGocmbSRsP";
+ moduleBuffer += "ZUJsSGhGrQndPKE3nBB7YYQntLgNHiDVYzqacOPP1JFQHvjyJM8ZgvhvGZe5WnMcstWlvUYTwfkzrse5WmADWfk8ZRMB3n46lC+8";
+ moduleBuffer += "coR5vhFe+tm6fiBBZjP4idHEsmPT3JcC4gpqBh3trhokHnZRyN6G7wpb49WgT11CgLxwGZTfNfW7oPgu4ndKKiSEOseW0SjLyEdK";
+ moduleBuffer += "8XGHEXnuejsFX0mX1zBEj9fd6GiW9GoYpvV8mO6VKmVOdtalJ0+fDlWj+H6QYna3t+gBpX7V9HgZa7d3HPDFfnYcZpFnrEMMGWlJ";
+ moduleBuffer += "sF9ySd4KnPq2q8cdwNRJInmZPfzAmhN/u0Zk8CwBP+SfHdljePHpEIFZ/MG+PMmeQuzXpF8Ip6yZwVGtvBOSfdxHyieNiA3yu2aw";
+ moduleBuffer += "YOz0HjM9ZnPGAFefMD9a9nP327J3wuHwTrp+C7NL92sRknENyMBu/LgHFJ6afPIvpCWn3bvSoN+D3ijYj52kxNxOyG2kx4Hj46zW";
+ moduleBuffer += "zqKc42VTdpLjw+9cdkqbwjPBfUJGmwGoLvNQJ/dxHn1E2b+zYdyCvN55tE6oKcn5mYJ6j9b72tppbXzcC2SpqdE5ACFnoRmHK1Wo";
+ moduleBuffer += "vYHi2FR0/Efr8OPJgoJ+tp0I9SjjE3VhHgf3ya8IvQQ7lXXwybquvGt18pDd3mOIgOOyuu0H+VvvFy1ZjPrxE34p6hmIe0US049X";
+ moduleBuffer += "2WFn6ql7U9thX9WziMKcdF89Va9giXut47xXvTo3NW+YYe30FqP45xuak1CpUVANM6+uw/Q4nLFkTx1Xd5kYrjUdDCcipdOyom5L";
+ moduleBuffer += "W56qc/g+Ve+zPTUhJyAyQ5z7oY+TcH/Kjm7AkgoS9zHJ9WM65GpK/LUaJoM0o9ZjDc/U1LmDMN7sYST/luz/Cb5JzPvssWMcA/RQ";
+ moduleBuffer += "wETP2UQ+3IfKmLu1rXhJwK+VWhx/r47NWhKiF00ze+rBNSf7Aa139hgCz74PaQBCiEpeQoY4YrCEC8l4XY5l/L0re+r+ajMCbYb2";
+ moduleBuffer += "Eg6s2Qg3flA4NvoojO+DejXMNEpG5u3w4gU/V9kz2hrOotOuYpFzbNewoSHzqsXLnnZL/Kvon3N14T5d7BJkND+V1/W/Gjc6c2IT";
+ moduleBuffer += "bnT2xDhudP7EC3GjR18aN7r4C+O40dKJYW70uZfIjT43xI1OnhjHjU6f+O650YUT3+dGV8CNnvvlV4Ibnf6A5PqJK+ZGZz4wyo3O";
+ moduleBuffer += "fmCIG138wAtyo5MfHOZG53+xwo3OIrBxssqNlj74Ytzo/C9Um7EZN3rfKDd63zA3uvCB744bnf+ArevzoecfNTyOLa4FxH3hRPJe";
+ moduleBuffer += "OBE0GNnjDvqCVtPy4nG8SGhinm381ucA9qr2TesScaEaIdJ7tl6JwPnO3YjP44AxrVZZsqVaNokFDKHvUFX4E7Atq90T/xU02W86";
+ moduleBuffer += "QNMzL7vxAIb16qf06MbAC8IZkKaWbVjFsEjZCyW6dv54pni0Z0008cnfrpeP5wcSwkQZhvM4o7jeOQ0/qoSrfp72x4+k0cLrH0zC";
+ moduleBuffer += "hfqDIpZHC+bBYxKz+B3zwMLOB4/xqP5S+MDC7IN6an+x+8BC9OCxY/KB+6CNkOfukqZD/PYlfp7UF/YuHTt2jJbL2DdfcMk6Fl3w";
+ moduleBuffer += "DhDreSgejhvazcH/DzwcrYEq7w2piul5dNmnO3Ma+5BBeWBQUFwIg3JbbkBWsfdAtpe+4rCVyaxlVBZl53IqZ8dxwz3+vUhP+I/b";
+ moduleBuffer += "vcnvRdprqVeMmoR4EpU81m0esDr8PaIaSz1wvLewYr12HUMjnN3eJeKXY1e027vI2j/v9dzE4tPISpiDyjBrzq+kHz9tyO8k9cMG";
+ moduleBuffer += "m5id3qq5ve3opkm+ergYWzK/HoiQwIHRk4MnOtLDw4cNjYConHGz2UOwc/iOOZBFhw7imPEehoAceM/Bg6yd9gqaKNu632ITyTh5";
+ moduleBuffer += "oyRLtM6ylK79Zk7Ck6y5XlbQkbbCmLVKzGnGnC1j9N7DHrOsl1OYsTRFMj575nOWqdGBBa+ueJwh5/UNTUDwzZqdF+do2f570+7E";
+ moduleBuffer += "UetFLhx3LRbaLTilK0IeWICX3YDMYWXj7b/ecdLafplynzP9Aym8R2fuAUkgyx7fBfvlke8ifZcKlwvswri/47ke7yc5t/To2a5+";
+ moduleBuffer += "E9dKaL4PZEffo5/0AriW9e7JzF3ya5CVuUvCXJVua7vqqhPQtn526vNPcOkPRYBRF7Oz8ECb+bgfRYel9NKaHT6QGiiiQqxEO/CT";
+ moduleBuffer += "gOVcp75N4Y7WAO8+lFXO3I2kNxDQE9wRN+zAbib6cJ0TYry+A8Yde7w7ceoh4sRu7w4+4TLXW+wqrM5lwcifcgBS/1mDyr0zpf2Z";
+ moduleBuffer += "PO3FnxvUS+516sJ5V0/SZH8uybuZ9cfsvN59p/w8fv97f8bH/bSQEopsdP8Nv6DP3Wnsj7PHQAgZbeH1zlvii56IT/L0Vjz5ePpx";
+ moduleBuffer += "PNWSLp5vl2dAn2S1QwdZDNzwHCLJJfy/cp30DiES4XfST6ssSVH8xzhQhEtr/Gllz9gigaLiJ/WDBw9q/0EDcPPBJDiYwUKrLTO8";
+ moduleBuffer += "JzJSr1toSDG2ksZBWHR52v8wF/Dj52rp1K3pdJunN5lB2L+Vxk6O+g+a6PP4uNXvRZJhU/5v4wheHT7bUStjRMRrNQ+7DUIPLPzM";
+ moduleBuffer += "v8hk6qgtWFrPfLyA9zr4UJdp/JwdRfBF1mviJ4IzaIyJHQlUCjImImhEIYlHkj30oQFUgtOMqvGOZQDl2S4YemGg4HTXHMAQw5OM";
+ moduleBuffer += "Pw5JpG5TJRqgUW/B/bQ9MsBEEhOBFiMxoK9nGYDmRnXeLH9vgFelz5rKTJUq3pH6GEvy9NqUDvH2ptGtbTYi6bXwM9/r2Bpr0RK1";
+ moduleBuffer += "C4tVn87gb0La7I0w6uRoCzDabkj0IPmxp4Qip2p0QoM/sI5uZU89pT0eXO/cADfZ96STIhmgU0Tyc3oz2d09utJ+Q68jtfch2Yks";
+ moduleBuffer += "8oUnnP5rXPTE+/EoKeGKWoI/Y4MyZub2P55FP3lAKInMYADnq3seKfvOtHZTG/sD9+Y2jhtkoN6mDX9Hj25y3q7eBV04XgYTGq6Z";
+ moduleBuffer += "1+ugZt+jKmXCF7NLv/+EWrZJfSK6AqyBhrFMpGzXASGVzB2pB6vw4mXHV1y2I/+Of7FSdubekhfvSrEy1m84AD+HUnzrSotvXXHx";
+ moduleBuffer += "srBmp/LipXDvtrZPejz8xRekR+e/Dj06lh4zIlYeIE06V1qFzsunyVvB16o0kUgDa8169oZ9jsEP55h789w+x2sF2opn8hHFDJ8r";
+ moduleBuffer += "Qkb+PVbkxIZ50jCRiof6l1vkl929kGDyaqIMo9PP6JECPR+DRazT7aA7XC2KVj4OtWRhneon03PqLgh7LC+Z2s97C96tc5RJXcqk";
+ moduleBuffer += "Ioy64BUO5+x7ku7BXtfuninU2jp16dwzcw9xochcCAf2gCvAK5HZeJBaHI5M4OSi3cQS9S7hkG36n79LV9h3w8JISsNi2EYpN7dr";
+ moduleBuffer += "iHB1xZSh/NY2pX0PEdjSGfqdvt4xiDCJMCLs59tYH+u6PjrKmHAVoI5ltKnLKPiV5AbRBjpvLrUgbftg0jyYmHypDA5aZQFN0nnQ";
+ moduleBuffer += "AneejTJCHX7WhyOiSgQ/CXUYPfeF6jC6VIQwII8PDKpTRQjfPTww/B77/ep3T+UhuGDHAGh+vOZOQpRcDIrz+3ipoVeJGnqxqKsR";
+ moduleBuffer += "N+7H3Ub8xBqBEwfcROriyoLay03qXQrExhq7SP9wjPWyizyjoKlt2rQ3KzwYMQF1Z+B6jwcv5LBj5CWfdh6L6+o37jHrsE2jyyC9";
+ moduleBuffer += "TmK0rBXuOP38OkaAQl21G7YZhNaCVUORWgNXM4dTYs3d5mVwB4OGsYS+4XUO2hynHQb5FodHU/A/q/VY49t6MomgyDpaj2ZRh1ZR";
+ moduleBuffer += "/tiG4U5SvVK0gcDOdtaQoUuL2LRZaVJcEi5SI/eBjB1mjKu8Nkvcf8ExTX4JKycUwHrKXJdNlVBLZoBQi8bWdsXo9R6jV1m8K2ys";
+ moduleBuffer += "1qlC4TXdjwoNcemIN9R0APn9ZEoTGSDw2662x2McbLX8uk1HYuzXDaU9U+h1Gn3ai1PSk37uzsuBktPDaVsRsRMRS2UEW+vvIZzH";
+ moduleBuffer += "IiHV/8p3m5gzq7Xqdbx9agoaqdWmWh+nIaMxNVrWELNhp0qTb84Feh2vHv+Etd7EFaGQoZUgvzi1j4dx1movEPn9J6zFaBsLQrzs";
+ moduleBuffer += "snMbEg31UlN+y+9a+XciYPG7NQ7l4jvXfufxO2MPHvVrPy9VDQlVR2RNBX2b3Ya9y1ZDdiPp/Gzla2sOM1Ojz5BX1lhyGN8HBWFY";
+ moduleBuffer += "MQK1lw9/Qq1A0wZPi5nvKk9JI5LGT1r4dKQwvd0Y2SxqWrR2jKYcoIRboYHWpDBHXSto8BMcQ5XChlvv62lwpBnhWBlEr0uW++z9";
+ moduleBuffer += "L/uiwReevsCoy7NvSOfjVZtVVXvJPPtVHoA+U/OCoxGUfBsuRxyEhCy4jc7S5Kl2KzQpssQd6vdkO9vrZuv3FpKEwncI0cFFVqiV";
+ moduleBuffer += "ANZGEvZtKI1K3I3AgjWUmL7LjF0dil1k7Jmh2A1ucdaGYtcZe3YgtpsUGBdA05A+a8PEHkbosF9MCogHAF8AsRKm+XzbSoCPMQDc";
+ moduleBuffer += "GiVNwo/iNdzvFsAXBOEAWAGgEfi6wWuBp4vXK3hdh6E9X9d5h/BM8XoVrzsw+qd5fMp7HKmiaSj8nBrw0/eMCD04MrHSjqKwdAbc";
+ moduleBuffer += "wEQjbmCI4RINe4Eh7kg04gWGECbRiBcYao2iES8whnEDLmC6iYXVIMrGENFzbAuAkAxRPAcnJUjsILVzYFXCqg5SusBrJRjLIJkL";
+ moduleBuffer += "UJWOYrJ0Diu4HpZNpTQRLZCbYjFaTArgpeK3187JnLT3mAtQMLZkQcFvk75PTdLYY87ht77HnMVvZ49Z02trwgDhH4Ss62XNrpWj";
+ moduleBuffer += "42eX3hnJZ5eGBmfXBWfc7Npwxs2ui8642aWXXoZn15L7/dn1/dn13+Ls+mZNZaWVq/LjqWU6MfXiN7J/4PVTNlYLq/Yg4dJM5uDY";
+ moduleBuffer += "Azui52cSO/B3exsAyr44Q6FcfaxuzPTjn43oUfHkVizNi1tKB6zLW3EByMv9mmZrs5LHsa16j3tjZo+3BJCi1m7vw/zlRG/dPgfV";
+ moduleBuffer += "3gpS1XZ7i4Qx2io7a6qBZY7rkYTHI4lTW7ErXgTkaW4Oyf7HHRB7RBEVRxQt7KFRb2mFR1lOKp/52fpzegwoSVa29mhye2orryXb";
+ moduleBuffer += "wwBQiCJHZi+8ZouTesgD7K9+dk4kHGEievVFmEnxrXxWeacAWm4Rkh1GT7bIyLI4IYhvZr5rk/3BL2Xpp+fLjdk+7/isTvd5u0co";
+ moduleBuffer += "yisoixJuZJc8kEkrXcvMPVRXSLFTA7nVMv/APVn3ADyH9YSOykbzojEwPK2CbOzy8he3qkzMzOJ/DtEoz+2mtk9pEiAhnvwlWSWL";
+ moduleBuffer += "gM/r0/wwPlL9JPP347wisMW1NFtC/a47uHPffA+uJHNLH38ySoP4m7hxA6F91/6EIajOPX1U7YZM79ZIJzh6pCONPHATfSzrsEe7";
+ moduleBuffer += "9lfbxs3LP6cFp6V+/nLlKj3w1WTa45l7j7y/qx8fYda4XOxrAn7G0lWZtRq5Lcy7tSC3tHep4+aNPWzIHzJQuD7m9Yx3tFRFn/Go";
+ moduleBuffer += "iYbP0QCnqHZCBXA9GlBCb9lZFWQ7rFynm01EYcqteXuoQTfUrNMNsFe6AQ7s3m8NmA4upEVs8+ODeV20Dm2Diro8g+du2ssuOeoy";
+ moduleBuffer += "/oa+bBiesYFVbmUCuG22e8uA5qMizMNxcxG3QnyLAPcQ8jjUb6/W+IS3x5zEbiCAGY+JH8Dnuh2txf8XqjDbj481qL4icWQBlDBo";
+ moduleBuffer += "GB6UQYIXbQj2mqZteIyzbut4jhaodXsYGOByc9pNGkWYNwVlv2zDsOM46dJZdcDtDHIL40/VZaUI6B5AG4BDjXOVLXlAFwBekYm3";
+ moduleBuffer += "ZnhHNOL+Xj6vZUuPrDlFtc4E6L1dJY1WGbGzQkhGJAOZzu4xK9higlayPWW+3JT9Zt0e37g7HLV7V7uoWbCDvXkevrKHXWUYDLMs";
+ moduleBuffer += "1AeqSKJvEsxkP/7turo59OJ/1VDHefIBljcdcupHscZbt3nMWcacLWOQ6417YHuvqCVMxZKj8ivWLC7DrPlsHvb10gN1C/H/qFt5";
+ moduleBuffer += "hGUI2HGRXQB5J+JHop7JXJiF61xzOawwqMpRUPb/Zj2PK6s6B+JnjZ5m8SeCkvlbKGkLSyIcZ3y8zqOm+CORMJJqRaBo/bXfkOA0";
+ moduleBuffer += "g01Y7Ltqd+6rKTiHILUav3HM9WaP+hCEF/39aaM4h/Oud1a8rH5LG2q5D8mqc/xjjzvxsToWtwb8iadRWpPi07r0pLCTG+0t1RBx";
+ moduleBuffer += "LRiHB9c7rWyrcvmt+5zWwOWI4DUuhnaHKu340MEej8D8tM27GrQjEvH79S7M2rbBTCK+B7paF4rsWZhEKGqmjKVDWe2gMLns86ee";
+ moduleBuffer += "cLKmXqg4+0vyfP7UE9bQxyCnlmrBI/0BA+2U+ZLM5FX5LQzcfYSxsj1w1wsdEWZmeL3Dg1ufZ6nxV3nJJMq8W6gXv6GfgqfjSkf2";
+ moduleBuffer += "aw9LNSZld3/po/Jw5uEnSsOja73WHposxVii53NOWVM359PliKTCVigu23aelq55uUi1Dl17SdEIhK+l0MZna08/Dgjsm/2jXK2y";
+ moduleBuffer += "x59m3wWZ04RnT173yPw+0+Vm+7VM5vicVCKHmtkJqLysppdWatc7r5XQVlyikYbvExJw3u7c4xGq5zXO617vTECe0rlu2+NnUwjv";
+ moduleBuffer += "QTcLnbMabtuQzNc72+Bc9HrnGtToemceLkhx/N/CzzSEBVjpdbQecVbjdauMHemj+4Fe6eos7fT1CLSOjGZvwSmjbUQ9m97fMQ7N";
+ moduleBuffer += "Flja1bfgRAFPV8kTVuA82rfRN7dd4nvYaFOkNrjDj7rBAK+TsIItvc3z17SCC7KavbgRZPRJGfdze3fp7717eJYc2qsbjEv2cHWe";
+ moduleBuffer += "76vny8oa61p+mS/DruWnXE2lPtv3OUCTr+1zJpHpPqF9kNTRLQEuicDpShM0CpIOBnuQxPZGCI+3nfy2kWctcNbd1NWuJu6Xm0Qy";
+ moduleBuffer += "vvGhzDQ8yx8Z9XMUs3EwTXOd2VS4gWuB2kMwRmlJLwIrcXMT2V2QO6AYWwuUveNU5oYSLwx2oLJS+rgSls7koybxr/Veu8fMwsYJ";
+ moduleBuffer += "h96uvTuFCThZME8sLOl00ql8ZWStsktRXcqvKx6PHwt7rV8rw2kOYwIDyt7GcpO5hWTpoawe/zujL7QorGtuPuv1boqfzD0U/7qn";
+ moduleBuffer += "il7odR/Fnfyca6A3HxY+vrOEatrpnXbTri0H87pVSWx26kLgxv+nr5wzGclryS0zwZgrUq+wQiPpT1bSA63HhUBHD8DZDgzDVhJX";
+ moduleBuffer += "a4BlZyfBgZQJFelqmMR5ZWtaWQ+iW9cOb15rJA2k3gXfPCZtGC7AO0x6JS1sjufQZAxk4tNQTzLPKCRectNrpD56+NRK9AXGYpzo";
+ moduleBuffer += "d8k1cHRPX77MThNAExLnIWKx7DFvT9RJtVtKoK5iQZjTrooTvVh6eNf+tEVrFu3iqfjv6hD1pmA+Egu1puL/HGEqtTB5ZPuezexz";
+ moduleBuffer += "CHOK2Y1U8X00q6vpJauaIoiBUsKKk7iUK0jQuJA7mlDP4xwWdtNDfURqDdBViSOk0XXD3LiHtt6zlkeUdE0sl8jJWlM+ohoDrQYZ";
+ moduleBuffer += "ybkiQgdiSsKyzvNFbef4JDQvOh51XXdttWVOv8aNX++irbW+zLNJy+ElHCIsW8DrVWnuWsbDbOswY7eXguY07xbzrquo1Syw1zrJ";
+ moduleBuffer += "TCEfWm4wxAugGitZAXBxOnnIcoJ3U4JLpovFSIbeZDWNPO2SaBlSvboOCJcDQla7GEOhFj/AIVGDKFbnecf7I5U86hgSrg4JPMiQ";
+ moduleBuffer += "qGM8eLQhQHERWA7HA5ZmaWExHiIlRT4eWsR6cis5oTzJrMkuVopHoMJb0PcRutHHPcsiux2IeLoSMd0nZ7X9zPJ8RX1hWOnjsTzb";
+ moduleBuffer += "Pcz/zXtEuIp4ToGZZekW4XTMr8jfEXHsKuI3C+wUyVu2Y8YUBfa/iFGURT2XpmlwOVJuBmAhB+DgcrsQJqFuDzwa3s2nkQ4AWfVY";
+ moduleBuffer += "hk8pWGQRY1fLloWEsesdPt+LgzxsfCTjcouAjY9E3Li/CM9W84mLfIqysJ7iGmjm95g1Rekwh2uHYsvqwAr8SBxk0960mNBURl2Q";
+ moduleBuffer += "Cb0Xa+izcLGuC3CURboAX9dXkCbVY4FB+JVvjTRmhyqrklxflPTjP6yrDjnVO9z4Mx1/w1oZR/p6VY/lYQEI/ZS8XnB6c3a9LiRc";
+ moduleBuffer += "aDh2KS/aS2EOoCRc0qL4fdJ7yW2y72lSWajyaS/CgN0JkfKtIh5Chg0QAxtd+Ykgc0KT3qur8kfz8o4kdc5j7KMX7BgUVhYtuE29";
+ moduleBuffer += "zIApsh+WkNBqzh3uzWXQt2HM9NRkV2j0UxLb7vFS9d24gcyN327vLhoZw1Lu7gzaQjd7jsMZmCr4idSYsbbDityy167pLA9ZZR7u";
+ moduleBuffer += "fQpQLDXeLMBt5s8brpQydGXvl3mwbHTBkGrabIh7AWVCyLXSBU3oqtQTzYGbNPE7y8Q37mfiGzTxjc2sDmoNfDC34N0ppG6R1Gwl";
+ moduleBuffer += "QWQvb39bm1KgVFx39jrOQbsk0HvZgbIgJIn/MFJAOI5RjDTdqrRpDoSvRdptL9yvqljjKELfJdzHzE54pXL1ecYc9/LZY0BS+Xus";
+ moduleBuffer += "EoONulu9WzAwcr1LIhC8Kx/E5g6pQpT5NxNekH7VMJHsWauIqbRcame8oSKv9UWbDQNDtG+eHXwjedqL+PrUknhuFiotRPvWgAIF";
+ moduleBuffer += "c9OdnmxzyVAaNIiXHWbmH+T+TWIkh2dxj/V52fzu9tblEXuO5xD1o7u9JUNL12MwRb6AZ0l+DO/O2Rs367jDE8jDmtTSPyjy26M1";
+ moduleBuffer += "VI0Ruqmzuhmpx5qrxlDUCjau9Z7E7gYtZTVa8vM0axFpJaYlYt9uSUU95YqnNzAamjeu+DN7ViNiLZyyeGTem5M306jFU8IWtsry";
+ moduleBuffer += "YdGIdnvvlmxkdW5piyLNsjdVlatZDwsQib6HpM39KViJ7gWecnQzUIVD8OJ3DKAhRFU0hGgUDQEc/46eKxzjaMV6ViLfkuNzcAmZ";
+ moduleBuffer += "kab9qZo197g3jywpAesafy7kz38Mk9in+B/h8rZMadk2SjzuPmBtj4VqEWykHMBX0FAcluOyiPtwzxLKtqXn2haK3Ah7WoBDDOFq";
+ moduleBuffer += "SAvJgAEtQi4rU94KLPUkiL8SEvdBx+60vbbvK3yBD87lFFgbrWul6diwtCrNbWGayw9FdAg3bvwlHylaNoVWh4wNOhyCstTQpBsI";
+ moduleBuffer += "VEVQlr056sUblA1OSOoJquwwzmqwKIRCZ8JiXvg55oXUzFNxwZKBOmaSoaPlNqkIlCy7O6Dw8l/jcsPetXwAsFjYwiFDFygTi4uy";
+ moduleBuffer += "l8/c+JloLkCgmcg7KHUOZjMHe5OSnKaCTS7q8VdrSROk7UrlmmjytFark0hKS9oOrd0L0nYgu8L6eZqkbSppg5y0AUjbzAUKkpYC";
+ moduleBuffer += "RFCQFlo4m0Jb1tkB4TRvWSdvmWTWydt2E9OWm2AQqFsQSFszGf9aXVsznbdmi9ajm7nJtG1Nd7A1XTTDB2x/tTV+3hq/0hpfW+Or";
+ moduleBuffer += "6Je3xi9bA0h3ifxriqwGUif20znOXdOKhUa/x62wnfqGYrsmKIQ5prTZoQtiK7Qy22CzbINNsw00W9kNMKsxV12wIltYlBFSWzWj";
+ moduleBuffer += "Dk4ilS17MGh8gtbmca+jHd9KJ5QQTSF4xxK8CYIHBcGbqj5p0iy1yWExQvDgRQkeVIaP1koK6VImg8IX8gbqE/+1seBEY7skeLEu";
+ moduleBuffer += "CapdUlAIejPr+tKN32sq8US64MbJjX+6+sK8OEnjb7tDxOzmxKy/KDG73xNiVupDTHQ3ftDklenYytCklW+q8ZnX64wOT6VtNQaD";
+ moduleBuffer += "uqPaclT1e9srPqkPpckQ9QNLfWUVFeaq3dHKMSmD+NueXmXuKvWKAd2RPhjgh/4oP5yw1dJtd94HTfSBnxOPfUBu1Sz6gJzKr/QB";
+ moduleBuffer += "Ob3CKHMjhkEmOXVLctv2kHGyPZP6JZcdMoL4G7VkIueFExVeOJl5BS+cREsmipZMKi+ctLxwQlvSyVvSQUtyemhLOgRkKlrSqVAM";
+ moduleBuffer += "GlI3PuvrjXm/Tx6WWw5O2C729fuii33tYt/SsmO7uLvJQOuODLTuyEDrDg60ZmWg+dWB1hwz0Hy7JlQGmlGILmKWVSG6atA2qEBA";
+ moduleBuffer += "iK69OajWG7j6UxQQenworGQTajYbA9l4eTYbV5pNpNlUQblqAOXSbI79tyie1K9QPPnT/1+JJx/ZVDyp/wOKJ3/zvRVP/uaVEE90";
+ moduleBuffer += "dFu9pCr/cAMk0ikQ9XNUVdeCk4288C0o2fgX4WYvapu9CDZ74W/2wox5YexGe/wLd5MXUPTmPIwJWgV9q19y+1LQN1L65jm0LA/j";
+ moduleBuffer += "Po8bOaNXZ0McE1X1gjdA5zHD2/IywGZw4uzafeVuKl5d1UgKu6OqfgbHtu6tY1K0bYpIt7yFDlfPpPxmpTJ+wj3mnakL2aotW8gH";
+ moduleBuffer += "Q/QSNRIh9LA6HVQVATtA21vcEzO57muNZupbhczI50Y/9wc+d4vP/aJONwuBhj7PfOp1NDIusow1S9eOhjZ6KCz1LvaNDIeQs1YS";
+ moduleBuffer += "tJCg6Km29pRNBzUMagkti/Bw3Op1s1gi+2qv17Y631A7ND98s1NlqlCQT+UKcdUWUfcH3mPkDW75FhxmSmlSj39V5tGU6l/rxUmm";
+ moduleBuffer += "XiCGJkUpmmtApirqnBPQz5z+OBQpy1adcwpRr9/tXVJ1zkWoc05adc5Fo2oc6lGWc3XO08QkyHU55yW01eq5GqpcwZnMOeEaD6X5";
+ moduleBuffer += "cgnXoFTrPG2sZrqhIUmqiiSrPEroiT3+cN0e+kdokdML8OP3jD1udQtDDZNzfnXL4EOx4OAWWPyUh5UW6k+gMerE4HMru/QnQASJ";
+ moduleBuffer += "HEJ5tojdBuRpl8ewNJOK9IK0n1jTS09ZHQ8yXR217j0pbR/eTC9U5/5YsvxEqBpQ6jajHu8t8YJ14sGQbd2m8YhlQXWui1ZRB+r0";
+ moduleBuffer += "2rh8Ly+P3kxo1eBmmvrVbmW9w35axy3lVlIHPp+G9NS/VcHHqNw9BC7NIhpqL5ey2oqoEbMRb5Z9zB8Z1WPH/fiDPI8DNulX6wOR";
+ moduleBuffer += "kZ7lEwodd69d1fir2jXINv64LKOqT0T/ftjb4501FU3i2Y+PaBJ/cHDoXdDnsxh0dgCeo8uhUX2iJ2NQBuJno2Gl4t4X0imqypJT";
+ moduleBuffer += "qKEK4lIpOC9Rp4zVCuqca+BY8IQdoct2PvSm+a308NxDPV/nRs+DsUywP41ojiJTXgbifQDH6gU8VZK6bPzW447FtYiA0vJT+nO3";
+ moduleBuffer += "8t0NrAER7tfs9pZwV5yn8yI4XnbeyrU1gcouyNY+KRT/LzWJmO3DKhuoWBFQsc7hxaep5J/Fn3laSq4jljAf8gX8HCAyvCdequnZ";
+ moduleBuffer += "FvI/QJutRTdbKbPYiT/XqbHl0QM4O13VnBIXjlpkudrnLHqaJ3GodvWz8zTkjLJnhcJ/h8ac8EtkHgme86z70+hac9YTDsuGP+3D";
+ moduleBuffer += "wOK86YEAcwu7l9JrFvY+mFyTwNNiuu2YBAtsmmtKbJprBrBp5he8AptmfqFTYNPML2yz2DTbcmya8yjHfySdBwgOvC6mKAogOPNl";
+ moduleBuffer += "QfNlQfMDBc1VCpqrFDRXFHRNXhCvIEbgaCUIDqjyNLr4ObyKCxCcjbxXYf/DXo154diUIDhwHdQzQyA4G84B+f8WDhBA2MQoUKge";
+ moduleBuffer += "Z4u/qd0VZc9B0ou/oEs8QoTB+YIdbSlY5qJru2g9qOaxbPPAxcMvUEiTmpzHVYA1C/v1LJohk/oZv2waCLxTuhUoWToIZNL7Wppm";
+ moduleBuffer += "zROqG/fHf6gwOJL6eKCGN8sBbM4jC4NzHHMHZ3j8lEg4EVTYBkdEEZgti5UtFY6EzCE1CcDomSu7cq7syrmhroyWyq6crXTlTtuV";
+ moduleBuffer += "c5UxY7QzfcID/dbjBXYOh7vM7l12vO/KVh/NKb9Bz0z2lh2mSK+DRWcXjn8BDoxjhUVvf9oWptFWo89P1ZK2zGbp6DbAMAKJn9Uz";
+ moduleBuffer += "uupBAGFE25jo8mc+/rwpz+XC+GkhH04D27jXgjMBFIx94YrHY7/8HGGn1Dq4XTahMOgTAjZ9KSF/waO6kMeZeK01jpq4JS/Ev1pP";
+ moduleBuffer += "6po0gYq5JGd+5sePhzKcXD1+c9VYwKixAMXBGo/448s1LirYb1Vq0SxqQSs63gr9c9nA8yytGX8ej7BW4LUAnotQFboEP1vMoIZb";
+ moduleBuffer += "8i5+3gXfXDx3LE8UNZ9a/Mc+7VeJykHX3VKWZA5EPF5TdYs0iscQazp7LBzfX9Mv8Ct/sHXhd/H7iebl0n6Z/F4SPw0bEb1YLfJu";
+ moduleBuffer += "/JVIMwC3Ve8dWt0rbwLytxVP86uZBe4Y6/W0r2UYHNxLiYqF8JJrlreJQzzmd9UXeeuNfQnNDkxjwAoWIXtIdz+PGp38Myz5G/II";
+ moduleBuffer += "F/QXXa1JtiLR8S+FTtPiuAX5qBRedPFr8u73Am22GjtI7KMXGEsLnwX3ATpEnn/IXjaQmHt7wpmT+Xt785nbqxuYP74J62Yd+Av1";
+ moduleBuffer += "ZC6ZOyKcwT2czB/pzbNVHOgt0P1GHeKtpmqnvfizvgWckb6oa89A2YDRmbQI4KIH5/cTsmZXr94cTCbh1q15slZ8hrbRe4Xy8XEI";
+ moduleBuffer += "TXAgr0wBJ1xZeEihlQLrXtHyC14EkMo8ycVbMj7h0fYfX0to2aPaeS71ijlE9H41z6CXQKO/Z43NegLTMavdk870hb3G98HSX+Gc";
+ moduleBuffer += "rT8UN5mJnyXeBfL0lAnkZbI0MoSBmBSnifCjB/aQ4sqbB04c/4lnW+BaNR/roHHxd+i4AGOaLSE4umYqo6pZVCunCBmBh1EXqAmd";
+ moduleBuffer += "EghGBW5B9xu0e5Tue0u6C89IPRDeY5TNVBiQjCrhydgqBMBSU3vzFaPTnpT7sKvQQ6fplU7vUJxy7Z0LEz9AMHDt2jpwtWT8pXNS";
+ moduleBuffer += "yj0ktO3FU67Ci5/8S+w7UP553CDH115ikZxElLSf5a5lYJinH2TCJbKOjmlWDLQpPs9zd/dnF5D+V3Blyc0u2uc8Y210t8y+my19";
+ moduleBuffer += "XetTh1xRL+UK7QdS/xTF2DOaF2aFm5OQ/YM62JimDhgOwiYHRBPcDZApNxWVdvPRS0PGos3x7xq1JzruqZHwCs8yYG+h9Y5P+uSE";
+ moduleBuffer += "Mg5+3x9OuknC+8NiGCH/uJxVOshy0mGr5imqXg46aHdTyhCxdrr2jhlGyzOhVj8fjPob2V+i1UEfQqu2/cKjz/5lzreEMzk5ZwIP";
+ moduleBuffer += "MZKvJ5PpJvT6zQdKMnVtD0wkEwWRJpIuENBsqJts+q45kgkbKizyhqWHsvNjh8VMPv8n1NMStJkz1g0SNM51+dp/kGzTKf7pvYHT";
+ moduleBuffer += "Jlv6S7ufzk7KiMp2ZI9hYD1Ycwo2pDKCswNgE2f+4nFHHfIECpoYZS6x/LOn5DN5atknVi37MNj+4y69hWJ3R0EJe702b73QoZN1";
+ moduleBuffer += "4SRyDw0PRCK64OZ8QQJPuipVSC0SNfViDso3TYVvGuiEZOcGzyKw9gr7mbmn1xoyl2oRZeb0utTrRACTuag3x2sLspZQj96yBqQV";
+ moduleBuffer += "pYFH4V0SnMFnn1YNAaYt9BG4Zt20lmEmadLZhZRydr0YOHMyaObuwI0rHDLNLVx2H5CuxPs/q1GK7c1ZyCOmlmGm4kx0+9A3Fwa+";
+ moduleBuffer += "wTLd79X00zosqafVnCUauJcB69od1jRKdr2mgI6CtGf3JqQbhnz8cAQqysamTbkGF/hgVyQiupsSdPaYqkHautFpY6NTV10d9CWA";
+ moduleBuffer += "Sd4PZmmTKdgSb8i21bysjRnborbEVW2JUBdKQFe1JbIS9dMmtCUxZmHS0hBqKcIKL9IogJNeJ1RjOiHFmWNWkyGVucgBtuQqsqZq";
+ moduleBuffer += "89rXerLhMRtuNgnmkAS3pTXMWanP8y6boLfYL9z/OAGFtf3kbPtTkcyNEiHxsGv39oPg2dIDulNo4xQgL3CguL3ZdI8GXyI1ARaX";
+ moduleBuffer += "Q5fiF8uGnIyPUU+TfwgDs50o7bpeHVuGiqyvkk7qtV0wKZHka7iXSjkfQgZFfF2/swgOGP/lQ4RdHdglZLVDUn8o2jtaGA9xqDLm";
+ moduleBuffer += "KaOtj1XGd/RMwG/yVvLpgsiYEhdBqo8Sxgm3tHxe6Vn2cyMqmHmnNZ2GUokaftOt+3nfe/mbim4d8l4FDCX1/gzBNHU97E3ojPdk";
+ moduleBuffer += "b2L3C3aOTWU/3FdwRknlQw6Byq3F+1iPYeukH/q0a/qh/XDOcRutmBxcwPJ1Z+Nn57/8uL2LI6JtTMOm7Ok/soKtghR1VencpaU3";
+ moduleBuffer += "Lswn8X583IVhfZ8fc3aBAU2rsjKGVyAeLCA0iz/z2bN/pNOBqG8t1PNoAtcg5hDWmKh/KENV/7fb5g60HVV8ugn9I7VgDVdXa8A6";
+ moduleBuffer += "tJm43AtPKjKu3Ka+cWgpoMcWOPN78o8er6BrPZ+HFOdzUlE/uxxUanC2o2dK47REBtq0GqdtOKUSbAKHs99ay/VfwCA179afd0Jz";
+ moduleBuffer += "bnenhYGdzF0a3m2R33Oy6ZuR6GMSnpVfWdZ6V0m8LAC9q8EGkvhWntl3k8n4Pti9QYFOiQ1y+Qr0hYzHjcG/A9bZk05FL1XHyZZM";
+ moduleBuffer += "TOES5zAZ6jDgvjGtaqKu1m3HK6KOWmJP/QOoo5bBKWdyRVRdCUp5tq6udIR9zWQnPqOKKBxWQN9MJTqs7nQC4NMWpk2r0DYHvE1f";
+ moduleBuffer += "KqK2ZDLiwMtEwv7wZ5TB1SmDzFglFEMi1iOsHQQgz1wJdVXl+0ft97gYCwVUEzU4JzUuFFAnXB0wx0HG2d3eEs0bj2lHsqd3e8uu";
+ moduleBuffer += "lqLZErG1VD5J6sdkncLvmgvlU90CHjzmMgd8R4CDOg/cIV9yx9PScfaoq/zyldI8LZE1WYJE2VO/U2qeMJ6FcLvsgN6VPfpppVYz";
+ moduleBuffer += "W/8dq2pOPUyxN6uv2hszh8zF0pBNy+3dE9PXfs5ec5uuml4S335QMWEY8oBwoB+RVb7HjoV+r2WrEwNkwfRazOboLfmnrtVhyFNl";
+ moduleBuffer += "+LhQsUBRxeMKkYUVE5ozlnJefBOttAB6KElFSqztz8ID9xwgOGcytZ+SWWI1WhKzNYN/bvhOFaooHr/II5+MIM4lPkEkcOZC/ZGf";
+ moduleBuffer += "feQrQqsNGZkHNIlFNoDsL8ujQ6EglsqRB574Ss4Da7oG1HQNqBVrQE3XAJ4IH/tKvgaAqtmHh0qqKceXJnA9RsdcdImbfxFdHDMA";
+ moduleBuffer += "NQwfjFAwmcJzCAsR8K8we9Sr8K/QQt/05nFb4J0i14XgaM97uK274eKk9R9CrX7Rw2XxfwA+BkT1ZCLnYwCvzlHlQ70R4sJUatHN";
+ moduleBuffer += "Lj1vZQSsrR5Bp68AWN5UWFlI43toUIGZHmfH/1bhS0JCy09YdhZaaHmEJZBDy1t2FgLQr5LHKZsHEPS+kNtcb0j3FiztmFEL7Ete";
+ moduleBuffer += "2bqLrD+h5UMdAISWZ2ma9ZBOPbTQ8mEOLR8mBbR8qCfjBbp8WEC3hHrvnofsRJd/BTkb8eiNpQt8Za8VnI1DnTp1NlXIuSs79Y2c";
+ moduleBuffer += "9kn/hUQJv6Qou8KUqrbJbBfv9LPUNWl9F/vdfvw16rjPekquJ73U7EcPootun9OR85gHBsn3j/LRWDAXD8KjS/AX8MQ0wCHd/oNr";
+ moduleBuffer += "mfPjMt0T/4BlKsUo4wC1uyiRjqczrG2SkuwBPHFO5WW+FykxW4WoCykZqdFvr7X2CJ1kEoIS7ahg7sSbmh21EugU1gfLvoW9BSNb";
+ moduleBuffer += "QV52k7NTj0HbwPYUfjSNc5Rd2TSs0vRUD1i9NygMgFXx30AVP2D146NsEEABsotPgwfSppP7RfXjwOsNkRqSeHqdOrbl6N01GMw5";
+ moduleBuffer += "TbVA2SAggz1EXqc21Ml8maGFscCzZo+eB0u7Pozz4OOfQKkrnh4mP4yoG3Z7T+sB8jkcJp/28oNl7OHOGT0l5mGyrDB6LaQ4RW5a";
+ moduleBuffer += "G4f7a8URcX5CjFeLoGLzd2tudFRvOEv9hLcfPiDZOfuBXo7hEu3HJadbqao3B3ohJFtJLMXcnNbbjj4C4v0w7pE53H1aoCOAVMBr";
+ moduleBuffer += "/HWy2n326D9VPlYJeNWAKQLcxwKSkUuWlMFseoY5mkoqHXVc5lKfiYXusv8Fq7iJkwKeBvqpY7+BexuAA+O2lcS5mg8ivSLSs5Hq";
+ moduleBuffer += "86DH4wOVIryegwtdQJVNajxpuH1OpgZogvtZhwiCj+MIH2sgR0B4AIoXdcrp0t0FvCqE9yRwp3Iwu+/+Y9GBxNB2wR/3rq9Klc3e";
+ moduleBuffer += "tMa+4VYxpkPDW0gUOm6qWdpA4XFPdvm+SyEcA/C3n9236N+VxfckgJ4m6ZreUWqzLuEE7pBQUN1xaGFuWRi4CykKactRs7mRRH2m";
+ moduleBuffer += "8pjKQXscm8apUMHtN1NXqzYP/x4jNes2qXbNgKbkguoeb3r7sk1S447DB+gDih45pchiaLnVQedWB51bHXQ+Ib1wdqxU49rhkEMy";
+ moduleBuffer += "V7eS0nK9imDlN79QcztHC72acNKWRx3cdFrPUm57UyiG0s6E53DaaGvsfEmEm3YT3Gd0ufM8qv6jwNX7vRjJ1JYGZjMNevbILjv7";
+ moduleBuffer += "eaL3IfdW6akULh6yZ5ybD9r7AeAKaAnsKfrQVTRQ6RDsSFqSSpk/TvN+yYIQM5CsnOxNEpDI7QdgoCS06kHy/l/ozAw6EnNwIC1O";
+ moduleBuffer += "Xg5JFNxDaNK7b6WpZ5C1DtmkQTZ5KFtcFAFk8Cv9TEZc2FTrYoPOjg/rGSjMchc5VeWxiz8dbS3jYEYED163taFVt/px/zZOOz/v";
+ moduleBuffer += "0rYLXY3E39L2wYUDTRZoMuwObcq3tAM1/en2JaVsgZAJ7CmAzkYVXRpMBE7brVRMQe1x0wP9KesldIl11jP12Z6+1lwy4ceeTKmM";
+ moduleBuffer += "2Lqu8NKrM0zExZiPMuoQWPRvnWtqvXr+FacGOhqMymL46zI3tUHzJt3VJrS5yi4+9KQT/weahgknawKPSfIBqxoinS9ihVOQRP0Z";
+ moduleBuffer += "Q9KgqZuXD1b6hvNuszsPpyDiP9UvuB1JAFeR18DLlk7nNahzQkFY2U+6gjDYf6WkIg4rrYa51fxiTaHPlmsV6DNADK1b6LNfo67+";
+ moduleBuffer += "2SHos3ULfUaks0VTQp8R50ykMoXcZtR8354rFGhosNS+4BHEBSJHnBAgi8ByI+BnJwMLfnYywNHVgbw2WguCn5119XzoAqDEsxOu";
+ moduleBuffer += "ntUQIOJ5i+CFxTuS36crQGdnLCDaU5W4VQuI9uQg+NkurfNjHqEwcFqzC4d4P4eki0Rkr8VfDWkTHb+/An522kVYqPg79Qr4WWjT";
+ moduleBuffer += "WPCzi7aO6zyOiwqws/PEdCvB0M4NgqEBAuu0S0jJgBDfMeHxft7nFtCidhuHUGjLRagjoSW/bFxAvG6z7nEQ1fD5i8Ob4Q707EAe";
+ moduleBuffer += "sXZUtvzwGgSjn/cThbn+bH34mjxQzz+EPo1Fdv1nxQ3rmpDoBcDB1u0RoEjcPwcU85xK4RiYsAHKcOjIAIm/zhHj68BxNkcGa71s";
+ moduleBuffer += "ZLBl4k+/P3T3HaVn715PzTPVjrSXqs1moDrWV6mlJy91tHo7VPINVYn7asVwilSz+48U2Ikq2dneP1a0J7qon+/tRGhePcsnvWsR";
+ moduleBuffer += "StQz/I7eP0Foh3p239n7AYR2qg3Rdb3rEIImlhZF1/NCfi9G6LW9H0Totb0JhPb2XoPQ3t4kQjf0dund+ymEbuz9EK/g96YR+rHe";
+ moduleBuffer += "DyP0Y70ZhN7c+xEaiva2IPSW3mtpRNrbitAdvdchdEeP+uk7e7sRurN3FUJv7+1B6O29q+n6vLcXoXf05tQf+o8SC6A3j9C7evsQ";
+ moduleBuffer += "elfvGoTe3Xs9Qu/ubUPort4NCN3V247Q3b03EOagl8B1REJzp/16gHYopbnCofeIJPSe3d4h6Uv894b3JOaAhO+W8Hb5d4MN3yXh";
+ moduleBuffer += "bfLv9Tb8bglfI//22fC7JDwv/37Uht8p4Tn5t9eG3yHhq+XfHht+u4Svkn+7bfhOCc/Kv9fZ8B0S3ir/XmvDb5HwFvn3Izb8ZgnP";
+ moduleBuffer += "yL8ftuEfS7BFmk5+yIax/k7Jv102fEMCfz+TyWtseG/i8DD4B234tQlUS3FyvQ3vShweD19nw9cl4B+d5AdseGfCQ6Pkn9jwjsQh";
+ moduleBuffer += "KPK1NiwEJwryThueT2jonfxjG55NqEtO/pENTyc0ckxebcNxQh1NssOGcfKLW1mvsuEo4WRPUhumB3f517Nhp/nTkeseVYQab4dT";
+ moduleBuffer += "vQz/wv8gPzvw3DblesYPamFUbzRb7U43npic4gGNg+Z72FHKcMwePfc4dXveAn0fqNeJ+EtRa2o07VObpZ0cTXths7QTo2kX/2CT";
+ moduleBuffer += "tPFo2lObpe2Opj2zWdrOaNqLm6Vtj6Y98YebpG2Npn14s7TN0bRPbpa2MZp2fbO09dG0lzZLG42mXfnSJmnDMfXdLG0NoqST+by+";
+ moduleBuffer += "Vw6fIrkLQBsv+4qDmePx0BBzDk8tIlmUWQVXltX5K8jKH23Bs5u1wIyh4mZpvTGj9OlN0rpjRukmaZESWFDNJ2pe7UjODGhpTwfA";
+ moduleBuffer += "qQf1pFeqJ71SPekNqCe9inrSq6gnvUI96al6MjU4Q2f20SuRvYhriWYfvxLZB4AMY/azr0T2NaCmMfvklcg+xM02Zr/zlcjeo3ee";
+ moduleBuffer += "7Oz//oQT/4aIawtf/uh9wMdZ/F3ncOLd+ciCey+Ou5LwMEwPgTDvlYD69yLFYUmy8Kb3MVUNqWqaqgTYH0kWIFmgyUrA/ZFkPpL5";
+ moduleBuffer += "mqwE4B9JZpDMaLICk19TPQTQU2J5U7yNeHXH3efsogG6TKIP1jzv6NYjOonUm4/3OpELXPlzGI878biTjzvwuIOPCR4TPs7jcZ6P";
+ moduleBuffer += "s3ic5eM0Hqf5GOMx5mMLjy0+RniM+OjjkTK1o/eoCBXm3QpM/mAhWTqc1vg35N+If+v82+DfJv+2+LfNvx3+7crfBRF4iBUlI0Nk";
+ moduleBuffer += "nfKxXT62ysdm+dgoH+vlY1Q+huVjrXwMykf/EX2+N42lJvfC6uredKJ8nCwe83RTZcx3NGZ6JM3MSMyWkZitIzGzIzFXjcRcPRIz";
+ moduleBuffer += "V8ZESw9lsz8p4nX3IWgZj75HumruoQMHIUTC3Koj0V5yNWN2MqbNmKsYs4MxLcbMMiZhTJMxWxkzr56rGLOFMbOMqTNmhjHTjIkY";
+ moduleBuffer += "M82YmDEhY6YY01L/WYyZZEyk8CKMmWCMzxgfETEjqLGM74dnCc6L50MvOGKOWlhvNUE661i32rwnmj+eLx55qo6jtVdmFQJQXvhK";
+ moduleBuffer += "rUHAfwxfqRUIq2f4Sq0/WDvDV2r1wcoZvlJrD9ZNZr7rFck80sz3viKZwypuLdcCwdTg7cSsxdMd6BE+vRnk49ONhKzF015UjE+7";
+ moduleBuffer += "OGlgq+DhJ8JR87UmxkHKtWa2R6jJhOdIIVGC345ZDbQ8mcqwYpH5u0dPtjAzRD7EGFYvc+qFThf1mxRFNoWJ5flfYAQhSeMTOLNc";
+ moduleBuffer += "0/v1Cmjf/EDsTRw1OQa8dW5HCRuqnUDVPjzbpE5z1SjayMP29zR/eaYlMvaj1u07DRl35RgTPByFnV9CX+lwPV7i/zf4NEt/LD69";
+ moduleBuffer += "K/t0Eq2YFHqvebZPxwJpLf6K0YOS2Zt444+mJxGR6NYU5jb+uq+SteSWJdmTH1+jmbKX7UCRUPNk1/FpRp5ey6ctquiibsqHu7pr";
+ moduleBuffer += "PWLh0gBziz7F/WRGn6J+QithD8ZHHb3r5cESP4blrW5NdqpnAasEhnFh4XmArhtqts3YmEB7JgXRmGdXznbjPgzleR8IYAnSbHXb";
+ moduleBuffer += "zWttOEmAH0DJ/mbeFXPj38W5yE5CJgaHgIhUt1rqJtpQL70aAFSmikbb1Cv2hVeEmuQAI4mIZggtoSZvz/FOb1SBeQWRWoQz9uwN";
+ moduleBuffer += "fOB3qFNrgH60VGtu4YfKm/0BkkWKUsm78YrN2+rHj9abhAxXoMqnvZ4CucN8V8LnvNTPQWNwZiRR5z1dLT1dIn2ui/bc3o2fJBTq";
+ moduleBuffer += "cZg0yO9S8fnNbe9q/X5ZPvwpHeyH9Pu7aZS74fTjJzxYMyx59OOy5qoPU/dg9rijnlouO3pPScPwOfNewC8G1zt3EjyGh1XQ1ON9";
+ moduleBuffer += "ec5vcF+gbbK/+/U1J5uMH+GG0dEx5KiRgLG6W1qb69Vikz3hWvhN3O3W+91u/CuG+tv8a1e/jkFJHq7A/oXn3px3q5x35xx7t4ai";
+ moduleBuffer += "B1TKCTDfCytvInXG9Ozk5nRec+2sN7hKkHp2znuWB9A8upj7S3bur+cwBXbKEyXFI8oqx2z8GfWyslDg7eZPUf60kKP41jiD1IJi";
+ moduleBuffer += "r/qWsTPJVRc5cRnGnQivVOu79vxlV5I7Eim/tbPwDh6A9xRumYiOK67iKbjqnxb8LyLKItTQvB8RctTzLkuUtNVpdWRnECYbHJyV";
+ moduleBuffer += "c66uhtBROesw4dKYU8rGtHi/PeXMUFg2MrwcENsj4DUx7ydLf7mMkpymClSUfNqTTcVFQOZ8twjMAitbAx6mKsyGqCTB9dAw/vso";
+ moduleBuffer += "mShI6EHX6pUVnyqo7/FgtcCwhobUr/Icf4jn+EM8x6+0HYOBvnx3WBzmAYcIxKdPyjAvZxSZ05VCvMdClFssZnXlo+5H/QKS9oxR";
+ moduleBuffer += "b1MnJTY/eoHwi1tCYZ4KV0iWcEJmVzI4To0/Dac3vPYXfyaIL8HDjls6yi2o38iRnzGLTpt0eo9khcUaronyxUBCpVMiFH+iCPG7";
+ moduleBuffer += "41q4o6fc8/34L6ARnn6jd7j0My11PG32eIuY/jDobVi8aIcXer0idNKl6YdlvtnP5WynZ9masIpBBkLfU7T0+UohFuB66ouKBctW";
+ moduleBuffer += "HDhuf5cGxIITdMj2QmLB0ncnFpz/71MsOP/fm1jw5JBYsDYqFpwdKxZcdKtiwSVXxYKL7qhYsOjhTIyD/V36/Ts5adcLseCiS7Fg";
+ moduleBuffer += "dVQs+M8jYsG/VKngxwakgidHpIKllyIVXHSVu32Cq/cl9yVKBccrUgHsQ+vWjrSQCs5sJhWsVqSCVddOeoMrAJAKlqxUcHxAKuDU";
+ moduleBuffer += "v+jqylqVCjDjWynnFrkJ5QIPS4FfyAV+IRf4hVzgF3KBx9P8Qi4IhuSCYFguCKpyQTAgF1RlCsvQrVzQULkgGJELmopd1KzKBZHK";
+ moduleBuffer += "BSEuH6pcEBb+x0KVCyoexkKVCyo+yEKVCypeypq0lk9rpVwQjMoFwahcEFTlggiAXtZXQ0UuiKpyQTQoFwRDckEUf/uK5YJgQC5o";
+ moduleBuffer += "FF45GygiKHNooPygzKShiLFl26tygT8kF/hDcoE/JBf44+SCFSsXLFckAJEHDFEgKG3ncgAdKki4UZULLsIvj13KUi87ceJzEF7+";
+ moduleBuffer += "C268onccolrViGKV3MJ71Csf/JzTfx0YaLb9Jx8+TLfBErwXyEbk8H5+A7MW/0kdkkVUSBah7QRICfWqhLBEyeKiS8miROkPkgKh";
+ moduleBuffer += "3zbg2KBkcUmrX0oWH/NUsnjXgGSxJJLFuxOHI6teiBIcekVo8YUEi9VNBAveDW9+3ne7dFPZtqhl7B9c1OFAU2VGyyLje9x81VRp";
+ moduleBuffer += "kbaLWPUr7/K3U8QuGlWD4NcvYgHgBkUIfrtlDk1axid+/E2McTilDBJTvg5gQiVZ4vZsHkuc2G8o5oEX/01IQ/oAD5H0kY8Hg7N/";
+ moduleBuffer += "jTFJQ2M6SVsLWaypP5CiZjUMxzx7I8Ooa2sDw81qbcgWmuWHBGrzZfCxNoFWgh5n8QBA+66WXU/qGgMvhowReSQ79/+x9/ZBdlVl";
+ moduleBuffer += "vvD+3vucfU73TtIhDR1knz25d5orlJkqXpILFmR38ZWLDNw7FEXNnT98q6wa72lepUMmr/XeTtKQCAEZjRrHjIPaaJQoNLSKY1TQ";
+ moduleBuffer += "zsc4UfloFDU6qHGMGhC1BdRwZcj7/H7P2h+n0yjjdYa6lFH67LX2WmuvvfZ61seznuf3i4AK8BCkazbukltqh6mgNo15kozFaZ9m";
+ moduleBuffer += "C2Vr8FRIOkQ+I5A3buvjAYXCGPPGUk5Dp8ayvg0IdvlJm12iqOhLh+YKQEJleiICasjiZ5YJbhKOw7xkIW10pm/5TktXqZN2QY2H";
+ moduleBuffer += "a3hcNp3CDsKBJcSknflqmnr65fBYSEnjC8NbGAPyhozgbbXOxs6uCaPu9WpKHsAWmtaKrYvaDZr+dtRutoCvC4nsk2HypU10Gk51";
+ moduleBuffer += "FoE7PG1gu4g5WY3S8+HL27Dv6E89GQnGUxfDw6JN41lynlzg1ITE117NdNg8LszhGYyyI0lH9oU/l0UFLDUzFkuYNtQ57UdZbekX";
+ moduleBuffer += "cUoVgp1Ga4dkepLq0e+COkR5lbBw+8I78A06NqGlED/KkzZmVGcNeUg+89kDxoGiN2SaFY1KFzu2paUbgE6fefkmTLvXk185DWXL";
+ moduleBuffer += "HXAH0XdR29c3hjszt9eurrxpYu3LqzfYpI2iScHHFMN0Hdw0JCEevpwuzEWjBr+hUY0jQKAPbKBRGws0KsYHFOtzk1ZvVFmdcfBw";
+ moduleBuffer += "TaP6tK3DCNfbICZ014mh3pRkeLSTzWAXmrQZQN++v2Evw0A5Uey/sOa3k+dIlY116FlZ/6iuY1eOwS6La7EzUnsMRlkMDDNwpQZW";
+ moduleBuffer += "MHCFBlIGXqOB5QxcooFBBi7QwAADZsmXMPBqDbQYWC11ARUeWJVXw/a1nVyVkk4eDOMmpKBScT4xuc9KPgOcwMNegc+8xwCE2cmz";
+ moduleBuffer += "ni5aGpi6JZ8HXBaNXYnBvogNc1djZd0GemUZlxAdFNETdm+0o9G7aTsL9NCriGMWa/SsSR2Z1Cdp9DGTOjCpz9BoTDfNMnVTqqDx";
+ moduleBuffer += "oETuQwzj+4rkc/OSmxrudLXw0BS+TKO3e/qagXnNQKOPulpDVFxJihvFW6GJhotxumGy2cndGJLRXJ+RLWXyNMaeWFPiGHwYI7Gn";
+ moduleBuffer += "6yF2o2k76zP96C5807sc/cKgyxujExGDuzS4ywQnNThpgrdp8DYT3KnBnSa4Q4M7THC7Breb4K0avNUEt2lwG/r5tFGAytIs+Ucb";
+ moduleBuffer += "FJz6fnZyTNba18EaefN15WE/tiVOJ9EtiYLa3Ot0FuF3j61k63uczmL83gdYSpcM1EtUyamjzozTGVBFJ4YfbjiXcldpqLoOOp2T";
+ moduleBuffer += "8PuA3SGP1gNOh7Tws3YnVj11Z5D6a5l/2MC2Wmqycofs7GRVbl83lp58HR0c6a6VDl4n73wdvRxdWhsuMxHPOLqkSE8yEXOOzrjp";
+ moduleBuffer += "UhPxpKPTfDpgIo46Ol2nS0zEEUfXCOliE3HYoXLGSxeZiMccXdOkiYk4hMZ/jPvAQ0XTtw0cNpwLt4IEtb+0sWhR0Y3edSXWzVzn";
+ moduleBuffer += "fTN0IuUWxq7PcNJgg0lWwEEsF3AiHoAjgZbDw1kEjxMHChzibdjE2wCM0cUK6jCchXrH6bmDgS5ryvdr6l23fjfH1Cx/ky/5nI7s";
+ moduleBuffer += "9UBrUho0bBlkS35p1hpSAtpI0WoixMVDMoGhCtL4cs2vK0KcSlpMZfKAi+ikRxzUvis8mluWKCOWIuBaBo4MsNg4msTQAkCfSZKj";
+ moduleBuffer += "relQI35BhwwQlyj92GvIRpiWG+W0Ic8xQJjQ7MESOw1Ly3FP9zBExlR2NG7FClwXxbWgy5Ol5MmKSphPPqt+27b6bZNPbNvjxm8b";
+ moduleBuffer += "9nEv7m12Pl6+zWvQybEnWTuUEcHvgoxIajJHhvp+tnlpmcPhIyfrJFrYw78Woyc2G5m3cTzrVxVg38jmN2d9W9P+LQhs2Tpy/k0d";
+ moduleBuffer += "j1oponVF6lVFP7UQDRBileIroym3T/B/svPdqOK7WcUEfwbSNrhBJM+exwuEoeRjLjyqYPBQxnV0I56q5/ChqhQy3rW4pvbSZBPy";
+ moduleBuffer += "Jtpc0nHXSge0CBJn6cGBRUgZWYAprXWUH318b7mCctdj9S2iNJ71jWeL1Leh/0qJW3TVuilZN+l6yOBOYc0C25MgP3h0Ly0H6XV/";
+ moduleBuffer += "lkQswwIgyB+3MN3r72vM7wV0QFwzClPogMSgWB8EVCxgPYCr5V3M/wG1E5jvwdCeHz1auPGL4EB+AnNk/BHfDjerfXEEAEKZwenz";
+ moduleBuffer += "17gQng/Q+dFRyFEPMos8WFAB2oY3kF8f7kLhRW3H2cwVGX01pQGtP4XnH9w9paleu1YDLgLXmoDXjbGLGoWrJeok69RA3epQnnQc";
+ moduleBuffer += "KYjKNyoJffXtpCMXvDNLf6+ccC8OgKZleGC94syFtzM78RDRYeDbzO+IF3HyRL+hk/wPdVczjk56DTfDgMngZoho+c/XW60xdfhE";
+ moduleBuffer += "DB31UJXMK50LvbrboVd3O/TqboeYCnyuiY2zpvFSU59TN/VqKc3CvmofDibhWiql3NGOp15dHHCtM60UhuKOZQMCh/X0lPXE3mDK";
+ moduleBuffer += "whW38Vw9W/DtCPADqwULvh0WF+I2HcscGrmDI4gOb4DL6o+p1kTzESRykW8Bn6If/r+u1v4i47FZPKO3CBaeemv7OTYNsCA8X8ta";
+ moduleBuffer += "ODZ+gl11s4LwWXAzifIzO01u9qC5eGU+MXHA4p0MfTmzh6Dyg/Mbv7lMBWOV6yUVl+wE0kukE9hUqep9vUYnaDCZ6QQmWjpAKze+";
+ moduleBuffer += "vUT5yuLyE8f1jx/XP37c6+is/CdZoB+/YbyWdTslY2stpQKbEdmQmxsMQCG9JyGopi0GMnbuwQwaJrzQZwP9IimdASm4bFnTS3QC";
+ moduleBuffer += "yILLXzC7iAvzR3k0ZkQn6UCXvZJ+ENLLpBVs1U+fY6VaSqSlNMpSpPfIRnCUe18DcwarGxQYAeylt1dhr4qzuXqXwpKE5QMHJFEv";
+ moduleBuffer += "4Por6VfBQ3TFYUQgw4PAGG9JTw2JuhYqvoX0fTovUwrCuNiYW+rhRCkIjBTMqzH20kFvjbUFqEExL2zR54O8qermWHaV8KLSi1mf";
+ moduleBuffer += "2FscHyRCjQTx/2rYMTaM0646ikj+ZIIUxszsMuKbESOSQ5HSt293CoMmEXpZzyXvl+U3WSHdfOaWfZYeVkjUrUovKwntM60LMhfK";
+ moduleBuffer += "Sju/i6h3T9qqi0019kxrTYdE9bc65BUADy40DXrOgN5pcfxOg+vGrjvH2oZ6zNkFxOADFjbXoT64Tn4FuHdwXDslATwtF8swaRWH";
+ moduleBuffer += "qyNEV6mDlXpeeknymQZn9AzHBrIpe2sTKrP6ubJbU2Jr8UkVHtRTkVLJLVunNedYawoarYAHQp4CsvnJFt/AK3vJHqwUMKNmkUbP";
+ moduleBuffer += "YrqTaDMjcOxWjbG5R5WxpypjLcWt1Mae0Qdxgecl/9TAUEmM7Kp2lhKmJFWYgCfl21nliYCFtvChrsSns+B2zbciTPEKqm/lc59j";
+ moduleBuffer += "XQCTMsfgIPIwOHmbnz/LrZf0GfV82OaqsraDdZdUxjInElDIhjxPKaPgXetxFVdE0YaUsMYEdMBZiqKXHglV5Tlish6qLkub1ALl";
+ moduleBuffer += "Ca2MY12c90RAbFqB13JAV5vhHVnWQbssYKa63GPXy5rG2pIo0/ILQnmWdqutxc2qJ64siz5IaiyqF5ql4p6HFuo8zJ7o4CRePYf5";
+ moduleBuffer += "ps7psgc2rwobAzh4uiiKELu4cLj1beRb37LPKmJwakHj4GQXgkedbn6f3C7PfQ5LxL31CNm65XfVI3YVgVk8eY4WgtBg74ICoVVW";
+ moduleBuffer += "v6h4UFo0OFBapE4lbQ6xjJ1KHB2Y+fD4a6G3xPXwKne7SyvEm5ralug7/EbcSLpU9RKzywK5wgXYtklXxDRtm51mNSRhs3kB+tw0";
+ moduleBuffer += "d5s3+o69uYHd5pxVsKGs7PIsJXNHLDXuTr5vuBARA4+HaxmDzny6E2X+OEzwT3dXjme9CTgUwClBX5ifFJ4M4+jUpzvJOI4ORtIb";
+ moduleBuffer += "JX9vPjClIyXuwowfpa/JiDQ6OJ7BpATeFVmIAjwWcELNkNtTw39MWFdNaec+nZ+nwUoE3Bei8iLHZXlaoWjEHs8aV9ClA3oFSXFV";
+ moduleBuffer += "VR3PFBiZlwqq8uSloDRomvI8VhH+Fn5hKN9kGxifDJ+nD1raIEtz66WlKM3T2nloNmYt83nMN9yTz2MWPNHVJ6Iot3qibIwl0Xmy";
+ moduleBuffer += "gXHYQOfJxscp0m6Rl2uyFVA2011dpvsLnuREaFjWQ5KFTPLaMsnryFyjX46fY0saSJ3c85zX8yFIA0dajkDJx109iJV++IhnN4lE";
+ moduleBuffer += "0C6NZmS7cCEnKmVCwEiIvpkFjC5Md/HbMEc7Td7ZTiUqoJyhNzNY9dDoMThHrat8UKaddBTI3tObGFOgf/VxxkOFDN5R7X/VFJAH";
+ moduleBuffer += "OBo8zEEbYPl8qqdHS5F5quICFCWBzyHgEMS7OCXDctaUNAtwA/rvo6QJnm65RUnTAbLCBoMlHTZ3Xb27PeQhXRGcIOBeVOZt6XMc";
+ moduleBuffer += "U2PetfXUyuVpWcSStWXCQuuqdYyKF+Jzce7n8chKqxyjZE8brlbmrDr5F0E90JJRkm823cDzte2t2is1tKyGNmQTiUSCkEjpHIr6";
+ moduleBuffer += "Nom3k8ZMN8d0TTa/xSPQMuF2nnHti21/cwnIWhxqzf9favcNB7b553i27doL/Ivwh8B8QH9p0w1SNvA4Mw3WrmuH2DLni6i2vGfa";
+ moduleBuffer += "u3wIJ0B5tI4YYvF6Ws856/MD9x2wcOosUWuHcBCSe+v403svdS7Vu85vvMs59ne5Oy8S0nERt/pYLsntzmVKC2lSwQbVypdu6Dj5";
+ moduleBuffer += "z/yOryZEeeciNZ3ycEdEqFAGMN9MUbqMKdZYzCU0Vhebr+vqzlv20aGURjOJn/mXDXWAqgFdnNnoizQAmRl5HrhfyjrT4slteOkJ";
+ moduleBuffer += "uDvEi5dvodSEWb6tPB4KpOR8ZxG8kGd2Mi828XOuTVvEfGBD/tDtWv45oD7EUd6GvH+sFtvP2GhebB9jW/Ni24xN5sVS+77uL3MH";
+ moduleBuffer += "1F80PMW4kv+aQIJ47fwXytODU0CZhLvSxxCm2Sp6UE9pWHo2z6FyycHbkCsyUlOOf5H7i3TR6r7KlrckdSI8FM61JaWsz2x4Aj92";
+ moduleBuffer += "1MataKFbR3grXOjWY7wVLHRrD2/5C906zGpQYiYc3d2ekOYhpqHD8MSEN9a2gcxDAHGi8WBnddyiGgvMcIT+kpEffSs//GDzYgk8";
+ moduleBuffer += "z8D75poXw+Ns5qfN0fz/W4vL6ffGo/k6Xs59Qy7HeDkxJ5ffuUavJ1qj+fvW83r2w3L9PzX6htWj+fQ/XKlZt6w2aaPL2zaqcd89";
+ moduleBuffer += "B6z8jHzHtPzM2vmRj8nvD93kgK1K4y99UsLD+Xv+Xn4+4OT37ZHfjzhyO76wwMM9STviwIkdcdmCHXFowY54yoId8eQFO+Jgb0cc";
+ moduleBuffer += "ePEdcfmL7YgDVUc8tbcjqhKLOA2KwImGOrErHEDi2KBbxz/1nWCzvUkRv9Rv24VARXgkVRgQOtlRQCJlhy/iqoO6jDzuWBbmH+8H";
+ moduleBuffer += "DtOtn94PS624m/wL9Jr52zTcKsLv0HC7CL9Lw33zwv0mLMX/BEhZ8oj8iPUG2rrtbZmI7e4bOnFha7nwjJO7qu+lQeoR69oLiRi6";
+ moduleBuffer += "3b02a13YaeSn8SyCOFyjfa3EbrfiZiMKA99bBB3I/AT9dnnfTWT1ciHVII1WSxOfioveHK0iuWNb7XjkIacjj4jzV3TCkWlcN+OR";
+ moduleBuffer += "t+O3oXFP23IdxSOP4jeMRz6J30DvvRvXfjxyzJJfT+O+hWs3HjlXfpw4Xx5L3GmddpySYYQIY5fxCIhjI02oPKlq2AK2jlQUvrD2";
+ moduleBuffer += "lpHtyzelAS9l8axRr940Lq338f5ReMu6W0Z+4mxKXZPEzj/WP5o/h0/gbEibo2nc1VTjaXscZBn6/u7adVMbRyY+6G+CA/DxGx45";
+ moduleBuffer += "fk94NcHKpPO8Ahp79lx0LCCWuJA7dnBa1JxrDxYHY4pQ0l7l0rq052XUDnX+29kLREImwrONTaH096ddBeSaCUsjr2SiqetedVST";
+ moduleBuffer += "RS4j1JRJ17+xRmEtSLfY5ByzB2/JuvD6pnrPMlKtwkxkwSWla8p88vEZbJnPMTtcGO0ECY6cZfXG9F6RflJ1EJL4jWYjDrstD4lV";
+ moduleBuffer += "Z9Fg8I26y8za4KlhuWpSFqYtCYFK7npTbX2fovjtXk/xPsYoVi6QbBibDPC0Z1LMeLoQt7W2gdY2KIor1t5IjE1F7aFK7FI+Csty";
+ moduleBuffer += "HH/xTXAWHLDWan7WZiIcO2tTYl3uF02Jhf45Ka0HNa/sk/iOvK/LU1svV3arhpQVOECjfIKDYr+MUwY9F3EoIKk1KoNF5uMNrMug";
+ moduleBuffer += "76T1jqeGVzSYle9ihmNzcmFOAXC0R6unWIf2UAbCnuQ8PUKeMuzoGUoZdvUYpQyTT9qrwj7CfhUOEA6qcIhw2C2rF2n1IhKKFbCZ";
+ moduleBuffer += "svAEaO64jNZG15ryi7tjNJkOLmvjvNRdn3n54BishpCU7DK2tI83itgmMdapEKRRygYFAvXS5vp1Z5cGWuYUIHWlJWKltw7Qpj51";
+ moduleBuffer += "xkFhmLlQanNMRe4guadnQoDzzUg76OThWObpcTMxfQ1bSC9+6qjBT3V6Podd/xz2vM9hz/sc9rzPYc/7HPa8z2HP+xx29TnMQbD5";
+ moduleBuffer += "HOZgzIqvD2TXhJkbthdW7ilDSP6msczqqg8BajpGEgxdzrGpgWrY0ZW9DCX3/uMBy7hTkEVXxmQXkOh3/SPOjNTFgzc2jdEMHeca";
+ moduleBuffer += "9LR3eJfHDm7yBTuuzZq0eOczaSG8xzyijS1E8bw2Pwoq60hulAszvqJwqV43NV/Y5OipVL+Si8yvU5mNyxVnLahxUiv5rk3i5gck";
+ moduleBuffer += "N/8oZlSm9sBtL9/xD4zLLM8cbJiDjyiz0NSa8fhpKRe3p102xArwtQgpl0/j/rQWLI2rBZe1Kl4gBUomX4GWyIzOi8oe0DSZe1nb";
+ moduleBuffer += "LRoMcN3YZZVli1ydLu+U3yr1VZRz/aJKb5SScsjrrsWel6B1agjJB2lF+fC7XqiiVfPheCk/JlPwbfIk9KXN+a6igqRycjeszyye";
+ moduleBuffer += "Gu7iJ0ldCi8hL+E9FXc4ISr0lyGJdPQHJhnSekWb22xzMAd0LEX3tXvaHEtX0+YYEEWE2Vb5ZjRc/A7f8dU4dtoudKID3WQ3llBn";
+ moduleBuffer += "6S8eD7WZCO/rM3cqC4Fdb5/uplk00riRnG4AsA8rR/qwcqQPexzpoxG7BLCPRvpLR/po5DTjSN8oHOlhnQhT/swrQOzR+R8FU8U1";
+ moduleBuffer += "1EYWY/qMlT+5RTHsHWWWpvcZzjt9npaUK361BACZk8GwXz2Wr75Y91cyI0d6bJBH+XNbFEWdRwIyQ37RADE9yVMnhFWXl3nJXKSK";
+ moduleBuffer += "/VruW7dqbk1Jq5pzrNenzsikcTV7nSS1zqaK0bzR1QoQSPWVNDvdiWhbzzIpNmk3edR1zeBwq614ftvJxaGg6WT3cEw+ItYTOIb8";
+ moduleBuffer += "gcYRjwPRVlvtfxWAeXA9dnrPy6AVrV+nWy6E4CWxYd06NRL1zKt5+dzbKvh59JM8ZX3zNH/sen1pHjLRT86yVlnmkIkedEWYLCrL";
+ moduleBuffer += "y3DqnG4N4IonKMA3f3n0yWM7fr99ctu7/nf65M53vWz75PYPvFCfPPqO31+ffNv/8X1y+1v3Wcmbw99bh5xEeb9zh5w2uX/vHXKv";
+ moduleBuffer += "91J3yAPb971Ah5y+dd/vrUNO+PawQd8d7EHfPbkHffeUHvTdoR703eU96Lun9qDvvqIHffe0HvTdtAd9t9ODvpv1oO/+UQ/67ooe";
+ moduleBuffer += "9N3/0IO++x970Hf/uAd9d7gHfff0HvTd/9SDvvvKAn3XUusREcUr0Ankh8i351hEmq3Ace10WfrK6+qQs//JWDcXkLOnm3ABOTts";
+ moduleBuffer += "wgXk7B+bcAE5+x9NuICc/Q8mXEDOrjDhAnL2j0y4gJzNTLiAnO2YcAE5m5pwATl7mgkXkLOvMOECcvZUEy4gZ5ebcAE5O2TCBeTs";
+ moduleBuffer += "KSZcQM6ebMIF5GxhhW7Fv/JUfzPnvFhTotQqDIj+aiELkb9SY0sX7iuQDhqJaMDCNxzOuFFDr5Nty7hKqjqpvEkD6qSyXgPqpHKt";
+ moduleBuffer += "BtRJ5RoNqJPK6zWgTiqv00DEwGvNlo2Bv9CAZXxm2K9d7dC+9mRPu3CgfTfUTtvQ3trUbhpr/2wVr3Jl1javcsUYGZSxz2qN0bcH";
+ moduleBuffer += "l/EYOedw2YSPhF424B+hl+EYGduIPT5mRjUAt5HbjcybY+TrI7SEXE5AXXXMeKNP8JjYT67SYZnmOOoyoYNYFspGaVjVNgedwgfy";
+ moduleBuffer += "KhTFX7VtgdbduOugQkWGSfIMqxsANBS47SZPO2mbphxRzY5jtrTjuFLVhVf02HHslsIrpwEMpnOOYjMq1nHyr8Q6LrfXFpnWRvuW";
+ moduleBuffer += "LYB5PLD0pGU8+7xx214Zh5PPRa1lCL4VwQDBkxDcgWALwaWKOBt11WZ+Bjea+Zd4n360+SSuv874FLAN+bRcJz92WgOa1TZZ55BE";
+ moduleBuffer += "kWjzw0jyDQewynb+FG4keNji3hwTrFS+42b5cTXjVrlOnnWIm1xL+W4kaS2YMsEjPnhz8T79vRkP38T3eeKmKuPsTZqxDxnvKTO2";
+ moduleBuffer += "EfwsgjGCLQS/cHPRiHQ0eAjBJoLNOk6vnR+t1evQzfrqDeT48c3Fq3OR8Oubi69AA8vrb5FgH4IBgm+7pUjs9xY/jRvt/H78RHy5";
+ moduleBuffer += "fBLX/4A/Qa055KN4ve//2C18/x/ix9OUD9yi7+/2fvknbmET/xI/Ye3L/wsiGr1f3umt3863VKVve4u+vt1bj9uQxF/oAyqL6r+b";
+ moduleBuffer += "XDz7QI9cXP9gj1zc9OALyMW9D7IdP/dgJRc7cP2lByu52PXggnJx5MFKLh59sCYXP3zwBeRi1wOUi20PVY117MEF5eItD/GjLZSS";
+ moduleBuffer += "cvHuh15ALrY+wPd56wNVxme+XJOLD5YZKRf3PNQjF595qEcu9j30AnLxWK1eDzxUk4vvPtQjFz97qEcufvFQj1xsefgF5GLXw5SL";
+ moduleBuffer += "jz1cycUOXH/64Uoujj24oFzMPsz3/9bDVc+deXhBufjOw2ziJx6u5IJf/ucPV3JRfPl5cnHrbFX6cw8vKBfbZykXC3zAf2e52PvR";
+ moduleBuffer += "fXW5+CKClVw8jOBCcvEcbjTzG+/cV8rFY4h6ByKMXDwpEQvIxV1IYuTiNrku5eJu3FhILm5lpfJZ3DeNNYOMJ8rFV1mfBVNSLr57";
+ moduleBuffer += "576F5eLJj/B9fvmRKuNjH9lXycWPy4yUi18hWMnFDXftq8vFLQguJBe77qqK33HXvkou7rhrX10uPnXXvrpc3I9gJRdfLhPPk4sn";
+ moduleBuffer += "caOdP8vaqFw8huvrp/aVcsHmOFEubpri+78dP6bnbr1j30Jy8a4pNvHt+AlrX343Ihq9X36eXByolX7v1L6F5OIgkvgLfcB/Z7n4";
+ moduleBuffer += "2/fur8vF7QhWcnEHggvJxaO40cy/w/vaOvfi+gnG6wsdkOsF5GLr+/aXcvEMkhRycSNuLCQXf4MbQX4bfopO+3f7F5KL9yNJa8GU";
+ moduleBuffer += "lIs737d/Ybk4+D6+z1dqGfe8b38lF18rM1IuvodgJRdPvm9/XS6eYWELyMX291fFT7x/fyUX73z//rpcfPD9++ty8REEK7n4VJl4";
+ moduleBuffer += "nlwcwo12/gP8GLk4iOufsLhac5woF1sn+f5vxY/puc+8f/9CcvGOSTbx+/AT1r78hxDR6P3y8+Riplb69OT+heTiAJL4C33Af+91";
+ moduleBuffer += "1F09cnH9VI9c3DT1AnKxa4rtePdUJRc7cP2ZqUou7r1zQbl4dKqSiwNTNbn4+tQLyMUPWan8yamqsbbfuaBc/Iz1WTAl5eLX5fvM";
+ moduleBuffer += "k4udd/N9PnB3lXHb3TW5+NDdPXLxsbt75OK+u3vk4sDdLyAXh2vFz95dk4vv390jF0/f3SMXz97dIxc33fMCcrH7HsrFJ++p5GIn";
+ moduleBuffer += "ru+/p5KL7XcuKBf77+H7P3hP1XN33bmgXDxyD5v42/dUcsEvf+SeSi6KLz9PLiamq9Ln7llQLrZOUy4W+IClXDwK/wl7/F/JMlRK";
+ moduleBuffer += "w6ITpIEUgnJbtvfQDBONz8l3/mw/DY4ckLWQc8iGegwdd7hL5hPqtaEis1m1giYotU53I8Bol0XdO7+oT76IopIXV9Tfv4iicAz8";
+ moduleBuffer += "SiJ4l+U8Or+cTyliZur+Z3e4LGSwLDiqFdfHmg07HqLLEufml7jnRdSsrS/peKtYlK1FbZubV9SnX0RRFMStPyskj4K4fa4miHb+";
+ moduleBuffer += "nrlCiCl0H54rxIpCd+9cIcQUuvsQdEuh+zyCnhE6kZeyKI/ragT7EXQR/A6CbQQdLjbLB8FQlU1HswSJKelyfmy8MQqej9w9xzoD";
+ moduleBuffer += "vnYKdGgZ2gblarBI0JCTPYg/rZIrEnrFrHmhmoG0MlB4UqNI0xJ3PcyBLFoEyj/YJnZVU2jRJxqiSkMEb40i79DAgOgjK4y/p9ok";
+ moduleBuffer += "FBA/8iagfXU5PnQM4yCpSdXchzyxFhlnc389/Wv12edXjzYQrb01sHtqYNdr4JL6NYVnQoFQSm6KfLna2ZDwQjEh2UOkojyXgIUm";
+ moduleBuffer += "QO9MQ9lKfam+5A4dyN31sINqSaw0GsGUPZhHBnEJzpkGOkx5WmRR1ILlBFpOUJbTMOUA8rNxNsk4bYUWxYfJTmxWp2jW2EAuq8UQ";
+ moduleBuffer += "W80DihRbiFrhkEWoPQi6V9Ve0gHk4STjjVNDn/FO09lmTqq7/jxhsENLI0dMGYd5dPZE4dYDi8gZW/1/8BvrLUUbshVdzTVOlI7B";
+ moduleBuffer += "maMNYot+I09UjjoGjs41+HUtuft0aHxx4MbTMHkDxRSKNQgHGo9mgk8UHjMhLf/0uY0CUOnpwssFZkWmKHVmcYqi4F7jEHzoicKP";
+ moduleBuffer += "R32A9LktvqRB0QOGW0bQH5O3T4sywYl++gDlOx+TrY02Y796XTrm0UmXPm+Olja5COkbtfQTi9HsQfkVFnfpZc6Wt4jmrNVYop5V";
+ moduleBuffer += "ps6TA/oKEZMZjxzTrBNL1fOoaUpcihpH2nAgh+jym2vtTkKnuNdz2iVhV/8KMPNYoP6xNmZuxZoD5qERSy+Gi4sVxUVaXCwvLgaL";
+ moduleBuffer += "i4HiIikuWsVFVFx48uMWpDbjGzOndu3Vrv3adVC7DmvXUe26Ubtu1q7j2nWrvM7aFZ/OVOaOZ31AU+tPHdMKqfIXOec5RHErYp0i";
+ moduleBuffer += "NpLYgmcodcerGy25YeebxqZKRqLazURuhgvlGpAb0UI3BuVGY6Eby0HOutCNVG7EC91YITdaJ9xwz5Pxsx+jrwTT9sY7unpA2A8m";
+ moduleBuffer += "nn4dSg57jqsWCdtLWMNh450M5N7iarC4wk+ic9hZaou5JvOm5DOeeyOWO6l8xMaNIjsBzRSCykwhqMwUgh4zhbBmphDWzBTC0kwh";
+ moduleBuffer += "qih6ZHIqLBTgrIUD/NfQIpN2uRjdrPzR+/bRaAbYcR2CNkV0kbIIvWj8MOzRjqVAjL7aKHg1G4XVMDJw+ZMfuc/YGAAuQCRXLRQY";
+ moduleBuffer += "yiyG4cSHYTa34FO8ywZ0zDa7VsQzpgirbqYgE2RppnCBLgMIeCffhWh3OBPUl0wIlMOHsMRUfekLqxlJeU3G17wWJgquWY5fw7zI";
+ moduleBuffer += "Y8FCweW0fKGCWCmeulwAj9UYKFgwULAqAwWrNFCwjIECW1/fyctnZur2CSmrmaf5kc8UrbXdmBh8z5P1fqu3h8HEQQcnMJRZOjrc";
+ moduleBuffer += "MaogWJgdk7kAcJVXAwpN3/tM6y8UNwtLDnP7CiCp0QFfbl9JqwQum8ztSwCcRifsM63X0EqByytzdw1RH1cz7wW0WuByx9xd3VGy";
+ moduleBuffer += "KtwlOy7ZdwfN3ZUdIivyLrl6ybG73Nwd7rRSRb0+0yJzMCf51NxNO23KE+7SlmEFz6LN3cFOH5sSd2lZMUyLCHM36fRrZ5e7A7SK";
+ moduleBuffer += "4Eky7yrEXmt0BqOeX45rxt2Yh6gcFbzziDYeVsHXq/X9eBVzDYHeONbVYq9lumYtZj1j4lrMmxjTqsWMM6Zdi5lQc/++WtRWjeov";
+ moduleBuffer += "ovzzcAItUegXiqFmd9XuxtJVjrKJaSfbGTtBRSzkK5oZoWdyx7hNuXA1uoyQUZL9fIVn3e10OwE6pmscXnVnkoXdZBrs2pcpuD32";
+ moduleBuffer += "SYGiowd54Yclw0U3OQ700uFufnDbPsvgpMENK5+phwe7+Z5aeIRg4F4+XcQldFvMd27dB/7sX8OgOKTHG8x5sCKkQPwah+PRaA10";
+ moduleBuffer += "DUimEwSbZ/45Qp54+TM2Dck84DXz4nR3EhCB3pnWUUAJeniTe7nsmJIZVIbtJkbslswsGLHjasSOqxE77hmxm7URu1kbsZvliN0q";
+ moduleBuffer += "Ruw9DhFeYR/QKAZuEC3c68jXfECdO2XlZQOFV4bugzfo0O1h6HYI1U+XDYf+Xhy64QugOGyEK8PQHZVDtwdW+BxP3ONg5D10gw5H";
+ moduleBuffer += "HljrZSGpgzdDWMFh8PbUHQfmZR5gRWq5j5rcoKDHuE0nxKMyCJYD9wFH2SXuc6q32sN63+t0NG4H4mYcfY4WzW5WWZlJ6iedjLnm";
+ moduleBuffer += "HAzh0LFgCH9SS0A+B2O4h3EamL+kOuC3lIsjKM0M4g4GcacaxJ1yEHfMIC61o+sRX9HLb9tWDePsOzKUs86wfJzQ1w/yk1FxIH6r";
+ moduleBuffer += "JVmQL0LE1lpEAxHP2WWEdDvrGXuVZRdWgRLzKmvCPtfqSMwfIfUNheNGjH+wLXRJy3KmtVtaI3cuIvfBad3c3wD3HWiq7HWQwHX5";
+ moduleBuffer += "HxnSg3Ms3BiWb5lsgaM9TAQlhczCW+TNO47pOUhicIchSlso5ehE6tEBUQIid7Qe62423YZ159q7HVO2jhSyXXU065G3iaTauCZC";
+ moduleBuffer += "misf560sIfm2d45UXq0EcR/qDZVLn7gsACzYAuecPbapM6qbarE/KIt9kSUedrtFeQddmMtMavsTQ2iWMbtrMYcYM13FpP7p1k57";
+ moduleBuffer += "lTMDx7bbDGD9igIJ+4ia1cjz/0dKEC0gtUtXf13LV4hAM7g6cW2Y1Sv4Tym3y17PbhgluGsQBQycnwWeijUKeacuTvwaJYp8gU1P";
+ moduleBuffer += "KK9I8a8aCC3PozHdO4MUAdqHBuuACdyivVay05aP6po4l/tyuMLYNbg2wIcBTs6ggylsmDtiK4oOILWwQEm9y4Y6Xr4yxmoA+hhH";
+ moduleBuffer += "9RoR8SBb16CHlaob+1W2qhEcuOOip1F9NOyo3uhVtpOF+dHwcm+NyJ0P99WHrLVDtFWSQJN+207u0sF17VBMnO8W3argQUX972jm";
+ moduleBuffer += "EF8PbSiTEZAG5WfUMJWgox8HsFwNW8whtpjqaRVbzDHYYk4dW6yE1vNqkGIYfZp1XLyyTdnOrrQzR1N21J12m+49zmZ1iEkhv6cU";
+ moduleBuffer += "j5hXEB8hNVobK9CYIqg15BuwOTqcsKEtTu14t+dEFVdorNN0bl2c2sYX9ary6r8OmU5lnEb5OVHFeORU2DjHI6eBbYM/l8jPK8Bw";
+ moduleBuffer += "yNBqDa3U0LD+pBo5qKFEQ5GGrBF3ZHBEuikcYydkR3vz17HRli70sV9Em2XfIz+bsK6V33GM0yPWnw1l7h35Xe913gCsl+lfRBtH";
+ moduleBuffer += "JHDlkOyYHv3njZtANCz3Pxn/P3fJ7an3OhtHPhnL3Wjky+uLmz9xePPeeOPIT5CzMfJOZgRc44hzo8hJOHLE2gSP4JHzb0qD8ZHt";
+ moduleBuffer += "7iaCyft04N2ovYGzDogP4AnVKntHt6OYwC2g42T+n3Ez4W+UwlsYJ1uK8zqyffkEMNdGXj0hr/nqG4B+jwkIVApQSbYuzdrAuwnH";
+ moduleBuffer += "saRsjI+PzPYDrkjWX/AadgET5I5MOH9OS07vDsnbHAXo71Dq3pH6d6TNO6CJGnn1po13JBt1eGn1fs6eiJhsBRhs3ubZ7c3sWkBY";
+ moduleBuffer += "xfjQ5EjTiRVWtkXAvL62rZrW1FOHQmwpO36hf01lBRnk4WV05fIuhvq148mQR+mS1cH4GBRDMpwRc5E6z5QehHkT4PK6+8oshdoA";
+ moduleBuffer += "CNxoZl3W5nCEQAeI+PnEDVujNCKQaX7Ljt2z1nWjaWOdiTYq1PqdsXzi+hu2vsn8XNx2SK/SiQpfRDi6xtQRzq8RQHJqNcK7UAEb";
+ moduleBuffer += "0NOQIfpUFhnwhToc1INUIVHKfIQjwHxHp1m2lUsH2yIzEJJhMu51FJmCbmIx5LkvdWQqCTNfKoSWbEl6eVKc7/jQARwpNYtBmRCd";
+ moduleBuffer += "sCm+mA7m/aZWHdr5hqP0l+Rg2IK9JxxRQxDXwGq5Upfiie04bcePLHUGNtG6eNIZzZZhOOmkivM3WGo0BpX5h1dReTVcXq0sr1YX";
+ moduleBuffer += "V7WfNB3sDMl/WLWfnEeodioXzvqsAxy9ji8vJJvDzqnpEKzhO6dJ+BRJe4qmfUV6Wnpyeko3Dy8dyrI0w454uey5TsUFHO5d6K5c";
+ moduleBuffer += "ovEtT0+Fm+2p6SvwIznxc5qUJJ/jFMrmIDadnW66HF56Q7g9lBrX3JOR6mSmWpYOGnYVXqWrZH+6DBvSQcXT4h1sPtAyZTjqsn3K";
+ moduleBuffer += "8HCXrVSGV3bZVmV4dZctVoRBPduPH4AdLwMf7SL8YLu7DES0i/EzLJ1HflZKF1iGi9XgBVoGBtqr5cfH2L0sXYyxe1naJ2M3VOBO";
+ moduleBuffer += "4fa/THb6GRGe/RFr5PlPPf/L70wff7ddwqoh9vZDjx+b+ujeW/dbJWqabyDb3qgxK6uYCsRNSpVN4YmlQjERLlDsYRNfK3euFmUK";
+ moduleBuffer += "JrONtItsuU4oGUCM8QIlT5r4WsnTtShT8oyWPJi1Fqiz3GstVGcTX69zLaqos9NVZ6T2AnWWe+2F6mzi63WuRbHkZaCSIu4VAIwU";
+ moduleBuffer += "+a6AaStg3gx4HNbbBI3ziNGmwRSgdVVwJSDnNGiw3AC5B+qoYwWgHcHirh3PGleJuMHFgWxWp7vq3yD3XjuehbiHDfchvQPPCLlz";
+ moduleBuffer += "hZSJO1iSGYA8b2TTFn30mnE+GBUpUOlCRZm7Cn8HkGZapkCw/2F17qpDhINdevlEPHOnXa/pdltL4N5wm95yy4dO2NVTPX0qn8YX";
+ moduleBuffer += "OQxcPrxET4Gz9QIPzi9w5oQCT2ItnHFyFW1z5lfAKdMrsxnw/5ZcNZUuSQeAikfAwyhdSmDDPfq0gXQpKjlOwkN3zkZTNdKTCNB3";
+ moduleBuffer += "1DafoqFJ+CKTzjhRJJssZadjvslJVzKJq9TXLYOmR8BB8+CAUIT0XNAWCK+sHjztsIsA4RCfxOl9sKvU2u0FSuUHxus4vaW6ystt";
+ moduleBuffer += "QP3YfJgnHHB5rQCz92G7hCphfxZBeORLt37/nkNPPXZdhQIpsVvv/86eb33tc0/ft7kcrhC9uRyqEJqoQCCLoWqBEqlDXaDIw1ZP";
+ moduleBuffer += "mXPWCYWWw9QCpRIvdoFSJ+2eUqeL8WiBImZeoIhZzZPOz7GMMC22Uo8qiZ4ZF/xyXKAYFh2iGD5KBEYdLsJCkishLrq6Z0Sq+PjF";
+ moduleBuffer += "QOSbj1+OMDpKNBTOshomevvXdlsfUght/SHTdtldKJIqejoY6Pg0Pl6OhwTUHMfwoF21HK60q5a12NnbyyuBM4/WzniYmLvLSMHI";
+ moduleBuffer += "GXm7nbkbU87KO+0s2MgenlwlIyf3NQQlxRHnInkaYTFxerYMNZUU42US7Ab7r5raOK5JOL3vLpJwlp+2N9bS9pm048n3bJ3199j4";
+ moduleBuffer += "O8O/B/l3ln8P2UyCwUcXYMsw5RSXO8tL/Ew4WtZgFpznHDMFJ9A0z5lABB3zUROwsM46jEBAwM3ncKn4nM/g0uflk7hURM4jZh8F";
+ moduleBuffer += "ocQ6bhlnRvn/Mk6kFQdvRbtHd81lZtgqkZP5DmVE1NX3KyJQtwlHF1ST9Fr6teuERtXtFKcpcKPyk7cF3DMr9KfC/RCuiGckMjKU";
+ moduleBuffer += "EDrBBux25OJ8RS0k33NyIDSknReQOA6nJsPOmizKnYtkn1lj6GgYag6eWM3a+nvMNvUAbJDflcVmcj1PyimrQVmh5IhjYoPUFOpd";
+ moduleBuffer += "5m1OzSP5NFJa1CMyajttaoNByIA3dNd3k38yHOqm/FhfasyccqnTspJWPnZsr5X8jGYVLckKY5LUGZW0U2DjnsJ5DZU6IIsg70JT";
+ moduleBuffer += "h+Zm2rpxq4H8Hu14Rl8IQKNtnSbUhs0r2kUlmslX3ZjcXLOGNXWuAGjiG6d28rySNswAmI/NCyWnxTdNbgjiNJS/dKhkBuRVrlUS";
+ moduleBuffer += "RMrHf7Or2rQJv7T7gIIyTP47T6No+IGTyIgRhzy1IAhJjTWrqK/J/Tj1OmbRniE57NLKg3HTntpEqKsdvxGMK37hF0lqNw8aXSZv";
+ moduleBuffer += "Bur1p0CxAZWXnynIrwmChSAiDKnPjKOAp/QcLIvWShxVnCwE5j/V0ecpk6zkR+VhWhGwmEBLR+om33ePq2DXzGthu+JrdV02CBJG";
+ moduleBuffer += "zGnrk7fp62vgsKscvveDWxJTp6OPnvDxGZ53S6Wmp/aLBmqHhlJ6ZuPyNJIbUovmO2rPFahhV4TVYd66Blt4kk2Ta9moINy6HlHP";
+ moduleBuffer += "d73MyfdaCuKo5lCBu4YIMO+54wBOndMA2+cI4g3Oaom5tDDhurBNsDUkpBqZ+VkxRyrm04HWmBxFPbdtuQ0ajlfZOMpo5AaSCsAx";
+ moduleBuffer += "zmaqMB1VYWIuCi9X2Emnpsh0VJEJkx6oKZrSU6FZVAzT5huyOG9eM5qvXCflQruSNiEMIXAU/VTuXau39IjI13suswNCcOH7nt4/";
+ moduleBuffer += "Gr7AfX9UK/0GvUeNBm4HPW+OL0b+4xaUK2q2lRNikRasT3j2v8acW4o+bUy+yWlqW2AgBf9E7ViXLg2jpY2l+GfsWZcukuvFS+f/";
+ moduleBuffer += "WzKwFJ9xMY48LMOhilBEkCBHw/KJvHrYnhd25oXdeWFvXtifFw7mhcN54WheOJ4Xbs0Lt+eF++aF++eFk3nhRfPCi+eFl8wLN+aF";
+ moduleBuffer += "mxq283RMGWrkck2Xn+h8SttM/vnNlwCxS4boKtqCKzGGhgGYHOvX6DeonjhTOEmKVXWZiRhAhF2LWKqf0TFUuLm/4RwrqNWsiIqP";
+ moduleBuffer += "Y74nnOeEXZ2hSBWSz4PoKLdzRxmRvGRXM/NzW+ZPWSrKlM0DNPICEedXPtVr9eSco+1nPdXyqelM8kRhC0G2sle6SfJjktStvpCQ";
+ moduleBuffer += "cl7yeKMgQpdH6fwKuwsOG17yMxrbXFIQnFvG/AFDJzOU1N6XyGI39zt+bkjwluvZ/KO0Upl2HVKqXZkFpqQs5PMB4mjxlOgMjJgo";
+ moduleBuffer += "/jGrWGKx3CtXucN5oIWlipm3XPWjSq6eH/jBjAWXfBzxwLwhP/lsWiZYZ9NkgVMi2diVfAMGBsedfFFMIBOlfe/wWBr1gOYW0Fre";
+ moduleBuffer += "FFYBce4Czln2HJ0mVKvNVe7rtWTYWUiX+7+hXz2x+dOA7zbcTb7TiEnlyqcz5GLbBU6M+Nuu3bcJaK/c8WDWJQJ/Y+RrHwVc/MzE";
+ moduleBuffer += "FyTUhy0BgPdJk46UEQkD3Ei3v9ghZG1ZgV9lQO4fvuXHx49/7RUbs/460L2f6h4q4/InUST9kAv1NvUJAYu7kkYhu57c/8m3PXrv";
+ moduleBuffer += "zh9ZG7OEO4veUgYBKS8/ulVuci+sWokQBYeKt//5D+247eG5r3z2iLXRaHBMKUYLk2YtbgO1LnG5BTd7cF/r8o1v3v2eI798/K+/";
+ moduleBuffer += "bIF7wDuhlGGUMYzv3WI9/Kvm4/6/58HjX/7g/QcmTtlYaI5aaM0IhHAttKy3ZSsOhtDfYkT6CKcMNxEOER5kOEE4QDhhmKxybYQj";
+ moduleBuffer += "wl80tkhkH8JW/NdeId9gk/gN8u1Dvj0j396C8n2FsZVCB9un8l2uUlIlTlNBl8UQenLqvdKNIOg6r5HdUOXdX0jeV88T99V1cSeF";
+ moduleBuffer += "zZrRXmlfLW9cl/aWCuiBHmm/4ARpTwtpX15I+wO90n4BRhEj7YlKe6uUdvBCHp7eZ5GAFtL+Fyrt16hMvp7SflShgMwmAcwK17v/";
+ moduleBuffer += "SmlfWUr71VrylSrt/1Wlff7HMNI+2CPtUSHtpHQQaf8nl3x3nIgmmmu5YPA36OmUoZb2aOZCFkYvd9anQAsapa2J7LvKMNZcp6+l";
+ moduleBuffer += "7UyIk1yXLHBK3UyIkWJ7iqyB5lBKtXyzmqlj1dLBijC9XI9UybAM88ZYawIyOFlE084KNkUSQ0BIoqjmf3wpoCXhrqBMzOgZYGPC";
+ moduleBuffer += "IzZgiwa94x9fpplJemxrjXC4RM+oHubiXh5jrx7Kn5Cr/FSNuDEAIXb9Ng+qYOiZhZfyE8hr2Xwkmkq2dS638bIdlMbBNsXDchC2";
+ moduleBuffer += "IKxyam8gpqKLNnKpmYX6TiFODes0aK8hT9F6nby9ojHyzfWaPOra3mYzk/vE/pKtqHyMghkMkKrSmpBnZZnU40OpAhQCV5DqO6cR";
+ moduleBuffer += "v3Np23gq4EMjv8kLB4kT87u9+SXLpTyHK9anpJAPki8TzsjYL/iqMpTot5Ib703y9Ug5STpkH1FXdnjnahzASRnJbltVGMyaPOXo";
+ moduleBuffer += "gpTLDN/IQlSWFp5YWmhKI9P7QqUVViY+fWZwpm3MsGAF5MAS2AdL5QWa4Ar9eZOWkEEdIiNP8phNxi3s7wyasXzxZKqhT3P0SXZh";
+ moduleBuffer += "xYJZmMxvTj779F5Dqg3hOlyEdvi6GzzsVOTZ3MMeCXWgKUyoD1eXJa8Uzamv0BVOYerq0W40i5Ofojfu4QeHcdNBlLfDLvwAJBjl";
+ moduleBuffer += "k+/eZxW3ZowTR5R8CcFn6AHSzGckicSYQ1DlN5sgiUuQfJ8s0DLcHySIc+4kH3eUxAw3TLTsqjR6zSihqE10I480+rClThyNInli";
+ moduleBuffer += "4ulnArYXkz7VePidICIo0h+29MakycAbatsYSrbv8DZYZViSzRQP+LAZgZ+QpITGUznG4FIES7JaBE3Dt1URwNyfsBV0nzo1NLJT";
+ moduleBuffer += "fprp6nK3U/9Kk47qYfidcKZl4zvda2c2PhS+yGfg8hGBo8fFYUva5Gf7Yqj00cnBSL8oNd4VnRW1KZw8ywgys1ErXcSIHB2zdfJb";
+ moduleBuffer += "uQoaUoA7FZzIUUVThW5GVdFPHXURmozKswYioif/hScHGUmYyUSjLkIFP46ioPslT435WiVvUHKhHgyCFIllwaMnqHLPhTXSG8dQ";
+ moduleBuffer += "8ZSFTRIGKiiCs44+2Wep8DpSnkLN6oJZKDQ3D7tKO1RU0tM+ZIIzaoYnHeQhDNBzniZuMqtilKM760N99SqK9KGGHAh0OxjFbNMm";
+ moduleBuffer += "AUjsCnT1EPyYK9UwLsh3Pioy10je3Uz+Fnr9yQjtfY9rB4Y6h4u41Pi1cmK40Ez9NAZLtunOBzOg/A6eacFs81fWpeT5IN2DPWKr";
+ moduleBuffer += "+lfmwDec7UQ57SkMBB8My7AI4JjPhVdgihyAqqxLyxU1fiZmvqEmwdYf06oLM3gPKmo8OMz7L8Uq4HKY1IX5cWtMBr1w/Tr49KlB";
+ moduleBuffer += "UDiTW5e0yfSC0jPnUhYNzYD6Tto65/kEezP1p7F0Tg4TVUIUCpWoqm3LmNIV768EB+b9sbVJyja4VtvAi02TTI2kN66ieV0uL5nf";
+ moduleBuffer += "9tX9Zl3QczvO7Vhn7pSDONPeWqR9zrVl/QmoZYPRbSladg9Qt0Itp4YP0x3NrN8M1G2fANRNUHMD1I27qhaoIXX/LijdSnmc2XW8";
+ moduleBuffer += "aP0MJ6B02/NRuqsKldnwFScco9hIvkta1t8AO20TdtquYKftE2GnoV5V0u/UUlRAR39shZ3eUyCI94J2Y3LT7lRWcv4bzQPt7je4";
+ moduleBuffer += "2tYJuNoLlFW+cPwh13F12zVpFmN+NSn7Fdmjj1HYXOIHMifz40UX0qoYpypdisX/pTMLfwPucWG3E9JuJyAFAFmOsaQ4VpU9V10e";
+ moduleBuffer += "7XnMa3N1eHV6HgflgdctnkvnGSXudDW4sf5Up/7UAOeCp22YUlpP2zCBViWnLJjNVa8r72A+8zGBFlXdXl3utOu1njixYBwee6Qm";
+ moduleBuffer += "7KpWnLZtY/MeZJmXY/rkGUdNmWVU3YEVs/NbeB68iudBOR4CZQkoKALAeV9Rd/cyO9gVzn/FAFBxA1SsARWfQMU0UHEQ6BVN8byL";
+ moduleBuffer += "DUN4ydLA2EtL3e/1N2yNrqE/modBUxsC02CdNeE30yXU3uyFSRJ+729WEh5sa9rLuOL9tDG+ss+0ZmygrhKW8xxru1R95KlPHXvf";
+ moduleBuffer += "3zw69654lbsN4Z+86+nbb7nl62/5S+koCH/mC7/84pM3f2PXs9JzjslgNzL5jXd+94N//eOv37hZmTxHHtv/yKEPfO/mrw2uco8i";
+ moduleBuffer += "/O3D7/j11Ds+f3hKEhxGxA8+ueWZH33s+F4p4RDCH/jyfTd99+4nHg+VdnTku+/45Nzf3P+TX31WMhxExLe+8JHZL03d/rTUYYbh";
+ moduleBuffer += "Pd/6+S/2f+5z37ToqeKMfGnnh2648bv7Pv0AeFkR8fQ/bfm7d++95YuLVrkwwx/5x1u+vv1nt3/2n0a4IHRGfvTDGz968JtTfz20";
+ moduleBuffer += "yt2J8I1zf7vjrfu/e+jcVe52hPfv/eQP/+kTH5v9qFRhGxM8+baff/Otc49+aDNPqZ2Rbzy77z27Pn5kxpdmkGFz5MdP3rr/Y0/+";
+ moduleBuffer += "5BM/A0MtIh7/9lOPPPKJD39pp+Q4ioiJL9/586/+ctejt6MdEPGeu75y/9Ejz/+vT0jEIURs3zG7Y/KZDz77V6toVIDvx5M0riwX";
+ moduleBuffer += "J8cwu8+8D043ydGgYIDOJ/7Wvphz0GEeV3ZzbBnoz2hj5UYq69gUovlxXxljyMgadWUtqxF7/K4pCMUmmzuD6B1nO3veZ+fnm+dt";
+ moduleBuffer += "lqfJFu4GmesnJx7HOH3+2BQGTOn8S3JOMGnQWaIm4Uv0wbIC3YN9rdxtW2ZPE9OqZnJRcSja4KK1nRz1dNeVDUgUlp5LDeclb+jC";
+ moduleBuffer += "1k2XVh7fsFJvG//xBlfBmhR+6X0yHA7Ai9tP+4BEGuougDQ6rnECF2ntJ/nl04XbfJL2m6eRZzhJk8ppPiTr5FOF0/xJkrMfBVFh";
+ moduleBuffer += "y5ouMgUF8L/3UhPEintZ2ioqDh/6iE9l3haeh/X7SUhNolattacXDY618kGwLG/LE59S/p6jsNXw9c3wioleSIOYDNJuT6FA7HSe";
+ moduleBuffer += "LvzxyeZr6hGjHovkuaU/flC8obr8S65F3C/SUU3W4/qBWqTM1sZVT30QhvIe/PTD4okebDUqh/0SKCCGXV7lpw+upNsjNQrnnlHu";
+ moduleBuffer += "xNx0BebRdOCXntLIj0q3jZO3B5JAzSvUerzW0dHbYPu7DZ04XXyOJRfo2J9m8g8bjc5hq/KdpsbvnbYqT1Wfmi83Oz4166CGAG30";
+ moduleBuffer += "BaurVG/c2bkrV8FdRbLZI1xMQz/6KntN5uU3JKqDS8612vKzrKLEwiFZl2oWPWWW6eRce1DPdKOz7VOoPh2Qrs3tb6RGJ16Nnjt/";
+ moduleBuffer += "hQiq1iK3sF7WUqQ6l0C/TW0s6vrqUgMrGxmaiJxVbU9b3G/V3ocH7lRnGDMtsji5xkJKPXxkL3uG+pIXb4y3Bbu9VLhUUVpA1PBK";
+ moduleBuffer += "gxipV7KKa7lg3nviRfzy8bqudY1nwIzvRJt9LPdmLSV/h1NtRmN1tWoh6LlvWOjodytrXd5ROpfMJYuNceaRyfBSngpG3VjLgC7L";
+ moduleBuffer += "oeVKAQDPdXCoW0LS3ueRYkrQUgr/rYUW/8mn9lrJ7Z46INsKp0J4dYCkoNM38udMErUpyEzejuaBiha+UaFmdo0JC/w4fBwYtdFk";
+ moduleBuffer += "Vta3Mesfz2K0fJz2XzkFh4u078qpjRI5cv5NnZbqlNUTCysp/PiQA/LupfEVHvws3fV8gkuVMpWnaQjTMhC+d8IrjOLYAkgKd4YE";
+ moduleBuffer += "DJPqcysA3VzCdshnoD37O6WHxe4MW7lbJS7v5NO4RTVuwC0zFsfflajP+sBiWa5A8/w689rcNW3uId1gJ6RWU1rx0iGtM52lYtYX";
+ moduleBuffer += "wykbZ2PWV7aKtAZgFNJ21Sr91IlzmUUmLn1NXVJDkFC5Y6jcT7HeC7C1DuBDfr8jDQa2V6oUsXw+rAZIAc5XA1ghTUu23E522ygq";
+ moduleBuffer += "VURttZJKvqC41gwFkCHpwW93HV97cFoo8Yidgm2HTQAYV7pTkE+YvuJp1/DQNXz1o7XVq5as8XRN2W7S0p20lQGpxJF+5WrmQDMb";
+ moduleBuffer += "J1zLtCDYhGka1QDag5XFG7PWeNZGC7ZwSChjcQPHdBtxRCkt2CxasIYwpOMrN7+NtLkVDcWeZY9s7jTkvyZWB5S8Bvuw+UI2+ptt";
+ moduleBuffer += "eqY+B8ea5jGNEeu/tW3pR7EWCkcQeUcUa4oz+Z3ClrzjXGEyeEZDoNYtgxAFdF2v7Lqedl20ef7YU6brfs93+nQPuaZrJFx2Szuj";
+ moduleBuffer += "TFloS2q0QeBE8HM5BWH9SKWKVAfwUpNNZZ/kU83Rcvj2EJyBjjkZHViTzJHQ7Btls5RiqJuwLxvKwuf67czKN1/UdjRrmlEJxP13";
+ moduleBuffer += "qjBtMtnJNto1h4IYBdE/ycWZ4MjNUTcpP/c6LU3TgHlTDmXMmxS2SHZqo5eBVbaBnG3tjtYKtd8B01sWXgpDm6kR58YMOCt3SKjv";
+ moduleBuffer += "jszPnzt+/DjvqYFUFnmbqbp01ivrgENAsoHc8zkNDbLD5Fi/YDpIvq2Vu1BdRkk9ojSQDjZRntaxw8GZrqKxJotiGeZizJPtNNLp";
+ moduleBuffer += "BJ/avFKD3GIauIhvhTwyteK4r5m2kK+p/GcNPSINVII4llPgI62DpeAA6rIosVrmxTplQIjIg6EaqsuVAW5AoTe4zyr5v8gFNsgJ";
+ moduleBuffer += "+DLSPjOhaw7Q0FLoZETbIkyJMh47ZV9bqZN7FpieVnSxYRhNcuq0aOtUOvo4Bb3bMM9AYOeygvNstz+24kccO8L6ZrYg18yPBnq4";
+ moduleBuffer += "cRTHdzu/u89SjCOnAJzSGzNewSD/lGpeHylUydC0vh1rhWPf3GclH8Wi7RhKcZNPR8k7ETx0WG7cGZKrUpey+Z7vSZSWpGtt1STj";
+ moduleBuffer += "kGDnP+stVR9HVB8/4RCJ6c4wrfgziZuEs4jPUmOOzfWZ1qSfuclXkWw3CBRBupkyAlX+LEbkbUFZZTuZlGzy5zrVu6N+t0ecy23U";
+ moduleBuffer += "XPGbXLPGJEQTX9JEyGqS1JUTqtKo/Q8KDpmsrvL4szGNrm6D9SJArTdeib8j9o0byebz57onksQychGcUpYlPvDvALkVbcyCjWlw";
+ moduleBuffer += "VTsyNzArdKU/26DXpVagAaf6BlQHMnpCdRBDxdCEl91/vghaXllKE2ixqwg7jVFoAdzL22HahN/wSmQexZ6wFcb5n3AhgO3hnxiN";
+ moduleBuffer += "AbR0Kw2Zq6El1GyuyQZf6gaxevbCfGPva+hFuK7tyvTRqPQahiBWi4Al4cH3HzCHbwjtLkMOKmcxck8ZyUUwLQeM2q/g0iPN34cD";
+ moduleBuffer += "O9xsDC4cbh1l/C5P7vCh/0V9MGgi+zk1n+YRiqyTB1AwOuBJCl7QLE9RidwnkkrNcN7XRQdrZq5CVgRd9VdkGVHmnmsTrPFc2+t9";
+ moduleBuffer += "vD7cPdNKSo9U+p2HWq4/k1t/SnbPCTo6e9DDRzptUT/u52+2L+eN9vwbx60xYw7ALUkLmvgbqYlPOrY+Jcidi9uFM35yH3w8pSqR";
+ moduleBuffer += "x58GbCh56lwvOkAEbdY8UlXziKF6EZQaad3NkTTeDfPO+nUgh4K9NF7WJi2q5FzUzV+l20McG2C7iae48Yn3fb0fGqW6n+xssph6";
+ moduleBuffer += "ZVhdmngMdPMzTLnoEx6QALlB0E+LBY+tn9BT5An5eoPyOduqiP8pCaKGCiZQfEbr5HNtcGMdsJRliQbI2m/JlLusm5+pI0GgfYG4";
+ moduleBuffer += "U/z+8tm1c1pKYCNxrXMtw9FY2QXmzS57kj6UaKymIkG9IrZ09muoMA7UT9Y9p1ZW6qkSXNJdcy6NFuOullNSkre6+hp8AxKkcMn5";
+ moduleBuffer += "2+Xk+ZdSTp5/ucjJ83+Qk5e5nEx4L6GcTHgvEzmZ8P4gJy9vOTn+Us4nx18u88nxP8wnL3M5uf6lnE+uf7nMJ9f/YT55mcvJjS+l";
+ moduleBuffer += "nNz4cpGTG/8gJy9zOXnzSyknb365yMmb/yAnL3M52fJSysmWl4ucbPmDnLzM5eSGl1JObni5yMkNf5CTl7mcbH0p5WTry0VOtv5B";
+ moduleBuffer += "Tl7mcrLtpZSTbS8XOdn2Bzn5P1pOJlx1u5lpq7E5jZs6uD9BKx8aRXXaKQ2tALkNg6ROP82XFSmArgSdJKXRfWdRSiv9zuKUvgqd";
+ moduleBuffer += "JSldGDqwN0NJS1Pa+HdOSukO0VmW0mmiM0gjp27nZPq2qrlyRKNNQFz4MJYOz6SdvE9DvzOt166DyVThBkHuQY+G+LS4auY7f7XP";
+ moduleBuffer += "Sr4SplHyC/hOw90iTBWa7qthuiw9GTxtuDwpHUz79LJwOFgKbFZELE4HAP6Ky0XpkjTWS3mAcVJJ4C6v7irwEPHUujYC8EVh7AyD";
+ moduleBuffer += "qSbN8fC9ylrCJ4FUVjf/1pHqLS/lSPWWhUaq4Pc0UuXEnNPRKiD9qHVpMTYF//qxKegdm97y7zI2BWZsKmvhl4NSi/VktUx1/zAY";
+ moduleBuffer += "/abB6HHH9jc7a/IHj//PHChHVp5cNpRZo6lNX8wcdv5xN3/TGH7XDmVeV0pKLs6cC+nNCEtsBx4tgINJ1ffZ7lhKRAEQP4WLkeww";
+ moduleBuffer += "W6a35xiwTIgpAlfqUTyPBHwSOUoXT3cMxsEpLaa93B5blzvG7deFEafLWMbANNUnBY1JZByqexLBjecD9KnhMGenlTlhCkonIsvQ";
+ moduleBuffer += "adyWR+O1bDpopzDJVV4EAIbW61EgbI5KP3JNHImonPpjPXlsrPby8JmPv+4Y1M/+CsrhMFE+aWuLS0VzoBnsjF0AJTA46ShzqV8Z";
+ moduleBuffer += "yQZpwQLrG9Nd0r36lekuOGgKbtMCP8EtDH3hq9ZIneIBcE5rEtKBd5XgtXp8pI5aJoiR3aVd8NPM29DEDZO3icSh0s46HN8VqEGf";
+ moduleBuffer += "2yqQGrTSxGa0ZezQ125X/l0O/MZkIDeWuCLHx+Rl5AU/HSXvAWTDRD+JyI1x84QxbrblPjm2abK7y4bbE1HbkoNRx+DD45H5sR37";
+ moduleBuffer += "reRXqMQeuh+72nIHDXCGrRUEZRTMg231y3PyQ043eRxGxUd9UJ4ZcIlDZNTY/S4p8nZ6ByU3ay3m+KkKdznWZdbTyuD2Nv1omlPb";
+ moduleBuffer += "K8Dzw3zb32j11PePdbHplruTJsX8Gu+GD6V5z1MI6xxiGDrqZqX981EC7UptUnessHj2y9rYLA6d0QMWBj8u7Zu3ujpHGnDU0sxZ";
+ moduleBuffer += "vago/pQn5HDHDBKxt5bQRQQQCAH7hTccH+tExgdeOZxkANDfxPwO8tfpyj9Q1wD5D15TARyqA/VW9jlduevTsAt/c7cozNEcxtcJ";
+ moduleBuffer += "GADqu6S4FA4wL+w0lCoDJCRZC3gMacb1HUBOEBxDEkglSc7ccU3d8y/uPwCe+lPILYVmfzgCKqxtPEsww7i63NUJKD+yDfgJya02";
+ moduleBuffer += "4Fbnbj5g5V9HdH83P4zAoVsOWMnj4LhBcbMSleyK1MC59N+L1OTfuAAYiNK9rk0qYIDB1r8Chizad4/2ubbjWhUVvFdVfkArbgGh";
+ moduleBuffer += "BP6C+Z4tB6xhyzrb0ufl0xI2RG9WvrsKOPkAed8V84EhACe5ZH/Pp/9lPxm9nRFnlXMWl0Jed4qeL3NLCKZHXjYTNTtIPD1EDcpo";
+ moduleBuffer += "u7J0kIMj8XBXmqxjGWb0C9t0/WqRI+2n5HCXF+H9XJnn87t+WTzbLp49aB50eJDAfMSXWp9Z+X3yPoWzBSKPbC3CFXH9grUxLGRe";
+ moduleBuffer += "jcbbTn7U0FmtukFUEU+5sOAR4hiXi37pSdL0O5/erx/5a74dc7HpFgAVHJnt5Huh4kWQcHalCnC+upu1MzolgEDvrOSXMpaAjw8w";
+ moduleBuffer += "kAXMFQYoeArYyTkp3GbxG+cTP52xeOnnMyT6llvJG0UMp+VGkXUnYadA8v1G7EDCEn86eXVK8CoM1G7yD6HuDTBw8c525RyXAZ+3";
+ moduleBuffer += "ZggqHeVu8nMsHRUwWqRC72KuAp4zMs4aMKuG3trOaaWR+5pxgl4dnhaL+JbGT+uYqbngkBNq/GET3zTxWjdPC7GLQk7TxJgBm1Xh";
+ moduleBuffer += "zfx8U1uvt5D8eUtvKAN6LYN5PSANIUNUZOiY2gTq8WxqGYGvUKtv0JJsfekJpgvyV+Auink1733Z79iklF+poE9wrpgJSZ1IbGy3";
+ moduleBuffer += "1i0OOzppxugVx2x0i7JD4Gu+FTuCu5yuBGxlDi++6/nyOY9FqTLOK4JVvvk6Wc4AyorFtIvOISvFxxx2O31KCUwVkkQQdXwd0E5A";
+ moduleBuffer += "7xh/23E8BbCfLOmAHZLvYU06kJ6ITw8oehmFDEI9XHO5lZzTbgYnXTrsejL3xgZ7/oGAqGZHnFo64szbdBe11UXXJp68jSVXhScv";
+ moduleBuffer += "T/sNcPJy18+P/OwF0eQjoMk35qPJh+oyKbvRhdDkZd+7jUymaaho8vKQsASTn7MUTH7NaIFABRx51EzRDKVh/j5CQkVMuWnAiTYt";
+ moduleBuffer += "pU+6Z2jg8ZRFZiBpSUSrpPVulSRYrZIEq4WfSCKOkmK+Rd3TUL4iT+UneW0JFjFD8jisi1tAnsuPzpQUty1yix6uR0xLxKFaBB5y";
+ moduleBuffer += "0JEbs0XkboR2oyfiyTKQvzMyzwEmhamODHJpG/PXE9Z12J4ouyC3hi1gx/fW4vD8WhxaoBZzPbWYZcjBc6p6yCX4NVuGBZRA8618";
+ moduleBuffer += "UqLaReAYs1T3CJ6xV1dXLUDz25L2GNdOi7j41nQUCf+Etzt7/sst4nr7iJ0uyh/4OFlC5bqf0t2SOBZnKCEWyRdepA7FLfOcRYTi";
+ moduleBuffer += "k+ol73WkqHZyC3QH2yVxnyTuwxeWHPy2IoTuJown8nU3MdyH8bzern1k7z5cj5i1etq1D+36esQXcZdIAHDReFbxaV3zafl84u07";
+ moduleBuffer += "tS9r3MDw8n0kU++pwYQ9rwbHFqjBdrtehWslAFlyqkrIFdqdVcsMPUEfkSKcIrDTVvQDJRegN7d+xhH5bPNqfva8imvNthNicNGw";
+ moduleBuffer += "k5KbMr/r8/L9lkhvuPdzcjHz+X1mgdfP6RnenfIxhrumsxDgcBHcNXWFRXzDReBlK8L8eFEZTheZq0XKGSEDez87clFeMTf053tk";
+ moduleBuffer += "PjtZhb6f7A+nFIHdEhgyAUIfenQf7M8nZRs/Kx0weZZMo94aXegvlecszYnwtTSf+/g+LnWXctwx7+V2WtKb2vJfnxmJEsmTYOro";
+ moduleBuffer += "Nx15GbpRZzmp5Tqnyj2J7LxCfmUw6ZwmvwlUlQlIszppvrKzRGq0RPrPaemp+nlekS7XiwSNnoERjsG0EsUESxW7+IbydfAO0miL";
+ moduleBuffer += "pfsfkcmlrZh3S2SwW4K/lw9lJ412lkgjniSimEedgXRRp08ePCDZUFjahyVdH0CRRSIHMK4PsF90+mRAJ/NhwlLPsbY7+vi2qd+g";
+ moduleBuffer += "SvGg3FYxTcDZmw2kgxDThIujdjogworHp+30pPy2zysh82L0ioREMfqxF6NbJPjiZUSEiGMlIbO03OnWnI3LBIh8/akNlXGnLatl";
+ moduleBuffer += "sPnGeCJGoxyfEnuItmOgatvypdroBoP6szoFpoRlZd7I6hvhul7whXsVX7jXwxfujUTbCr5wb2Sw5Av3RoYNX7hX8IUnWnj0b1J4";
+ moduleBuffer += "pIUn/yaFW1r44L9J4Su18PTfpPBhLXz436TwVPq3qqja+VHo+f+bXICpEevdZxnGrbRr7iqkAPUxYIkk1HYEXTDIIok9MQhQCfBJ";
+ moduleBuffer += "RnRp79AJuI6N7xFjAd7e41TIALAekdjkRWk8TswmhbX3lYsL/c4BbgRI/SLeCZQqa1BGpxmA/CVbsfkDeIDUVsH5T5Z7h7wC0AZD";
+ moduleBuffer += "6mwZGsLAV4ZkjDvdnfEwkhrAOwlPegqMI7LMwbhEykm6OiCXEVFXB+WiNFnbKaLlDiwGXqlVzLciMPsJM6HIOtuugOXDFYT9wAgd";
+ moduleBuffer += "EoMRajYst0MoJJI0LFmsrYKgxLEdAkYf+uAB7H1zR3Glv1UGqat5zATDWPbLDo9/CHcaYtf/F/KzYxcSXJ2GI+4q53Xyw839ckBW";
+ moduleBuffer += "yYtObcXiAFAtgFZBaI2WCx5OTHMKYxCSv6eiB5cdMK9SgBPrcw6Wz/Fe4DlX9DwHTw3lexoFxHI8OmZcqRhA3GpGre6COyLEykd2";
+ moduleBuffer += "eQD/+JBn+wXykyIjnKHUW61u8igBaVYCx6w64Tkj84sTHmD627JbGjrHeqVOoNzfy51XynNaaEUlo8GqwuEyG4epbnVu4ZbnFnby";
+ moduleBuffer += "I8JrE3mCT/X1aS7Oju0TzoieCMzBkFaGm5hEylAibyTKz6Kivzr8WKmHH2eUR1ToQCsUeAM6m4CaEjYZEKzMDsFRmBaH4FMKowoa";
+ moduleBuffer += "r4u8zbml9F4Ke4ErZ31XNViylbJjaOTQOYn2gCTQ8gBawGcrp6xNK9nv91SOJzOW6s0l3VnmfLnnpINsR733beVPOCFXoLn84him";
+ moduleBuffer += "536sd8pzGrtG3ILHxaqWl+3YUcdub0o5lg1DeYNhyuuh7miAgQIEE2S4Ii/duFyT2MKpM3U0U6fitTCJEzByOMrI4fQwcsQLpB4E";
+ moduleBuffer += "84ajzBtOD/NGa4HUaRYhdaSp6wwb7d7UxKksuUVqRBqOEmn0kZhkC1Bv0j6JrYg0IolUYoyU4RDhVkWkESAcV0QaPsLNgkhDOhTC";
+ moduleBuffer += "DSXS+Ipjh5tlwdVQgaOemSpbANzIQuZ5dyyPNgAXBgNcp83NpYNz8xDCaGcOGCRiXFsZcRDtNL4UTNsy+bRkugKZdktRezGQXEbp";
+ moduleBuffer += "ida2oV4Ju9rnqYnE2SUFvNjCpW3ookUuGuiAgG2/654DVjIFqAocjjJE4IryWaq8DvAWfhp0iZ90/Lg7xseAzKBDyJ0ziJ1s/SkO";
+ moduleBuffer += "vojWhWZB3X15I6nJcWuMp6eAoHIUzyu/DU+7uQHorVS2gLaquhu5fR0UFwXKp4TH4lnoapxNFaz1ZgV9CkasP/PWyOcMNoLRIXkE";
+ moduleBuffer += "u9R8CesUjGx/yLoSWncCZXGj1+6mVFd6o0AGR4KJLMTPpo2ABsKLgdIrw+fKv/KhA1b3VZZ1rgVFiTOaKuHXNaOabl4KC7QMUpGR";
+ moduleBuffer += "43u/8aqr0rCjKK8hAHDDke9bQFWxQClmsR5dqnD1WSyztzjV+TQvPyHTvHQq8XY9geETky8u/7OKl5adnjWavElpiWQ8+LljA/cI";
+ moduleBuffer += "KEKKOl0iLwMfSCmoZMC7iBUYwMnqsDOQOUOkz7DJ9+IYPXOEjQz17JzQtUoDXV0/OEMKxAvrjMwhnh6jUZoN6DiHpdtFwZYhVcCp";
+ moduleBuffer += "N7DdqL9eLgNzfuuBA9BAAYFZ9U35gGKIWxcNdfUYA90elbJNUKq5G0jMuxWJOd/Ewv7fMXP6zrpLMqV4N69gKS408KQLsGnJB6hp";
+ moduleBuffer += "5lMIa8JC4RjeLqahRB86GGtDWTxdRmEDWvRgHP/AsQc2G+Q/c3xKIsBkBpyS0N7zpOYTPIVdoShyr8HeSNlfADYHoxriA3KqgWmN";
+ moduleBuffer += "QrFz/unndNQhPNZZnYR2AgpSt1q2vzQeaODn1QDIxVdu4mcNAE0BZ0fE7As6AzzYJkIw1sYOALyW4ueS68bSpddhpgVGXZwOXJfa";
+ moduleBuffer += "Y9cpZhb4qJeYMEZM0FgvNmE0ANiPFpkwRlAQSycmDDBuaEn7TRgjKiC8+kyYc6b8r23CFkdcN23B9kNiNHZF6hiAuqcc2yZUM0ZO";
+ moduleBuffer += "LFxWXkZzE+dcu34K6O4FC8x/8YiriKe4FGucCq9legsGLj6+nWIlOqOou9d2cqdDukLeSzX7cn3AYJkv13z545MHCMkl8WkgY5eU";
+ moduleBuffer += "kbsdHr5f3ub5G2wJ3MvaxO0DDrUbV2VREe3nR1lIovEtXY1ENB5wJbepROp29aTIk/rjGVqSzdumiKKaushyRjtQVGNFMqwVX5GT";
+ moduleBuffer += "UbVcq/js8fmh9x4AIOIz7ze8NvlWKS0/Ld81aSIecZR0IClHZ2LFyYiONSMQsjE6f4OjcxMDjnQyMDZyuvCK0RkWKF0ZhmV0tjTB";
+ moduleBuffer += "G2Sslp9rRrOgGpzD+UOvj8E5oJL/BQZnQy8kU5cMzpfKaGRhcHZgZPR94v17hcmHfg6pCrDCPT7PeqEB2tIBuieTtcAA7ZCop0xw";
+ moduleBuffer += "wgDN985FGs0AzYPTtxujgMNBNVrUzCxsY3thLCdmbD3jL8wbAk3jq3nDpK/UGGpsYVcGGTjkYqETrlpn2HVDDK8wgJjxSqw1JR7C";
+ moduleBuffer += "iZWtFBfTetivfBUWSVefopFGqvQXTKbWCEig2GQGbhiU0bgIyIXKGOClPR0qahltLJ42th3SJN83TaLb8uo036JC08COKjSpwUoN";
+ moduleBuffer += "12YB8d/TcDSL2tigcGWEjr28GMgdXVIPdpOvAe8SnHWrCu6LiNMJSuRsxBzIaBNwb9BMZiYvh1hXx13f5C9mMdcMbLpfkuUh7NRk";
+ moduleBuffer += "M3FRzvWm7OaGMh8rvkbevngdGA025Zu5esqbF2XeUCfIpRulcsH8m4lN3cibo32ebVk29xtWSQJpOB5Dfair5jxBihPjVkr7CZgW";
+ moduleBuffer += "shpxYXylOoX4TleWWnaBUKsbtuXKc/sr2EQOKsLucA8PWioLY93OLZdJnqsGYrWTYqlMJruEkJtmkgIo6ZrHZdfx4yqFqX2unag5";
+ moduleBuffer += "XEt/IjVRgCwu7kLrvAEIw2aXaMNUzAMZKFavcXWf+MFYkpGTrVYrq3iCW1JdF4ydZW61DA604rTS01fUmQe8NzIoG+vh4Qq+uIBW";
+ moduleBuffer += "LsIrKi4dhs+oUemorRvbJXm7WTGRuO6Mbr5CzfFkk1y0nVUDG3aMQaDOddsAxlogf8reHfx2alnhwe7rTMuXKZ9jMRBrsyj3FLdP";
+ moduleBuffer += "Omr+dzJI5TvlD5fYWWMoB1VuY4igtUoZLPNgQPOC1DkxNj+6SwqYd4OcOgjBsAbv1Sjg05HjvXike0JRy4GO6UMZPIRNxunOwCqQ";
+ moduleBuffer += "auXPUZNyFukfhrqcCnFXpHMFfi1ZwPgwtVydEpE3gYWFXJ1ppedYrwZk+CpMeNRhZBFsJSLa0u2wifOq1dcQTG+Wd4uaY68jC6p8";
+ moduleBuffer += "8kN8Qbk+S6vbCQ2NjA/hgimnb2wmQLtjmxnQWWG9eFZefh1ouZYoDW8YNQz97qLFSzhLfPgbe2U5nXwuai1B8DMINhFcjOABBFsI";
+ moduleBuffer += "LkJwFsE+BBMEv1MGCYD4JIL9CPYh+OsybxvBmw4VwRaC7zxU5CWU8u2HirxNBKcRXIxgA8F95d0IwUcQPAnBEMEflcGAdj4il8Rh";
+ moduleBuffer += "zrd/U274HIHzCblOvuGQcc8kgSHN7iJJq5vvNElI9zOFGxEKBSVR/slvFrXHiJ3vRbCNII7q84cQTCQYc8gW0fmETCZGIQISbDKV";
+ moduleBuffer += "ehsxcagGlySn0ZVTWbgRXGBXTpENDiSd1Da4qvXwlKZUbm/knOdvzNxxGClCL1EkG9Rkg/OTNXuTpZosnZdMdRcuYTXHM+88Dgje";
+ moduleBuffer += "SLrtPNX7jGD47N8CHvtxGlx6ACOWdFGZrsUldVAqmjNqpCVJUiYZ4Cobr+mS8+jaLWlzXB57HtfzLtMsj/c6tlsQB3orasxSGGAT";
+ moduleBuffer += "QxyUjhnCotzWRZ/LTZHVsYwRHXhq8uPg3sz7ZcEtCyIZ0L5BzNLm2iG1Nrd1vZasRVfY0MF+KjbmS7+loFW/tRysdwBwm19v6wZ7";
+ moduleBuffer += "QhZGIuvJRz2zLptVyWf5OOK1uDbTtdzvlBUaUurq4wNOMWSnVLfmA9htp1ahrbCIHeyq6hWHup5ZD6u2Iiq0Fb9pQez91gWxIZG0";
+ moduleBuffer += "jLYiKhfE0cj3raulGtEdXGhAJwrDaFSmK5EZJuLywd4LPkDX1lwe95TgLbA8VrbPMoFZHjupLo9NM2CzL+1IIiBpxX927MYmCM3V";
+ moduleBuffer += "evhyRYemLZd0KL9rOhSo1R3qD1eC+1MJj2lCUFiv4CKzRsBo7I3c+bXnRYw+f/zTm6+a2gjxF6mvlJ6QVZxU+OoMshX/rsjsIajl";
+ moduleBuffer += "UUKVO/U2pohfSabkRtq8agprWhAObxw3asqNWZ20GKdAyLGGOTykTLnSvNLkcDEO1NWk4BtGjkuUjRkCzx2xX+QQ8ZaRo6Yqhf4U";
+ moduleBuffer += "Oa4wOaRshck2OWRoqfSl40x6dbzH1eW2GtDmnq6thzMf3G8Efe+Aw4PcBDRkCnQJLpEdV9WT8t6Xe+bkgQkLeGzU4aI2IJVp4+Yk";
+ moduleBuffer += "c67Cu0eKDR9SR9/G5O2D70CGyjKJq0kIJu+BHM3HqZyIjR+XxcsmEltqW/np4X0D21vq2aFRH66zIaB/oXAs881OQrqNIwuuwfzI";
+ moduleBuffer += "9/fiXAvWD/mjuL7tB3uNnUSjNL1Mkp9GBX2Ahxs+9zOfoMktFFKlRSt0rsYU16HTkakVlvSHpeQ8zSd+WLAOUKE0jI298pfxJEBp";
+ moduleBuffer += "7or3NIt8zANRzej2127PdpzKPVtlEQax4JXIJ8jkIb8T3uXG7y9313VI7pAv3pDP2etA7oFQsCE/f0xKkIg+RrSqiHbuKe2zZHeK";
+ moduleBuffer += "7HL/8ILZ27mrEi+p7SK13J9h6tyJSR9sl+kttQq2jJpx9FJdwkt/edhgxBuL1pRElXARMcJNz4gChT0SETNcedWprpLV55t5rCX/";
+ moduleBuffer += "O3qLMWrOIw5TOLHNDUNoeOkQ2MTz6DL5NVqNehYIITggsJNaXloyD+R2gSHPPaYeQiUfcs1BkqHuo4YvqReG7l2oX3R75hXbMyjL";
+ moduleBuffer += "CscwvLch0yrUBjl1MZyjt9vF13fOtFaSsVtbL19Ny/nkhqBlxwusSG0k93nyajm2chlyqMzhMQIzT5yEWX9ytvUnMq6epcdRapWN";
+ moduleBuffer += "5R5EkrsmmpvjW33LM3S+Lr+9GunqMKxGunZqKCcUw/yHfHcRyse41DM5nHqOkjOXiobkvdj3gudMM2HBkRwOi3d8Mc98b1Q9E9WW";
+ moduleBuffer += "nLGaDUujP/k7yFOtF/f/jjJVK6LvxclVLUf7RNmy1eTbSJNjpAmKpbcbaTKG4yI8xTHti5Qm6Tib85pMta1TRD5+uyCB6+B3kp2L";
+ moduleBuffer += "2+oIp4rxFtZXzxQG6/+bAnR/pczEvNfU9Vmlr/R1febRI7KbBT36St/oK8NqlRTNX3wFWJ7h9O23Ls+MvtIvl2e+0Vf6Hau2OvOo";
+ moduleBuffer += "WUS7lg+1fuPSzOpZmnkvqLk0SzOvV3NZLM1MC+RNXZqZyecjjvrdTEeUFp7AT7gXXWh0QlB19rARwIPXUadKOBNwkaZiepA2j6p2";
+ moduleBuffer += "zA+GOggUN2Gha1ycXPog+apycvJj/yyle8l3oK06Snt7ifuBxLkad5CUvU6+82iVDrQL8BDZ+eMiDlb0j6BsEE04yrxA2wjzRKo9";
+ moduleBuffer += "beX2UseqiOQSJqXSSGrqEygYXGkcNNV0YJ/CobpRsKDQXyXQQ4dAtfAg88in52CjCS/g/HxsfRwlo5xPXOcocR1tTUBM55C3B+4a";
+ moduleBuffer += "YNmGP7BtfIltdU6Ct92nbCgiSTNLFbGnNryFd7dPn+x+OOy68Nn26ZO9CF4aNgwhyZjZWUIfJRiht9SxgN7b8O6G9za8u09S9wd6";
+ moduleBuffer += "b6OkQXW06Jycqnc3B+ZGtzOUqnf3ch2oQXaEPV+Mn4g2j3CMiqE6bKh3d9zj3d00nhOgiyu8u9uy1OrLd5/o3c2D5rQJV7Mh+YRL";
+ moduleBuffer += "9PKUdHm6WC8L7+6T00UaAc/vRC+XpsvSfr1sk9gPDxsovbt9GFR6al8djUq7xLBEiWlfD4tP1YFUtSy8u1vkC5qljya/WeH/7fCb";
+ moduleBuffer += "SZ//FLT/YP6mFj/5VEgLg8KnvPjEleN4ID1MeYV6ym2U33piseFySk3JWZj8eUpacnrNhMkBeC4om0qYfB27QDiPhDwy4D20Jl0I";
+ moduleBuffer += "NGNM8YBDDTO2i/MEpgXFIe5JOQ2W8A+BEiOWPvJS3mKMxnZM/zzs4luwDn3O1sWNupPJndXGWwBc4sXVcHE1Qssshx5v7hpuSSOZ";
+ moduleBuffer += "mmBOzgMnj2s/WdTkznqMS6/uqiOXmw+uRwehqcZ6KBWiDQxB/71hnfrpQrlsc2bDoZ0qscBshIM447RcmmCrYSvPFlSPDFs7pyLi";
+ moduleBuffer += "06NyeYUyzCOJ4ZIch2rG+OOG5W9ltYLVo/pKl+hlVp/rwWIOyn2p5a6n9lt5mHwuwjEE5BMjMizj4IuN5RXPNAbon2jndyK1g9S0";
+ moduleBuffer += "HXI4JefP/Hy/ep3hSAMnrZ+l5Z46zqntFWZn46yM05CvRm03rXk1djAkihBY/Iq/oeQ+LdhVouqi/LJUVUrQkw/Zb32qyO6U2ZMT";
+ moduleBuffer += "SnFzPfhYsLyY7Y6+32/4qCw0bX6ENQO7YZ8Sij87hwhP03DnSC1lZhlCQ9LJ3fvT/bq8wgSZHJXPsMdR+7yVhXke3FgqN0loKGhK";
+ moduleBuffer += "qPYW9OLGaojdEEOydKc3qFNb6l1zcReLomQi1CNWQz63Rn20wVc43CVrlkyYeqjgwfTNUiMBF0sieUAMP/H1NOZxzYo/9S4vDsIt";
+ moduleBuffer += "Ng3rWVbRob1nwqk8VQuO5GtceKV6uiUJhpOvusXHRZoiAfbnhtxbG1p5dCSDMjayixgPE2TPt/9INsBflQ3wIcdpbLJN29FfiLoa";
+ moduleBuffer += "KmbdeQobTxW4/glaGzwINmjQqwaqhQ1VZ4vjUt9ocpwhuhr1anLcjSni+VyjyfFUR1roZaL5mhyfORLmkJRGLxNVOULkqGtyNMfg";
+ moduleBuffer += "vBxhlSNAjromR3Ok83IEhSYn7tHkIClM3FoyyP4dHHHwBeLPOzqOlBaZ6JO0v6nwMy4sNwd/GxZ7dsjSmVZDYipYD08P1mwMmXY5";
+ moduleBuffer += "ZHK3VQyaNgdNWShHG8hRmWzgyATrN8xE8kuDC/wCtOC4nhiVD/diZZHGjsYj4ShlGgqH5OeGoMnrcv1e6PY8c3LHfP2aD1soX0sJ";
+ moduleBuffer += "ekrxUIptEvdp4rYmrqVyJVVhjBofUOspsOclqcWtD+yn1mLbcxpeTSnm4OZCXdmGv8zc0Q2yyMKUsH40P68bZ2YELCybYHGaOuvh";
+ moduleBuffer += "gq9WR2wEL7XKLQwU8YbDHhNaj2mTEt/3x4U4084VC7I3jfEwVj3a7fxkTKYbYI7h5KddPLSe9N8Yok/dkHtjXSLGIK8DufbhZy7d";
+ moduleBuffer += "Tc+0PWJoqFGeujsb72rWRs+dBws7KlqQRCAyLF7APeEF4rvbdr85z28qXd0eJ6Me7l7tU2jfex1M13Ha1APXCZ69rzRIGrBZG5LX";
+ moduleBuffer += "OqsrV/l9dwBvoACdafLU3uNFRG+fpHA7BHemDiu+bueTmwgnA6cm4BTB8b+txbilvVDauEwVnTjOcWEjFOoEI4s5Be6Q6FF5S56I";
+ moduleBuffer += "DWOWGXaWX6zKkNAoInF46EFL4mOoJuTEaCeqzg3xpDY+QIwfL4P6lNZRMayHYhpSxbKHlo1OjOoYTkHOKoGsN2UKklXzrLTD/4I/";
+ moduleBuffer += "s0PgHRiPGkMxQtOUCDSugQPAVo4Vc+ZH2DFhDOZQotKcqYG3//+T9zZQelX13ejZ5/v5mjmTTMhAApzncdDhvsll7nqRyQq0zclL";
+ moduleBuffer += "+ChQqIv7LldX713eu+y9rGe4bwlQtPdGM0DAUIPGNmq0qcbKlxo0VbBRox2SKFGjRgGbImqsWEOlmGpqg6Lc/+/33/s855mZxBGx";
+ moduleBuffer += "7bJkMec5++yzz/7e/8/fH4ePryhLy9ohxfKgsWVINnxavx7hGAmRIcef0WILHnwiwc0I/tBWqbgLqU9BQivEoNCkMNaa3VvLvWWI";
+ moduleBuffer += "8OrEuQHSY3Cyg9k76zSxzf68zsvz3ECsFXbvjdC9oUPJ447+DZTiFv5Niv8xWchpSy5OOlnKuDH7SIS6Dnf8Ew0khBCK3GQ74AHX";
+ moduleBuffer += "AfDmvRYZUvxpFvtcB2hw5tiCvxCpKvsYO2YM6w7Wc+hX6Y3LWth0ZOqxbW9IWkHVgLDY42nIZdC45xs7gdOeZcxwEXDSSudQGsd5";
+ moduleBuffer += "ksqO9xHQq8AEohQltWJI+PYGUhOlsaShl5NILd+AJSEFcaSTLyBnfcCTqVjIOO7TxsEUkRaIdDR/YJ+ObnVcEJoPtKkwM5e1rOGj";
+ moduleBuffer += "fEEmuP3ImBovLoOaAPMKbMs+FPTnsRInrG9OM8ni0d53R2jISHytJ+13YfMCz/5L+aFMyzqGh4eSag/wg8O9HlBjyE5DJbSXtGNd";
+ moduleBuffer += "oilNLFB17Ve1jIl1wdDOL9WVGOpKnD6olUvRxyn6mCzYQVau8EF9plxQ7PHl3iVKj9K4I3eOBP1zODzBaghmzs1Zk9XMSMAmRMq3";
+ moduleBuffer += "DteIQEjKJrZ1DdosP5uMhE3hWVHXA7K53Guu9IS0bWDSNXUvqC/3huXYqkMkV2eoWI02+oDfgTh0asoAVKVJMo+mPmpva9QU1JAR";
+ moduleBuffer += "bhaBokJZaCljD42VXtoMK+kuEjfSA+fsQFvevH6Ot0ijkg92UafFimRVP9sf4SmNwkjOl1ZSVX8Jo8cPjSjlYuwpI/v5OM4eig7v";
+ moduleBuffer += "9uGTLHlXf+jBH247eO+d721SeaduEyDV/XWQK8NRwax+bs97Hr77/Q9t2qvat56jAml6ZAw0o1nXCa7qexriaahP0YEZNX79JUSg";
+ moduleBuffer += "BJHWMau//LlN3/7QoR88ccOtQtzGUid6a8nLGz75jV2PP/apH+5efyvEW3TRoNsFshB9iw4TOb0rVEu5js9oGGC/ft2tnZBNyAMS";
+ moduleBuffer += "m5rJqG+Ej3rmttHROiFM4QARVanLnIAnypvAJukannuwnTrPX+b8kopp8OF63oW61QaMEA/5iFfsuHWae6pKENXuO8D+thsPPkG0";
+ moduleBuffer += "ypQEKXm7A0h9KqEWvm0VVONdtWPKPkyTsAvaLGaFQlyeC/4IRtQJDeTdZ5++xX4W2438GQVuUfHcLVo6zLVAJGXPYL8ofmstN8dp";
+ moduleBuffer += "T0Wr6iBUxDfxcWBPQ5S6qVfnEVqnMeOqtdB+b9Oa0ypvpXeNIzh/FX26a8sJ+nT/lrn69NCWk/TpA/Pv0+N/Nlefbtzyy/Xp1i0n";
+ moduleBuffer += "7tP7tszZpw9arc7MPj3uwQFHOnWXQdXn6tVkskOOOan0akL8lOKu3Xvm7tUH8GBWr+7bvcf2alLp1XakZHFMw1+AUqlseAS6C4qI";
+ moduleBuffer += "ix2fUu/2WCOCI4B28egn9thg9qXfGjfSiFhveI8yOQoeY3UhnWPUIh21UEfNNuvJT+yZMWro+GOf2NMbtVRG7fH0pKP2eFqOGkvd";
+ moduleBuffer += "0OuTWaO2RXvGjtou44btg1UDmkD5hrGO9YkYs7YJ7cR/vUKyWNuECAcvEVp8IrTE0kdXKPzklc52OLF4LHCNInkCoBafQC2+2jeA";
+ moduleBuffer += "VpKCsjvUAHXOdzkZwDzt+uZD0riIhZXTQF5tp25yRMV+5HmG4h03LbJPwjQADPGhb5bwLqGOEX3VFI0K3Sgdfoff6KRXaYD1FFgt";
+ moduleBuffer += "zrLltNx6+uywzP7h0px3GUgiQ7IPzos62o7NqTiIEpgmBEEeq3gArCEJxfI1v3wBIcZp+8kcJvt+WmYyfaUG6vYbqFlvUAR6Tgfu";
+ moduleBuffer += "3exmPfKV35vlPtnnCFl9Hlae+5VzPSx9kma84PdeaKiuARjQVnt+1DuZ9nx+inPqo6ADej9GnLKTFZMrvRX4qBYzH3V52qe6psM6";
+ moduleBuffer += "VN7fMVRHmVJJPkc+KKPuNU41biqq8easolHmF8PyC06SYr9QUYkr7OZ2qZ6uQtgCKizYIc8K3iNQsO7n/vInLquoOc2pDoTxbA6F";
+ moduleBuffer += "hvx5uQ/115l/tGMdDxi5fV0nga1jsjrfeG+buEldSn/hvxj2lYKzpeuocJeL6tC8m304UJAyV52jvZ/H+2r2qlnlQoUX8oTp6tIL";
+ moduleBuffer += "cV074zuetoPZs2M+gW3RQ5+kiZral9Gm1J8hswzU9jR8XSetyixr6qNbV5PQSA1IYzU3TWZYn6Uzrc98tT7zaOeV5jUrHQyvLq3P";
+ moduleBuffer += "aBlWlVmqLVnGN2g8SuuzpPdGjDdmW5+NzHgj7r0RzbQ+0zfyGW84SWpen2V9NlbaMIHZtdJ2NQjmKW3p4glIWbCDXA77q/P8C/T5";
+ moduleBuffer += "JZDGfX1afl2oCefqZRnVW7mcf+DdlsF3dZahNg3CKAKjDI0cSzJJP503wOjqkiVY4Im11qY9gU+TCdlPrcEztAyyyj5pYO4sR+dn";
+ moduleBuffer += "93jFYjyj1/dPcHsqbrnLbfmce8pN7QO4bVszZq84gNsRa8YsReF2IcyYVVw1Al0CXTE6nuVi1BlDbdO87P6UMoHsvbWeUKBJ+L+O";
+ moduleBuffer += "32ua75omG5fBdyU/P7jcC4vg4pazGKG+SZUUxMVVVjEcgmCIcNs2gTKP7BnSAs0i5C/P/oKRuqegEffJEBUTrGCxFb8PfGNajet+";
+ moduleBuffer += "EPjxevOHpdokO62dZu8zELm/1KhiJy/tcXg2nWUoK+Cv7L9q7pC5sc1l+0m5NIkDMEJnKDQIEPE5BTV5skRPIwdfsJRWHxAqqFEz";
+ moduleBuffer += "vDOyj0NkQ9fVkGiOFjAbEzJQT134BASqes+BEZDdzYGkcctobj2NRqHD/btIzVSMfgby9l6LeEYCqCgq7VAohe7E2W019aZAOxdr";
+ moduleBuffer += "OyO203rNRNnddTmsKGhv4vsNa5ihfqohyQ5DP0rXWh3RoGyS1zFcY70mmdlNoruRAx5go/CAczjQB07po09M5Ulgn+R4YtVCOHln";
+ moduleBuffer += "0ynRSemUeCadEpV0yj5/NpUSK5VCw9F9/gulUfb5vySFEv+iFErcR6G890Wk57Jnaycj5vD4BfWSvPjvS8a9mJ30cyneF0zu/jvT";
+ moduleBuffer += "uh94wZaic9qIkqINZ1K0v6C9p99wX6hQwkZrPU5q+gRmoJE1AyWq9K/ABvQBv5QWhKo0Wu5lVNGpoeQDHNFhNUuHRiCk/qlQdAHk";
+ moduleBuffer += "CcGxjVmyWj0z4wp2i3M0TRQAPrk0D2x0g+tpLx/BXDPVc9+s9DJ9r6m7KgpL+kSn6qGaKXR/MFt6Kp9zOt5KXYwrsydXneNdqhK1";
+ moduleBuffer += "DrikfV9tEncmVGb9bf5MtzguqjWWbaYdp3PqUZWDikWaXVg4WCtbzxrXes64FpYsPeNa3PWMa3HXZ1yLhBnGtUGjr4gyz+E5i4Bx";
+ moduleBuffer += "rd//Rsvlcca1lN/nHn6bRvYaiw87rOa2hv6OgFkuvc/eLHO60i89i2L/hBbFfp8NsT/ThtifZUNM7HJa9Wv1TV8TZ9oPu9z+9dqW";
+ moduleBuffer += "Ptth99Bc3+izzveYLCtmU1IaBwfOOFh66OgHhKD7VmStigM1tc3VMAoaYNsdhdd45xn+8PrQuR3XqZXQBZvtC6FWOJeerfJj3GoV";
+ moduleBuffer += "XouFVUfKik4TFkx1rIBMLpSQ9ZAxgK5BqAsPrqJ8fK5exnGBOe6NXfAOdSFV2q2qrY7nDIep0LGYX75inltMcEjTxtgN7cBiCatb";
+ moduleBuffer += "Sd61tGb29kinfb7GmYzLeUAGZprWXXH2vVDXVNothLMUxrTY92HpuS02pA0v4H1GCZ95pAanJ+ieGrruTE5ndINtZRhbXJcGftZ+";
+ moduleBuffer += "BxwC5YO2/obOs2DHTDHcpcAs71IJ3WPlgRtJizmAfeepNIEEPtarB+ozBXSAHWbeZr1b4DqyEdn3I2AHYehrcnttl/ioNEiEX7A1";
+ moduleBuffer += "KZd9SNrv2GYVjTVKr3FDb2D61hFXWKnlcA113/7ZfhMd2FK6eti2GH1JoBTquls6W5RKFYr4I7XS5Evmzuis2SR0IkzE+Hus04KV";
+ moduleBuffer += "BifLSOllLWdEU4WpiYJ8/BeF6XjPB8FyZlXfIhn/AZUxgMvpZO532u0M2d/20vYtFG5CAA2gw5UQqUlxF6BLVckcqZ3LW2QHzpPl";
+ moduleBuffer += "3l2GsWpgbAJ4OFmiWF3XF99jRyd5utJbUeTtNFifp+F65mHhnaYU8uawD/5aatvQ6oA16Ay635K7Zn/rpVaMALO5mHq3k/8Cn3ZB";
+ moduleBuffer += "3rDAgIq3vhDggvZ+o9wP5jV3r/73wZShlLIDW2H4VdayXTX5eUjO5kXu48Itdk5xNwDIbVSqsipvaFW6UpvNtjYL8kX2OwvzU0rg";
+ moduleBuffer += "w0b126vst0EFNHN+tpYPF9tRwhXa35LQzH4KyR0nnmqek2K3cR78ZAqT4oFKQoqEHb2EPDnbv8vgZypzwuqzYYsDM75Gg0pcxeWF";
+ moduleBuffer += "tQR8A8P1hYloFQjLT2w+S2XZlGagw908K29k5x3SGwt4oD5oNLBQjN+nfvqQVyySwn+rWzyK30//zLmvhUAuXDpBWdYIZtW5rtZg";
+ moduleBuffer += "F+V+We+es27U3TufdxrA6hmW9UI75LEVIpji0b+DugfzUEGZEB/rLdzpMry7oA9jAiObFscPTHt2m6IkslYcraaswLQ9Uk057G4A";
+ moduleBuffer += "Ph8qRjK2v+xZdLas7S/KPvqupMPRQ0urgxdaYEc3dm6T98tNXrrWb0eFr7Zu2O/9K5a0GxQfcCjhqJs3sO8tADZEiHcXKPXdLCEy";
+ moduleBuffer += "VOIRwW7B1gBriHWwN01WwLUKG5ttElEhpEFhtrvGFgJb37YJCJF5BYMi0dx57571KNsM7FK4NXp2Gip+W8Q9OKP7Dy5NnmNTQzwK";
+ moduleBuffer += "dC9zVlNUO0Q3MnTOZBHdlG0HZLicQwuVPGzmTYKnDOusGOJrwxpahy90kuxhREWTvg1X53fAbHaIva6GtfKpGlHDQ5qhhe1BKgXw";
+ moduleBuffer += "WWzP8P7MB1GB9oA0ZrDbHgxgxozgLI3eRlYS6QEQVvKLSTullDA3VMKcFofu3+NRyEzpMqwwZELqaRTmjexrtZVergvD7/VfqFba";
+ moduleBuffer += "Wd/C8HtzJtRx469wuZd3ZO99GdRirDwFl1UL4y9/cI+1hguLl+EwLNTwu9hw7x6S2vZXCBTuRyVz9hBwXoIy5EowY04HM+Z0MGNO";
+ moduleBuffer += "K03OZeT20/HylzOaD9RonqtP6oyQEDiCgmKD6RIjcwqultm7qKzaSl53i+k0JhVoZYORPg5uhAJV7jbhToirdsNGIEjzxst1jocw";
+ moduleBuffer += "CldzGaAdovsbTrjPj7dTK4uX12rYsnN78FiYlcAeRHaBlPcOlsUdPNy8I6uBFlJGHvCrcl2daxSElFZT7Ckr0x/AZ/CtEtc96/Jb";
+ moduleBuffer += "5T2svbQU3pcn2wBW1oBbYAgf10loMjmIBVLTDXrIGtFxw0JRC0tT66bSO4yNoFt5U6P6qB/V4MXOcM3vFk/etsfur7lPrbW6UckG";
+ moduleBuffer += "Mdj3MFYL4csAtwfw/0k6SB+R64Bc5WRuD+ELwmur1WNp8+iTzEIcjJpcfmutVDa4kkm/0WWUicV8TwPypazEtV3GEpXt86JWrNSj";
+ moduleBuffer += "X0zfsQcblnQHakmHDvRODTMF47F4470EcFij8H8cUtKLSfadmJgyWv1YLcTXE8j8xmL9DW0gpSM6h6sHWLsaplazWF8EBFdjPuES";
+ moduleBuffer += "pba9ip+aN+5vn3bS2kcu0I10+59o/csKI3GzJraBRBdc1gpmtu60W/PFt3dG7iVUnX3v1I335oNrr7ctHVk9+Eo3nCdqsPrFZcVO";
+ moduleBuffer += "fO0DFLQXGzMiK2GYO0H2dqLulPOArjIBwlCExXb30pwN9Msa22E6aIdJG4CNtzHvQdHqsB7XQgMk+bvI5+cD6Iy4GLqUX44LA7X7";
+ moduleBuffer += "UHV+Cq8KaABMzmASd5Md+XXlEm2IsRNa86Kq2YPAHZgasv72CSTTwu/o0kDnBLoeOjXXK7Jhsc5+WQoqy8Ra30pB99Ff0JvU1dSQ";
+ moduleBuffer += "vs+Ko3e43kcOSThcJizIHqg1GBSAmzqXcR3OJR+pybUJ1QuoHzATbVMRlIA1cc8VxFMfUIrjZ5tqMDtTlKdNZ87JGwcV3jg6MW88";
+ moduleBuffer += "oLxxNJM3TubDGyfz4Y2DKm8czM0bh5a9dGyR8sZJ9jbLG4+scWdkqhDvljdOSt4YjPHhPsbYU8SJkLwwXCstYzzczxgDmjNW3eFY";
+ moduleBuffer += "l0RSyRjnyguVjHFiKw8dIEw6pI5kjGENoA6aclI0yRjHIL9TqT8Y3KYyxokyxonlhHk72LsV2sWwEcoYJ8oYH8aaalrP0GQ2Yxyr";
+ moduleBuffer += "xl2pDccYh2CMm5YxnnpxGOMP/1zGODkZY8z+gSk8HFgjNTEiYxwXB+ZkjJsVxnhwHoxxRMY4qjLGERnjkNINdZS1jHHUxxhHljEO";
+ moduleBuffer += "e4xxNJMxRh4W3hmoMsb0iqwwxmGFjQ8rjHHYY4yFeCi2v1VZ0XAGYxxaxjgr78EYZyX5IISjY4xDZYzDHmMcVhnjsMoYh1XGOOwx";
+ moduleBuffer += "xgPKGO9864kZ46xXN3x7lf02GOOBHmM8jRLearTDYeee/RgEU4UzjmZyxtFMzjjq44yjk3PGEAgpZxwrZxzOyRk3q5zx4M/ljOOZ";
+ moduleBuffer += "nHHc44yfd5xxAPnY0pLAjnucMQnsuMcZa8zhHmccz+CMseENVFjjpGSNnzg0bZ3BcTgMMDRFtr7DY6tk2ejMetRT16Yy4Yg35477";
+ moduleBuffer += "Klpi0p0++2scKX2OArO4a38Wdw1Lf9k3j1RTKty1T6aMG4Rsys8S2qHkrkMly/s5pWAGpxRUOaWg5K7jwlc/FTgVg7vW8wnTAeY4";
+ moduleBuffer += "cd7E5jmAPY3c9YDuaSV37fe467DKXYe9TmvMJb4dz33ndSuUwMdqarYRl9x1pKdUyV0r1d3jriMHG+ruUcNMW4u6E2bCUnADasE3";
+ moduleBuffer += "QPgiDEyLO4tuiI1Rj67hc3HXDXDXC5SqaGCl9nPXDZx1Ucldx8pdR1XuOpqTu4YwF778Fe6afioZuetBCHG77azkrpszuetoLu66";
+ moduleBuffer += "6bjrw1ur3HWzyl1HedNy19EM7jqawV1HM7jrqOSuI2zv/dx1NIu7vuOdjruO+rnr7e9w3DV/wRmn2PTOHncdVbnraAZ3Hc3grqNK";
+ moduleBuffer += "/X5R7jqayV1HJ+Kum5NqlLvBKCtRctdNctdNCKHIXTctd21dri133UT3Ny13HfW46+jF5a6jk3LXLrQ9WOEZ3PXgDO56cAZ33ZMb";
+ moduleBuffer += "D2JlDTruGrR4R2H2s9ncdVhy1wtK7rphueuG5gxncNdNFdQod/3E7XOClMgJ3ux7mKjHrnBCEbfxSYoSZOuF9Arb9y/NXSeWfQOl";
+ moduleBuffer += "SGbVR1R7NYmscNcxaxmfnLuWGjURfNWFqLY7NYnQRnYPGpPY5iSzuO1mP7edlNx2o5/bzmZx280etz13aywU3Dy47YZy2zNaW+G2";
+ moduleBuffer += "G1VuO5vJbWsHNOfsgObMDpjNfevriU4D4b7/T+Qtp4ljvhtzMN/97fXLBoQnYr6b/WNWm7PKtbnGTGvHel1r48B3kc+HzBRsvzDj";
+ moduleBuffer += "qEnimPHKdP55zLjOf1cRZcZlurcsMx6voVwhu7js6kCXT6fWCyCudfbLUjZTh3wPhry6sNCdRP8+ETOezGTGB8iMD1hVYpUb//AL";
+ moduleBuffer += "48aj2dz4h6xh6rTviKutpmTGZeC2Gdj0KTu21QhpVHJRpHO2G41MrYw4LXbYF2k328v4jVsNfRX/1oZbFY7lITu7TtGo77y1PJFa";
+ moduleBuffer += "xgbZH0s6OImg2PR5oSz32RiLIPsiehOY5d6FMl2fA3+sKEv3IdIn2XemLvdWgZ1e7u1X3JADitiFE4pwQSFMYCfhF3HD2htWeptA";
+ moduleBuffer += "az7BhifZX9FjQb6AKPXG0u3SlN1+CXL3hGF/80g/bGQD9RTm2lMTp+JfhUUsFmT3p+WwqGGTsWyrbyM/+8XjHsrYJmWsyNarhZLJ";
+ moduleBuffer += "/jIo3yu9BX2Eg/3PY2txZPd8bS3+k3TIvkfn2yGf8EtcnT5PMMQBpXvdQTPbv64AnzwJH+gr5vCvm5IVdOwE/nVPHJvLv+7pY7P9";
+ moduleBuffer += "6/KysE2usNL/CoYr247N8JrbSKxZhn0CwAsXzvOeumM5yELrjpXcJLkrTnTykR29ilXcsabW0x9r97GqF91Bk2tE7sZbbef1mM2l";
+ moduleBuffer += "tNu10edyG0wINtUOLCSiKC57xGYwMx5rCLdcYyEG9+fmfqUlUxfRTbfLJ/m6B9Gbr9IAunKHNiCblKulBv0B2UZnWlnS+i6c9dy0";
+ moduleBuffer += "g4ptpeauRGgb7UVgC3qB3Urv7RN3y1dO2i15t8zwa9ktHz3BUjuJI6tzY517ocH385YTuFzed8tcLpe7btlzooUmhR26eaajIxba";
+ moduleBuffer += "kZv3zHRPnb3Q5u2sevzmE7s9brxlzwxn1fH/RIfYsX175rln3/mfo0OmvjWvQ+zXbn68ee7uOL73Idsdrgf6OqYyP/7eGrcfLMn0";
+ moduleBuffer += "zX1k+pYKmb55Npm+1SLcWZeZUK0RfUujb1Ya/UuzafSBfhp9qkKj3yZUOETgsvMeuku4nEctkQ6hfuiI9KuzDSj5UdY1zL4bKmV9";
+ moduleBuffer += "9UrvtRg5R1kf6FHWj1Yo60NCFR/7hSnrzZay/gop6y3zoawPkrJ+8MWnm57YJfP9J3Ps5U/vmotoem7XCYmmba6kvo18x64XlWLa";
+ moduleBuffer += "veskFNOBXXNTTL+Cbnty90Nzd9sxPJjVbRs++dCJuu0uV1Jftz2w+6EXs9v29Wo1u9se1W/N6rbnjYtMpcgIsE7WMIuAben4l7UI";
+ moduleBuffer += "iNeFUAAUw9r7i7QAqlpU3JxeugTVvmgJ4EzVsdPc2Knx3dqlSwj5lOJ6/+s7dUitpaz6vZ2a7gpSGAqPYZ5Ju4foWmg/VfsMFWfo";
+ moduleBuffer += "sKqpiAwJ7D/czb7O6EipjX9EBJzceuqAOLIo/tzpYg3WyGxseqrUk7ooqif/zhebdjp8p5y2tyWzZ83RO+cinKbedELCabsrqW/W";
+ moduleBuffer += "7LzzxaSapu88MdV08M45qaZ7fJPYID/AjGSkHHgjBzMiHQfrbIxgIbJ/9tfPPv+hqae+8YjHOCBzhDqu5r5t5xu+MHXzj7b9V4QO";
+ moduleBuffer += "mivScTXz/h//y4EP/+NTP/qhFJ263J3EBtyBpG5dJ1DsnjhPKjW5FeGVCWWK2D6BYvckvY/j3aiMMa8O3+uYkdE2Kx++NU/hYa+w";
+ moduleBuffer += "kZENLd/Y5VfiiAUEuYJdRjWOGOOKWX+4pQA9X6vR1RU4Oiwjivn4bcN7rXGYaYroyEzvQyZTydTiG0vb3CIYA4wWjowBFpQxwDCv";
+ moduleBuffer += "NQYYnzIGGPR4UIXAumOFetQxBlhA60vEAANahsyTgNa4sGnBZrKU6GUM9EUFSxnoK+gF+mIIYwIt2GBmUSXyV6RevnRwuteinR/1";
+ moduleBuffer += "rS+yTMn7DCS9nLvtRJ2bUsj9MelBYKRIgbJvF0IJZTfX8mD1fZgDZsJ/0td1fdh3xr+HfY0VvN90s82RCu4C67U42qFeaOxKG8MM";
+ moduleBuffer += "FNGoLmcge3/J+jnXsE0GCoof6DKPrJB8IjgMAXENwUhrtO/E98Jiw0aeXZSAkyDab7K31Fmnjq26VERFg77+ahsrLz/qK8xrKPvv";
+ moduleBuffer += "sTdMK3Lgr2tHbX7Hi9NRU++wHfWmX2FgsugEgckSly2pxC/ruEhgnboNPmZxxYK+nSlF3DHZd/J6BVcsqO5NNbc3pYxApvhhoY2l";
+ moduleBuffer += "3rc3JevyKK+Vccq4N8mxH7w+WF8qsK13KFVlAYCaVKNEAytpgPQOMXJ5jdWuBbtdxO/S5NiovUmquhCABalm7yrALQMaOZA/HeaS";
+ moduleBuffer += "YZDHq2X9rzY0R0gRP7T3oVg1nCnyalFEE7CfCq9yYctqit5UU/SmWvH0Ew/R1K2m6E1Qdhbb/v4hRW+SzyGMkNVRAvWbzd9ecjJq";
+ moduleBuffer += "/tTxV3/8T/70A/9879d+MDwRvFLOlyPbn3nbz+7Yjdur5Pau7duPPfzPn7n9L9cjVpS/esdz/7Th25tu2XeQ9kH+6sc+/7YtH/nc";
+ moduleBuffer += "/mf/J4Sx8lfvfeNjH9m/+we337GexhGrv/LmH33za1//5lsHJoJdMndX/8Xxj3/0qR1v+/LyiWAn7u993yOP/HTzxu/87kRwH+7/";
+ moduleBuffer += "+acff/z2T7x3wzkTwXbcP/fcZx/900P/+sbfnwi24v7xd2967O5jT333J/L5zUjY/8k7nn74m0/+Y2Mi2Ij7j33rh9/+8Wcf2X06";
+ moduleBuffer += "bZD81Vufm97/5W9+7qt/KhV6rdx/+JmNX9v4jrdsWTERXCe3t956+0cP3bvxc3ukvGvk/ssP/uD9j7/xq2//TRjD+MLXWn/fbvYU";
+ moduleBuffer += "lt60sn8O2CbQ2AzIIfwPsuBhLz6YDVSrBjU249FeRkR0sBkZqbZUAW731bXaweNYpHqGqSUxaUPVNskCjyK+myqnHaIJQIFhkqJU";
+ moduleBuffer += "as9sBfZpVUMga/czRhlfcfjYXuQZ62abDKox0rUgwA7BWw7tiMAg1OErERqpASGO0agHqaLmWuyrVAOuqwUVLr1IVkJDSDUI6vGl";
+ moduleBuffer += "tGMAKB8Wzew7NY1cZU2x9Gsujmmx7WfEUFc+Uo2QRiF+d4S9hWLjSSAnrb9eKAX5XAojPoLbV4mPokp23I1AphFimEqzllTJC3Na";
+ moduleBuffer += "9SDHYowqL98zk2ZB/l+GHklOTo8kffSI1GIGRSINnZskaaiTtx5dniU/cq/xsRRQKQ6ISY1UD2iI6OyTIUzZrmo78BfhLi530uQ4";
+ moduleBuffer += "r2HZYxmU2TRDQIhWzbBKQ07EmHywbsu+HCDAKoKwxRwPhUEIFL1Ehi8dxX5onWGnSgPKA54Kvz8FI8NKjUJ8MHHIC6wRHPnLbJoh";
+ moduleBuffer += "0hqFWiMqzEPUKLQ1ClEjjQeHwgjygTFezwDwOA1wSS6Gx6Ywee6ZdCXV7cXLsgcjmONcDDuiS5aA2AtUvk0U8FABtqoJgQVEp0mm";
+ moduleBuffer += "OvUHUjufAbId+PiJMkRW8hIUETLUusU5FsOAhCULKANG5ulyLyuRKlIGt7b9ZcFzS9tqPRzQ1QkVLJ0o+wf6kvX620d3GqtP0P6W";
+ moduleBuffer += "w6yXrczA+Era374aKKzocr2iv330t2oVXH+bNWpCpmjG6raF8cgOxgDEcJ1nZvamqfamP0dnmWpvnjCD602/0pum2pt+tTeN9qNf";
+ moduleBuffer += "qXoZB9qzNewpOGwNPZSfFkO2fDKac4BwaLoaEcx4wegLGsI55QLu+1JQfqmJ1VY21dOm9mDtT5ghKEFtI2SolZ+2wDuqi4ktQtmP";
+ moduleBuffer += "hLJaH/QEKj2qSvZeUjsRl2VCo+R1YFl5rTGId54KVUWIsXV0IaHFmaWqeq5UsHq9CuDVVboqUroqFEInFboK9FtELrL8VE2t2NJJ";
+ moduleBuffer += "4hihMMbftB8TguwVNPtSwQjj2vSjYx753kOz0DGfeNrSV/+EIDK5p9IN9awH8R8Vp75GvjnwmhtA9N90Q7erO0pcDL5GSmhJelzU";
+ moduleBuffer += "Jb0Tq2EhcBlzF2keLyd8Oem9LHsPXo74cqQvW+gPojkmNuwCXjZ82diXZ33UHpu0WdPjouPhNY+veXwtn/U1jPfmnthInfuHNdaV";
+ moduleBuffer += "8LOFyQ4QhHyE/D2Aziv2lFlOr/+lFV93BAMyDA9HOLzsqchCwRPivQMT0YK0CQyGFOTdMAYMQ2V2rZ4yvojhL2PEyaEkSK43tBU2";
+ moduleBuffer += "TB7y+zJgRz9ilUHwgkOgthAqgoiGtRiDTI2dCJy+tDiM3Az/5sGGMy3j6EQ9jw8FvG48WpUkBiVLgYZ1/Mto3wYWDZciVakHYiFQ";
+ moduleBuffer += "AgM4VsoLC5UXdgBQCDo/TzQor4Z+wG4ertfNHgf+rKh2ajsuF41qF5RR7QKNakcuVIUQxcFjLrKdptpNxInjLdDng77Gaz1oSh0Q";
+ moduleBuffer += "p3VoIVBpZGA91Fao6dxdMiQptDHqE3aef01OcLVX5wm3fVX5UgsCEh5WNzxtysAhhL75M1+Z7KY7x9GE7LuKkcpMxbnUCVuihVZQ";
+ moduleBuffer += "ONLUXIqaaGqqgCtfPAnUxewnVFafq+H9xhlECUyoVS7TGB1CVlVJg94w3II6EVXaDiApOM9Nghqzcm9ErCDVSJt/12571vx7d9uK";
+ moduleBuffer += "X6LbjhvfrG++vieOhryirXF42uS/x9oNQlnCoP/sIG8T2DJvtyhyaBPfcgSusmcHgEuC1ILEs8o3KO1Y1xlUf/gQEgQcAYOQf6aQ";
+ moduleBuffer += "McABMVnHqGIRBQZpT6wQ5PV8AFIAycKoPcnV9tkI6Ia8Bdj2CAILJ2gAb5TDdjRvrgPly/jIsYogED8nyPaWegg5PtIKbrR04yTC";
+ moduleBuffer += "qCh9lScXldSEIu5DgJDHsIDm7pcy9C/61nAEOrXsTkLDNpXIU0FU3c4JYF9F9jwPitZM2qNeAoTVK6j2fgXbVbV4Mo7yg04RTEgL";
+ moduleBuffer += "zmCpuAZdslNssOE8IOEN1Y747KfG1FzMd/Xd4tFgSic9mBQymI3BYTusGfK8ROLMFadL9rkn0OSDntqEjuscTLvZ/UQ2uB48KGga";
+ moduleBuffer += "ItKoY6oswFfSVD3W4NOv7YSkLqJLOzVQbakmX90GbFjuUxtEQqMrpANs0EEn5AmsoS3k1NU4ZtoWnQyLV9qrQ6XIyQedAMC61TXe";
+ moduleBuffer += "EJh6Reni64kdn2Pe5OtGUSvWy6luzkcCIVTqLrRirWhe24GzRZH2oCDG1PoaxppNOUE7aeWh+h5wAqcWoocBsiKuXMhGpVqM+xLp";
+ moduleBuffer += "zh8x7LP6RzaK4/dYESLIKKBFMvpXRYcjJ3vx0Pf2esVY8bRcNMw0er15rQov4Avu974S2PMl9ytf2Xiv+0qYN7slLjX9MPGBaamF";
+ moduleBuffer += "fOAIKsMP+OUHZGGxmzx4HGTlAV138gF1RCD+2HAFBEiX3Rv7If30zM6+L5TMpVZx1LGIfRGBpL0TgVWHjr/tzzcXhl/4czD8+koA";
+ moduleBuffer += "mN9cYH3mvBnEu/VLsbhrNrKFX5Luc0P3hX3QfT8yKk2fKmWCGSM1FjsP7fHA9U6bToLAlHQgA1EGAdVdFA2xfJnQxaHHhWLaHLtw";
+ moduleBuffer += "uRoIBts7A7sIq3c5YdDHiyOPO8WfjAWccI/33gz1TWis0vKFjV9zLwireF0BwPxi2lt7vZp5XJcn2f5UpW3Z88laRO00vbxmssjX";
+ moduleBuffer += "MptXkavR9KHxbRv/sfRCzsuojyPlr6wa/1GRstqhNZKT7egiRI66nrCuVkb2c8M9LtNuM90CqsplQOna9xfOwzOcpME0fP7sNoIz";
+ moduleBuffer += "cAJTRF2ccuoPeJ9Zlyd3n1qXJ723SKhPGBODPyFrEtgA4eBPTgNxv4jEffIacAncgBLlBlJJXpsnN3Dfl3Ep2RQdH031OjVl2/0b";
+ moduleBuffer += "1oK/X3uDNOCM18ifha/BzzqK7dgZW8tVA4yAOzgv0xvW3gDO5DRwJovImaAanaBrZzJKMizJoCR6JIb8UIg3A7Ijt/zi63hei/iX";
+ moduleBuffer += "XMH/psv3Kbt8j3q9edwJezO5E/Xmcifum81YmKtLibD7NV6d8mMkLY7bc3YMbvZvRorHMArWGZQSIitKKXKhU/IyFoWsEeYsHRPe";
+ moduleBuffer += "bHQqh9V5HFUncexuyrnvW6D4bZGSD0ItJW60HQJksR77ewLyPbWmsiEpDExe6cM27SIe8KGMDqwAc5ffRtDeup6CNU4CwAdAfABB";
+ moduleBuffer += "apwdJpO8lGKylqHzIV0yea5rzDMGgpK3LxIWbfZbVD32vxU2ym+zRsL2QkPzBCLOPWMhP2vq5lqXf1K/yQ6ThzvgnZuQOoIywA76";
+ moduleBuffer += "tIapUzgjwscCzuK5e13EKn4gjygpeECdzlKQ5OC+MZuASIWkSIHoNVhUAuxRH5cMqGI2MuPFDCBK3YOKjQ3wi5WHUHDRK+g3GHKB";
+ moduleBuffer += "MdobET7tl+TO47xNlCdlsRZ0uVwAgeKGygTf57uF4NZRIuf43OjHuoerq6ZRyNFNf7lPIwkiFuxwjifndO8nmblz6QbCx0sS0Nsz";
+ moduleBuffer += "9eTc/5d7bbgTCsSSCr5qtW66+Pr6AXQ5VQ/vt2aTBwdsLECl4rPP1VwYSpN9tlaGqNwfqhuzEydYHcx0WIHuVpEDQiXH2V0Y2e2N";
+ moduleBuffer += "boUIC7NnhHXJ3lvLA4cCtN3vFpvvEHLpK4wG3epSJ6UoBRrWmWG7kSxlFTsDpU+PJkixdzlzFH72GUA2P9iLoqkDonbc5dBIzoff";
+ moduleBuffer += "JGTamdkXIxcotnj6jZKSS0rp/xRINYHscnCge5K++mylrz73IvfVt8MZfbVZzuDt75S++gzweXY22Sm+6yv02i/QV5+eZ199dzv7";
+ moduleBuffer += "6ku9vtr0LvbVl07UVx+zdEoP3y7voVYE1YDUTQ1IrR6ofQGphYk54Gl3AL7uRhBBjkTxSxLFP3FEajXroj2Vi0jt07uwEpE6cFtc";
+ moduleBuffer += "blHqGs+aX+x8/vmH8y9zMv+bHsuPQC4YVEIL0TIlzglcTM3TbbC6pfUzYzMvg3ap8C5hx+BMvH/1896tq7EtP++tzT4PatHQ3I0B";
+ moduleBuffer += "jiU5ITIA3aQ3wHZJ+KA82eBcTfNohxBoNcTEKEvQZaJvWJsJ3CTq+aGNW6QRWHd+Bj7vMgEayjdRLPiDXsh0t+Y6KqgnVWgNm0tA";
+ moduleBuffer += "xSYjmFOHk33DCfbKwYJi1PJvnqoczEpvWPffqAcy41mkwVB/jU4g9isNu6VDS20woYNKMA3YMXKIyntowYsLSu64/PaYn1PxyhVn";
+ moduleBuffer += "d3eOaOasso7+InP450zgFzx7/02n7kOWojwcWJUrVj3tFuh8myi3haDXmjgVUCFLq4iaS5SDqKNxS3fK43r2dQqffSAT1BE+2mNQ";
+ moduleBuffer += "gB8kDF0a4AfiiaX4EbIkdhnKYpyx7IeJtaOIhOP7IXLXtFJqNIFUvno4QBPe/Qq/rTBXR5PJzkJpxMJia9Rl6F6k6Ox9zu+2By1o";
+ moduleBuffer += "PeAsakAzaCo5sWBUwTdJTY4TSheErSxhXwHl/yXRaB5Yk8GqIqZkZT20EVygKoCjzrhR1EEGNloGUVtCvqsRVLmeQ8vr6bqGjJWD";
+ moduleBuffer += "F3PwijrDjUGd6/WwXwBZIWwRkaCwrRiQU6PCmDaUbhuTnaRxabi+8HCyNfiVQo4wbCaN4sCX9npFI/vnZAmwcYxOAqNzP8HKIHU2";
+ moduleBuffer += "0mnIvmQd7Y3uY60eAA03MWC/QbRIh26KLBs4HTpZsXwSJ2FxzFyaZ7L76N2HzKVrO7SzlgwX0aUMP2sXyZ/8ouuX0LhZ5Y4J+2Mt";
+ moduleBuffer += "8toURFmjAF3mht/yGi49ZEiUy9ChLQq4lJRQ+Z0MtSloIHjFkvYw3Pm7xbq1ufTIohI7oe4qPd0ZKrzfkTosEpK7CEB61PPhK1s4";
+ moduleBuffer += "T5GpowBhstSvL6ZuvmXDa9e2AsaSFmJ8+FJYZ/kNkphTefsstYBpj/Ijr+/1WjmIWXH8/fs8fLnwJwcCz/h1OIar/8SlLeG+pBCv";
+ moduleBuffer += "PdqswYjrrBmPRpvp3MnoOKmrnCbF36z/7VZcSbBOKllxWOZ7FuJXi0dQJKNH9K9XrS22yxSm5tgU75b36ak/VJzZ5QA2r6SL/+vX";
+ moduleBuffer += "Fv+D2u5i1SUtuvDxl0Y6qH7Lfu+omRyIjCcz2ENhg1qYfxle+53rXQnC4zF9/EpbUvFmqQD9feqF7CbAF2ATo/4mst2SJWA/wKay";
+ moduleBuffer += "9/TyVqQjchgUmB0cDJO+4ttX/L5XXMZpr9EbR/B40tv3b8hHN+AwitTpJbbrtk4oAP2lVb6i5dl5g3K9Sygi5mjVL9a5gvvLqHuO";
+ moduleBuffer += "dMlHGoE7Uk7JZ/juVEO3A7OMMY4xHrFzyOGC64SYQ8tp1bLcM+Uvv/wVlL9C/uKwREU02amH/EjWZozwZjsr/t+2kb3MR+ZI1kMd";
+ moduleBuffer += "y3RI5klnCJW/GItiqOVXV5/kjBGx1yv+WN5NIBCPtSGxYqnEMA/rKpibryEj0fqW6tlbyrO1igf27yXP1lI9OwOQ7/icY8tiyz62";
+ moduleBuffer += "1JRRNqi8owAR2PlaCljMrY+717KOyf6ezOtwzt0x65glQvqGV7QQohb2AXKPNS2bsO0/WKn51ZugehP2brB1S+eREtaUJG9BspeA";
+ moduleBuffer += "JR2TutRgEpwUf/ulvdRfJIjDaYrrrG5nvQ6AGr0DiU+OBK1sU7dyIdJBE6aK7JDq7EjxDSiuyPbWiWM4Ca3HJA3r2kP4A9lkplxR";
+ moduleBuffer += "nSoGuufV1SlDsqPq+/ZoUPGhnIiPKcPby3HQzjCFyRxlsvNrXA9bBUVTTIsUyiJl5Zspd94rJWvUgB2MGh+mauWC7drqG+S7ckBQ";
+ moduleBuffer += "N5TmyTle+3wgbAn5ioPsJaByUqAljk6oUUDlCwHeCPsqkFQeo349fEcVOWgdmK3Bfsc5DoGGwQVqwQXo5pYMwAJ09DBV9FHPutIn";
+ moduleBuffer += "4hbObsKOTNPIMFTGTKZW6Sut0XFCNbgJbRRsf7k32m6oWjWXY9C3ToBne2fREJYS3zHPO8+boK2l5PMmzvOIJwTi18eKyfhGMD7h";
+ moduleBuffer += "LaoGrUPTRmn5nQkRRqsEOCEQZxIhthA5kL7wnzdONLZKPfsM4o8nYDIQFjzS2tKYeaWn4XU08jvNRxUiEyYaK/DiJdJj4czQdjSr";
+ moduleBuffer += "T4DlGYHyEvLvMto7V2sw8/v1E33fxlcM1naSAsHTOvVLWwBSAp35RReU3iAo/eUAiUSw+CGNmL5qksToiq6QlO8iEb4Ke0KMdciP";
+ moduleBuffer += "ykNhe4sg+z/4cI0eh/V8CHpJ2cggWlvUhd3bKYCwyRd1O0OVaHijIHbj4oG9Gi8e6JL8PkFG8WdpsW+vRmU3sO9nmBb5w467oHh0";
+ moduleBuffer += "bymGY4IQxJe1amrHinKf3Kux47XfegZEfXVuMQzgUPH/XdGSni7Ci1m9USkBhZzimHHVDROXC+CmGxCWnjA2dgjt2KzoFmGvq2xR";
+ moduleBuffer += "RWi7q9hiQ90baINXKFW63Ltw1pAxENzN/vmGhJr7GTcICCefP7bXfT60WC6yzWI1RxRmylgXwbWFf5MMu3+T/LTB2S4kTMyVLa4r";
+ moduleBuffer += "oy/RgAFAthoovpHbmH9YagyC4mP/N2RCVxvKrWE1MIqt4Hwjl9UezGS5j43IZRRnS4rVhq00093ipXaWpTQMtEsytYsw4lG93Gu3";
+ moduleBuffer += "IT3V9a4FNKzVcb4AKnejG4qvi74JNfsCqNlfAlarqQdEMx/GAdHUXa6Zu9BITAAAPgPhNUuGranbb1Mtppp6AujjhpTO3a0GzT/U";
+ moduleBuffer += "8jJtLH8rfP/Z/oWy48gyrGGobaVq1BUDKfaIB964M6pQbIAFjYgfy9SzNPU4mbwa9OhIfammNrvW0Exh0mShvHTCAqblZ+kvYb5H";
+ moduleBuffer += "J1w1rsJHrssH+SLeIQTbuHwEkLVqfFTL7R1HpwYbMiNvnAs515RPQRdQXSHLHlRA4UF8JLSW4YOEjCtvRhQ8bsJ96zopVB0nPu9p";
+ moduleBuffer += "5TG8g8UAnM0HFXy4xkpNeP+Nr3irJryWPBqG1crD0nwPGomGPNPqahwvcO/P+TRJ3e+rh46wwjS0od6bXR4UuyL6ZBcPyLMNvorH";
+ moduleBuffer += "dicqODnXmpeeR4NwavQ0qdjn0XXK5m92ETFzBJN9l0+TvQegraUXgIEcYoBSE315gLFw7bsDaN9+H6CXlKoPqJQBkWR06g0odTEA";
+ moduleBuffer += "YX1T0o09SgcKCl2lZa5UY6UER5MuGeptwlBjo1845m8lMbMQDD4NNPbz2wvVcsTXW6VK9ChjMIH7IHN/WCPpne2PyZo1NjIGheuw";
+ moduleBuffer += "pcgX5qMO2HcUeJ0HvjMtvCtB7vEnFLJF2Nx6JI8a2gzkwHZRw3aRL1zubY0sr6xnvDL2zR4Yc+SAKLVqhEcLs00hjf2kNrXsU7p/";
+ moduleBuffer += "MlpPdI4ZPt+kPLLs7lsvWZ2IdKZFYCkGugCXrHe4c0ZFbAEXWEYKKw/GUD/fWHMulUDAzhsfr8G4OLHl1tAvttxkWpjUFuC0p9Rt";
+ moduleBuffer += "v4igZfFLejwpbrNoDa2ZD+BVDZa+jgN8DQlDDQsHRzQqnLLdIH3k43CCkkstTy5SWUW1sBgJvrqD1EEyUINVVh21HdDagryWFYLW";
+ moduleBuffer += "gAq98XryRw1tHnbtCEvM2TX7ui/6gH5W/mbm80SfO0vushaJJVx81TlptWx1GxTsaASE4XZNR8lXjZ4M0Ij0bAtsTlQ8A/lSscQd";
+ moduleBuffer += "qhgp79TzzbWSuI+PlqpWiIQpCNioWNwtlqsZVKzDrfQshlhGVs8dS8hKWvN8KsRqqhDTo6SodzlZ9KNolatIXK2ICaUiFMfEkBKR";
+ moduleBuffer += "UO6VldtjSfJde76MWlo0ulqOLSLVDWKftfPGRxQLfMHZPsUUpIvdJJNzEp7rRS17X9D3QMgy0KQNJ0LbHCuUO6SjnpWOyiSQ9+/t";
+ moduleBuffer += "cGPyICD1yzCpeyOYr0L06ZWhL03unuPNMotfZunTEVqRJqWjrdzrhVENVAAkz5x8s6WirVZpV99S8WhL98CW6hFb5Wk763XTe72h";
+ moduleBuffer += "4kc2+njQ7eC6Le52lpQGV8HZ/pZ4IjhKMCZHMeOM2By73qMWxau8Iblle7MOed6sjQiS0Q8ZeFXpEJmK/NyvDpGxPgjaU4H0fnal";
+ moduleBuffer += "hlw055gMO42H7cgUC9x88IpB3C+00xcmmYEVfduwn8Nd0sFODTo6oRYgqlZF7obdFaViHgzk/FdAmpB7qkSrdKj6baXZnkiYe33T";
+ moduleBuffer += "U+c2nCZyRiyW613SmUtL1cHxVCN57Yh75m67UusGKzlPL2Fjp1MdjGlJPaNM3Z8qnMr+3vsYoG0yQEdS7fqd8nunguPG7VORIgN1";
+ moduleBuffer += "1mr/d2lUuYOn34G4WzxpsvXtttxskKTFlrAIik1yN1zWbSv8WnpQtgjaXd7dF1qqg7U49Tz/OCzez8JU0ZocEVbuOft7ZzoRbLYn";
+ moduleBuffer += "wmnSQaeBiW7qfQbOHPPC03mRuXmRVVdodV5katvv6+m3vfTqOgLwd50nHwB86Fi30+ngwbGShozhyHXtRJA7+SWMCa5xX4mrMxlZ";
+ moduleBuffer += "ifo7w28rrIS502rH2Q4Dy0StdlSpdqQHvat9hNpHs2qvK6MGMF6veBkJQ0NzZSiMsm+Sg7qm7fTJcvPqTs12SzGmiEXj3exR8msr";
+ moduleBuffer += "2rRhOLdN48txZLy4RUnkkx5Nm2WJedlbAy2mrg4+NSZ+wgdb82oVzZlzvD8434OMACf8cu//Vn710x4abOQwtuSjMqy+WoO6MBFg";
+ moduleBuffer += "XmlfU1LjXO7Xgdoex69r2i+Tkkcxn7SUsDjTTjXeLAatTc7spRPeoFxeNuElViyBQ5/FXUO3WViWbTXdbHuiliuwQoM5uu52Ya6S";
+ moduleBuffer += "DhwongoFqBG/wO4AfE7zjko209A6jrrcR70y++gE89XPq4RcZLk4pDIcjuyxqLcnhXqkuj2JX/RUytJU/OwZZStFGrldKC0N4Bcx";
+ moduleBuffer += "1CSCOPCFReUWv0gPwli3I+c6ham+ybRfivSNpl3HdQOAc+Q6ZdqMy7FO7XVe26aR0I1t4rFcpzgr17Y9XR2DnCU67Uek3BEsg4be";
+ moduleBuffer += "D4xawPk42wZEjAElskC5d4ZwV8veYYDr3kQxJb16irx2Ch0nsXZOOdtPuXZOgeWd5stPwdpZYWVFg6OeMluxvCac4ZlYGZ/2iYTd";
+ moduleBuffer += "ycke2WU7mA9Csxqg6wbx2ZdocYOw6srzSq6AXt5D+ZlCheRnKl1SZDdeL1lXTWYHyKUDKlvuhUIaRZcPoQqujCEbTyGUXy/hmA0q";
+ moduleBuffer += "F68vSs5TyrEa0sEdYpSrhjzgAA2UQyucidUHN5SAauD9gRJcnZjJ7FXyLWRxdIq1pZdl5rVPkVcSvOImWgPzcAgzUL6HiakhtlC5";
+ moduleBuffer += "8huLV3pZg6wVp9pIb6rlI7Y+OsvkIvUZ6dWHs26kb9aN2FmH6TSAyXedrCDOo0ZvHknZHcQQMH078kYD6yVukjoFN9j5OmXn6zqZ";
+ moduleBuffer += "rqP3IhCaTMqBNiO0bjG0OoNUfkwuL0URA1S2jID88tqDeYqgyQh5AwN3eWtUAz9lGofJDmoTrXC7flN3fQokRlZ656qwgv0f58Jb";
+ moduleBuffer += "v1re/K7HobkJfUsnQ541ZXtkb7gcemAY9zPQy4Ww6z4PZw3KukB1oStgDwxH6Rgbwrg7bvyr5JfMld/H54r0pvO9P9AANzycqkcT";
+ moduleBuffer += "nfqbeuzBpribfYWQQ+gJf1Trkeeh9GMkfVjDekefNTAoGraDde7Ueocd9udMGj7W5UYopUtRea8npF6Q9tThy9BEA0fkwpC67KVM";
+ moduleBuffer += "ZT+Q7KQq2eHm27STPu7tls08s7tlE7M06+2WTUzirJzE5afdpsnByspNs1q10I4Vgk3ZCX3acu8CmQ2k4Joaf50Rfk7ro95YRkMS";
+ moduleBuffer += "bXyCzTUccktKsm0rjuZ8qe18kHU7Y3fWDeenl/mmahAMnDGTdt5Y09/3WTINtDPkK8u9fTGCaFzUgrv7d2nE8HDJHQXF7tTSW6TF";
+ moduleBuffer += "9qVdG4YKdwfTKtV2SO6Gy7vDqbpW2kqc4306Pt/7TqoSmZ2WTtxYm/AfSHuU2v5U3aufTGeQO6aMFqkuE5ZKCx25E1aI9LCf3PFB";
+ moduleBuffer += "7oR95M5Bz9k0Nrtq/+ll+8gaZeqCjZ9leQg1/3wAgINMprF7Iou7qthoahweIZN8W4qaew+WTtzF9iPTXvamIB+AHQrU3TAXz/4s";
+ moduleBuffer += "0Iw19zENnwERCbe8SB2q3aojZ85WuyduEkY6+yJdNL6FSI9caCmlRCLlaSO7GHwXCYfkv1ex+pEx5/ml7XWMIk8vv5JHTy8o8z0c";
+ moduleBuffer += "V3cp+jy2Nq88roxKfi0+hZ1M0CQ71tEoK+PqaLSOpuLOEuG5k1TI1yCpMNZD27PHHWPXhnZBGyzosLegDRZ0WC5oU65ko97/rhON";
+ moduleBuffer += "dqIrO5xN/rTg88MzSZlbuQyDHspd17UYcazvjGopZRTMoIwWl6t7uFzX5Xp1a5SztmWDIPeWNTf83qI/yGhDvQ0h4Ga9uOSTEK9o";
+ moduleBuffer += "uPoJbAOXlAsvABTbzrSb/bkwoCrPYoiR7bEdQ1gIl6dTYrlr2WMTZfcTsp5NAjJMwzYUrGe5Fexv9H+cS31XQytJtvM5GBj0QFRY";
+ moduleBuffer += "X/rFZT0W9aCC5BebQ1n+vagjGoY6pbF7mcRABtX5zAjlPKsCO2svgZCBW2ybbChEwVOsuvSDut8FKv3v8Z7kMcpNDQ4AocrGAzXj";
+ moduleBuffer += "k/ql5e0YJfzVZl/DWMH4dYl6jwm/utEovzqFEd5mqrvrFiD/u07EW+MTCCZDrCpibmm2naZbqQTCBYTVENoZYX4ChP2SDnnACr23";
+ moduleBuffer += "xn1Wvy7Q92Z4Ok8Z3W/HrdhJRVEdP/vXmlUKwYEUW8z30/MqgotiEZZloosZZvnZzW5m5CbbRtEHpL1HfUWepopFUSY0etbRyqD2";
+ moduleBuffer += "TVg7vXf1D3pFDHDYq4oBenPacf2XqLPl0b6XNIaXHKt9n1nc9wlKS/o+wwO2+ik5w9yn8NVLciFuTsXHgm72BbaOiEDybXjMjrqZ";
+ moduleBuffer += "pBUA6dObTUbrUJ1RvlakOqtCrUnfzOqc1T+3EijAdbFi5Y5qXOmzdMme2luyupYzEK0JCC5jP5TQW7m8WVGe5WjPwYbdb718QVUE";
+ moduleBuffer += "tmCGCGzBbBGYqYrAFswWgZmqCGyBYm/IhxYWT8v+vbDYHqmGH8qLhWd774gmvO8k8tsIyZBYJQh22oXFkwkgm1KXXU84qKWcoB2H";
+ moduleBuffer += "Bdl+yrzP9syEp6G+eRxZgYDWBBXu6V/OVTiptFQoueouVO1N43vWkvckVq3A2DleO6FBq33cZ9Aaao7IGbSGcxu04sUTGbRa144e";
+ moduleBuffer += "EsqLYNA6z8b+5OSN/ckLbexP/iM29scnb+yPX2hjf/wfsbHPnryxz77Qxj77H7GxPzt5Y3/2Qhv7s3/Txj4NTIjUBSpWUAhfQSF8";
+ moduleBuffer += "BYXwRwgD4QP/gdxGrIqSxPogEPjB99Z1GjOAHxrzBH6o5fXZwA+xAj9EDtdBXqBv/Wol1xTmEvwGU1bkFimYJ9/q9RYBgmdk9iV7";
+ moduleBuffer += "lJ5waN84Y2hP5l9gH+OlX3hoT+Jf8KsY2n/B0PoY2unY6RGPqm9Rdq+vWjOh3f3V/u+y8YcjpTqOO1OEAKYId4EMvOsjwGbaLj9h";
+ moduleBuffer += "t7ADSSvO83czSj30ROcJD6Hc/C482xJrScIyZDvVqalYJH32XEzUL60Hab8OEVJDaIMsHEmkrqog94vDvjYvUoTS0J6/gcKWlISE";
+ moduleBuffer += "pKfkNmI0+4c1v/b6+vqKmNbAXDUrokvD9TzQFf+pTUOyFLKZ4MZ2BuCqhRTbtodpeQfLbf+qlp9n+cJuB1F4KWHOGR+W8KIeYUYh";
+ moduleBuffer += "nthpJjvNStRYvxP/8epVr7u3M5SHf5w3OgHuEOX3FUvu7bQuA+tY/BZC4g0V3/Qug+lv3pos8ktbiA+5XajzeDUmaT402VmQHQgR";
+ moduleBuffer += "JHK7WW3WOVA4VrAJmSWmGxDDW5OdFnOeHWyGJL2VL7iU5lGgY6W03D29qlO7ao064k7B56EJ+lPaksfZt6EbkyyrOrWrOy1gRYDH";
+ moduleBuffer += "xwDVr4aG4XeXqCam/rq8df/riLdbex1cV+FojiWcXg2srybdomTNyyrGil6HFwjQgnfi6jvA0i5fq6MyU3QyqU3BnRqNmIQxhTTt";
+ moduleBuffer += "86gNaPayqk2S4FLd6+TncdYz13xnCwfVYZVS7jdNmGPRAWsdoMiG2LIjfON12uJXEXW3I2MVEHa3b7iukFFBEEU6Q1xlAbKleeyj";
+ moduleBuffer += "q9bCOFqmLSz0JHEKOLByvaWtmLOVfgFGrHqmuN6LtSdSGdlOdBU7ISSQEEdM/v4eMC+vWtJpLenEV1dfat3fjlRyPK6TpX8KjHdS";
+ moduleBuffer += "DnKTDlv4on2Q56kd9UynRcSuXO2VP63jWlMhD2TPbloguYTY57jNgDb8SjTu9/Dnd5cs4cc44gHRzGXMU3RtopWOZJwBa5InUvfV";
+ moduleBuffer += "Ngpl2Jel8gwSY93Nb5VeYcn2Vn7kGzvEMcNRMgUzxte/DmbCuAndDXNIQoyENj4lr9FlD79uz+MNXLw0ZIld1dktOnAK5juQE4t9";
+ moduleBuffer += "gKCpciEU0UCeYC9qgtOGugS7QshoqJ0mtU5kkyBoDvmWWtFTtwOAZ4hEZfeVfl6kGbjtZFCEYDIq/h7t7DoDucW9Hcg+E+QoSu7w";
+ moduleBuffer += "0rhT6gw2ikP/9JCXPRJ7jdt8Y9zBVoaPLo68fU8vMDRgco5WE4BFeLyaQB3pih567XiXetzyHjyhDa4ceBZeo4p2a7ft8n5ELRtK";
+ moduleBuffer += "9FshE3Ic4r4VwCDPYVcBmp4UU1v3QEDwJ/WOyZ7x1eEQluLFdn3ANNmwIKwspss03x55X7NOhKXj5IiKjkZ60qRMneiyXkpKz8KK";
+ moduleBuffer += "xMlVD55XPBkZcfHbCSG+yv7BuVZ2TkxSoywgYEs963rWNEBPDKz4xisDb7t7F3jb3bvA205mRv/IRuOHRsY4V1xiKfnLybVAiZGF";
+ moduleBuffer += "ceZaFcHSb8ov4hvx/mk3gcm1T0N9Cn63Lz3NLWTJjPSmpmcz0zNNH56ZPqzpIzPTRzR96cz0pZqez0zPNX1U08/zRxtPD/vDJdCw";
+ moduleBuffer += "HLEaGdk6pCcO+83rtHg0Kc5VqIaeYRl9OizSPrm5aSgFkGoxGhmbwEwwFWzRR8g629aBGtUBLFR7sFgvtG8d36+r5GtA0XQWFKad";
+ moduleBuffer += "8UgeRC1q7dgGLE3bvITtIRtZHBpjBBlG3NJ23Qek7QI5jwZy6lIvWwJQW95O5kNLOg3A2zYAbwsdogaiB8JhBgPvWGX3tKxmaHB1";
+ moduleBuffer += "3Zaqenm6hHAYhENvyaf9G7uI8AnHlRYmI/1nIP2hUixRc+dElQWRBqeC2DdEjROL/BGqPs0GXVIvjdiqJ0IFNy1FiE7hUA6EZsz6";
+ moduleBuffer += "hmSk75UZQ9SgoxGHtymN60V6amKXahZL3Xs8AJvFsFt7VBVCJefu5cDyZdfMK3gmPBY78Mdao35ZTbQz+6tUXasTNVWmp1OrV0Pp";
+ moduleBuffer += "JpaZsks6hhPDLxoIvTt9F7AFisN3OwAtdaAkchbEZ52aUvI1Nc2uoYjQKjZkanVVUpWoYKr8oiGKr+0wBotVQAbekfar1E4YkdPw";
+ moduleBuffer += "d8VpcnpaWPBQlb4W1S5HczIVrpdt0q1uROV6c7R2XJ6MIoA3fasyajTaC6xJr6rgUvX3PehZjAkqDDoQSnca6CR2kcyrZUAeQ+x2";
+ moduleBuffer += "Oi06w71UsfMizXNul0h28ikE/40mB3w/gOZKHd1SLtoibDdAJ9nEepFMtutFLGsNz2nY2Zc9ajfk/3rvASxzkcoMDVkjUMTHbfe8";
+ moduleBuffer += "qVtBqobJqA4gGDE90uztvnrIjaquPAc5yyGhn4qnCMsIgBGp0p0eh5co9tuFhOizNq7C+GYfjWCjtaI9gpW7St4dgApcmCJfje/9";
+ moduleBuffer += "fGTCH1PNHd5J3VsDvUU4gHcvR+4BFHahvEBIC69bwn0AtKaHYz+I+xVo3iBUpuNWLRUyviUuowQ9gOXaEFdpZ6FdSuqWrlg8nWGX";
+ moduleBuffer += "qFDqIAeFB25TJTLWJkjOue1FuIy3T+En24vlzSe9riIDKVh+zI0lhgmCnK3nmE0+uimkryfMEwiVU6LK4VvBK8H/c9LV5SJUDief";
+ moduleBuffer += "WnP6dJUuLpBzUVGAzaQ02dmHyt7Ym44WoiO6lA5VyzC1QetoiE+f5t6TQHKkTVWM7jK65RqrU8Ws81VlaLJDPm3Aimh2Rmtgijya";
+ moduleBuffer += "4QK1FRud8M+FBLmLgcvT7G9lJoPGgkVAdJKyWBLsk5UL6b1czglVu45qk8YA5SsbyUkKa6iKE/VS2P8V8ivjr9k1xFtaSdMo7rtX";
+ moduleBuffer += "tr2XF4fvLbc9VWZWZpwwR43cTZahfOFc06Y68aqTSEN8EMXKsms6DREKiz40QVkWpoU1mlsGzgIGODx9RjGxsFAXEDaOk45wntgb";
+ moduleBuffer += "aqWvRLYz7fBM3eyrChpuOqab3azyHsR8JwFlzz12o/pKhLrsAws8reCLpsx3uVbDTlmEjh/uVr5rEUg5kXXS1nXS6oT1ecgEMmVp";
+ moduleBuffer += "vY34iZ2IpwpumiQAcSzU7LEQzDiIAxq0lQ9xZtQqxzTsCpQ0ICilquGb6paW5g6xABHj3xDb9sqsK47KMVeMF9vvscPujr+dLgEe";
+ moduleBuffer += "PIt1i1mEIgbzU6wK/ai1Rit2yivZHYg80aJ1KnvXhoeEqzHPsmWnOdQnoYrL6Q2bG9Cy8iezhyfcrXBQylbql2ekh+3THpXquguH";
+ moduleBuffer += "5MqZqYob1qypRPYXZ2EADaoNbNuiAIElyt7pF2daZMJB7i8VoEJq52HyjUXPGAYhh74jbTdrJx2gj32Yh9NFeFNXrRKgaqX7bsQs";
+ moduleBuffer += "9mvETAglF1+VsgbXaiF+V0FqJksMQ3xYaloBBnrC4t7mDifZKzbQacU7+IcvNdnWtGPDmhhFCzNwV1Js9baVksWKEauADPRwtAYf";
+ moduleBuffer += "IbZOhqrz6EwIszFMJ4Uittxfxlmts83p0zppySdZlC9P3a8jnZTGklnldpXo64SdbZAdBPPrNb7bg8kJdfNf7o0jTKDaZ5vs/dhC";
+ moduleBuffer += "ZiFCGOQChPKAnxjIS51IZ02LLrl+9nioBDdpj9BGVgFVSxmtnMFPcL+3T7C5bwBsiqynSX0IEW92OFHz3vJ1ZHKvu4KR/v4UhsRw";
+ moduleBuffer += "8F8hE2RFTntl6sXV5qTxkUgBbQEoEdB74XDoqK9doaoiYRIhCyh71s43WFCn2X+ntZFNHacznE2NikBTDxFrRhKYnLhk+CpWk31N";
+ moduleBuffer += "vk+hRvMak+OiockHbe7Y5j5Fk4/b3InNvUyTAVpTL3PXpQqaDvc+wjUwveGyH52R3dZwa6CFR7bwxZoMm5Co/GZURJp8JJiz9dM2";
+ moduleBuffer += "uWaT2cyg2GR6uXH2/dDP9qcrvTEcPKE6VHiwl3vAdEIYgsgk32nWWhMOudkh4yq3G+ztfXo7ZW/v0tt1erdd716rd9v07ka926p3";
+ moduleBuffer += "1+ndFr27Vu826901erdJ717dF1gkJWqkVJam9miiHe4ekiTEPB24cuMxPSABD/SwYRbp8octDOVVuYvHEQDK+lXSV5WQuJ6FD9pA";
+ moduleBuffer += "4ySiMB+Jgvr68PXmD20EudI2zmT3Wf28mvTluvqh7vfXA/tA+fucB6Tsvdu/tRfWRkOIB0lZHXaUwr+ow9OrA7MaogVFBLEp4xaG";
+ moduleBuffer += "SlVoVAxEu5FdOlaLfCL+Uw/BX1cu6cTZP0ay40lZ4VlyCuL/7KN+toAbVrYfXuzYKSHRMBZsHlKPyH0OoTEpnJ0kuTXcze5JLdoQ";
+ moduleBuffer += "fxd3Mm5orP6xSrxWq4i6sZoAw5GUswxdclnHKV8qGGXj7cHsfUbGbvClRjfFzNU3OctkC2UXcvUMy3p6nQT1dOEcA9mhehXU/RnB";
+ moduleBuffer += "ZG5DBLQITUiyu/sqzjySVmzUBuABZZpoSvHE43u94jPYr87sFgdws+UJuLYHniJVkEIytHk0CslLc2O/2LRnDwlNH/qkCyXhOVKb";
+ moduleBuffer += "PqfjeaSJAOFALgje9EclvwKUyDHfbPMyTJR6fynh6YV6HCiefkhyfTpqm+Ko/RXwdQTscg7ORP1/2tcaHZHrao0T6OcDE8EhXFsT";
+ moduleBuffer += "wUFcmxPBflwbE8E0qgN/111AM5NN19elw2iAjaeNWbBeGb9Aj8lQBUPlEUppUaLnaqrgzTUlLOtqI9rQE5iwwcPSIAjZVLw0Irw3";
+ moduleBuffer += "RGtCzfsAjRqiQK29gNAX7YUUo7Uhf/MZwlX+ME4irGKGuypRG8oXdFXmNphnXZXKtfKBrsrthPhRfE4oYrsq+0vy1AIEC1Fs45gE";
+ moduleBuffer += "hJTxGt80vq8SuaNOi5r7isWogc4LF03HL4LJ4qwrq49i+yiAc1FYOhfR7kby3/eoAiPIsK30xiXX/wJS/2VK0kj3v5ILAjPkVcpE";
+ moduleBuffer += "0imJVlHZe8i+vFrDcVzD4AiOirKGRQQfUAWifw0VjTYyeyT0jbUJk+H8qyV+WyEFSyvjpV31XvIYI2uzixCOrYv7q9LJ9MwRYvkH";
+ moduleBuffer += "wWwcql/kHyiUJvExlnstblxS7pv9brFhpxDNz2qYdqP0ID7dzIkfMWBXtqsE0oYVDWSRhk+bTymnENN/aV8pS1t0xDodpfjzKuUM";
+ moduleBuffer += "RgQY7StltMXLWSglmFcpLyW9uayvlGUtYl0sZ/S6eZXyP8PdAmxspZRzWxEuL0cp0bxKOQ8rtrigr5QLWjEuv4FS4nmV8psIokFh";
+ moduleBuffer += "TqWYC1sJLmtQTDKvYi7ChkGo0Uoxl7dSXK5AMem8ivmdNmBQHu0v5mpgpyz3/lcUU5tXMf8dG1bxRH8xv9+q4/K/oZj6vIr539sD";
+ moduleBuffer += "1suwUsyrW3z2ByimMa9i/i9smPC3qxZzbauJy/+DYprzKuZ/UHxyrL+YG1stXP4IxbTmVcxN2LDldOsrZl1rAJfXoZiBeRXz+jZI";
+ moduleBuffer += "kQ2mr5gNpjWI620M5Tg4r4JuNzgzQN9WS9pkWhmud7KkbF4lvcm0EThkS39JW0xrCNe3sqSheZX0NtNeJBm39Ze0zbQW4PoXLGnB";
+ moduleBuffer += "vEp6l2mfIhnv6i/pLtNaiOvdLGnhvEq6x7QXS8Yd/SXtMK1hXO9nScPzKumDpi3EWPFAf0kPmNYiXB9kSYvmVdJHTftUybi7v6Td";
+ moduleBuffer += "pnUKrp9kSafMq6RPmTZ8Mfb1l7TPtBbj+mmWtHheJX3GtJdgK+ov6YBpjeD6BZY0Mq+SvmjaS7Eb9Zf0qGmdiutjLOnUeZX0VdM+";
+ moduleBuffer += "HRtSf0lPmNZpuH6dJZ02r5K+YdpnYE/qL+lJ01qC63dY0pJ5lfQPpn0mtqX+kp42raW4/hNLWjqvkp4xbUTqOdZf0jHTOh3Xf2FJ";
+ moduleBuffer += "p8+rpB+ZdhubU39Jz5nWGbj+lCWdMa+SfmbaHexPfo8CYiDPDb4lY27Dj+LM/sIUmxGbklB7MAvorPTOlEt7pXeGXPKV3ulyOXOl";
+ moduleBuffer += "t1QuZyCsq5+fvpKBbJeu9E6Vy5KVHiR+p630Fsvl1JXeKVCarPQWyWWxAr2dstJbKJdFKz0hmfPhld6QXBau9ID+tmClNyiXoZXe";
+ moduleBuffer += "ACDhVnrCSeSDwOfx4VmJ2rVWehA9NFfCIjxvWNCTlR6EHbWVHuQPKSClSsgUoXAhEopWehTSrvRA15LwVCJ/o9+Y1Ylnsh8Yeja0";
+ moduleBuffer += "j5pn2LSRStrpNi2vpC21aWOVtCU2bbySdppNW1FJO9Wmraqkjdi0Syppi23aVZW0U2zaKytpi2zaqyppwzbtmkraQpt2XSVtgU17";
+ moduleBuffer += "bSVtyKZNmUpiZhM3VhMHbeLmauKATdxaTWzZxO3VxKZNvK+a2LCJO6uJdZu4q5pYs4nT1cTUJu6vJiY28WA1MbaJh6qJkU08XE0M";
+ moduleBuffer += "beKRamJgE49WE32beLyaaFx/+r1EEFWbiRHiyZoNhdgnL5eH53inn+/51n1nuXemIgcQUYoA4J2XVLQx5/aAFazC5gIKri2aXSj8";
+ moduleBuffer += "ucKdUd2DUtsWpskrTrXQCvDqy1+iIUnOggcG7Fo9y6YZi5vOAs4jYLpWiALSzxsTrVeZUqjBqMc6geqUPYpZLA4DTBPuC3phPLLN";
+ moduleBuffer += "gH5ary9EvRfgXHZpi8g4qZqsEnkRCgPwicGNGm8puLGTdBlnRxjd4MbsSO00orAmym6OqfAbxa5nP0o+jEDUVYuHTI24tn79Ia84";
+ moduleBuffer += "o9jyjYdUe/IGa8uVqdB+/ZwsIiNcIqw35Ng14wdhFCdpjXuWZ/UoQr7s3Cs8NwWBxTb5nf2tj8lqig/jwVD2qRTT1BR7cZvhloDQ";
+ moduleBuffer += "j5S3lPd8G7cRbqmYPMJCcUud5zO4TXFLveOPcDuCW3pzvumv5PZU3BqtWkgRgyl24cHC4vO4pBQMFvfJ7+xZwk3RBmVrqHFoDmpM";
+ moduleBuffer += "amCTBE6OCDB0MJGrJjsxTLP84rDfpRV5kO3H7bRPlEM+g205UrHvBtmHfeoQEFBVMwdAlUIyTBRTpCQUEDOjfAAmMr7NaL9Fn0IE";
+ moduleBuffer += "BWFqTTrLvl7Tr08Roz0qBrWQ7YAjBoiUyz/k8sfuc282NquPhiV53Rbkq6fjOfr0sMHTurRLG2n0qY+noQ0iHmmhUlSg4tq4mHr7";
+ moduleBuffer += "Hi87EFGGnUPQbmzwIWLAu5+7yp+47IQZwGZ+IKRjIYN2X5s9B22FKh2kGu9N2JmUCrpbOe0gEkVubADwrjz0lj2esL02sjF2IZRD";
+ moduleBuffer += "876QvBqxV2wi4onh7U2m4+F64Q1rc+8GFmojWT7WW+++BbpT0VuqkLLOZknFUp46klmjGOutFmTfT6iFIYRbSBtASVLhXOQ8G30N";
+ moduleBuffer += "JxozOwKQM0UVOsFlS9oAUDU0VDAXtyiDS9fotZkTjzC6sm1sxIOeIX8v6DO/WU74I/0xEFQkZq7tKkaXLnmMnTWhkMeEPlQYbTPB";
+ moduleBuffer += "GPcGqm/4fmoYe0ONDc1J1B2iQx1WtjekNSMEYwHtI6xf5Vg320l/hqs6IVoiv64u0otbTHtlR3Ee6C13m1rjoxEeTrnsLQo5Z90P";
+ moduleBuffer += "ZGM7cPu0V/wXSfim1y124+bJN0yrdPjXrKWH3l5p6X7cHN1qW/qJSktd2D8Z9btq3JUp/UU8Egp+O+GS7GuJ2gQs99I1+FvDQXZZ";
+ moduleBuffer += "8Rt5cBOE+Ndfr/oGWfM3Frv/bpq+n8R2K86UaZk9n6oLjszIHYemKUy1YtCHvIoQVJeAULOQkibqXWKpAcTucfa0X0S4cWd96eLg";
+ moduleBuffer += "AmoS4AaMelyGGym9X/wS3CDMbVgSOrtvCTRjiZ8VWOvBMo57s2rRRo2suhuVYUicg2hs45jQxMHaGlqz2eGZPjGR9Ymx+v0Xrz1v";
+ moduleBuffer += "/TVrz9v+A7Tnsy+kPdmdM5vyjl+fprzz16cp2/4DNOVzzgEwmqyEVsqeBxFlcSayLXVun9Nh9vcAcwOApyqg/oYOcmF2M5KF6gHR";
+ moduleBuffer += "k22m8n9KfiKSbu/Ii+yRt3uTPQhyHjHrOsb5k5f+E14vQiMdE9y985/Qe1ZQA6sdjronbstUPGdbvj13W245cVt6h1pkD7Un3vWr";
+ moduleBuffer += "aste+Cpyiqk9fk6+hzpHYXBgazG5FiEBXt+JAeQDTf+9HWsWLs8ukwQl9jTqImm+sMAcEu6OQiiC30h52XtpKE9+JKL3nMkeVNv5";
+ moduleBuffer += "RsefiYBa2KMy7AUnVLB0+wUN22Vt5p8xGm2vDBGaWzMzRrAQAtU7Ry4gAf6EtItfvNFAQ8sIWcB5yzbIkXxOTrRd+FKwLX6x/+69";
+ moduleBuffer += "tEj3UbNRqsbPoULXh3PptaC4Gc9+9XalcF8lP29BBJYJ/5Va2FWa9XLQHDBG9FfLMyEySE/JzxWabbxUwA9rAkMkFEuVZSOZnD2C";
+ moduleBuffer += "Gtk4oTYs7Li1LgPlXYRXkKD2nM0WrMoY1L4aoo1KSpkvwjce4JwbId0uP4bXqO3jUka0IASEjyWM1mvgM5ofqHcB8hWb/0Eom7tS";
+ moduleBuffer += "TEpftfAl6w+7gHB1fseEGzVS9YFWL7X2f2PqpXsjNfrZjlrhNdTATXofxtdQM4PkWm3dhQwsKGjNqd5avhKidJii0ZYNCfxROxty";
+ moduleBuffer += "52q8nhGSpBuFd5IJe1oBxpekrvTFjR2Obx5eugS2gUV6xRLoxy+RfKBtw/VK8C4FZg0NPIYLE7GqI1z4JAmHu9nd3GRTsCNG92Yu";
+ moduleBuffer += "1SZm7I479tmeCjQEShmITWOGa/C5XZZghc2OM/AvDr9H+LfjGtc596eL5I86wQ2y8NpRIaNLTXxNUbKnzNoiuUnjQ6sBmPZWx7fv";
+ moduleBuffer += "hxYGP8jegyGGr/wXY3afe06risgiZ0L2ckMnlr6LJ6+fLrzfkaLxgsabh7mRcAmYX43GB1xANb9i/4Rd8Ld1ytLxaxyxdX9bGXtS";
+ moduleBuffer += "ytkWn523f8teL3t/QKHA24X7TjsBjPGUBU/LSJAu2jasjYPsTwMaPsUZbFh2Ms5RnD1llOWHe4U8wP6AkNigt1+lggrp5vv8aoy/";
+ moduleBuffer += "nuwqVNdv61QD88BbbFjIsGIAraj4zbbvjNsRv6iC/K6odzBJyN5Qa4elNzq2uxvU+huFyODpCW1jwhcIBAqWFma+eOZn3/IZfFJL";
+ moduleBuffer += "QLQ+GlUHxV0Hphlzhx7hwn8Vp8KyB5zXii4Zs5y+diGsfDAzKafIu9kH6TQ/wrWb3Z/CVQIHQZjdnTZ6h7ae7HpmPwa/tz7hl6++";
+ moduleBuffer += "UOBZAMLtIQwNlnND40tQLgXpY0CZnbGBkGyS7NyQFSyDSPF31DZlzkICsucUpRHhiEj5aeG3qbcIpjWGZPn2YnmbJfdK8G2D2DCe";
+ moduleBuffer += "Jn6bpYL9b2yK/GQ9reMqYR4V9rtkFaWHl2WL2jUYfkV57aVG521YWIxYbowa31yKtKJCHJyyq63iclwBr6r9Xs/kW7bEVYyRo66V";
+ moduleBuffer += "NGj+OAUdOYzPYEVE4fGYfyGnQe5rRPRxPeBt3hEFf1qq+7qdujQljNTGCefpaZxl0uu7spq2wbANoXW5ROU13hSFsWr+n3ZiPa6B";
+ moduleBuffer += "LCt1u70GA0yVaKqgRA31PXWqCd1yACMNw37w0Q1C3o93i/B6TCu79ytgnfRIpS+C8QlGcVVLXOlb55dlDzCtFo4NxPBL9IuJbpu+";
+ moduleBuffer += "jZCim2l1IepejU0FpRSmbf0NTN8i83WRQRYmi8zoIjO/kkVm+heZlUL5lUX2vZkhR4mGiA3gEVZ+uG2Pk9CR+r6LPGCxM2TKN2Fj";
+ moduleBuffer += "hHgZ5jJOPlMcfh821ZAEuBQ2qZuQE4GjN2zgUinn6Pv2WnmFbw/g5V4T9mLVlR7rIrWElVtppjGbR1D4KIes4Ve5gDfZvdcSLuut";
+ moduleBuffer += "NF33A18BmP2CQyG7+hN7uSPTVBFU2buVeJNfo0opcf64oFFNkEg0O3c+CzfIeh24jPanoY1ldaOQKEe+tZfLErtzscPdUEEQVOgd";
+ moduleBuffer += "JWjQ0blCRTpZuqvf/pn1W6zV82hw2VfLZf21LEmVvzWlxoEg4ugPxHOjMA4QvEMRRhcPNH6evwa60kgdJblUQVlv8pWY8S5GhAaZ";
+ moduleBuffer += "Ide3YRxo1qCya69v8UYok5CQ5KmeK/oLL7QoOV3uLS3CtS2sGhWKFffdvc8ruAhtVVpKyQ0XH3nPjCdtwlRzP8AyaxwxfqpsRW4l";
+ moduleBuffer += "xXQAglcNyUAQGHD9CeHYF9LZJmKEJwBqgoRMimaxFe5NOzCHY2v6S6+ZLX4Xfm70nkloWdsJwDZN3yOc0lhx5B7nFJVSWKekE90o";
+ moduleBuffer += "wo6BYxEg1QAiqnQdw6yPKM2aln7gvnVUd37ifoklKTnrE/SgJtV20FeJ+FEnUNVDHfXNvoddgdA2fvbFVM+ZsNcnOIF31RCdDV7Q";
+ moduleBuffer += "5P24Ql/uw576zD/asQ4EzFv3eEh5HRGR1SmyHamHlpA8X6upYmGkr4qhVjnr3VsnX3dferdqK6RqsGkLsx+E2BhlYcrmcLnz5wjO";
+ moduleBuffer += "9q+e8FPnMP+E1+sZetQ/WUlgnOKn3bGHzZaSXtgs/+sHZXwWyK7IqKzYFu1OaPcKZwb6q+7R6Xf/Z+vRT0Brk9PFZ7IIbsqmEqd6";
+ moduleBuffer += "DQDOs4pTnuKeMemJIgTElAvf3uamlMrTQJLBAjVkWw1uhOF9oJG+84Q+xNw2VWcAHGPCCnnZI4FqidTDqlQolCCHgaqQNBK7y2oY";
+ moduleBuffer += "M4+oSo1Pm5LZDXhmGAJ7Gw0Ux01oTPY+6nqxTcvh2VjCMz3bzdMYT4U5Xs9PRRWCQLqNvG62K9ZSQoUq8pmPGijFByao7cXqi188";
+ moduleBuffer += "fUzY3g9hVwKn5NjXzwhFkN0SF6ZB9o4sKfTssKXmVv9he84rySZzIha+lBF8wGrq/Aidf2ykoApkwyQH5CShctCg10gGjykhJp/+";
+ moduleBuffer += "CDlr6/YPZ6lYfRvUMxJtDJyAhu4ORWo1YDzsZLxBmnTVCcxTCk9Ju8YecNLa39I3yRWIr7wmDzSQsVALPQJ8FmUwiDOfOqMr3ceb";
+ moduleBuffer += "VhV4eNoKH/HGoKr1CRaCz1j5gUZKt285skROvEk1mPfvx2DedP/qsdvlh7zHkJWIWztIgqRXo8Z3rDRgvPTEQyiX591/3q2q2pqa";
+ moduleBuffer += "Ov6893tKPKkUZucP9hLUgsc7RD4fV08KHMVKhYx11d0D24Kc6mSGVQvbtCIU8Oi/eIm+O4Cyb9X0ZFaj9GKXFFD4QofIQVwoyaIh";
+ moduleBuffer += "8oLGF0J34JaEJEzJs2nuFrluPIHFOh8tuHCyLREJN0BXlCim6QTp4PE+iBmHzDJGspfRRMd7QgpCjo0JZyFf8xUGXL9HVO8s+0IC";
+ moduleBuffer += "D/mwrR7sdJMtvZFj63MY5g3Ki8YoLFWqDqppfksRR5SGgKSQR3msO4lcJhWCI1TuJ2X0rzSvd+np6Rw/ZdsEM4N4FgXCxLS4gFNZ";
+ moduleBuffer += "Aw2QjKQvbNkMUktf5CosQ2TrnKhnCbAo3G6WKOsFOpv+qHGezvq4xSGB32jHMChybHXR0ZhFEqnAb9Bp0ErbNIxwqGGEw+LIh6eV";
+ moduleBuffer += "CdUwwnoQqYsOKReHdsxTJusB2XClecqwqObWFiWDiqLGOYi2qC1+zx9X5RqeyjWY3ziVPqTXFG/SI+MCfX6JXKa+jpIv1IRz9bIM";
+ moduleBuffer += "Qjg5zs7zV+mJ7Y2WAuxml75XWaqqXornmtm3sIqHiYqOPsLhk30/Jm2MPzDbXNbNvgs8yG/UeFSOekII3icfLybIAxdb8fvAN5z4";
+ moduleBuffer += "3AY+Heth/hqLjmSjm3pymvJNnKYU49yNe/Xq/Y45uYFQ7uyCEmsX5PVMb1DK5sdk/daLd+KiVHAx9RhNb9T85y/woFaa/9yD28Sa";
+ moduleBuffer += "/zjrIgzCNB60ii88Zo2Mmt1ipy2HlkGPPObshmgZdOgxZzdEy6Bv8G3LzZjie7htyG1pDbFOW+k2Ehu9UVmQAJsxAlft+tw0N7Ng";
+ moduleBuffer += "tY/NTPYRDHRQDOjU8pVfZnQLtQqgwNQy0GopkCorjc7+WOxYxJ047nECVKgUv0KlBEqlhAW8vPySSgmVSglwoFkqBWZieeCoFCED";
+ moduleBuffer += "r+QJ7lsqqkKprCaZogvVkik0eqgSKHYZV/y+taiGnJJOSzfe43V6uB/W0Rvw/yo/8qz4P5sg/lPeVciBoIroNWaRqRyCV2DRYjjW";
+ moduleBuffer += "h4/tVT/vbBPlojbIQycoBU3NTqTRl1LrFW7gasUdYtvPVKdhRX2WEb0jKO16hBEttv/NQwjEN9Kew6GqSCsNvEG97K9cglmfpr1p";
+ moduleBuffer += "z9jYcblWinc8t1cOrGIhxBjO2QrGP8aumMD3TNCwTJpSXur2pZKwtFs+UoZAzrQhz8qJQqte4HxGhHhh803x5IZ9lrOH6f6t9oZh";
+ moduleBuffer += "Ykgcx85fnvttpKNk2eOkUezSLjhDio0bxVf1bkjuokbxXb07Ve7CRjE1zbsL5C5oFLv17kzWvPia3n3Fs7XTOaocjRVIlgIhq8x6";
+ moduleBuffer += "yG69PWWWtSS9oNsbDqqEMOYQ6nNeF1M+cAGgmgthQUkdXXppK7DIUcwVKGmk4jFGCqC+6iBjJITuNrNRhgKnzFKVMO8cbI3eMS45";
+ moduleBuffer += "ZQKrUDf8uMDG74O0CngLNPMCeauRODVwp9QiK6xZLMKfF37DYpLrM6soohhXZQU/iUpVs88gj1bXHFQBWJ1+7G1+qQHCbN64b5/+";
+ moduleBuffer += "oQyCu6hTC8VKfgs99OjD+7B74wY/aZRTHMQv/KH0EO9JTUmnxhrAiG7PQKdVI1eYjcu09BrFc3vd5/AB3ub207wpprQ+stdF+uIw";
+ moduleBuffer += "5nMEF+/ToR+F8T1BjEYQHZOQdJl7iVOl2KA3+qb7oKylKI+hSNNmaACZNS0P29r2sJQ1lmLukd5ulKmyEm7CuToNq6uwPc3P1YRR";
+ moduleBuffer += "vSwlwZpZT+GlXTpojiu2yhwHo1atejAalaOZYtsDe5S4UDmaKZ5VIsMenEo2qCzN8MSniFYP50es4awt6oFfrqgYJNJuKUMtdBlJ";
+ moduleBuffer += "4wu4bVmj26B4HLcj9mgNih/gdok9WoPizgf3wLPWHa22Vgce/GVq1aDubJR2lZYzYEQNDVDN7Z4xYqhPNSBffEoC6Ks/aRWyUCC/";
+ moduleBuffer += "t+ZizQw2HI3kzyCQ/txyqVNBCVxsFIxSlvW4WjCMQ6zxlGENJUkOru2+Kip6eQ57Gv/Z3gL/xj4DQRFlfyCJ00YxIm2eg1qI2sqN";
+ moduleBuffer += "q15VCmbWKRjUNh7ukV8NNTafKSsVwr2BKd+CdwzYsIZSLQ1rg0AT3S8YuFnD6Vp+4o3lXktIzAYkp4FKTmXnWosT/+LrW5bt8FQ8";
+ moduleBuffer += "ukbt1IeL90I22vdpFYbj2V+q3NTrk442KtLRv+njSeVDQyr4PvzpaWtvIMdYDjXoYN5DVbECk55Jh7t3Jh/u3pmEBCWcKKn/ku20";
+ moduleBuffer += "7OgxS8H5SrNV+E+eLmooMdgtjko+LvXiOfmV7Ym9xj19cJ/uSFpD4XFIYiu8iIcRhliFBfXsq4kuIWpXDcO6ZHf6UDZk7UhVG7EG";
+ moduleBuffer += "oYxki71IHckbPVZe1RE9KO4INJKLR+TB8Se08otS3/A+O51zqO5GSnvrrPyVVg2vYQBNacIkNetRkWvPh1UA0XAGgGg4A0A0LAFE";
+ moduleBuffer += "FdoBpBeXKxFT8OuGPFibxzfoke9Ej433WsvqnZGbFEespb2sk+zLzkIdrvuHPQuoQJXOcm9/mD3ijONVJPSPhE0wiq8KtGYkQY5E";
+ moduleBuffer += "4wCrFgfpKAtLjiV7hyVzGHKsjyaUtsCY7GNpdhwLeSethe6xlZxaMOl4A8nze7pSuZi3+7rwcY35ZDp0CDX7QOQfRhQbGh/wFoHS";
+ moduleBuffer += "sIYTLaWh5u1B9mk8nG7pw1BvDw8y0nL2VZJMkmkfRJbb6fu23cbUmVpAAkCtmqwxk7m/E1rjpfDejsUegeVSYNETZlguFZ/dS1rg";
+ moduleBuffer += "NGfCJGsw+5L6o8ivg+lJ7JWsFZSZ016pcZ+FhXLCE7uDynK7HtyMSmGxDNuJ0rQppAlK4I51DEnZ6NKOCwEEGJNUSFqfACYeJWkw";
+ moduleBuffer += "3EonIePyXiFJiWRhdkJyUPQpWyNIloC8jK6mRmlF4xgCmY719eWJrpyEl/0LgTWWdSy0O4Xyox0StHmHFPtSxfEf6VBlM9wh9kbW";
+ moduleBuffer += "STWCc03lLPXr3X9r8loxLSuiXhxM4GwAUvUM+ZGuzRNZJGvzaG0ersWC8dcSq/ai62US2xOxcVeJiAFbn3KBB+UCD8oFrswcpNWy";
+ moduleBuffer += "qlVTDIxP+fNyK0jlr3XrOtFvIkHmSzuiv4W1NvJeKI6wDLrjD6dqbm3vPCqEwnSYrRfm4LewZXKihsV6ISpXY+P8rbX33y502QYQ";
+ moduleBuffer += "2VOvuBUbJMhMGVTdBvXIxfn41wkHb/v/z97bwNlR1WnCdU5V3ap763Z3hTTQkCh1L0EblwytP4ZkCbNQGQEzyMA4vr7Ou86u7647";
+ moduleBuffer += "w9xmXRMyrDtmSAMB4ooaBSQIo0EjRAXMjOhkXPRtEtQ4MmMU1KjoRAWNTmSisg6DCO95nv85p+re7oYAEXEWsXPr89SpU+fj//k8";
+ moduleBuffer += "FhnFDCiZ7TnwMITPx1jhw46Eedosv4TehuH75gT2JaPRRlR732yndb/6m0v2RtVyLjuybseyrJtB/veJFROwuF6lZerIf5JYc/RP";
+ moduleBuffer += "Ejs9IOpxr3icZcLBZbfA7YwZCgFBP038Wm8aLZZGm1ZOFNly9Q5OfmupTk/0iNxjJhYRxNPJLhIHOqlpUHH/rD2dTNd7GJIZsvLE";
+ moduleBuffer += "LzQFgCYjRiOvX64uOUes7XsI0AQZ6oeYWhOpJVRZ00AxG0jA3vbYUM5ppsR8WAwWWDdg+i/Xnl9OXbiqA7Cj0Hzd/9RBrwsiZruV";
+ moduleBuffer += "D9+1g4z1MvE8ir3jlRlNYOv6hT1nSpADj9gDpmuuLNM/XSnTySPupqD8ub2gy84cyo28NKOdpNHrcKLs0eNr+kR2eyVCJXOKUImI";
+ moduleBuffer += "UImIUImIUEm/CIXLRG5KfrlyU1KTm75ciR0e1ArdabSXfzkWPJ9YtFBToxrFsAusMJ/2pw0bRuFoKhFbkX/fuk9Cx6rrJAgpVEmR";
+ moduleBuffer += "kYufxuq1I5aB2Mfs6CM8ohNrhCH183GVh+Sk8WzPLK+FoXfP4DtF7p3yav2AyNbm3NEWrcB8jvLw0xH1kG9sMU5Pwk1YNRvrkt8d";
+ moduleBuffer += "Z/X4nY7lv1TVG4ZzvWFYWY8e7w2j+hvuilWnEnirBdBU9qiOxa0hTsjzOsT5OLJDnI4FHcJsICTV/BzeIVTGWIc4F0d0CAEzv0Os";
+ moduleBuffer += "itEOgSYO7YwKlA5xXQ7pEOlhXocwDXmHGAtDnTHB7CG6wUiH0C2tDhEKsg7hBYgRtThodAgRkHSY3592mJzf7BBdJQaowOIg6hT4";
+ moduleBuffer += "CTsdDzcI+1NjNX51t1vqC1Yx/K0cXr1KtLqjiqJMV68qOuSX7pbhynIM5wpz7vmlXm2Wwoa56Xlly5xeWB6Ccwg+XVBGq81iGZlz";
+ moduleBuffer += "R5Ztc65lpq9yFKdhVz0CD035vDE8zFw6srI8DKdHC7AeHManHs6npv6poAEaxVMTPnU+n3qIPBU233l4aoNPzfnUxD8V+U4jeGrM";
+ moduleBuffer += "pw7zqQ3/VEy2gPfEU4f41Ng/FbkD0xFmSrVSZFLNUBZEEGHSGbfuj4LOr+O6PCTpiV1x+K4UqC2B3rL49Yik485C2VnInTHZGeOO";
+ moduleBuffer += "hesa5U4uOzl32oVNHlQWnR/iF3eiwunWK2sG05s8x89+D1m6VMJGr1QMiDYTy1IRHikuCKVgV4lDhhKD5XiJPLfkqd1YogKg4VUa";
+ moduleBuffer += "hgSd4JTNxS7nLTPzMz2vbStgFiD7o7XHhsY73/8mq2vmkzVVDdKtkTrvozkupMJ3X/B6HjlvUtzrq8svmem4d3wQLAuGS5mmS80g";
+ moduleBuffer += "+tbZQxSFh3oFA/smVkkoGCOHaCnvu5mWEPNf4G8JyvD8/I1sBolOCKsair1c98Nymea3kad6SCGewobKml3nFhSvvoCAuwzP2yW2";
+ moduleBuffer += "D30LsH7mThv1ngp1lBF9TpdobTpsIY1V8WsD1E6SMy4LRrtcf/+0RHT/Olb+zl/8Gld+89btv76V37fr17jyV+y2lZ+GEIko9ZnO";
+ moduleBuffer += "obn+E/kYFuDDAo+Z0MraQ8Mj+bxDRkdH55vJZSQrQ/MXmb/Y/DXMX9P8tcxf2/xNmL8Xm79DzN988zdq/g41f4eZv8PN35j5O9L8";
+ moduleBuffer += "PZ8qLgJB8gehXWQXlAVVy0cfS4xwfMGqVdnVodMuANnK0EuEazGUrF9e/LmW6FsnNnYTKziWTSMHfzVxeMJFlQBnYcojwid7QTI+";
+ moduleBuffer += "Vp/TSTUjMF9upVMEICyhqtJGsAHodfK7I/qi+uRXz7gu9pb1oY2ygL3MC4QNYIPWBMLGoEBoJUErAppyLg8zc5UDU3elmUm+IYJf";
+ moduleBuffer += "JNYt2gWco7U6klXBQo4hlhfE7gIr5voY4ZjERzZIOF1Sk4NjAbjNvtBEZL77LFBQEn6WUJohXiRWUCOCxfJ1/iGRBnV1h0GwzIvW";
+ moduleBuffer += "TQtwNLffJxaM7VBCOtxnCm2MnLUYxvKZEnymlmZMx8tdVmVStPCZEuEKcZ8pqfIuva/JIiLI+A0knn6ssg6E4rrx1gFhMxLqqqMr";
+ moduleBuffer += "MoW+kRNTsDxe5Ub8f8/IJNTKleVLVkRry6sULBS7/DGzLJcTGUEX24KTAuKXtJd/QTgQHZWinAmNgNx/Rldn5vefCaszo/1nourM";
+ moduleBuffer += "of1n4urMYf5M6BQMXX49yK9N4L0JZK4a6DUNnMhhNI5nuYT6VTTXiXCuE3quE2qOE45ZQbhADsaXbMiXfOyz6izGdHFU6xKUHxDB";
+ moduleBuffer += "Ut9UTflY9qSR2SGbDX4wOduY8SnD6sz8wQ/mz4wOfjB/ZuBTNqozj/Mp07k+ZTIQkyffduDKpvVI/8o/NT500atNaEntwrg+oSX1";
+ moduleBuffer += "Ca21pJb0nNgJ7UZvoJzyViyCh+bfI1fZOdTtERnsjAshWO9OldUn9FNN2Gd+EERcSgj5j0Nfz3DWN21bmF5Xz3hJ3xIv9Zyes56f";
+ moduleBuffer += "ip5iPeuJdfTgr6edsgYB9ePQmiAOxht8JNFDj7N0uBXU1OOdrINYVbjspW7paBaxXTEk7a+2VMSyVKQnCptGtVTkbqmI3FKRz7VU";
+ moduleBuffer += "RLUVvSVCXwp6s7bEg6gQc0SbUL+Sr0KystS+krwBXimeIaRcOSikNK14Uba8kBL3Cymex6xZF1Ii90pRTUiJ5JXYfJF/pWhQSMnc";
+ moduleBuffer += "Ky09T3C0o06TrzQkr8QAmAyvFM/oZ838k7af5a6fuQVdHj5bP2vUHk7hB3PpSNF0ElIDFw1LMeawBDdeHtaPm2oNk56KdC11Waf/";
+ moduleBuffer += "CEJFh09kEoGTdeL+DhtX4ZwDHTYuSAgWe8+kgPlntv1gvE5RVubKiouhcumkacNmubTXaZqHZcxlwfMz//y0Txiz5/H8VL6Tf34q";
+ moduleBuffer += "z0+trBXZ57fc7G7DA0xv889vgyxPslipcmQ2E9/c1S/rJXMN2L6pMa8PWDc1fljrUAwoLneDBowTAwn5Ea+Nlh8KfbFzancagv0E";
+ moduleBuffer += "wXn5Y8GrQKf6iqJxzgIJkp6P6CfzU27+rNFXPhxxYp/PbIFCGwHwJlMBGCzMbf/2MlNCsn4dywYLjDmWrCdZgFExzH+3VUXw3pMD";
+ moduleBuffer += "WLlxbVeVoysYkcGU+iD/sRbQ+FAypKhk0QglSlZUKVlRZQK2ySIjrGJ5J57GfCcWsrDc9Bmrcd08SLhio6nOik516cphvp9pnKOS";
+ moduleBuffer += "zQmXek2ohxcAZuty2w021896Kq3KJ5qBtl8vmpnNZ626rpM7M7CL+m8T0ciCAt46GN5gAw7u+cuB+Pd3uvh3GwoqIQiIYxzTa5HS";
+ moduleBuffer += "6ELrmbRvg4jOGCIQqSTjt6vS9w2WfqUtPXQxDe2ehN3YQn0W3v/rdXGpbtSzFiuqzg66wDzPul3bc39NqzGLOb3c/RmLkPD/1G1w";
+ moduleBuffer += "TjlX6DM1xdwCMLTnUMgH9XEzmaHojZF3lGkfMJjf6RHUApeWHHRrbI7yWpKeKOmMhW3NMcTS0gXRECaFBt8fkQmJZc6iC0xSUPfQ";
+ moduleBuffer += "x+jiCUz3EtS8/PsJR2sZwewL16TgFWDwLA52Rz5750R9Gwbr7f+ECKmtWniQbtcMENkEAoRtmk5Ys7tV9/JLQq9vS7FHShpE5Gc/";
+ moduleBuffer += "hZ68Hk+/gmWuM5uIUN6AQ4efqLfY30343fIALrk+KcgkcHPCx16fmMdeIds3Y3szLt3cQB3WJagDRUecbfR82C3DyDc3usmSYAe8";
+ moduleBuffer += "yckSvpmwFnOI8rIIJyIJ5ufEtDUhpwfi1zF9nGbDnDkxuDck0CiGZLSKkV3lzXdNS96X9eiI2ymzll9CMCIIwveMreqX2zOmoqpn";
+ moduleBuffer += "TEjHmNbSMSakX2yxyBPfq/eLDaq/X2zTtX6xGe1/+1fwgTYp6Rc3K+kXIWjvlesXm1Qvv7jeL1Ds7P1iNz7dFSzznlD6xZ5Q+sND";
+ moduleBuffer += "9nc/8ey+jEv2hdIvHgn52H147L2y/Qi2H8Slm0PU4Z4QdfD9IhzsFyH6xU+lP/DNnrBfTEWP0y/sGz7pfkHu7OwTyidhhxV7VzQn";
+ moduleBuffer += "exc+jePtisDbFVneroi8XTMZunTmbqxRepHRseLsovO/n7BrVq6ugDRdWWGz6N5jlpYLEbBfhLcsf0xdAhZ7Ix2MA8TF/Fx6SRFd";
+ moduleBuffer += "ijQlygyFHC0uLWI5XsjxMTk+5o+PyfFcjuf+eC7HUzme+uPCzwKppCvZxOa5McAKs3epKnhbJPaTQWF9WYLF+FSnc5zsVmWb4hfn";
+ moduleBuffer += "+ywEQ+x0PGp4iHF6j64Z49qzKKLUVGoR0bWV2hP/ZVtDQWhBvURWdvVqoF6JiMsudpspWhTT9/j3OK5no3eKJN8RC79oar8zyCO7";
+ moduleBuffer += "LbmVkT7RWUb6aYqVOs0fatbuSfzVsF80C55W+T+l/opmX3kRNJRUrKkYICFEN4TW4cb8IoblxtIIJ3jdpim6TctaCGacT2vnKctr";
+ moduleBuffer += "GaupjUKfcUNS3ZBJqAgaEV8smvHFrqlU8kbti/WFBDTqXyypW90bLob9KfakH83Zk64Mf+170s8fvyf9/Kn2pJ8/O3vS1QelJ/1K";
+ moduleBuffer += "v9jDj//FHn6qX+zhZ+cXe9evdOw/MOfYf8tBGfv3/Ap7koATu/+3H69XDV76lHrYQCHPyt523a+0t31vzt628aD0ts8/O3rbgXa1";
+ moduleBuffer += "p9/Pnp2d7PqD0sm2Pws+5gF9yaf5GZ+d3/Ddv/6CxKOPL0g8+lQFiUefnYLEwfli77WRxX10DRZ3zzzkEWDKEbx1cZCCqLLDfKKm";
+ moduleBuffer += "TVUOmLxrkbNi09LEXEW09SMR4S3kchDCqIIIrZYh3doplWcNAIgtDAjdSHg7YTRlQP3bXb6h8gQyAQPmkZlRPsZYwZGVXaP9rzLl";
+ moduleBuffer += "L4FjpbVigYXVmCSfTb4CzXRBJzhtiAHHADkNyosEd8bsldMfuNNC4cGmu0sC0Fm+uRQEAJP5G51bJNvwpCr01eCXX6OrB2uEhtel";
+ moduleBuffer += "1CpwtdJz1Qppt4jaNCdNlZAPkZ8tqXWolrbV0nNWK6iqFdSrtSkcCFr/5ecSS96AadpJog7EgjoQIZ6MHpqK44YuAVXu3CguASUu";
+ moduleBuffer += "AVXe72FIHHaPsl4BMd4hCZg5irvMnT7NVznwE1vs3sFiL1ZPXCzzg/ej2KNtfnBYXnntDtjrPuVzfCvwksHE3P7U3wpStEr9DXzq";
+ moduleBuffer += "rw26/6R36m/17D0b79ke0HxovvwGZvbSlmi+GtL5N039QFi7I8kQsmk7vLQb5pskaYx3FJFNnDka5XnwWzOpvImThFyEX3QWXL3e";
+ moduleBuffer += "wTa7UvMfE33YXtwN7D2oLu75lK/+noar/kP3bg9oFe/qet7fXNVHBpSyDwzzT0j1JVGqVv1Nul79typWSa5iPuOM+tti85+4+rNG";
+ moduleBuffer += "gb0H9cU9lwp6biFot4KQHYkDKSWupCYIJ9xc+UfRPzJsngZXl8s/pJPoCz7dsM8n5NCz3OHSpXdIPHgmR5hy6FJgpQ3hr7RegDFS";
+ moduleBuffer += "6JAAJRzwACzEVJ2LD6AtTrSUuXPOXazy2xPn/0PfBBmAzso3f8T02ucJ9KnUwFqh/UUq6z+RWSfoL7Gm3znINb2mL3pXnyrZkJGg";
+ moduleBuffer += "1ERE0IvsGmr2Mr22vIh4+ZoQZmcRWpzDGVRFAKYBy5WkQIOR3gKJrzzNYpAXUX63RYum6y8Appv3PMaVbzC7VouE5hyNhV6mkMah";
+ moduleBuffer += "lqmUMVz5Bd0EpIucly7opiBZxBzLWbYQIgPkBjQZcdFtmO0zJKvbSmnNcnRyOEQMLxDIIsCHasSFQRBrzzxGPOuBYwF2FHbU6cBj";
+ moduleBuffer += "YVNVhzKhE1CouflggjE3X6LHhnsgfRSYOfA+Bo6cLjxepctUxJw3RBy2cE5ntaZ5h9KRnU58wsbUw9uBLu7zCWPBCSJOKvIJAbvR";
+ moduleBuffer += "SSRBE8mZkk84gdjKMP8dEnzh7gaAifuSCUFp9ZH+3EpJHazgEeCIOVQf6vnOh02NhksLRA0JW6KSl8pimFfA6qbo98TitXGQxwgE";
+ moduleBuffer += "u6lhwcKN/JZfqxyYUxEfH/wWcj4XBydXEeYIiV3qQwNM6cNahwrBGRk8aKf0ysWoaFKEaP4EpPDgYmPIUMIhgXWRp+fJ6dwcv/I3";
+ moduleBuffer += "8M0SsyqGViJe6gOwfIAOHEAfV8B9yzuHaxul4zSG4nCBOzoc6dplnn/QRutoF+oz5TyZSJ4xUoA5G4AMxcwDL3eaxEDUpTn1MhcQ";
+ moduleBuffer += "lZZDpGxaHiwJYhddwjTVcij/i1CutfFggN0rvx4gllIjNayFn1ZnhC3cydj+nRw/SaeNn0ZnHn7izhB+os4h+AmNJmJ+dGc+gnUo";
+ moduleBuffer += "NVNmzrdQhDaVloeOSmwmrplfNP3ZppydL/GZOHtIMeTPDsnZQyRGE2fnFW1/ti1n5+FswrN5kfmzmZzNcTbl2ZGi5c+25OwIzhpV";
+ moduleBuffer += "qtw3XO4aMc334jMXANuuWQwVANdo5X/OC2W5RYAVurYHniDQ+W7JcrJfVh8bntMdg8stLMaKw2/Kb1QkAUUgUbTKdASE/EqERMRM";
+ moduleBuffer += "zCKU/oaV91jzkQ+X7CkN9nSJUQnRa1KJzovAsshgMYKEu/C9VNLVmgKKyvKakiThnsdj6SzHEhxrory/CyzWRIhJCOWN4oHxbBc0";
+ moduleBuffer += "5YL5uCCa7YIhueAQXBDOdoEANRXzcIGe7YJMLshdVueMC1pywQhXrtB6lrWI7+JvRSwyV4ayBW3ykJ6FLAwxDTTK+XYakHstlYE8";
+ moduleBuffer += "izCOY4MfIKraN7OhcpxpfBx87NLgDl9iUYzMPzYNboyHAHV0aveIJcw4Nv2HFya4l+eT4gjoFslygkYmHhckFmJEzDimG0nHSdCJ";
+ moduleBuffer += "tNt2+apPd1Ka9/QnpYEpacRPSUn/lDRSn5Jg6DBDc7iakoZkSmrLlJTJlNSSKakpU1IqU1IiU1JDpqTYzEWcoEZlgjpUJqjDzICb";
+ moduleBuffer += "N9sEJaKrrzCuOqw4lOfNYUYQmiUeqMtpSWxa3naoaw5z+Wgxf9YZrcHC5prREp6da0ZLeXauGa3Js7PPaGIQYjx9cehBnct+ocly";
+ moduleBuffer += "7OeyeXPMZe0nGK4gOx64oCTGs5vCkO6fWq7jA5rt3Mw2r39mO6AZNZ7l3iec9Gad0+qT3qxzWn3Sm3VOq016//rmNFWb09SBzmkZ";
+ moduleBuffer += "ucUcjfSw5cEwsuSxYc5IFTxx2PTnOnzUsDlYh48a9nBSZZUgMWwDtQi8vj22UUTDYlx4yrLru3/NZddbn5Wy67uek12fk12fk11/";
+ moduleBuffer += "Peb5gy+7HuCk9IzKru96TnZ9TnZ9TnZ9TnZ91smuH64gcfScHkYA1A94GOtQ/ndtuyMoxVVQ3m62869a7P1dONGwnkPtPId7cRQI";
+ moduleBuffer += "j+1eudteTjD+H+FEBcb/MHaTOhj/B+BGKuhd7nXD8tHHHgvPI+zipEAg8dAp5wkWYzFpoZAIxThpoZAIyDhpoZAIyzhpoZAIzug4";
+ moduleBuffer += "VZjWPWmhkNhyk5Z8t3z0UfMIyuqTNt2p/NZ+eygAhuRBadOpD273bbp/y/aqTdfhxIw2vR5HbZte8cHtVZve8MHt9Ta9Fbt9bfre";
+ moduleBuffer += "/srSR2dW0cubC8Qxx9TOfF3DpVy0HQtIQGLbJS6lROI1jlH5ogVdRX+Uyt/bEj8T+vrjFmFOf0CYeMShZacDVvBioEtFNVZmui6L";
+ moduleBuffer += "cMUC4XwldIgmyGcR5d8F2VKDIOHdhPw2a7rpmm4TQ6RRNF91C0NRjgV3SZG+6pY1a0DmJHS6hByVBLyOAIFaFrdG9taKRld7aE3t";
+ moduleBuffer += "oTUHkzSZpGsBc3UdKVMPIGXqAaRMXQPMBVYh3tM1FuZuyzH7FhvKMp3Se8MglumEQPOWzcGs2Q1C25Q7E+ICWicbuLn/0LzXQ0CZ";
+ moduleBuffer += "dFy6JLEVsofYXVeogbMW9xP9cTqRmXc6JQGzECMtDnKbNQO4+LTmLTQj6USSETF2xiImgK+xbFsqs67CwJUUzkAyrYJCWE/bZSjs";
+ moduleBuffer += "AAIm6AqFIislBnRZOrJGsjsSh9a8AxaXm8O6q0u6j+4RZdR0dXx1ofqMJCe7gWRVkj4CpAf+uYZEsoSSExuSsfVlQ0LKZdPGmbUU";
+ moduleBuffer += "S1XIvaO927Ge+c8Z36MQRQI/FJ1aoQCUd924w3IjR+NCdp2v7ajC8+by5R3zLp2gXS3YdKEFQQeS53Hmg0PWq6XFChMvf4wIKvlh";
+ moduleBuffer += "lv0g7eVXGxG3oyzldORYQ0nNq2FrwEsd57Loj+hxJZPnBbIq6gnkdM2ThFkeNcNrSWBd8FmPBAJm6yJd8Weio1pqWuEmJqp5H/VG";
+ moduleBuffer += "HdxRC4yQbQHLp1FMVqwsNpU0zG+08Ay1PD4LO9euoOKJOBEhq6kh8HRE5y0/Az94lP84OY3wBar82/qBBg/tMofy72oBNdbsMieh";
+ moduleBuffer += "U0j3CbidiaSSW9f50Z4TGb7mkV654bumjOtVJ5G7MTUxZk0IkUHX9gF8G5LnESkFQyyyhqLIRqVFkh+LjmUuLzUfqmxL1Zg8lM1u";
+ moduleBuffer += "jM39LsueqJ0N4FZJj42k/1omZ/jbMYUPaeJsKcJucRDKm4Y2B34gsY6BhPIGv+oPufXL04BZrz7kJ+oH5EPe+eWn/yH3fOdf+Yf8";
+ moduleBuffer += "gPIESIJ9HTDuqyLtIenV0oKkV+OF57ia2oG00Qk5UMhPFQx2XHnVp40gguNjIK2yYQ7H6rZfChFbaVc+5YkaTKEkszqlV27E9l13";
+ moduleBuffer += "bpeQsE1VNX0E3mgVgYeUXUukXgiWv4272/aJ6UAi7VhNF7lXSIL8cVTfTQ0/qU6zi3mthrqqoaeS2PMJG7FmargL2+tut0FrH5hD";
+ moduleBuffer += "KBSQ36BrOSooF0YiF4ZGLmQA4t983kjCR9ZlPoiI932+Ervv+XxNjt6LE21H0VsLBVx31x3g3HobfkIRFh/Ejf+ivbR1iUW1n/Bg";
+ moduleBuffer += "fOPdWCgjETEb2zgeLtsZANoXBxPgJzI/jn2SF9d4I5WlrgZc/Vdjar+NQsgmH4S0xqRYJrkWNrP1fRD5Uizau2x8CghFO+QVTQEO";
+ moduleBuffer += "D/tOAz9jQLfFuRQ/KcBqca6Fn7FOJlDngJPNRL1vYaYwGq5Viz0a+svMXkJwlaKxJARNVwx+cqM2Sgat0HblX4AcJfxnT+d7fgxS";
+ moduleBuffer += "+IzvOZvIz+/5BZyY7Xvuw4lW+TP82O95L4T/2vf8c+YIu/xcgHKtYf5ut7H8lDcXjeVL33wpgT4uXUNqB3N4MQ6HPNwwh6lbkgyR";
+ moduleBuffer += "6b9FjPti3hfzPt6YdmPcGPPG2N6YIjgMHccBNHZpBsu7kTCY2ag9wHGILqUt0XQRCS2R57lqC5J+3tVnE7skppwHCUnERwp7poJD";
+ moduleBuffer += "LuZPogG1KHAz0Smy90Y+GNwvPCQVxxy8j+yH1VzPnO5U5rB2PSjPtDd4n/iC8p5Ij6ZqaAYNVjuj4ZmNjDG6uPTsBfkNDXQTyuiA";
+ moduleBuffer += "ts3vpxFwDLbDxcERVLnaZEw8Mv96w/ERzD7v2KRwo96KcOx0JxZhOW649Mhy5NGc+Jb/KLyvzplEonPYSuFDCvpUMRtnaTqjvLy0";
+ moduleBuffer += "ScQQ99QtVJjYy6B6O8suaB70NSJB4wWVvKCimNj3gnNM/XZZmvmCyr2gkkUT64+8YW2JFkwEs0pvhbj1bkXlbuClqpXaFmRD5F4t";
+ moduleBuffer += "o3uXj4/LzduVwIrFFBCdFIxw9SrK/TdtJ4gMpq4SK0hRTm3Z7nBl8PQ7LES+zBuXhj4sMRHEgTKBjA4ucCGMCcvgDHAcnMYIO6qm";
+ moduleBuffer += "EZHvSQtc/obRSrI2nXyQnrwx2izEvXLNSihYVGEAEE044yI80+jyQkgTk+kvIrT+b5w+JCwA4DBAoYyKRKjfmUPUEbDTiYkeUd56";
+ moduleBuffer += "77Yfa1SvnLp4XUq9lMlEcuL8bnOyaK6Sc6nQsbkz6WSRrlpZTl108bo32h9i+QlGeHwW+T9NJWF+/o1O5CsZ2kpC7OtEMlOSRS1E";
+ moduleBuffer += "XRFJGdf46xj5mTBW9HScIIH84iBaRSYcQsQVYIu1GPrZw7HO+jliMQUsEl2rKEIh9+RPjbsR4oBebUkbhTiU0l23ZcQJGRwe5Y3c";
+ moduleBuffer += "3Ipg2TAMlfqC0kh45d7Pmk50FXyAC3vdTCJxI06hS/So9ItUFt7qxi4uB/cnM2IwyzQmz6SNhYzdRkH5UQxYLFhTyBybYodAQlEF";
+ moduleBuffer += "xxnLiMyd0BILQodnWoy5knaHsTamtFlCMeW8DRpB0rGgAsM3mYFEgbTJGNGmpZ61xTZgpyC5a8+CmVvrAeV10rilFUqrCMUQExLR";
+ moduleBuffer += "5oF7s87R6SF4VCKZE3LLmmnfNAd5ZZWAo0ziGRi31YMyD/fKxUZZoKJuW5oOnaTbtFS1URfQYubl4DzgL14139s80rIdwDuuimaP";
+ moduleBuffer += "DHwWIFYwEU0biSKOL0NOmMzJq8COGxVmdF7Zync3zD+3NGt2Nh9iXFs2Ase4zekV3/Uq4XM08zKjpjFwcLnpD5nYHpRw5drlXpgb";
+ moduleBuffer += "iLd072cssLVdvYUChjbfTY8vuswltVx9+WxS6PTllRS69fKaFHrn5XNIoXsupxT6w8srKXTX5f1S6HvmqqGuCVfRbNWs21BnE5BJ";
+ moduleBuffer += "Avuhu+6oSGC9DXX6rsouvfUuuZymzU/fNWiIXqfMJM4nkVskJTM8qVgtQTzw2DpaqEjFQhWv6CYW1QoHGh1NqmVQFSlQFWlLVXQO";
+ moduleBuffer += "jkBolqvJ8gnujwA8RYopTLIwZmJ589hiDjuovO9Wy8M3hOWFxIqnurfUQlmry/Uf2d6PEPbPwUziswGQMAt1o8qNH4GkKtzbMD5j";
+ moduleBuffer += "F5NrHwv321yulvYJN5bkDuQyYbnni2aV/FBI8JtrWvnOFATxZM4zs245YWm9cB60Xip/ZygTcH6aePSYJmR3weZ1UrAB2QEf47qL";
+ moduleBuffer += "u1Dqz/A9p5i38s6+/D8J4xdeprB8Id0C3ZjzxTwdDFmrNfvZRTpfI3E6yPcSIEZhRDBX2jahDDfcldsovY0UwSRnyXlxIBQBL+QN";
+ moduleBuffer += "nciH9ETZVFO0LT9DR+LT3lXnO21rkQkhl0aUSz0TNUF0zUs76XRUGqWR/71jR11b+5evO+EAroycF2hwp0PDCHr5w8yyVFgETmAq";
+ moduleBuffer += "F5bWMSkQDzJlDt6vw5g22BPo06xEK/G2gR1WVYWrx7tUVU8elycvqj35/lAszBNENVwcvJgomv31Xhy8BHooqPQalAa98eBO9pXj";
+ moduleBuffer += "vB2duqHwTBg5bkwevGgJ1nlmklqDfCjL46mTst8OH6f+BTgrrTw65jYo74kcNSFuD8jcGhm5ygUQLA5OqMvcfQUr617VqGYFQSaF";
+ moduleBuffer += "mQG5a/ZvjAeY9WjgG+taWzFZjt+YZY71lTl4P7+x5ourWerHb6xr33juS1X15HF58qLak78WSu4tv7H237iv3vjGeNpSzCO6+sZk";
+ moduleBuffer += "wTX/1r6x9t9Y4RvzwdU3jurfWPd94znrb65b5JSqMbeR98RxVWkd1N6odUx/R7SO2fuLaB3asqpr6S1ia68ZPImVH3n/UWyERuc7";
+ moduleBuffer += "Ewf1KKU3pzkBb1X2LdZ7mn9bc/mpqT2SviVCTLaG1C3SfehVG6KD7UzqHuFqotylkyT7Nntc7CaRbYvMrNOK6LRVQ5rY1j0LAGZ0";
+ moduleBuffer += "C5oRXknKS3Mtseahw8RF49XQXEganI3AzvgmMU5EtCsIuli8/CUwI/wGzQiHvxnmBZotUkEXS4kutgYCMUwZA/BjIR9Nl1s3MVc2";
+ moduleBuffer += "iuQSlLMIRT6fRR6BIoFOduWAxRBWoKXsW5z1j1H5CWKPOLkrtkJsL6WtsJClsvyIEluilnG59Xs7ZI0ValvNDtmVzF52Hs7P4/KP";
+ moduleBuffer += "0JfnV5hvQ1w7kcyurvkZqzDRz1rSK4kI8J/SjjZQdVMqbIvDjPYBkApZ9NVaX9JWLLVmhIWDZoQx0bIvqrlg2Un+TGpVR1xVK7ux";
+ moduleBuffer += "5cyB9/YrlvyB8Ktx2QJ/zsSq/NpEgFcrWBTqmK3zJuXsTCaFwsGGW/zUG+1n6m+R9zbkzT3rBpuHqHwq0HXbhSAHXNTf+2VSZkql";
+ moduleBuffer += "bSU34fl2GhOcXlW18xjH0UWD48g20TWRaqytUTNAfwpLDR0WQ+D4gAABONqwR5OigaMNDlpEhqHUtFxLlTxfvSpfJ80Ma2lSPxCd";
+ moduleBuffer += "gUuQ0c5UwpxiX1yLdAsll3d/n+1CHBnsoPCi+AOgkwqXx0uc0jtKlRaS30LzezLpAk1PMU31Vpf3GGJQWHo0lrBUSpjgraM0nEfU";
+ moduleBuffer += "f03PeGvkrydI/7he1CGFCwxO40OqHOqQ5XRcF2cKF8sJHW2lM3PF0qHAXAHToDkzQaJSslnhx4zBfFej7v81cz3jNGnsq+UH20hn";
+ moduleBuffer += "29ErplJ3ynVDKEiuG0pQjqWOqvh2Mdmd5FybMabcinY3FNrd6MSKRCNbX+XHigMsrFyxaNSU1JpGyJk2aoP0/kViw1woxsoxqfJo";
+ moduleBuffer += "4cmN/QqQVvq7vL7fimlib6xYAGOG+JCy+yAAg3mRdKWSoNunu5TgUNWuMZwuE9M0BYhhmPDNdzi9DqPBwkLLrE0WVpueH5Zrz6C9";
+ moduleBuffer += "Btm82ibxmiX95vuNMjWv3GV+8h/aqBcOZuT1OgNHlG9InJTcXxc8w5SXQWUCobBEWUbjjpMe8/oTtHeD7Q1hX5xlNCkgibhxUJoe";
+ moduleBuffer += "DW+a/sx600+hUta+UYnisKsI84UZBvDPhQIqAsMdqSyjskWNHxq5RL1w6iiHTl9g6Y84vUCRNJdODkeBUhQjO6oKmaCHPbvNOmQr";
+ moduleBuffer += "jp/UG7PFDnOqaTDzJW3QYT3ioGH9l5ypTtQvN7+mFc6RnzdWziLLFOANSiHsINiSVAWIOF2Bd+7CLQDrc1eLWqtfD6kdBq3zzujB";
+ moduleBuffer += "Yp5PJfCUikdJcsmZVGF+TFdtmK5qWkrWHJqbEEQBE5Io3VHWpVKdmDtC294FfQcN52Ie6+MrCS1fSS6hO4Jmn9/P2hYwxAKSPxzP";
+ moduleBuffer += "7w4ZJmOvcReQR8bNF1B/bVaFuQOFJ1JzsYjx/nLD9033v7sRSIwR6GD9tJM/2vAkQNsjzzzsWBs6TdlviJEwd8EmpHmQXg5n9PE9";
+ moduleBuffer += "5niw02IAEIAoZdxhp1VpmK4jSlSOsAAo0cZC2lEiSjHCSR5QNy1qLMghIAlI2GVpftJuVi2klEryE2W6FvdvhtEU08Kff11LdKS1";
+ moduleBuffer += "C4ZcTsWOT382NaVQ1vbjzOxhSmwRfSe/MbW3ea+2xPneFVQaAeN8jVpgx6WW8KuT/b7VRHLOVrAYSw3MCrywR2nNXphCToCs5Pfb";
+ moduleBuffer += "4oJx+9Y5E8EAq+TZlOWtpVkzCt3mojR9UGiTX6RclINQoeEYHhkFpE4Hhy7GjpAFoELo9V7QH+3RsOj3LUq97JcqdpE84kz9V92H";
+ moduleBuffer += "vvZcH3om+tBbKqpkh50uIrjHTq/E8KAuhge1OJNK8qYM/0DDp74xU6F5UqAleFA5AnktoYMuJMUaX6/qq0zt4ZVp+Enag6uACZo3";
+ moduleBuffer += "74K9d/4sluv9ONEUC/EesRB7k/AXgamhXaAhEcYQGhGLiUNZQvlx/WpZz9ZS1aRkdIL006WZyxAkGzDUbRVeWKjoQll8guXBco34";
+ moduleBuffer += "VigE9NUna7oNyj82otXoCa+8ZQ19L+lkR1xsCGuMXRRRI8ssGhCNhHeH4ifTPIAadgNEYQQ2Gu8pN/RskQxhfyQDG/qdH9o+e0Nv";
+ moduleBuffer += "wwnb0Fs+tL2voVeJfLfLp1aCKgVO1s0KxBjhJMOCI3PE0jdXPthYRlXMY8i9sK5Q2Axk6/wiXFk0zj/Ju1tpaP8zeeS0px4i9fpm";
+ moduleBuffer += "KikuBLmcCgGJQig7yjKxYNqAQN16cRnlCHHftP2HEuv5jhwBvFCog/PR/LfxAUu28qa6+ivCe1CfHQPCXcHQY1sRkiqwF/mJKlmM";
+ moduleBuffer += "cxfEWLdfBNxK+ywSKSwSXqddp2z87qIyOU8i7BFXz53C+uW5s1B2xrgzJjuj3BmVnZw7uey0udOWnZQ7qexE3IlkJ+BOkH22oYZc";
+ moduleBuffer += "67cZS7g1rowBRp3e+M4dQbntHTsCugKW9rpDZnb5HbO5FyT2PF0M8Zw4IBKe3EkWBuxdhf7/kCXvAAyOPaJ6hP7ZKyWH8ogfKALy";
+ moduleBuffer += "fyQRFQs+hqsTBHqw0C26121x7zTzQXmDuTIsmvLIiGg5RSQP2G0uhge7yYvxmKJlNo1Im98K7Wc9XOzm0O+YAjOeSs0plpeWuzbs";
+ moduleBuffer += "oPdEl9t4GUrFK+41e8NmzUahuG691B6PtW1gKpEQlIcXsPSQpQ+bBcU8Kf84A7LK4Iz8Y2k3wuslfLLZUPm7zJ7553yhqg7NjmkR";
+ moduleBuffer += "VEnhvGnB/MMpnpa/E9RJGAvKFNwwxdOcn9h50HxDTEhtmRi71tQPaLXE0WRgrDR4F3PSyLqSVh/eAxYdKV/ajMlNMaIzaMKz863p";
+ moduleBuffer += "BxTo90eSIL2+ge/DfhOVWx/mZPQzNOIUPbFRuf9RcyyTY4icty9kWrmBj8XXgn1m6pIdYGTkdXsb8gHQ5Chj6s3unL97I4PweXej";
+ moduleBuffer += "aJk2Po3rNZsVH2VrymlJ22h9UaBNjcTPhXKJUBc5zKQJmwkAdVPm7VrjcvquNY+SmSV7o6ov1KJ5amqeklqCYwOap4bmqQc0T+dv";
+ moduleBuffer += "geaJm/t1TyVh3WFN9zxXxTDzhssRkD5yCXyAbjO+sAt9OVxerO8mF3JAKmynF67pmo3L1nQjCUAzc+Yrb0FHvBBT6ytvMed45bo1";
+ moduleBuffer += "a2CTuJDhZhfIPF2BWh1Hh2P+zYQmLRSfX9aib9D8hBQU888lDGR6DXS6E/Wr5eccMdS/siDd3ctp2DKSYX6PFne6KI12nbxM9ZMm";
+ moduleBuffer += "1Uy2gZhsg2XKmREjhrjMMNlCczYikT71cYQiSVGoxCKxOFWZMqv7UChVOdwTXFJ1vGpbuhpEC6c2tEHbuAhvnGXU/+pV5pqvJh5Y";
+ moduleBuffer += "VXuaPG9QiK1tmPatN8oCNWEXKHr83gOH8Ag90I6r6jTLVNVHU7X1KTihPVPVhcwFE+RM9rdC+tvCujVm0E7j7DjdyB9hUMxYlZLE";
+ moduleBuffer += "9RAGpckuI3ys0XqyjC7o8jwsO+PZGu8+oBQicSqxREVQDRiVWJdcwHAXmp99m+9keHEMsp1FtKfkvVsYo7xr4Tq4H2LGw8ihPTg0";
+ moduleBuffer += "wUMTPbwd43ei/LokyC6qPP/KiwVdfRozeLWEsDMub5EPwBZDFvdyKzcgeWRczoyJfc18maxjY88R/ByI4mUDJNq9/CNxIeicQEqP";
+ moduleBuffer += "Zh1s36oNtitksF3R8j3ELtoF4EHzzyqzMjyU0qcnUQMwkjy9wfgnntBHpEMJJUAYm7gtnHg44aRDoSzk8zH9xCIVoj1FKjRbVioU";
+ moduleBuffer += "hShyUuH/GKBKs12ty6AP4UCTjhhKTmeNp8710MhqXtL5Su3p5Ix0VF522RVj6E3AMbXqmB3ot9no1U2pS68A65SIpv9GwJ1DSR5A";
+ moduleBuffer += "TGY5pRlMQRvoI1qSLx7CtD0VMgtM9/hauO4dCrGGU8JlWe767nRQ/htz8grdK6exs/U7DoOVB7u2FLOA75NsMT6zi5iL/O2S/T6l";
+ moduleBuffer += "BPFZ5e8j3HF5heq5gxIKIqciy/NkZLAG82XzD8GVNK0EYHS3IiQpj+0JSRQsxxSBStETR6pw3c2CbgpRR+f/E0bVqSZXViCfquV3";
+ moduleBuffer += "vO1t7//yFesfGlsS7jXS4vIv3XDHe/be8g+PhEvCPdh/zzX/+NY9X73kG29buyTcjQNX//VV1//iyxu27TZfcxfv+PzHH/32zp1f";
+ moduleBuffer += "/qY5sBMHfrznsx/deftPLjprSTg9BF1xqOfDWBRgUBHWjLV4yHR/KAVmM0GP2dPs5TdAa9rEDjTd6lmNAEpEAgxWcyojHoG81rQX";
+ moduleBuffer += "I825iKLcroQhLwk26P3Ghil6RBp0ExP1rox0S0Iec2/6iZi5YtTEFoXxjvIRiGaRymoB0uWl4viKJFD2/kTgk3uO2NlGbrOLJ5Mc";
+ moduleBuffer += "bJfjjpctGNaBgvZmUUQZRoMQTgv+Os7AfhqFYYzvNgWifB5cAzDRuwPizX5AEuXLiFvabsFqcouQTdv6pqISd9oUUJi1iDVYgv0D";
+ moduleBuffer += "G6LcXv5Y8GrKha2zh7QkXLZPNlLOWsbhmr58humVzTNWyrwaI1teomVxZZC/o9mNAWst3GMtQWFFGZ5WU0OH1OZByfpOG5NG2TL/";
+ moduleBuffer += "3bV72jJpmrvK2/2etKeRD+NobREj8NbMBozzaxWZeAdzC5PeZl4ejEIMHcaEj5hIqWgg2jVjI9H/39HswJKkYIQmDrePZAyyP1WN";
+ moduleBuffer += "tWJs0BICwC+oziQCupnOOuZzmzdXmdmF1d00JW0aab4vMcVpI81g2Qi6CFgbUkdCAKQbqydEjRqxFAFTWWV5Ja/FDu1FFZml2z1B";
+ moduleBuffer += "VYVc2WbgG5VcdbYNeDTjOESvT842VZdplJlNNo1RQUJqV5j2DtmIUbQNyRlo+IkRc422uY5wOIHYkAHGUTkkFzVqxWh+dDxFDshd";
+ moduleBuffer += "jlbOPVnqMXgFu/Co5GbldGnGNR5Szo/mTW/7BHlIReRq97jQD1CORlbea0jgLiWv8+sxklxhxAxrRU6fy6Zof3BgvnzlfHP8eMa3";
+ moduleBuffer += "upTZb3v7tJ9DJGQNA18QYiEpAip999/ewfjmWKhC4yqRtSEC0UJJnB2zUlItzcIWcgFd3mF58+dMSR9NxDYsVAmdRISxAsi2k+aa";
+ moduleBuffer += "2+011sKiJAWOjjYL2EL9b+3ppE9oEbS2YPpJUrSMRgcBGaAhRhOWPbxrBvyKwJXZwsBpUduC5ncvnvhhAYZ3IbfNolne5Y/DEKfz";
+ moduleBuffer += "r4SMzsm/VeUNChM3hamEIt60iADWVx/wNPC0jzVvMST+5pNNcUNL9Aki6dqsmXPNz6mIfg3KE3r5vRxgRN+F/HULMFOiVcgaYIKA";
+ moduleBuffer += "eMya4iFrmeaAx5yOtbSDKSVe0SXMcEsOR50A/kTME6b4cHWhbGDq8uAV5hCmEl7OS43ai9hURIYWKMvHpjpV1fLXuKh7F3W0V0m0";
+ moduleBuffer += "hMvJlsAhOIv/nqHl42aI0EgaM42MmY0NdqmsED8hlr8zKbYRWsM6z7RE5GpxVGiJyCVpLULVU3nDoJtwPjQv3sKbNDtKPBOP++Km";
+ moduleBuffer += "XYqWD+BN5MUTefGk9uLaCZQijn5Xy5t622Ghubx3aSjkjlvvIyr23Tj/bZrdC9kQc2LIbdgAzBaKqxKXTBmQkVIjHtyo7ZNEIMWt";
+ moduleBuffer += "sZODcJFpsx9incMEDltLM/+miN5g+Mivw0SBa8XskMjVlMDMG+KQHLBvcKQ8mMLBNBFOEIn6E4zFTTHnaiCWYyAbOacLDylE2Rsx";
+ moduleBuffer += "4U0JVJN5l0/jvJGAIOKZF+bupmER/75CAwL8Q0COqEHco0gJoLWWjT+RmbDiVrFCP9DQoCzkZ1ZYERHb2AYSe+SHiR5D3CaQsgDz";
+ moduleBuffer += "3a2Vedb2Y/mcf9Y35+KWfVvM5H2TzV2LujZdQVsdIJV5uU/yr5LSrMAva4e2qfjKrLEi7Vsrip16P6EHgdaNlHE2aUl8XE8br4FA";
+ moduleBuffer += "yojZEVP52fI7FZ0tkBzlKStFNiH7aNm4wB/QPNCuDlC2Lg+5oExWlvspzpSRi1CYcdMeK+/0l2nkirbuv0O5a6alSEk0QuBOQGCa";
+ moduleBuffer += "SGIP+PLkBEAwyLtlbWS8AFVdwZl45Eem6b8dZ2IER/8gzAClLuZrWBADSDlOWbdQ8BLnxIDasLCNpyXkaf3fTlNLD0VLD8tDmQIE";
+ moduleBuffer += "QtwT2JtEG2e/6klakMRLTTCqIP9J7PIs3jiQk4yA0D4y4SokH8YP92AtD9byYC0PFh8Nc5QLbR/srCMTtO7ntzacTeZNAznbV9w3";
+ moduleBuffer += "bYPD13Err3R6Plv5Zyt5tpJnK3m24sgQK4Kyz1aFss9mxPPfNArJ0s7+yPRSzX6ev7vZ1ZxMVa++J/Ab0COY0l8w7kph3paLJKQe";
+ moduleBuffer += "46LRd18ie7Av6uz1Wvn0LZvxfZKNp+WUCNCJ/OrQ2biUs3EBYc2GbzGLOBSRS9dErnCJyFqqyuw+sMdd88w+7spn9nHvemYfd9Uz";
+ moduleBuffer += "+7jrntnHXf/MPu7aZ/ZxG5/Zx737oD3uP4uLhBOYDT1zgY1mEmKAnkI0mLI4UW5ZQo3C1VZe/B83UZYwd6614YpGe26sLvTkSFYe";
+ moduleBuffer += "4Cv9xUF7pWu8xibh25COTgokVpvKQdajoaeCKj4ZFbgsgbgtRHYx4ne1AwBKJUXJRTnoQSI7XSey049PZPeLZu2exF/tiOx+URHZ";
+ moduleBuffer += "aSGyq5enhchOi9KvhcgOcg1utER2gmbleec87qIjsptxPq2dJ7ThAJHdjBuS6oZMZG6Ba0ldizXEyJDxqwrOTCSZGiJaNijvCOgM";
+ moduleBuffer += "Uzg8kZ3FkpELPD6gPlVi6n3HiKqOgXifTrsK53Edo13vGDayfpvuQ/pAqnonqtnpbdILnWTdGNJqASuu6SXQ4s5e0Gkgcoqp2g1L";
+ moduleBuffer += "QATL4DUN25WZBUeJzAY+GoHaBoIWK8T8J7oZbIGRREAFSmwtqOQRVQgV9+dVIVTcb1YhVIEkvjKmvcpAXByMwB627pPbg/JF5YZP";
+ moduleBuffer += "bbcBx/AZBDkKCSQKdLx3bBDIft5jaKffZyDzmNu38CQHNILf8szOge/RB+tx/70uK/dZ5HAzHDxUl9v2MRwg1uAIS1ggF1qwyZqJ";
+ moduleBuffer += "bBZcuNTCf/K5fy7+vA26l78jpYEjvw6/DwW9/G1ADVun7MZms8FTRocFx1tQ3ms2/gpH9tuNcb1O1zI6ynWgWcvvgK18SzMTdVLK";
+ moduleBuffer += "2K2Zy/WVUDXxeDP4MHnB/Evdfly/rhsSy0+vBXnT0cKRJk0TLA7OBcrg4uBPuk2PafI6sQj0TgrONcrrFijEWxWCbxb15AFGN4ZG";
+ moduleBuffer += "e595sR8wKHJadfm7DZYmbGxF+BDga8b1nWZzkpAIkbAxgc5rKBS5OSqyHqEhihajl/rjltiVu1F+SYO2hSK/BHYTVPqkYKvisa2I";
+ moduleBuffer += "gjHd5xKSG+ZvQ3RDkH8zshfYU4yMsCgWsEHE+SWKGKtmf4tyo6Mho2dT7QCHz8bqAEbeBrUkoLGbdHIIVVkB83Jh/rvz7TbqCWss";
+ moduleBuffer += "mr7DKfooxsjTRmctdDTO9dDUWuD5qikGL1re4wrKLkUMU3nzB7YHxDPssj9V+0dKn+k/sFcPHNgTDhzYHQ0c2BUPHNjZqB/I/iVT";
+ moduleBuffer += "CzCqtmpnokAsEhSwh2z01xZt4SHFLx3R4KFtwBYPbNQWINIeICjSEr0BHr22KS9f20FA/9TznTl1asRMGPkGep0O63ED/rgR0wyH";
+ moduleBuffer += "4GQZlNsZNlcEnUOLNsz4dABNHeqWhP0ZLIeHdINug6XNd9xn1N9oKyoIEGnW5N3vM4Wdbg7vbvW684AxiQNngeS13Ph+e27DfITR";
+ moduleBuffer += "xOW29/Oc0bZH4aObV2T5L+A3T8rd7syujOFPprOZM03TMt0WnumDZptw4w+hf9UOpYh+Mo+pDgEfbv2oS/bsHoYKmpJHXI4CCgZy";
+ moduleBuffer += "8h5zMPcHzbgZQ+yXOTjqsxlMSbsyIkfB+npE0fKXL+11jyyG/O5Er7ugGPb3NbkFNBEAaSP+aPON5iVfZRqGIcfjdj5uITyxEAho";
+ moduleBuffer += "AS/G+yzMPwkqAixT3edhe7gYLcas1zsvDrdbI8Vh9VyGdEm4CzkIaf6/EMQ2ZfrOQrM7lD+gze1H+NuP9LcvqN8+zttjd/se01lH";
+ moduleBuffer += "iueZA8MowDSh4sjWPtWj3MUjG2pHdvLI+uoIGnBKLwmnlfngOr8htrY/mELmmaqdZ8rP84+acW6aQsYFXsBcl5l+kJhnn2dOZbhC";
+ moduleBuffer += "lWtP7yZDAoACPFLTQeFOTS04KYqeNmvBx4w0WIzgJxmSCa1D22sHl3bEiLmRPjp2cArE24MeM8nB5FmuJTBOVu65wQ/u+aZ3gJoQ";
+ moduleBuffer += "OgCiaAjlBFyAsgAcDyzsZulAhkoo3hHpy8p2/yi/RtET7PBVMYG1FQKGgDUKYy+GEAzYbJ6iIQFwupiPNCiKXHheNx4y70MkHVwV";
+ moduleBuffer += "yevwXuz03OspAU4UZ7jy4K2oUiZOaH8MgzHGjGym2XyXthU2mkB+P5w3WZHaE9avWbUV2g7ORlxJPydcQes3u1nYHnjo/fZAcaiU";
+ moduleBuffer += "bdvA9M9D4UpBpjkAWJWrNt4DLpqUCEiE6sV7NAfeI5n1PZpFo3qJhnsJ9KjqDVzN3Zs0+t9gi3sD7m3s29vZt7fN7RVman0+YxvN";
+ moduleBuffer += "ZA9p8bwqKE2ktwlBwZj64nbGiL+2GwLbAuh4Ly/IDRAwjLmcDlauwla+M6UBLj9nZf6xdLIszGHrXw6cu8EqHj7Gr4gILAItKyag";
+ moduleBuffer += "SBGf17HgfQwyExhMBCh+Ak4cCmqMxENFzjOd9KMp7tQ2jggqUMxQfCbAdjxwpBipn/SDEUP7wEF58AU+EsqKq/k/E06S7kKmsBkN";
+ moduleBuffer += "UkBymRMalodKlqbAg0FMvQiOiessx6k1Put6fA5WXQnRcQle2cWRbnqp3GF3mGfdrJCxn3Yy0ZsjrzcDgXBpHdoD3M7NmlGaPnBi";
+ moduleBuffer += "63ZbcDE15Jw4DSnqN/IfIWgvgZRvk0HE01m39bYRVdrI9+FKVXM2A6wLckYufmqXQxIJSJrLvo7EP2+Nuf6CpHZBygsSXqBPrakC";
+ moduleBuffer += "TWznxGDN39kQvyjeiij3TsynjEMi4nGfZ4PGLpaEuWgwC7uh4zNKexYXSdST4Z5ZFxqVDKgBjU8dtXW8isiRSsXXgjnwc+aCC8Ek";
+ moduleBuffer += "GTmtxivwcd5vQ6580k3ND597TSlbUsWzOgf8f4bGYhEy6a2cBSGTUZZFeBYt3fGZdBcKSjXD3MVudGKFg5jfwkgQiNz5zWbztfYZ";
+ moduleBuffer += "WGnW+sQL5O9GZ9n8XWuEQkaktUVJpYIZsJ2idJmr888zFq7UK7LLQ532A6FJR/5LheU67bTkG/uOTAzNWkc+uo+BhXAPpgcntX7p";
+ moduleBuffer += "IjxgRcm/p7QNgnA0JGIeSfNvR767xbXu1qy1OAeNaZitiWNwOIDeFNV6U9zfm5LZe1NS703xU+hN0Wy9Kaz1pla9N1n9d6NFEPAA";
+ moduleBuffer += "i9ZlkxJjKv/HlFl6hcQJ8N7cpeMwoDX/kcWHYCjx3yIIJ2B4r6RkiPdM4m7VGeyHMYNlgUOn879oWfR2mBfye5v5X0uutaRcY+kl";
+ moduleBuffer += "yhqhW/OPo6N+gAY2f3v+85AfX4kVjlM0Uf0FHQkRfx8PBULSpjixOSNk52yycNhxdX9cAz/Wwv9Mc40pUT6E3bDwlqMgNQcM5OIg";
+ moduleBuffer += "lRdRFng+l07IRhN8g6BCBQ4EFTgQVOBAUIGD8pEPCipwILGzgaACS5rcifo4zKxMs0F9Ho6EvC2wCJY0EAYVNHDgZtJy84emgQ0c";
+ moduleBuffer += "ABv4Kmzv/LALpmT6DdJp8m82OfumvfydDtTy16ln/PVT6xl/PVfP2P+dZ1fP2PilX0bPmP5S1TO2Yvu+uw+sZ3w1roV0tlwqbsFI";
+ moduleBuffer += "cLNWMhjGoSpyyXcSWOgFACXg41ZcElQCgTgTIICoAgKQIEPNyZRWl2hcb9DO1rSc8lJo0S+QZVvH0A2lFiRuDwkPCzoEIwXeLGsT";
+ moduleBuffer += "EHelEpLY4gCSgqqifKppdXlJBJuSoAF3D0n0mLxH2zyAVFd8IIAGXJSH0U6pahUKla1B1zIP2Dy2EwqiLMTuBRZsbaKKTqtTODKc";
+ moduleBuffer += "irwNAVL68F5NKn/x8eptRutkdg0Xs6KJl2R0SGyxKIUtMO002zp23yLMBAg1lQgS69uIxbeBkF9iaCCGE7xkHXIkocyGeUPIY3p1";
+ moduleBuffer += "jy+YhBQRg24mu1arNGpsGRj1JxMhOJDPKqzweOaoOEdyGWFtD1KnBHeofHCL6ZJvbgYWrZcWFQTxFxYWo6trwBgepUoRlrvbBgg3";
+ moduleBuffer += "UVFt3GVbbp+QBbLcs8cV3pLvfv7TkuojEenf9uRE+oPyzOt/Bc98kqrLpE8pjennCVfQryepKaXksZQ3f/8OSWVZHi1hDkvqck8K";
+ moduleBuffer += "n9zluFiMsmpjmopQxNnUBfod0LOu+PEz96xHfnpQnvXHg98NAnckPl9Fn2+UCR6+PajtwRUyt+afb1ARUPn9BB/Alj2kzSH/ra7R";
+ moduleBuffer += "fun3wMJmkpssH7pWvR7A/GVaPviX2ytE4XRWRGEivAiGsIuqSrsJMYRDWG1QDjGEG6TTsBjCDS5ZdEESzkoW/dCCKZ8hsZBoEtM2";
+ moduleBuffer += "BHiramYmnpho+hWhh0KWJucEXEIyHZFgMK0jxAeUOgI3Y3F/zLumXrzuh9TN/sSnpnvkGYT0PRpZlbTbH3NXOMCZ42BdeRngDaAA";
+ moduleBuffer += "5TviivnCrjU2Hs9Fj2VXaI/JxqQJTob37wjKl8iS3ChpwlbMwOA8n89LxPnRDQlJ3dWckFdElRAnznEeFucGEn4B+HtlZOHya4C/";
+ moduleBuffer += "Am1OF5sEaUlnVuXte3cICq90ZixR5W0/2BFIf9aSUn3f/Y5UKCFysLZRdolFDm4wjYBJBfm3+UtQB64yFdCZBQHKzvMBkNYFNghf";
+ moduleBuffer += "HDr4YvAcXRlJV5sDvjjw8MXS1iNAL8bXQwaPqfGrXeLUxCTV1dYK2LtkuykJAKYI4RQ6XJyLGRekCxBOaOPYBXCuZ6psZs4Sb/9k";
+ moduleBuffer += "3+Kqp/cWPee/dZ72wuGQSjqNUDiVd225kx+TcYdmNaYsul93JePmlnX0IKBkbEr8YdHjgs1Jgd985qPkGfaJ7lHb3j/no2rPsU89";
+ moduleBuffer += "4EfN+lb7filvNeujNn3w6T/qv9IJDVJVhR/Iay6pVa1ECistMEaXWFhGK+1CPVq+/wN3BqVQCwrgrxWsR8v34Yyqncm6wKijU3zl";
+ moduleBuffer += "E36uUF5s/9wvdsCf67/XwY+pUAheT7FCfKt0py6s2dzybmyZmrhgFPF5nLy1CCY+PaSwCbNugayZPzh7nnsgi/Jtl00/pUV59tU/";
+ moduleBuffer += "qh4UyYMieVDkHxTJg7CclvdePB0c6LPs4nNALzV9zTP0Uu5B9Zfae+WTfqk/wsq3db+RJd6MiRR5CRt+zD24HQokFhh9vO/IJt0r";
+ moduleBuffer += "d/3E3TEVGu31p/Xz8JtveNAfwV/2H7ii5FNp4ZOzzY69wWZnVwdscnZ1oOhJ1r4/QA1k3B3I/jiQ4WS0+nLnjjvNGA5clAqU+n2/";
+ moduleBuffer += "kBUzQMb5qLTKcdTfj7Np1/s1B1HAZxGzBO15xaNuVQ1EMDu3voKIgKMrcr/Qiu8Vx5/Yye/b6UD5wzrBX9CPSVnUFhPX1/wMUQfm";
+ moduleBuffer += "81Pf3s9N980QCN8+zvwcJpQWgQtYt9MCusQ4ZweJVrdvVEsv8AqIyxirQTNeTBmwLdo8nDWRVeeJq9CUZdPNBbHtdRWn4IG90W33";
+ moduleBuffer += "P9U3urXh3ug/mgeVDNU0U/hFmMOn1iIN4XTAElzMfT1ZTj0K0OMjy0uUZEqYI1OPJDjE/akUB6YeClZ0dLkOyXD8Xog0+0MPi+vo";
+ moduleBuffer += "gEzH/hc1AK8QukCp5hMCK4R1YIVZS/+reK7S4ydX+r+vUweI+hLO8BeEzomBvi2TenCigHc7nSj/BvE7nRdywsnmWCgXiRCuzpQE";
+ moduleBuffer += "GHU6Dhb4ZyH+IebAKP7JaY+kIXIl/4fLjzp9pUc3CsovJr3yyAt6wGfFuTNXrsJo/yPhAwasZzc6KOidkWA9aMF6iIjieWA9dtfW";
+ moduleBuffer += "7U+xx/6N77F/br09eRe2w3LvXdstSqTImEX0+oP7muFsr+kBDSIBSJau1gdKrj0oeR+hr4U4mRt03AoFvado9RCIXmf4qJWv8y+m";
+ moduleBuffer += "Nmu1vCuw7ka26H95+gYW6hYn0MeUv8M/Zmn9KX+zUB8tHMVmuI6ZxhuDL6wl+8OLwLZNRAz6h4cRjHmMqctwzT07XBwjHDzHLC/W";
+ moduleBuffer += "31Q28w+Gcl7QWaSk3JSUo+RRnAs68dGIgXSmgd0BwbfzDyIwA1irC8zvfR7OECYB/Zol4cusbyACFp3FfqFdYUHtwvBlAixnDrzU";
+ moduleBuffer += "CBYuWfVkJMAGvc7zEI5oWpKAZ+a5jCA3FRwxFRlx4B+3qmLEvepI7VVH+l+1hVcdGXzVeaakeXjVQ3FOXnW/cqst4imRpvchhHes";
+ moduleBuffer += "J5JXWN6uKvj/8Fh9m1oSTqkKsnqrchXAGCTyr7vWXEd6QLzuGitf43VXYyFSvU7H/N5vfp/vQ9/GkKdp3l9JZTqJ1PowU7vD8P7w";
+ moduleBuffer += "hdyiisPc+x+G9zvEBYTXvvFhVcMgPNDnbiKmbj7a6KZ8C6JV9gcSa7dO9Tk61ywJzzWVutAF27/RvSNx4OLapeG5iFybLxL+wnw3";
+ moduleBuffer += "rMo/M4UeYX7fYlqwax2huvxOgMA7Xb5dOeeouf/44M1qmVotm281m6/F4zYpIYW6XnUOwe9G1TkS1dqgOi9EJMsVqnM4ftcrxO4f";
+ moduleBuffer += "q6dU5xhct6YTS23bEuyvy5+aznuEr8L3TBWOZrSRPL55UvAGPlqtXhaslK3XLlOvM1umL50rjd9m0E3bR1UMmf0hjOKF+VaF6Ly0";
+ moduleBuffer += "8wLTSkMwmtvwiaHiBZUzO11kkTkXmtuW9rpHIVH+Tk0siW5hfjxIUFqkANYEkAQsVO3uIhtjgQC/oqhdhZA6REYcdbyKiqPE3UyM";
+ moduleBuffer += "pRTxzXfR9odARkKGilu5iSq4MppShgYAxiKu32nlVuaVQ96t3DQvwwslQmPIRWi0fYTG/KJtAUHni7F4Pkpo+6hTFDqfbVgslPjt";
+ moduleBuffer += "zOzR0X5E0Z2lM/R92RfIl02rL8t+2O3196XyBbUv7XpT4b6uWmT7zVDVj1y/qvoZ+x2AKF6A/nSs3qzgcTzmpg769/PrPck87Gj/";
+ moduleBuffer += "sBcuCd9oa7Q4eJOrAJ4KKpQjTzRvIUdex3qgcv+DdTtWnycPWtMZL154UwekYTBCHQ5bUNxpF4eY+o2bujZM/eabeh1uWgVI4y8g";
+ moduleBuffer += "ErTEDZh5Sr4ww3nc2ExkbAJoV9aZhCE4gilyJOJK8RL+fQ5D1DBewR/5B8aMPr8+VtWiZWpMtoplalS2Fi4L/tBsHU4aXDNsyGQx";
+ moduleBuffer += "X/C2YiGyWNYrjqwXM7Ys+Ldma+ikAHmop5iuUj87uiz4LRmbrzE/pu+9UrxX5wCfAThNujjkRP0y8zO+BLMTMK05L9VnpRSfJJEJ";
+ moduleBuffer += "T5bYzwjpDb4cZyj/ouxI3wn6XnS1+1CYDgrT7EPSHTL0RtN8rvG6h7vmc43XTavW6s6v2qt7BFosKef3Ct6TFPOXBfPMzxHLgkPx";
+ moduleBuffer += "jcxY5XH3tcyLHycfbdz8HALxLEFfKszPC0EEkqABRxFWeVKQm59jlhBfORZw5baVyrcqa+RNisOOV/kyFTE8xSwnh7g3TpACe5ip";
+ moduleBuffer += "WblYulG9v5AQso3zLr3Dnz+GvQtVM086TMYzF0RY8xcH92FQhfw6HZHjDzEdm+vkAwQWeL4wVoj7/fnHB8EytY85IGsQOT2uV8ui";
+ moduleBuffer += "+iAsBj8wCu63Yuq3bywOL5eex7VQzPqU3sxjXN7TIaiekX2PN8UtC37TXLGk5yf90NwNLXKNDepfWr9ZMrGYbmCemm9uWpmgCkC7";
+ moduleBuffer += "Wts1P5Z5yBZwW18B6WwFpNRu8x/VCiBsSH8Bmb3z+mbhL5ggUoNp37oYshQGukOlrsjs4gxwKL6UM7AfKgHX5hsdypbC0Lc3TKv6";
+ moduleBuffer += "DXH9BiOy8I6Gz1Q7FYAojwR9QtBqs7xZEovBmoWmZufCGKwk56l+amxJaJbMQ12jwHOTv4epOvuJ+DBPgqnmVUvivGKeXxLn1YS9";
+ moduleBuffer += "zByXBSyrvQKaP8MrzvPLXv10dZe5TDBv5kmwhMaBETs+MoyPkWp8ZBgfI358iDtJHtXGCTcwMhkRmY11HJERsaB4nveVGuHyeYxa";
+ moduleBuffer += "f5kXk88YCrH90i6d/SeL1Hxyr7zt+2CRj8niDiNgmz2eErS2KTCVYB2zS79UOARGJcplr+sUo6ilu3bUFhGZrfhEB0O0FDfc2S/S";
+ moduleBuffer += "nwyUQEETieovwDDI8NUoiaoBgC/yv2CQ3eCTgRCDSkO0GFACCr4l8q6QT8g+2234C4ruMSDUZs0bUu1jqjpnAllCpYX9Ja/6S17k";
+ moduleBuffer += "vr/ktf7SMselv7QG+gsiA0wJrr/UT1d3IVGAFcl9f2kVw7a/IHjUaGK+v7TQX4Z9f2n5/sKyh31/aclLtWx/GXaC1ViVBVeMeaR1";
+ moduleBuffer += "GwdhShjzrytK41gtMS4zezTEvMabeVwUMMwri4M8vzZxvszIp/SJGYBl/Dis0dZU7ElRPabw2gPWS//yl6+Xvu9Zopd+9GDrpXu8";
+ moduleBuffer += "XrrJ6qXXYzl4KBC99OZ+vXSz0TXfUKmlm2pqaT6glr5Bko3MgfNqWunrzKHNViv9cp9Wmta00k1zaKW3HSStdOMvQyv92v9RWunH";
+ moduleBuffer += "nrJW+tnntNLntNLntNLntNJ/fVrpJquV3iNaKRSXQa30W3NppfdSKz1PtNLXyZpqBI1y52fv8FrpubNqpeYxM7XSe+fWSs+zWul4";
+ moduleBuffer += "/WZRKjeJGnkuq2L10E01PZS3bFZz3/Kj2i2iWPbdkslL9WmehWieE32Cxjhs2laRPGFOxXNsVsVz69yK5xsG9c4J3LCvX+98ndF6";
+ moduleBuffer += "cW4P9c6+eiG3GMDeW5QIrvVTZtxtEr2TTQIRzuqde57TO/v1zn2fvuM5vfM5vfMp651fbdQSWJ2QyQSHWjofUDrzv1JFAxoDUlob";
+ moduleBuffer += "NXW0gZRWLFYZFQcFxYHntVMcNqhaiqAjnyP4Jr5n/m1I+0Zt65qZDDl9kc3pA/AHoYFe24nrzGKv6SYu0xR63N2679JELuGQUeLG";
+ moduleBuffer += "tkSXgmX6KJ620NRDr5UExKSKECZYcUvwoy2MNGCgW8A/1pKWeJFGnGlUNiR/FqA7DDJlBkXs0pHGhL5lZjai5CLGTrHYTcWJYLQ2";
+ moduleBuffer += "Wi51gNlMJOyapoXEwhZu1oJvPmDfNpK3bcoEgeYsIknPNLefs8TFRVqLguvOWALNh/py0pbw9HM7zcJyoO9zg5JpIJU/XCQC4lxZ";
+ moduleBuffer += "xCxmFez1GBXuOguE5SaNsD9ZMqzxHEgl8yXV9RWw1n2BR9aymUdNK4pscKKIeV07sEIMrEY1sEIMrIYfWKFH1uLTG35ghZLO63KV";
+ moduleBuffer += "Gm5gpbWBlc4ysNKBgZX2DaxUBtarlLoQqj3y95lqBRwhLNKnrLylG12GIG5k95u99etIfRxdVtElmqOXdfTywBK4CveNBrfN7MX6";
+ moduleBuffer += "si5zt3cjUyweGK3vWHBVHl/fUaZYPVjsn+DVfnmYSwEwlwJgLmW/a6OCLPfwWgaPxLNmLusZkUjaZi7rfIsy5X0mdOFREq5WKkHs";
+ moduleBuffer += "6Fk8DiV4HIGw5Now2I0NB4pvxMuU+VCdqAr+74u6ewUDcUz7Au3/TIFZwxLL0A/86nLt+UCIbp+X720embnj3QDST8U9E1bpN29R";
+ moduleBuffer += "g9jBMvAROZjfGD+pKJsqrw6JfSO9chfyJN+tiPFVi7oJJb1NUumYpmkjcP7TwQiLGWNYjOkWs8bEnDurYROJJJER1gHB78wO+bpw";
+ moduleBuffer += "NmMnoiO/pZ7YyLmC8UVPkPEuyThKLtC8wNJXal6g8gfDbDVz7C2MfnQhczokBq5LeogzF3Qlc19JkgYJspi+XwT6QvQWyfqTNNPf";
+ moduleBuffer += "5ERYmjWifGiPB403vQMYQstVvBwbQfYfBvBBCvJ1ITobI6sbeYxupNZepyQQt1A14HA0PbaELcyDcwsiyP1KxRY4gLn1EdITu8An";
+ moduleBuffer += "M5IXU39h/t2FlNr1plyC9MsusyUpOoKnGiqXWX7NsrWCYH8p3py1xa/CcIh7ZluGgzseisjWWGYeWvX9mPGD8YoFQiweCL23+VpE";
+ moduleBuffer += "EwydpZCUaMKopG3acGEzX5g/RLzBy4nWkn0q1una8MJ+zAwnznjRA+IMgM0gzrS0BVJ0tmYAG6D9WxRnYogzUZ84s8nbQZvgHQzK";
+ moduleBuffer += "FxI8i4sW17b8H1JZVeNKaHmds+rF5ThBuCEO30NhZWnH8n/SWjmBC88YopXhPho7FVOqrwqlmKbIDikP/i8CxbxOEoz18cF/WRbY";
+ moduleBuffer += "5dAc/mOxKnzaGmcv9fhriP0EqxFsHp4XcmlP7BzmQNe2gJl43gAJZAJb53YQ3bgISAgOBfEo008g93Ln8J5pOKrG2ZJgxPy0lwSJ";
+ moduleBuffer += "lT4oZrCQJeFGMjcAbSnflNSwN/dVK74VNVIvQrSFb9et2rFIGo3aZQJueC5g8+Tq/ZVg0lrSJ0BsqgSIqC5ARAMCRDSXABHVBIhW";
+ moduleBuffer += "Jb1kVnDVAs3iAnIdbIpAPpTaSw1Jn9QgQCpPov9+7Nes/177XP/9P6D/rqhJd1xj55buHh+XJnut1qKX7nc8yseS1EULHYpZCUCH";
+ moduleBuffer += "ooUORQsdihY6FG3pUBiMka+F1Ag6FMQHP9qQtqVsxwV3k/XakabZwtaQ3U7Ulb2kLjX975Z8qzBIdbU7S/BFMCWH8lGy19ZFu7Jg";
+ moduleBuffer += "eD5STyxyBkEVgNuBFH4EzW9tdpF8cPaQqvLsR7LyoYvBm2iOGInutkvN9vp12wUH4sw61xwF3OJ0m/7YY34W+F4gXFkQTC0kchAa";
+ moduleBuffer += "80dTszjn32g62e+mhhomJYkmJc3RFaEuSD27pg9dAHZXaIaNC0qFtBoir8VuBwiGDxlJIPQEZ6a50TbllrtR36Tg6H5Il0etPMn8";
+ moduleBuffer += "oDb566H1UpRwN2mYALtCgmQun+gOAQctzD8Getom03ta+U7J84nya1orhXNWA1IQXKzmE1HQAe3DfnzqnWmHAivJdpcScc/yq26K";
+ moduleBuffer += "5Ntuu1vYfUEit/WL28mgG5ItGEhoH49IbSUUuo6xu4hPCjai903Fve5IrfK7IsxxI8WwuRP1LlJQ4VIzLlLunlO0wJOLs8oRiTSA";
+ moduleBuffer += "5iYvF/OFKGw7ma2ITgr2kN/opGA37sJgb+c/i6k1tieLDIizERSYc89fWUTnA2NWF0Nov038OCeZXzCvWLxWR7SbSNujbRN6bSPm";
+ moduleBuffer += "HCcormnKt51AgC62kV4vyr8PhWkLWf7C/P2o5kaGWmvZScWh/GNctTMSLsC9ngVwL5r6NOazfx9QZp6WhmnlpKbhp5kgrqfRwXEo";
+ moduleBuffer += "5SFsCaF9IddsUM6+XeCK1HQGMvOaHzaiYOTFrrOYJdB8S26aYuzmKp6xjDXKNkvT9qnAVh1d6VzTQtNE7vuZHSh7IqZ+Y6v1RAMl";
+ moduleBuffer += "GRwooByeOVA2fqM2UNY3OFDWNwqbfonRMuOeHsaXuw3zDvo3hxW98LWeaeZCYKlGKHtpt010wXJL2H/R7hBPIhHO4mCXksFnqhvB";
+ moduleBuffer += "zCFzYP5xUD/PGIl/k/qRuI1jAFCffiRONWQkcpnK90Zu2HMX7EPldGoHI17mJ3iZ3QlGnJEKiE/bknG2J7A13dTE9Rhopqbb0vxu";
+ moduleBuffer += "4Zm+gbTMukfswDh/LLGj7e6Eo01GVFINN95cG3LTyg+5XfgQyUnBTtyKsZvlD8mQyybh+tmpZMztVHbQ7VR2zIUsENhHio1gpre7";
+ moduleBuffer += "6E/cHPbGg+DEgGrseHBDeGLwOUWFsi3DdCfedU+LfH7lRlBoorkbwFElmkCjaOCBpiLodw2XepTkex0KJj7//8QaJOxLYb4Z4uJU";
+ moduleBuffer += "6IimHDNUjGYXIqmWVy+bclCYo6hMFvY6KZqjsOBVTfPFSchkfmS46b7hZgRPl/JpirKbq6SLkB2U6v+eBl8V71QoP+wSthr6zU4g";
+ moduleBuffer += "Su8BA2j2ypmWA9gCHlAzTQS0i+b7D8BKALC+UndCJ9kOa0WgQ4xkXT5GuFENaofjAvPhf5ccNNUOSrdAA6afpOBiJtiAhZy3yXWO";
+ moduleBuffer += "omlD5GzPZuYikON+XeNnbVc0hDn5WVXFz7rP8rPuxad4hJzfe7V4WHCd8LM+Ihjv5bp7poWf1TymfPBus7P+SxU/K2ZNW0ofP2tO";
+ moduleBuffer += "flbl+FmnHdlo/gYOHKAP22NkZTeHI1N/YRLdz6HcyL8NdjsQv1qCMB7gV3qTRUgXpLJYlgqpisJaQbK3/E2Fsvjfpo340d+nPCUk";
+ moduleBuffer += "vnpQT0/ErR8RMEkQ+QrrQDlxBlPXde83YWMoj/rTm9eYow8+ckeAI38OLYhWQS8URUYI6lCmQw9Bp5soJGWxpE3wZAJKHSkdSTjl";
+ moduleBuffer += "rH3f9qG14Mi80FmINC1EWsTaFOJnEa5Y0A3rFiLNHGubd93rCECnOWEquPyUS4iREgiUSgAUlODFAd11l62zqFpRn6no1QNWO9i0";
+ moduleBuffer += "ysiCzwA68awFYqsM3StaeBlCC/AI0GUKDfOyyi/2eYe/LwVPqQqjllnVIvxrgTJRbm+36SF33WjEU8ciQKRzZGG28vNEO+Mo5vfc";
+ moduleBuffer += "4Nd9xVWsG0IAcyi4Ztb6+6TwVHWmjKuYT2q+1UuZak2k2Jc683/2H5VeOxPRTAyXICf9nKR8H1mmZZR/Ie0qWMmVtYNaYrFy7wM7";
+ moduleBuffer += "gionfiQLMuLf3N9EWmx/pqcSG6gkdgpteVhuex/wGPIiFNrykNpBjbR7nIeEwVzcIEwdv3DA/hucKDmvbasgIOuUJrDAdgd0F0LX";
+ moduleBuffer += "+S4st1uYP+lJXUGgbBeOUUES6/OrmkwI5dek2P8qjyVgH28K/z1JsSfuvKB/W4zLvNpPLeq83YfrxmrehA14XWBnVNSj1JNmXg3g";
+ moduleBuffer += "ZVh+8ZT939olhDf1+FSKZu2IUHgE6PMGc0z05h/ZH6FpXsBjf9cjrUYzlMeoSlIuaKrHDBrmHxKqj2gWrNW+4gaBW59CcWf15VJr";
+ moduleBuffer += "xz6oGZM54bATaxnSMWcDAjA4jxix+mjJPFu+k+dVl4ErsN/MtJ8QyuyT6fGZ6MMQZ4vxkLLm38yMbcmRXhwUUEfXFkGNfHyh4Cv4";
+ moduleBuffer += "LzAqGcT9X8RlEJdK0IOC7JN9sFQWftioXGRXZhXd1rjbwk9RBFRTC6JDUX1PTx9i2I8p/AJhiC0TAeAh83p51OqisSouGtbNalop";
+ moduleBuffer += "to1F5wxdXBnfgTPUUtdPFZc5VsUfsXLnuD9iGiIsGFCMLUuzQEDZ0O/mpBr3uzQDWExYi0/hGwuRM3Xnj67SrT2JA8fM/z3LUHw4";
+ moduleBuffer += "rY3FWom6/jncWHTluifoucv9+UEo95wBKIIAAoLv4dOB6+LTVufEYvm4fXy2iv7iIFT0NTPLLaffa9SMverpF24H5q7awBzvG5jj";
+ moduleBuffer += "MjD/PQfm+MyBOS4Dc5cdmH/QX1mig5qmOkblNDoiE0lbUC6gOXSDWhjAP9HkOsaoAvPI75vJPv9Ws/pe0dpyPgop55+9QLgKZLwx";
+ moduleBuffer += "SADSqzB6kz6WpMtGwe5oAUcbEubTRg014lX1pQtEOJztT4OwJJzScK6CRtoswVQoU4HPwHc3IhRF/VCQM1SNTXq2JekVT39J+j0K";
+ moduleBuffer += "CZYRuhC6Sbx8V5G4mC9fOMpJ8A0EcrWGEGjeSt6/jprxe/79xUISgf7980qQocz3YEuIn5Be1MVB2+LKESUJQDNA5S21Bzb9Ay9o";
+ moduleBuffer += "1IQBmjgBw3vvPTsoYWiRMBBgLyGx2ooVjvpznOtQ3svvTu3aku1SKq1DBooMQ+UiLxS8f8ArheKyEKKmQAkFnok7dr4GIramgtja";
+ moduleBuffer += "tNiB5sPCFIhDiUC6Asu1UaqVUE3PXIWXjwW6NBYqtVgMkQ1I2EWyottagAKKFgEDK/+di6AJBFsjcExlgvUHmKz/drSHB45oUPwh";
+ moduleBuffer += "YErxoRcHoaWC7+XvbUm0DkUjM5K6nTj/oIIh9wXmS2XUSNtACPYf2OIlylf5/ywnmh+TY9X6GEq39etjaMesWx/peVCyVYFDQdn5";
+ moduleBuffer += "szqKbOGXxjG/ldcXSYA/LTRaYyhUT2ZKCdmuEjTVDcsxwBJMPRquLNPVqyB7XsA9szV2wapV6CdkUo96UA0QgBOV668Tu1GjjCbJ";
+ moduleBuffer += "cRI5iigIA2HqydBQP+sZsXAiY9V+al9e9gW91SJVuaF3kZIGrOEydqzXP2YIH0kRCJeFPgHxCbEbmQRnR+LnxSEtun5KHhDMXxZS";
+ moduleBuffer += "LZDszHubnRpuY6FroRuv7Rez88+kXaFRNn3mVm63uf0RysradgfRcdhp7Cxs5qKXFKGci3q12Ilz+h/AedtcfGkqGlnaJYW4oPOY";
+ moduleBuffer += "ujuVBGqEU0nqVv8gezjSDaNXHl0jiaecQz2n4ft9/Zlr5Y0kIlKYN0gLw0CXn4QyBXMmbp42xLYsPxNI/PEpZ+BwCzxxK1YNcbR8";
+ moduleBuffer += "6SvTQflb+T74r0omLahbzJhX02Y1QLjd8seCS2xwUpGuIzFNYpdyIPQvf0zVTpseXErYqMOIK5UMyrd/1Tzmxe4xmYS/5J7SMOAo";
+ moduleBuffer += "Nr2RxAF+ZmwIV3KKkYEAvjLIb2jIC1cdTTOSVEtoRxfCXDc9BzGKmOdUaQGkjSr958JNlFoP1mbGmqeWDcW0FjitGwjtszdxtpOX";
+ moduleBuffer += "yMTDJjrV4mBc2vdY+kQX0nH5ovzrdjaD7LBwibbhh+AxrOLG6DQ9jpNjDcHGFAEeOjuLs8EkPqV2UWxhdCz6OfA84aollGdX1UOH";
+ moduleBuffer += "ElYagTmWN8WNFkyxEuMvnfmyULd83xMLVSSJYxVUYO5wr2VCC2V6h5dKZnjhhG6LeN482iPOVhhSbXirQ5vzVrTOsJiDZlbIHLws";
+ moduleBuffer += "l5P8zgixpvDjNCQhasohbjb5jvmNcCu3/512qN3FUKctmRkX2VaCazYzj213hopUjp4+JD6xtvA7pDbqL5f5y/ZACFf2clO9xLc6";
+ moduleBuffer += "cxi8LJg44cNGdfX14L7oragevRX1YSRVMVruWzoJw4tC8Ep2jcgEf4KF33ceKc604AspJTTGjMXy2n+elqmovN5s5dsbQfZ/iYQB";
+ moduleBuffer += "L6plDQB5071CR1o2+Q3gJUPBCNwqN227IyhRuav+2mzcbPYsBP3iIKJDCfXcr3Ui/WWPKxgBAb9oUCWG5guOvQnaYDsNmnBImmir";
+ moduleBuffer += "IawEtJ6ZGwJZ0PTpC7A6jHcTwUqOiZWcZBG7iyW6odqx8bumUg9ISJusBuhj+dsawjN56iSKdQpwKpB8WwbuIQ1t29xjZsqLG1xU";
+ moduleBuffer += "lrqQRCx3nHdHJeJwTIh9O6ZlJynqaDATQrExmmRKPbDbXK7Wr7PSAGTI5vJTLuukEmofsWHyj6e1+tXJduCXzlzbFg1Y5BrOUxhY";
+ moduleBuffer += "Df7VddmzMnBFYuCCvMltWK8gyGNMOIBggRXkHmUqrGPf8AGBtst5Q4MzyWm0Dbw1j3LyY7zm2QL2HEkAKc0OpYaovwBG1NBWFWqd";
+ moduleBuffer += "9XyLxALq97LIf64cUTIbswr20mKeQz/gQXOla0YMm07AZnzyXXnDlu3SlR+EmfL6Ldtn68qXKRWuLbw6E3VrYnzMgJr49chOgKhy";
+ moduleBuffer += "3hmg2Sn3ft4CsiFqe6EIj6OFh9i09sVchEIHw2YtBGkxK+zaWPaKmUP/tTOGvgvqm2XsX797ux37m8xW/pnG055Nvvb2HbbEe80W";
+ moduleBuffer += "S/z9AbxtAnr3410y+SqSqISwQoetRLMRxjhXwMhVmRWBVklLOcqMpczYlxn3lxlXZeKM6a8o84exHpL5ab9Pnh2WlHfHcF1f0Zjo";
+ moduleBuffer += "ICsamAT/KRC489qSNkRaOKxssL7uUtb27kyemMgwn1hfhLmOkhkt1Nai7lVGjeWNEbbw2u1D4oNYs6NuUq0cyiqNYzJ+R+Gop+oG";
+ moduleBuffer += "U1S7y6jVIcHhHbbJ51ynkduQmPKGy28HsoIp5OF+O6Abg4FG5T2ql2+D5YzkyrsZRdXNJbTKPGSXkminXao7siRYZXbMzzwJ+OFV";
+ moduleBuffer += "CQ44UUjbpKw24sEBiXwaUzPU8cHzlhlVv1nC/LM4OIoU0OO6wNwoOsSiXvl1Wy1qxIVRA9Py5ruMeHhIfotpHkqM9jFNR9JBt4JR";
+ moduleBuffer += "DdiH3iDa+nkkgFFFVpMO6pweNgI8KgHYKTFZP0RK2uLgv0k6X3h88F+XKeCgDFswGKkaxFchokYm4Ll4IajQAdwsYU+KsUFXkQR6";
+ moduleBuffer += "D/s7SYa5yAHZm34SLw6GbJoRHYbM9WHfKr8jt1hub9O308XBsLXT4gOmiAWSb6iAWo8HpnYC+44WTR8d24cMpkfXudxT8Lc+mQ7P";
+ moduleBuffer += "nh7anq4dt0EkmNBtGI+E8IWuQtvZ0ZUlfvB/K0bia3wfJTIVvpBdPLohPlDovowwU4txB+1+b+CcTaT9Fd2uKci6bRvrDE45x641";
+ moduleBuffer += "0MZYXWy+u5OzUrZAed9gGzPMzbaxC3PbU7UxE6BtG39dq8S5xrxqltoD0ePNJlH52JyNO6X7GjeuNa5QZnM2lMZdpyR/J38MjUvl";
+ moduleBuffer += "Yb1yrbtOzdm8ca15r4B/eLbmjXzzPuR6fSzNO6X7mjeid2eweaPyEXubjE5p26ivbVNbdr1txUP4NT9X+xS0YY9O8gQz9SlPMFHv";
+ moduleBuffer += "D57cRL0rmHOiPvmgzNNTM+fpF9em6RfXZmngSlWztA1trWbpN7gIVzMXL3/COXrqqc/RL3rSUzRN226KPlWm6JOf/BR9EmfoU/wM";
+ moduleBuffer += "/VvL1FI3QwND60UzJuilMyfok2bOzy+y07MVtw9gen6JnTmYmDj75PzigbmZkQJ/cIBpVcim+mJ6gNlU+XXNLDuzz/qEvJ1oLYid";
+ moduleBuffer += "tEPqzq+PrSmeVqB+47v5FjX7+xOX9e4DLuubdqK00lxVGBchEdU7qrIzVBfg+3QS69X3mo7Mb9N0hNypz6oZAUWx2/Y+I5l+tiHW";
+ moduleBuffer += "hdRShw2Y5ZD3jp54GyXUbbq86yZz0wMMVMFyIVa6BV2ShJneIh9R0TYRnFG9HIYInSUgIUYIe0qH5SQV+EQaBFEM0iCiXiFOpwmO";
+ moduleBuffer += "NNtuDWCGK85Ycpk14sS4LMKPbd6ov3njA/1U7zmIn/29B1zWfiWeYAcb7wsLZ372mU9znz0+up/BNs5vE7sRQBN4tbJ1y0VZG12Q";
+ moduleBuffer += "fyPB90DbKdYR1M6RfInYfwlJKJbLtP8SUf+XsB85lA8W+jfW/W8c9jmt+lCyjSaUGj33LnHbSVKZ1Vp0v9aiK60FZ8rNl24XRoAV";
+ moduleBuffer += "A0EELuSmZzSsWxFsBhCI/H/HRUCWeFWxxHvXonUAvcLGyCySWIbxjg8L6JIFygwvhM5TeV0qyusJorxO0IhDFTUSFVVBRT2Z8UE0";
+ moduleBuffer += "lEiRJ9si7wz6ynyllPlyKfNlUuZLZy/znOwGWJJUn+XRTL4jBXgfawZIt/LGEuQjBvFCelvsqQzHRO5BpseezzocdtJhoB+Wd35u";
+ moduleBuffer += "uyNFEmOINZ0zvW1SPALijoAAJQ4NmCGbWJ4rt2t5z+fEj2JWTsRD9KdiKmeClKCz/P7EWVo6qjITKukWZloYMd2rYp8yqybzFNNq";
+ moduleBuffer += "bsjOoYECeQShzyMIJPiJ2yHjfxijouZFwioRuQNUyvMHyIXZLiNszei7brz/oOl8F+5mep4fjYu60/nmdNB4qats2foHE5rixUG7";
+ moduleBuffer += "PJy2u/Jzb7nDSIP5p1JJSA4kiW8Pj4r4ucts51/Vvsjf7SvSRRc5Il8XRiffkAFF4gjO/zm0TWpZp21xvz9rDa3PQZVXfHhHX/0o";
+ moduleBuffer += "HaKKm3hCqnib2a5XcfYyne1rZplqljI3D5Q5EBghpA832LmClhvKfvmScKy8+W5TzhCdlOX1XzLbt5sDYucK7EXeL4f8kQJLmO5Y";
+ moduleBuffer += "gjGOp+PVFZqpNaon1JfTIMks9AL2l8LTd4S3FNEty4vL1gHq4r1VIrNlCqmv23Z9pmeF0TLioqWLxTynpDGq2TWbpy/AArzAu1q0";
+ moduleBuffer += "Faid7GrXUTKA2QIC66NRntxrFucMfesiF2gPH4E5ZFgHCk09BEVKUZ7gbmCzeX2iedBxAzO/XUkcmnmjbZGbpOVNHYupkbgiFxF6";
+ moduleBuffer += "qn0L5oLTb/h+RGWsZ9J8ndh0I42PB7GS/U5X2HouMyPqyrjGRXNghDOvqClN9YA+h4NgVsWoL5yPbNnwpDcwLh2jdj1878xZpp18";
+ moduleBuffer += "fcJPq4WsD3OKOpuSbpsB1rWZUddchdnv2OAOaY4I4SuSr13osxbQ+M3FBnlG2MQxhnEUNoO7euHszEAWrFwOtGXdSov+IATOMFy8";
+ moduleBuffer += "lJBtQNEI+1ez0ey3zefUNGijX2AW6EYSXB5LOp2S6F+buEzGQ+g91LgnqZFnr7Rdop6pXSrLWp4i8bHK046hDHO3iJFcXTBgJ3Xf";
+ moduleBuffer += "UizacBaeVs8ccwnUmFjQQvCjMwYGG5FEmwaSai2RL67Vzxqc67AoHfDkvu7N/ZP745V29a7ZSrt2V1XaQ3/XX9psq49MwW+/z9yV";
+ moduleBuffer += "D5a1FUfTcht+GlLkJrOd/0tV5GlPPt70ZgkQrfWc7GU+bE7mRRLFkKsxktioXH6WVtGKEfMXfbioCLDZKaagWtKfadz3bmeQu7mO";
+ moduleBuffer += "Ye+m9CrmXcpxiYD5N5qP295/d8v2Wdr7izwqjTP94e0H/PV2X7djltL2XVetePdet2OgNL2WfnuC8bA9zbQn4VMQCEftGEXuRqGz";
+ moduleBuffer += "jvWztKWf1uawUEJx567b4II8czXeMLAar7Bib+RotKPCk+o4ciUjfhbRggJJMz4weAXBQWROW7ES9TodxxGL1tVkJOUbzzHnaT/n";
+ moduleBuffer += "cZptC7Elvc2/bYqxtyNi7UDmzRllFF7EsPYuVnucC24hM6wPQMaUQT8k84Yc4kRXI/nK4VAAo9zhUAyCT5zWr2maJrToG2aqWRcL";
+ moduleBuffer += "FTbTw9PYhwnOUJaykgIgzEgW00Vl5VpOon98AUSIUp+9wCy2a8+QqbUnTsr6SFzms5PDGdnJoc1ONovF2RKXYAaNYHUgwDv7dzNx";
+ moduleBuffer += "a8Zrmc1mqGUWuEKvsHGwmN3FRpplvyVj1wxoGbumD4zLqoLf8yVzF5KCDWWG5SG/viUpu9XdxVO5+8wBaVJUn/Kev9whkjOiC7kY";
+ moduleBuffer += "kPqxCFxk4RgVIQgLDCtkr3j5AOEdZYypN08/JRlj1sKuePdTK+wnVeaQqJFGf4z7A3WF3lzGn3nJcoJrullRG+XE2Qs62uYU6cii";
+ moduleBuffer += "MIflaC+/BukxCJCnNXKeWAoYJqqgTp9hp1jKSqacFUP2TfzNDIMlgAoLkik9Jm4Y44Bs8lgoZlOqhOjhWx+eDsoXlbf/3DTHD23a";
+ moduleBuffer += "QRUzICvCK+cQ0g4k62LOLIuXSnfpZ5z7h0RUQw+MBf65/PvaYf6YadNpWqzZrIXsSA9CIX8VH4RCfq4PQiHvfJKFnG2JCCX6hRi9";
+ moduleBuffer += "EnXsZH/zBXjQfMdQkWTS7Br5MHSbwBHCtKZHMjOt36BVs0ZAKtYxjOEYA2NMYrRGxfLaqgwssemYElUV0S3YtYG8XNra/z977wJm";
+ moduleBuffer += "11Wcie732efsc7p3PyS11HqsvS13n5bUlizJarllbO1O/FCMY5PxN5/jL/de5o4n43vkSZBxmGSiR9sWogEZ2kRkBMi4yYhYZKTQ";
+ moduleBuffer += "gEMEEaFlC6bBAhpwgjIoQQQThBGgCR4iGMW69Vet/Tj9kGVI7s333St/7r32OmutvR61qmpV1aqCeRY8v96SIVnl850miTQB7z/Q";
+ moduleBuffer += "gYn/Nnb2ZslFPMCsmQrx6YuB2Gp5eBivFfFdGeKVrfDgiLNaVBMnmPCFWWMTRhACDw8fGiblhU/6i5R464L1PE0UzQXbgqiKYPZK";
+ moduleBuffer += "aiKs7YZd9h6a2qMG98CLxG82n1KvFlHO1WZ4ddEsmGPwTXppUEtDB3vOeH8i74XoleAwknPPntBcZnKekvB0rtjqUyxZxO4dag96";
+ moduleBuffer += "oX1Hc4kbfJSHiqz2CLhiMJTxK1l4d9yJY1tSJ5XHyPwwLvyYHxs1M8jsxpQ0oazMhsaP7a3ZJcDwcfG9gfMFx1K05SqtOI2S+K8J";
+ moduleBuffer += "4FPYZu2qw8AtWWmLxRmM2PYhkrGYdLa5yEv0yTip3CKKGlNin9PYbp153pOpofO/k2wMH7G0oawOqJ0JSmlvcXTU2YRAeoyx5tue";
+ moduleBuffer += "xvmikvz525mL5yCtYyOUPoEMV0tXIFT6nnUlzb3wKapmJ9/hByPJ5ATSL34qb+75TzU1d7lR4kh1xaM0cgEANnuLbVosxKE2/rJU";
+ moduleBuffer += "wOGgF8WjNyhJ0zuO5q8w+dUr7tZmfQbyteL0Fi2IZxZL8wfw8cWSCGxqKyfPVnrLbq7pPvQcpjU58hwf63j1RpD+CP6IVXay/7kr";
+ moduleBuffer += "Xr3JnwAKki/+RDfnNJJDSH/lJ/nqHf3JFTd3GuZjbvLNQ89kvTuG9LfxR/fuJIzKXqm5TI549BN0yignx/HAgu1H4iRnSnOHKF1o";
+ moduleBuffer += "7uZXIZpolksUhRL/qoAEi8bwfpMxvH01aznCVZEDpEgf7GErPG3zXi3YvqtiSGptiie3KJQY4UHyflV+STXZ/aGJ9HIqzwV0bjKf";
+ moduleBuffer += "f/+sIduMU3yiOkeFw+OmEaQnkZtmqlrQ0aNOOObF07wiiszTGciODaq4QzNPsHw+Y+vGR8TErHkfwJIsOTWpdTKp8u0m1kYq+w7m";
+ moduleBuffer += "D4et22um4Nf8LmhDjlrS9BGWxVNBSkMu8DP249y5Z5v7ATyd3ycoigLt/MIz24PKbeZM0y6yHCM5/HLx5vPlSceXroh0vCYbWuFm";
+ moduleBuffer += "1B+72QKZxQUy9QKlkl32GtW0a2S37H4LY4e3viXHDi/sofRjb8mxw0t7mrbzjJb4ohQae2kvVepIXnyLxuzP4/0tj4F6SEsv7G1q";
+ moduleBuffer += "6VFzul3s+oagQAX3+axu6Brgk5LJPmJDSfkDvK/S66BcAxGQ579Jh0zmGMjbOBowi9/og6n+DizHr4UfszJL2huMFELglsWQ+/hr";
+ moduleBuffer += "GkocQUoeXL+KsSirOF//xm3KeOOg8XqqbPFR8Q4RTt3B/mcRloZlVHhxBUQFf6QwzJ4KiFHJvvzVkj78i38QcQmis9OPT5jy9QlT";
+ moduleBuffer += "f37C1J3/2UK8zwUSI088C5B47IlnM5A4e4DSjyNDg8SFA0049KZp0pvcbQjA+1m3NZhFmlMQD8/Rk7OHuSffP5z3ZBLp/3E478mp";
+ moduleBuffer += "w009WcukFMJgExIpE0bu9LRAMjNbaesO0QpvwSVrlkDmik525LZYTrJd8taZHzaT8Rfpc0+xEExzwaLEJNaCN0J4CRHv5QI2tEX7";
+ moduleBuffer += "RyeMwuXKZLT4DlJcfB/OXuZq7ugfNDc3/gfNzR0qvo9lL8H6VKy5psmXmfXgNBHmDIlIjnCMgn26ybz2kHrrgFWwMXIa4eFypnaZ";
+ moduleBuffer += "YwTnR59pGsHZ4juN4Ezx/VT2EvyuZWcqbLFueH8ltULJGHqb+cHRb9Ea7XPlgpPLxCy2xebaVu5AfpQR25Twza6GTmpyNvImjl3z";
+ moduleBuffer += "A44+jxjil5AFIAVk+NIPnhUXsG0GkAPLH2kMQxceec+n3v2Dz37mE7teB7rBsU+Gvv/JIx//wpuf/5/fMl5XM9mZK3WOKiYvEfmI";
+ moduleBuffer += "iIeEw0fUnpx88hOfHP7qF//e+BXgGNR9cfz43zx+8E+/M74LWWCAIhpGwFyip5294gqUJ1eHnFzMpzXWcr/vz/30vDXUvBGEKbJF";
+ moduleBuffer += "lMUqfl+2xWJx09HFvje6GnJMFccb/6fIh3KQ0Qp0P9JuzMT9bCKo0MnpIdhbWHFpAsbMMDW7ydxraSY3havNlrVTxITC+BEo2puh";
+ moduleBuffer += "kzqyPXYQbMlAEKbY5SsjIPv/+sh2UVmDpj5XDoZwx3XnVc18u4nAlMWr4F9h7/DsRIGdcCs7vZZKfbhOn+LADRjiSCRRfJqXg1oj";
+ moduleBuffer += "1ULZ4ePlGJoqWtoZPNYcN1ox3vC7wnwmReHsbF8NZ//qe/Ovvoq+FmoNNntnSbRbAQME1hYBO7tX/Dqf4lNPjmvkNNOsixFknsVU";
+ moduleBuffer += "c7QKJjzmCs7I3UZmOpgZPJylXfch5JzLLBtLKl12w2KkpyG3oFKiEQ+/xySE9SyHHcAkjlkPYMbHNGclJfiERU++l0Hn7qP/8Iz4";
+ moduleBuffer += "j77B0LqDLHRBpg2BgFSCFWh5P/QoYnArPRHSLic9+tPQ1fSNKL+hzxc6wKDYx2rzD5BP5g7+Q+qcM91M0K84t6bYl68va/CJ7AKz";
+ moduleBuffer += "yhYoxJ6yaxvI73ESBYsKD0l8K69gVaLZQytYN40Ca92lA+ZJy9noyAKnY/u8nOo3X1TxtZPqZPefEpv3ZyUR85hazFNYJ41vBjIf";
+ moduleBuffer += "4IZwfU5s3+qkzuAZ8GEpqMxArMOo/7AUDDaxrU7BWJ7Ozbel9bbKqQuinSd9V9lZXeeXUHfjFXB7M/mwd9nBpitj1jJFjWKPcJwd";
+ moduleBuffer += "3DBT9MRkl379qScSOVNET8VZ0pZJc1SG+06a4leoPMcSOcnh5569kiXawFsJ20CvT7YPHH1FnE5mDdkJEJHILgh+jw3OfrO52wVC";
+ moduleBuffer += "aYk9R+zR+rIpvp2Zd+USxLA3KovosDxddAgngiw69MUsiZ0JFkSHBYfzzPIJPPNuTt0V1JkVpMTCwlf0RWSJN2IFrPDhQ3nqw0N+";
+ moduleBuffer += "CvT1YJH+ZlT1FdZiXcZOyYGdmJ1q+I8lOQ6y8DG7qJ7t2RtnpVXM5UyenmAuB7wAu8gzBKvYBcZlUGNCCJZAAsQ+guPoIkYXHzYt";
+ moduleBuffer += "xOhScpuPtzqLnFICUIQcvhga/on3SkDzRt6fLNlNvzqtpUxKBv+Xj+i1dPNTuVu8u5Y2K911kjXc3dTxoO7uFy1Gl0LoGIIWE88X";
+ moduleBuffer += "SvyORG3TXG/4tjLb7wxrj8TgLtlpC9NFOpfhJolynkpatxHpWPMgjXgAW7mypRuSV+0qzBkK76Y/zkjkMLlEe7BBetgUt93DhAE+";
+ moduleBuffer += "eMIQT1ZYqylIdC35AAJrU0tbw99WtlwZeLU9+prxz96l4Dpe1E0m0a1kgXhj7Mg12/Ro4cPlm6QLqXdGKHCTKp8pXs6ppinCNSG1";
+ moduleBuffer += "1cTWoVEKDI4BA2A/+HNTQ062hJZeQquwhC9b2YQ5mi7yZNnww4HJMuZYPVv81MAJpfOmiDfJnTURH9FcGXqujDnnij8gc2Vjrpx0";
+ moduleBuffer += "+bhbH7CD6/V2u2z3R8q6wpO2TozZwcfeaC/f1b3T3M71EnMb2OaVBAkJ0ze2R8QRO2oXQ7b5uHfjC4OUfCpaRfTfVsl7ftHgf+d3";
+ moduleBuffer += "/ZsaMQKWWjWkVZQXLhmPxisLb6/D/dtVQ5fkX+nRuCf90d9N+eaeoZflp9ZH6XX9yFPJJZpUszteMWQ+GvWplXfxIabnLjq20Bx9";
+ moduleBuffer += "DJe2h8xopeq7CyoY3ZZSVHwP/Unbfl1sdEcrhqwhwh7d0crkuf+YnPyPlFTsIajvriBitwebzLPwe7BywD5DzyFzwD6F9xUD9hSe";
+ moduleBuffer += "BGsv+tZmccahNX3wsM3aMSP53hgt1zn6Qz03/hV1WnKIae1WVndE00s/3DTyFF6uonmDo2b7zm7W7Vo2q4sJre/Hlbbvj8H/4D4k";
+ moduleBuffer += "rU3mKC0EqkfsS9NvwH1HXvb8tLK6jB0QfTOyzPm4oOOq+RusMZQwNpkHuIZu5Lt5I6hsBclDCU3IcQJP47ZuZTxAiYl/NNitC0pE";
+ moduleBuffer += "IrGMsE+dNyXzGhEcOewkEJ2/Vc2npHVnd7SQZymfLTeZoqNYC67U99wFuMwWf1jdS93zb64Rt7wLUdW6YhwICUylSHg3YADInLPU";
+ moduleBuffer += "HtVDs5oBz4Shf/fl93Da78PDpi7gSAF/RoH0C5YUcGYUwDcIYHqGLPxk4CfjV4mmbj2eTBkPJONPuY3ki+F/iM3ky8adNXbV/hC9";
+ moduleBuffer += "TDx+woA/nbg+JGAd91L1nqFdbyZQ2BP3DamRuGdnvIqelF+X1+2U7EvL9+2kT6mR7Xrb0MboVX07OadH52znXvrbkRn3JLzhk0l8";
+ moduleBuffer += "ebVpNIiEc9io+shTfBz+vP6BSGkPbYj6nrh3yNwRr6Kdehff/qvcXitx9Jfk5PslJKCyKQsYa/SLBjsKSCZ2v2ZLDQbAw898bTVl";
+ moduleBuffer += "EUmF+9bhfd87bW/Bbgv5F8mg6aqWgsRLcDt9+MjfOroENcKv+N2TqJdoygKXmZwt6VIvGJSWIkklAUtWvj0Ou6tukPzeY7TBFicX";
+ moduleBuffer += "nyC0ucczgmQvdThZnoy/P804RT8lUTKRZsDyzUguvO+EnLaI48Egxh7z9MdogHijzwWRl0FuCPtQs3E8rqmFtCd+iXHrpUv2NmIJ";
+ moduleBuffer += "KWvrceXT09iq/C3dcScrtcUjG/ye/wZwvvJvqcGFvKG8B0ANLFVt8DmA7aCVdUsNVxbCWzh2HAyciOerbMGf34g8kNbkAoYAzwQq";
+ moduleBuffer += "UFXc0cSXaQUrw8o7QquoesP/aiL+m64PZT7WPeojBLmCurJC9Y3wtgvkfqcHuY8PWOXOrByqEKQpghLdqxWUEa0gUFz1KCHYTm43";
+ moduleBuffer += "tm6tpT2gLPRgJcHjCnzawX1RPxl5Us9tUymbu7hye7GvFncg2Z9X0PZrC49H3RZf+B1lo3AXHsWjRUR8JrytcTm99Dn9P8WoZQWP";
+ moduleBuffer += "kZI+wXMNQe/tkPANTWyPWrFdrbibBrxCrbybJrzlGrOLdkFZrbiR2L4y266vSBGOQYz9YVygxEwoQtvICOm9Ex6d94tH53LyNAhz";
+ moduleBuffer += "ciB9Jb5i3JTnFPEjh0GJdvzOjqFn3nv8rLNzaPgDXxh72sJGfSo2jkcdfCIxfhlXNsXw5AlzkYTYHmeCb249jiwEZuzQrppwJjZU";
+ moduleBuffer += "x1aGv/CerDTsSC6ZlIP3A25Dt3GQnaD7xJVW7uTq+9wGQ2a5bh3zYifpu7PGgWZgBODQpo9wddVh8QN8lktiW4wDzZBB8CCNlxpi";
+ moduleBuffer += "Y1lqsMkkfQiEu7Qt8lCIPZs5cNcBP8iYvz27CdcxMhiOe260OMonfuoDhkf2zh1cqCcttBKFeggq9a/0ZQd+Q3ADmIiuVzPEGIVZ";
+ moduleBuffer += "pW01oPamz+l2bhQH4WXicglt1Ay2oCPMNqUxW2I+BG9ebnE6fOU4u2QuiB06Eq243ISs1BNipcfRfCZoesoNnm8HBadNykqZFLVi";
+ moduleBuffer += "xoSoFXoy8h91brRyjkkQy3Nh9gozwd+gRngWeISwwozZ19JhUxTJhLHMpH57rU3sfGAY5MukRoiRYabuJEvIvHFbVGPX6DzoyGFw";
+ moduleBuffer += "FE92Euuyk33YNWKW4G5riDURD5ulnEZs8w1uLhMQXu3cQnxQuOVBNtsDngy2wDv/7Q/yqZcvGPIh3iEsUkFwsgoQEEiBxv0HRlNU";
+ moduleBuffer += "P4GMJcnhLOO8lDiWZTz/TsrYkBx+PCMXyBhIDmQZbzlGGd3JxJ+l5KKFIIG++xANjIfMfvhlJCXZs50ymM5sBDykztsfhBRImwjR";
+ moduleBuffer += "BAOzC6Rw3LTMjU8DjrvKOJYc8xQvzJQVt1Kq9fZuAUe9LR12AOfQagAaaY0d2eENkWM5un98heRWVjN1x0Q5+ApCsottmCMvtWW0";
+ moduleBuffer += "+Mgh620AxwHXiTGauTWFcEsCw9kMyom9RWMfhuYVcmn8ooC6WfhBYAHuzys7CeFq4NYQoLN7hFORX/w5f6nO/IXRAoH1COODsCH+";
+ moduleBuffer += "37fGJqCCZrIDM9rB4hRn8/SurEy7QrV0G2K0xnhBzinhvbyH6iDXvL4Gh7lbcaPY4zQi7CTF8wWLPTuz+us4ThDRfTw2b4vbaM06";
+ moduleBuffer += "VDezBSXC4cwW1AAI5eR5xMyUlaO5FewMO6AnzGgJZV+wxclR+oOFH5bK2hZ+KCeHqSvL6TllNaKr6fmS3YgW0nM/bUs69iY2Ki5T";
+ moduleBuffer += "SzjeulJL+RmpZfyMBQFg6QFvUSuNpMTwVYo6C6ebvi3af0FU4nlgO1pHfrZZ9XxLTdZe4ToLz2yd3cbiiBnj/9uBXgiK5zHcN0Ox";
+ moduleBuffer += "4tjgiESTwnNVg/OtSlztzwRg6sA8APAWPnVBt1DBNhLjFEJPgQZFjaEKqKmFUVOy640NhI9n7GRn2ElEQ7GVYicuBlXTgi2qRS24";
+ moduleBuffer += "nRCUNnHo2kJ965oFQQUFBCUINMUdnowMmqXsM2pZ9hkva9tD214BdYSCGg6biU/DNiOe1wj/I1Il5tVlGy04wAUJt3haF84xrYwX";
+ moduleBuffer += "9LTSdrHAsNW2EKDXVCcmsErILFmDt61gZwK1SHVsMn161DZYTrXShEewddiWRAehLayHJethTVsPgu1Xux7mFa2HeQXrYV1uPXBX";
+ moduleBuffer += "fOns62E2rUdLIK4wiDGclzgPRvPAA8FkRKVw3j4bnF89x4IYt0ISNgeiTifY0sGDXxngCbf8Cwb4JVcC8C1BCvE0wTScebCYSMmh";
+ moduleBuffer += "gQkOBBM1T/DyV49I8gmmbcW8W2GCDZlgY9oEj5tXPsFmqmGae4KFB7jSCTZmmWBT2eln5BDgFSdZtz/7JBt6kk2eZD/HAJQnB0Ce";
+ moduleBuffer += "7mrGJuDAeKXswUocRGdjD1Y20eSV/9TsAZNpHNeYU57GHugD6sVRfd4khKbgQXQv2D+2nLKSuvB+/Dadg1ip29cchP5MgYNIz441";
+ moduleBuffer += "QzgIq8hBrJyFgyDuoHarxKm2VI3VUcSEpUIz1SoEuFUWoBX8WWthAUqFBSilCwAQlRWYzqBlv+SDcqctQUmVdPb0JZjjl+rMXy67";
+ moduleBuffer += "BCZGMOccu69ujlsxx64G/NZ8klsxya2Y5FY+hVMO/k/5afsK+GlTTcfS5pzsNCMSWHXzvW5cV6tZixT76aKDmJhbVjkSNt/4sCSu";
+ moduleBuffer += "/MkUChFIkM1OFQ72NOYqBE+iWAB3BVUTH/j4OhPYQzR1/S3CY0kMyobY5ztb+SbSnTVxRkCkHCYvIOX0VWtXci1umS9S1eRaKBrh";
+ moduleBuffer += "1ROXVJDBhW1dOFmT8tGqDb2788GaqRUZDe1anwZwejRdQ3qDvayNU2jGMcAKNS16LitK3wJOKicTCBYGJOEUwYHS+o1nxmj6bYpS";
+ moduleBuffer += "yaLC2cxNJn2EcdqfeeKE9Y016g/YE3SE7VbuNeakH7PYhM053Lo14ePvCWgs54soO5wU95KR2HXMFJyLeB/XurSw/EfNwnI7eFWC";
+ moduleBuffer += "9ZegFLg6OfCB9Mx5ucZxY9LFXJ70RfmLsGzqqg0YgasWb8B42kU+Fr4LPuXO+w3xLW0W5w52h0DhWn9VeTXqm/rPrb4xuiFhhvqm";
+ moduleBuffer += "XlTfGKy+MYbMqD5dfdML9U1vQX1jdke9rL6hRF2rb8xuZcCACOobUxHN3mT+Nj3qA/YbVAXKm/vprXfAfj1uEg0a/ynVRIBB28qO";
+ moduleBuffer += "269Aa7O0qLVZBsE0bYNUa2Nb8CMGTUydHqK0WQ4CvclU1PhSXtpKohhGsnLnm8rJ71bAz8inR2sjnhe1ixWUp2Wdu2bIOiscUasW";
+ moduleBuffer += "Q3Eb97LM04DMsw8yT6Mg8+wlZK16IfXsVX2QejZpXeBlwIC+xca29VBmR7yKDUyhwN5Kj3+5Kpj6kPGrMTxBbBVFVQ3OlVcp40jc";
+ moduleBuffer += "tyeGuDvuGbBDSLB/pVaBOwU9RgyPhzp0E4HwnrhP9WRFe6kolFDmdMWOwYodnIOdh6ANSxU7qRImXq1YmzMo2px4LdPDeJ2ijA3b";
+ moduleBuffer += "1boZGp145faoN9fq9KnVc2p1ok1D4u3CKKh1WKnTvydeM2TuiK5Vq5lYxqt2xumHOEt/s0e3rdbtjGf7wA00b+t2Rq/hTkc38lCi";
+ moduleBuffer += "FfS9grZonaor68ge6fxNO+PN9IGb9Gg3YoQ900d4/fbLjS++pqC3GjK3xwOqf+SpOEi1TIFomcqUKGqZgoKWqTpNyxSIlinItUzV";
+ moduleBuffer += "Ji1TBUqGXMsUpFqmaq5lqoiWKYCWqdpdLWeSxpED0ySN+w9MkzQeOjBN0jj5xDRJ49EsY5LKJv3JhazKhbdxo+NvT8mbMVNTFWSa";
+ moduleBuffer += "qmqTpqqFgHnT9mi9ulYNAM9WRV9FB4oBtUK9Zru6cbu6YfuOeDVmeZW69tGoPh2hEMMRqJbfID40TNrAuoaqnSMSwWk4yL+FApZq";
+ moduleBuffer += "eWBrHBxRBHfXqT6gllX38rkhhAv/EB8NCaP3UHM9BN31aBXau5N2JtojsKoQfGKZ0WwLuAqpA0XWzggaUCpA9ID6GPfdAx6nh8aw";
+ moduleBuffer += "fsfOeKXq2R6tJRDs26HW3B0HtBUpa0e8QfX96xqLp1fhtVe1cO/676ZZQU2CT3M77Y9e1X83aNSOeL3quefBmjtk0dzwxGCGqFMY";
+ moduleBuffer += "zXXbt++IVgwZ1Pba7TSn9NkN+JHze1UBYmkeN6rrt29Xm7cTAeuBbov2urppx87tauMOdf0OtWpHdA3mgSpT4fV3Uxfq29U19Hov";
+ moduleBuffer += "x3tBq1EP0eUW9N7QDh8wJ+gMyKVasZ24X9Sl4v3qmu3RNdQc/UYTpfp30HdXqv57OfYBJTBiaROMlZ7XFqgRW6BGbGE14sgTqRoR";
+ moduleBuffer += "CyJWPKtwuulTa2iIq9UatR6vGFtxuBgn5e9QvTu3E2KgWd8RraTTBEaIqjR3G+6mXlyD2VohI6ShBeiKQR2gofFyX6NWYzbW3B1h";
+ moduleBuffer += "aTeAAl2j1uzAwGjE9MO9clRL2ui//U+krCABUXIofbMwqdfeq1oepFPAtTwjBCxI7QDk7Lh7W81Ivdg6+MzqIXvHPSAc97KKJP/J";
+ moduleBuffer += "F5rg82yBYyVC3Bf1yBfW3qsCfIEwOQZIX1grX1jb9AULX+gdumcnre49nOzc2fQdq/gdDu9BTJuOUJGGAvHYx13BTg/287De9dj9";
+ moduleBuffer += "bXarbvK/nDDkVh2nPNxtmADKwK06sAV1S+HTFbgciLqpwbFKFpch5X+a2QlVy1mIGliIOliIGliIPrAQvbLPNQtRBwtRW2Usihar";
+ moduleBuffer += "GvSnuD/de6MoM4h57C3qT8fgR8GgvFR/6shdnEx/aqr6jdZBU9etF+ue4PifbBIhdQ+h2GGzqXbfjdakpWv3FWuftbl2X1b7JIpN";
+ moduleBuffer += "WcXayXm7oLtlZ7XnbHnudZV1GOYRc+tu51uQcLLuFhb+T3ATB2GBq9OTlk4LO34OH1NWrtCdLwpdk41mEtEphvfoRiSFJgzR8XID";
+ moduleBuffer += "BR0vHe3ZJlP0AWbdOlCJ2fzrrB3D7C2k464NvV5Z2TfnKjxIqRCfCyc/WD7cuA2uVdEWqxDpgzpkbZsI7qrsmboRB8RrigVerspr";
+ moduleBuffer += "Zx/W/HMLlP1bcNn/9lSV16LaIXdq2fJg1CaOCuS+C30HngasRlxiVV5uxjH+2DQCe+axaQR27zumEdi9o9MI7Il3puTTc3bhMw/F";
+ moduleBuffer += "7TK+gshTJrZdut6u2jJxJPe4HZKytkAuxddhmCFzbed6Ozt1pwdD3AMVTPteV6Sd8EAmgkpHBJUG01aD5QxaNyv9EYmlISvbLK10";
+ moduleBuffer += "i4IGovZuKmigMx8DHLQ4cQlfMVVJlrcEfFaaLp8zIB5yU/kcnUcIZddF0adFQ36ay8tuaFlXXYt4jDklc8ackjljNskcowggAiJa";
+ moduleBuffer += "sDgGGGA2fK2JmI8pnS9jKAqIXBYQNXWsN+1YlLUIJ5+xywKi3lxAVNLLx3DQAKoxtDYLS1cCfrJ4Mk9YtFcga4ON5c0Q39ivMJHY";
+ moduleBuffer += "pDxtvSzQKUxm/ktTv3v/qSeURwPsSGzJjAnl8IeXm8Ze3YCeRt1OYRrtDBvjzG+LQlRwE28EwfnYCIHgahXShgtnnzZGlXrigGJk";
+ moduleBuffer += "4sxpE5f98v/exP0ME5VOE9OBEJQHEBGmEwZME+YTBj5DvOSfZXeco1qtew6R1pvVwYqyn/aEB29SB0f0w6lS8w+s7o1Th0FADirm";
+ moduleBuffer += "5xJVUkuEFtwhTtJcKI7NZNyD4thMni9BcaxYL7xARfzsEowWLSK8UqPpqEXtvOrNyEzrGWsZWsuRWG1WJAYhNrgPTB+LPFkG0wbk";
+ moduleBuffer += "BUiS6HU3gj6ZBDg0xGZaxKI7UW4QOapOJ0e1lBxxCaZItxOpCW7PjUtatqiaarl9JkXyChRJiCRf7GH6USpQDprV7AulAuEogXCU";
+ moduleBuffer += "UsJR0ZRhDGrbVmUTvsmYrZLqwv+ivt3CWtIZ83r1bPNq30p7cvZ5ZdtaVmWVispYmdiiMlYmloDqyibW5pBtl51YW65hXuHEWnNM";
+ moduleBuffer += "LIyho7km1s4ntlU7PCC+shXqV/bHsAD/M4TDlG02OF0+23yWboX25RXm09Ly7ssCKu3hf4GAqq4AUFszQIX+hJUmtkIcy0U0n1Vh";
+ moduleBuffer += "L6pzMjEp21JSTXu/9Apzakfs+7FamNOqzGk1n1Nq+3JzOoMXtafNKaaziR3lObWvYE6rTXNqN7GNYMHt7Ct2YV7tLex8tjivVT2v";
+ moduleBuffer += "ooxqF6lKu5oHXZUoWKsp7wHlzxbNNlapKFWpXYZ7PGjOOfHWtIm3Ln9S6KAWOmitW3FSgE+oTNfI1k2yOq2yOq1YnfByh4VAHxau";
+ moduleBuffer += "ohXIFkhiKSAubHpYaKOzwVU4LFyF1eGbXL5q20Lr0DbL6oRNq9Mqq8Nr409j7Eua3PryGb+wPD5s8vycsWfVYVVPTWvO2KerZUJ1";
+ moduleBuffer += "SIz9ItVK/y3K1+aVWXq/iaVnLOPPuSOInY9xq3DxbbFxM8sMSjBwoKIVVgpT2erNNY9VdBlj1V7gR9uLjH2vqOinMfaXYafaVfsc";
+ moduleBuffer += "7NQcv1Rn/nJZPpStAEw5EDM7YmVnJYMtFJumlRXFzAqepe1fTWcZ68cWaKraEIecWyMj2ZVu/NIrHJ2gjdtS86vl6fr9apN6EfKm";
+ moduleBuffer += "0+9I5U2tPx/3XG3inquANlh3VnNGEDrXIE7PILacNl+Rec5PHdOZ538Bp46fj3m2hXWx9VzNdtJgbAb6fwLuGTsEVXVos8//r547";
+ moduleBuffer += "YGuazhmwX0c+Z6LEx5x1sESMTgKF0wBawVGlRiQpslU79hSmDN1IdsH0AI5NORDIvIa+8Fk0PZgH9yYmjzM3QqCN3FDtbA5AqWSN";
+ moduleBuffer += "ctn8gKZ8HlsdqHZajHlib9AuRoa1pG0LM1Rr8LvIAQiv0aLUUI9+Ts5l+5LecHLoVvMhT+1mw0R6zBNr6rEKxKmeVLr4jsxA4We3";
+ moduleBuffer += "Magkp4wG/a2nJgYVVemz1IB9F/xUVurWXfhzt6qsNu9JRNkLg4IKxz/FQ2JNpapeU1TAP8pUwKqhldcbrF8Tj5f30GMZQq1U1NIN";
+ moduleBuffer += "aB6SXCj3K/qO7OCV+/NI9u+ZMMIzmZuiV1P14H9uqrpumhswXKfOq5raNwTulX7X0v4dgrVNnnxM2UhGeMkqROk94isr/JtyWmVF";
+ moduleBuffer += "7kw58xUCOarcaTLhK8Rm82I7WJkWnTSuvOzEK5cdyDyXWHlAlqYgLEYxCIuhg7AEH7DFZ+v02a0XophgigpuXdkxArtlc3aJXw7Q";
+ moduleBuffer += "tK1i1gdyBlFBMnlR3Ca7CCxXSTJLF9sfsDrlg2Xt/DX2X7m98JmSKis/96REL+xdVmIxwvpIR4rhoOm4/udxqAGAssXSbg6UJ/TX";
+ moduleBuffer += "3xo72L5wq2MKW7wlNnGbE9Ga8N1u+j6wCTt7LQVoDJ4DPHG1j/Zhd658PlUpjigIN7RZbDeYP0kgeh2VsNglGGeKqznMZaWeOqJz";
+ moduleBuffer += "+6xOic4usX5S1x+zwv/0FQJSIKi8mLkc2QTtJ3zU5L75bO3gIfySL/a5SE/5UebgXRm5Z/LpfiO1T8tvHTeSUvKlb+WRD45+i8MU";
+ moduleBuffer += "FDedRCmwZkQpsLIoBc3fW1v0Zs7XPHRUZ+0vDlv0824a82Rr+II11z592J57nw42+X0vBJ2g0YUfJER3S2Sr9LY9TVbBn9BGnsxk";
+ moduleBuffer += "ePiEARfJ2pEe3MqmPmdFYcFdtJXEJW1zjeCTThaJjOAd3jPokNRjIkGjk4QP35ZIVNjzrx9VxZAGwSdr4XsdDhkfsmef8FlbAr11";
+ moduleBuffer += "4oSoJB3Cz5SPCe3iXYHDYVawioKrJO0Dk3PB5VSwC1a7frJcgn+O6uCfiBdSEzihw+BexCcJNlgjsry0gSrUiR/xduoUJ/mh3Nrf";
+ moduleBuffer += "x35curDZdUxPHNJHQSe8Irh6DK6hADLi1GEJEHBwa9HxftUOBD7n7MNLl+/D6SvqQ1MH/r24QpGbUhwExUr2Wuxn1Av3csAcfoNX";
+ moduleBuffer += "WQ/a0Q3sgFpCdsEhFy2XL1BelvMju9fBZUyLpR6xzaFg0BIBCWsWfVamsk9q9k+NP75GD8Hq1CVJZObBydn7CcfN5Cu7zLZF4tR/";
+ moduleBuffer += "owF3ftUslrb2+Wg0o4zWYrAs9tgVXDeNTj7MOwOb/mq8XG2GwJPiclX2UmLcmm1ahxgN6aEvnjjYCJ2V9CYiTSIIujjNu9IRbUxH";
+ moduleBuffer += "dH2zQx/ZsQ4YDyiXYeSbHPzH42LUKynsEaiVnzIz92qpK5XImXXzh5/22IdwPgGWEo/qiKN5dvwZIzygQxSYuW81gRUXsGCmnm8k";
+ moduleBuffer += "TK0j/cxc3byCBxjxHkJ46u9ncZUkmdMcJVFmXutHs9X60Wy1flS6kuk8uu9ZPZ2cSqfzP2mkTjAtV0VZLs8HnMKQBA8zjAkGE+89";
+ moduleBuffer += "Ak3J+B+cEL87CPCA+PRGsrpxRJydLd7NXg8pSzXYBYqE64KfvPealtPk3QugnIb24mC6CQ32RfYk2GYbsQPCDk9frnKGtNNTl04i";
+ moduleBuffer += "N3KAPfcp2h55mAaIjKb+7lkj+SxyaL0n8DJyNg1ZZqbe181s8bQHR168S/tNq29Xi+7cakHwLcrqMXWkh4XU34U0JqZgL7tqoVpY";
+ moduleBuffer += "t5YjpiGnFGQ9q6hEV4O97hLS5vzFuAZxg6S7EIpnISZ4PRUMOchS1lRnvAbBDDkdxtciguJCTB2xJlmZKvDQayXNHuRvozLrG1Er";
+ moduleBuffer += "7qbXxbK2gh4QY5SMlQlvynC6l4PtGye+pgZCpFqwMDWEqaW/YSP8nqlqOqR2apTRbzwUS+AHyyD03S07ppuhQ45txB/dRw/KeD21";
+ moduleBuffer += "YuDowI/18lhFj4sGCFMNkJyaeaHtZD8xVS3CiAbUoQDjrOGoEyOcc/ikh2C+1SizGsGrz9ELTEShaMmQXpXfHk5RYEtm902YMfxT";
+ moduleBuffer += "F/VgOhjIeaiE4MAl8ShdkgEFxLXSen7ZQZnO2Mgj4raogP3wOtIqs35UpisyZn4RZn1g9GTq6tZ+Mw3kjC6DTaypWp91wIzXDsCQ";
+ moduleBuffer += "pAbt70FTj5kdLGMzME2rUY+0X1m+cwOj6KnnJozk2vCvy8Q+T9j4Qqc0D/JQQ6fQ1kEJAufg/Ll5K/1ZnNJJ/nrngL1RreUITvPV";
+ moduleBuffer += "2qdwMvdgZ7MRG8uTJdi8NTayOvM3WL9NDzq8PyQ9foPSo4JuscZhQmuIOZzWAO1VRvGbbxiwb+MUfcUeMXlwMUquQtVJbgCx654G";
+ moduleBuffer += "w/dRn/lsGs8BM5oOc1wnfNGWMzlBbjhCB3Ag9xrtAP3NbnxzFdasW3w5AJXzJNPKS01fg/znPXwI0SBqSFSxNTFj9GcjTaMvQFyX";
+ moduleBuffer += "R6c87pLHbSlka8NF7g7D8+aGhmc6x7gQDsn2K7HvNx47kM/NbBuQOi7e7UKE6MccBqHEoeMBuWl4h5KALhcyxPuaIa7+EKWWkTb9";
+ moduleBuffer += "xWK6WCmDg83z9wIdIrawWwSE4UkuwGGO94dPwC+lF+fAH4D1ghXq8kYGEAE2xGIwW9QZgGFeBeerILkhX/wA9pXi0q5QlVADdpUd";
+ moduleBuffer += "YhtgG+EUD0+3/EL4MKC51++BWjtg13l/40MKQy/su1Ky29wC65Pw4yy3m7VQgIUmpogSHKcXOE5+RYdryVmGv2EzFSMwohKQjlOB";
+ moduleBuffer += "goAxddi+hzZNPkPTgD0Zw+23nDNNoR8wr5nU/XqPMvxnoC/YsHkDMMDm4D1lNMH3bTl8Y+TdGNZDLIeS/cKN004JGOKA8hik2Z1f";
+ moduleBuffer += "Tnpr4iib6OTwt+h8/16TgCzbcEaBMMp24X00zqHeK8lktRF3Eo7qroujwU6q6egpo4qdcussnQtxL9iJ0k74TUsitPB3hKuiU/PJ";
+ moduleBuffer += "atRdtApE3mSVDQkh75qqxjcNWBNleiNW+1hZtTKDiofD4qtW/tJUVURYJ/Vzkp9y/22D9Ty9JUeXNqKrhaFpXQ59C4+0FWS9Mxcn";
+ moduleBuffer += "tapOTnVB/cJsUJ2eVYkanO3xxVDd0DbxwhG3aQPdwrfWeZeWMgewhGLD7wlpAnPmwNlhcuKj4s0Q+yyjVBgZdim2J+8aLanR9Aob";
+ moduleBuffer += "U9Mu8KidIHUg59g7bK5Z2IIMkXpQgQbDOm+LqIMexOx7AhEtiDZqAVc4VIkGpFpwGtCb21Ad7KoQD/am2CGOirNXlcb++L5L8NtR";
+ moduleBuffer += "Z6+0iFBK+1o7lWY2sCV31t/B4l2aIwZ5zA2jgOUpatTFSpiDcMAy0k0MJaFGbFer1j6risavTliP1qkbxyxfzUCC1b06PyJhEWMj";
+ moduleBuffer += "/JRHm+1d5YA1oQKBx5aKvPToUh3zjmkci1gnlhJolUVIerKsQausvQHFVD1OzluNaDk4LMpZQDkLsGfjLo7bOOHSq4K6dgEdZdPV";
+ moduleBuffer += "WECTTwh2QfJCtrkXqAV91t0EdTTEBXXrrljHI14AOf9SeF7XNengrLIJQi27S+R6BJqr6OurxPv/gvCoqVbR7EVrqcVVgCjdoils";
+ moduleBuffer += "QFIOP2QXfwCnG4g0r5yMeo24j5pf+1T4x5Z2DYF7nAcoP9IfL6tyn7XPG7DP28V7Qjj6jnrp18rF9UQNKi39HbP4+CI9l7Md97wc";
+ moduleBuffer += "fpQOJGnP7bl6XvyBjtvo6S9zkChlrzZDeHF04LDRTtobmTSvFe8djaSfY50NWZhROTYBaBxwg/DuLYETHKJB2bFKl4Y4X8OhAxfl";
+ moduleBuffer += "1q+wKb0jDpbRSB/Gyx5rIQEIn3FVn66JQiwjwD25+Cp6HqTJrGuQoCn2oZ0uJ4e9FCbKyVFfHHYcpZKLNQiUceEutuUeY7wsy530";
+ moduleBuffer += "ZYkm8/pYoAO0QGd9mfpxSo/76Nl+D96U+mxaqPVD1uv4tvBhB36bTnqN5AUz3BXV6GU3ZV2laXI52UtvbVnf9juafvPXx+jNzt4O";
+ moduleBuffer += "OcVFX7HBukD9VesBKtKTs/6AdVGnx/0Be9QROLiGJuiaRDvcovd+eu8vwEV/Chf9c8FFfxNEj9Gpp53aaAe5j+cJnHzQonfagfOp";
+ moduleBuffer += "1fbkpWwPtqv2PusBOsASGO9kUG6vW/enX2kvQjKK2irbeOLvN6cRImDnbreHHzEhEZZuu4Vuu2ByjKz3Lnrvzug9IWfCjWWiNHQ8";
+ moduleBuffer += "7mVr8RbgDTZ3CL/hA1ffn57d8HJfNi1J/U7mANc0wudL+Gkj0Rh6rKdjGT3WoOCtNT5EUYMEUu10JjDD99pZM/QrvMhR5p9ZqqXf";
+ moduleBuffer += "uI+tBFTLauPfbTJwjPIayP732F4tyWdwnKHnm4mnMowBzsOZAkxoxma1gFK1gMuijPg6zgKdeEO8bsBeg9T90VpqeTlNtm6llCzT";
+ moduleBuffer += "oMYvCxrqOk6pdQNGKz3WDhjwZ2npexXc3P3MclFXmcEaK8HsuCRU6JyhA3KU5GxRUulNiRJ4lxZiZQUD8O84M3qFYmA30z5yaWL/";
+ moduleBuffer += "0+JrB7JymNQxcEzcrnIZJ+kZc3OcVEpKeE9xUv4NbtzNkNG0tt0MC2VhAudxUGeEl+AK8xIdI1TNY8gEKAMdBTrGI0B9rxmtQ/6I";
+ moduleBuffer += "GQV47jZh1FG3hs3IwXM7NLN167eJONLjIYKadsgJSng8QKDEu6ODoUTAPlwOI1PaBivlvYfeezDp7eGT4JJ6+g2cuXqwM6p4K4fv";
+ moduleBuffer += "MVUPYL41hXmqtoSqLcFweO8s6SOmCHtnCTQ/LTLaJdg7G7VwppfK9/IYqdrGRgyGMJy0KI9QYgc9utId3qt6JXI9NdeLz+rmepkl";
+ moduleBuffer += "7yiUAibD1bLW1SZYRI47noQPPUhFN28NT7LWpQouuhexN5djyqvoQtpGVdqgNatC4EJr1iuBOKUilVySrVVVFjctuEQWqCdb2pWq";
+ moduleBuffer += "h9kgR62UWGwrUb+HhiWSYcD2Sp5VDgzJl4IExIjR6yHIi1qoSglVUkBbCTjsAASuVC0AzJUwOuLOZd9YMGiEaEmDWpiDmgp1fwTK";
+ moduleBuffer += "6FGFoXHWH4a6sAnqQg11AKdWAN8baAcxHLXkcERtQ/s+ajZh5BETMkWRXXgaTgMNp67AqQORBm12AsrWiGF7H/uEbMeU1umxDk20";
+ moduleBuffer += "chjMLlwWpDOzKlFpD6Y9uJNCtdZiHhdhTduBnmRRF7EEWXdnkWB9GviipGvQWC+uBnj+21UrJGLtyXcMPhmwl+h2VuC35wr8dug/";
+ moduleBuffer += "Xotb8xAktEOr+Iv0sCHva0dbNwAHQxrRDpHLenqYEDJqcmPdRSmClV/D5xL/TZuMf0etn+dv+MU5A/Tej+7yKbcdFOArLLjDTFjL";
+ moduleBuffer += "pR9KuTSPDs2hjf2OOQuAECBC1H0WE1v5Ok7BIQ283hAP8IvQE5XPBDW8ih4BlFiLMMAuejg4oyySM8oiuVa2CCODlwZGvotYbgET";
+ moduleBuffer += "xQxbLlL9GlsuApT259hyEYC4PwPi5kUwA1ms/gxpZr/z9lqkcWd/CtDX9Bs3EDQwB7eIfcEzA8f8R869cRsBZTL8Emdchugkyti2";
+ moduleBuffer += "/WVQzrqefLB1415K69rU4qzccBnEcdl03nmkLOlDmk0D7wx3P/3GCfDQXeIK7jvoUfLfvHQiyskxuJTIOLMTuCKUcWZTfpFrO0Vv";
+ moduleBuffer += "bdnbmWZ2fLXxGW+T8W3wh7RU45pPHCkPWE/7Oac2iTR9+AW/mb1hERe9l/jglnNppZTdKRXYnVIzu2OB3Sk1Hz+M9GBOTXks8wpP";
+ moduleBuffer += "uDjKhZEtTmkK7Xn0rTcTbu43Qpqw9Bfa3NIn4Zu4T7Zmk7gVJLI2Wui3x2CeUOYjL/744X67qYwHes+Y3BNs5wndTzccS6l4wOkv";
+ moduleBuffer += "Kfx5AngeA55qgXiWb1syF9KpmRBP9I9exjUwnLUmzM235qSrFefdkAUUhc61MuEyC2WEcHUoUC2iVAcR2lZ1AKu1ZpSqo4jUOqQS";
+ moduleBuffer += "9aEjY4Q60iO19LFD+tiRbbSOxMXvbY1ktfzuDBrp7zhYC6VDQ6qk93IH9nIp38sd2MulbC8X267ih3QSO2QS07ZL6e51M3LUx+w1";
+ moduleBuffer += "CvXJAvXhIAfjCz3CvpSXyslTH8NvustThoq2b5Rt3fr0rZpuT557dj0IgWG2oxnX5/sd8vEiLigznr4qOyIRhckPUykGuC3bc4S+";
+ moduleBuffer += "qbbfCN/nK+Zqu4CW6Zzl6TXsYt2FbqBLH6wJvXbJebWLT52wgaVzYtCQU2eGBSaD5o/zLj8aSCfZGdFFOvC7ufyI+8uG7mF+Op0y";
+ moduleBuffer += "5MQ5irAmiTRv65mI5fZwlgWHISW+Mpx91uW270f0Zi52G+QLOOioGp9A4WlymLtO8yCxOspg7zjKmW52M1wn5ZivC300s18Vh/LJ";
+ moduleBuffer += "XuvoVak47Ptx5ODUbSBufFQdMeWoOszyDrPB7takedglZEgXtdYMEBON83lBGiwuofJOHDILJ2NUok08hkrHWGj8tCUD2+81WFhS";
+ moduleBuffer += "7B7VGYW3tWF4ahXBpcPALwIaO/yHMgf7ELEh5E0/9DcUZBbJPGzLLhFJOEwi/PDhFDjoVHeABR9duI5scUhxRy6FOxoUcrCZCbMa";
+ moduleBuffer += "wo82r3tBCHDGmCb50WCdnvlvA4KQz7hNn2Ci2vSZq5o+wbKSps8weS1+iihY+il89TblBOw++rzdCL/Ao9vYkG/j/vm6FJikA2B8";
+ moduleBuffer += "nAJAcR+agYo70gxY3JMm4ALHVASvLkiNuWHevOsGeOeulV27It+1sp1DsKxdzG7pD3Vx6KbsZWMGcxjPVKBRbpdapQVgXRCArcpR";
+ moduleBuffer += "bhcEYKsylJt9LBWAca9WZZg361oBoQT0O2PKBX32XUTxFoiqaIFseT5+EH1nsdgC4BD6u9dsaCBfAA5gAqLQSYR7ldILeAFVZjy3";
+ moduleBuffer += "NJV04hOUuotKTNgZ/Ntaz9pFZB+w3xU+ynugS7xo2ZTxdt4DtnTblj2wXEIlcvzYh31M0/IU6PFicySnQik0RwWpWLpVvgCdyJjF";
+ moduleBuffer += "CNlMTlmiW5L4b9we6mI6ZFhSD7O6HJLd+8EqL8eSLcBu1qNdjgVdoGUhA5xRR8b5QsbifBMtZwGlxj/LRfRLI10uI12uF2gBiI6e";
+ moduleBuffer += "pZiogjVkvY4mKE7O8HXPOLlg6T7G0CQc9Oh57GPHqY0xSsKm4zCyNrJT6JhSR73GBqJOcKm7wTqK3/Z50hIRo3DcpQTh53k0sxc9";
+ moduleBuffer += "DDgWmTjPrriIWgcRo8E+oghmOsGMcCDMMwwWnQAL+Opfp2cs1uVk6uVnyhW/barSZ09W47Vokm2dp6rs6Or5MggXPRFzV7erzSDU";
+ moduleBuffer += "1cnjiMj77bbwwxbqH10qIFpJzsKQnH5nSKDnj99P5d7dPqPcZHcjK1VJTjHQ22kt2Oy4/AtmaGw5PanL+2FifXA5UO8Lut6heiNa";
+ moduleBuffer += "oXUH1eW4hzHpZOZM3nJRxKcRPjMj3avV1eH9cgO/3/AlHh4McGkOLpmPDjm/UuP4LVISMx+bKH+50gTj4rUvNeiwsdcN8Zm3dsDK";
+ moduleBuffer += "gkKnPga5qVvEJLcaudoSllJsURtzZHn6Vi3lb13qCeBNeuJlPfGm98SRnjhZT5ysJ5R3RLlH4EZ+QByW5D2iRqv9xqQjnarWrZOO";
+ moduleBuffer += "9Eon8Zx0mvpVTdZssKYgZulMzrrsoPSkvI25BOCTlGYJNy9KXAo/5jVVGccu4AqmLnwYDK0U288+V+mbow7+7nPCKepCMmEBuihj";
+ moduleBuffer += "3MPfpz3K1iaasAn1OQgT7k5wZC+f/XLTUSB8gd1cw/ZwnO2g/T7raZN2hA/04INxgNt8riOHcC+NRym1pSbsoLOKp9i0LK9zF9pn";
+ moduleBuffer += "zVT4MHuQZJ8yzNHlGU7arJ+cMbMIZCWRNJ4x5CWVgMAQNRytwGSJEVNqZcMuaGDrkP7mF34zAzaJzX4L89/wCxtjWpv1ano38z3N";
+ moduleBuffer += "QzYW6aTTkC7wqqtqHy3OALBZFbVPWFjHlxEefoKSwGonkXUNYzUqLlht0uI0FDE247ZsKbF24bAtn0vqRAAu0iSHn/YDWfnYgaUj";
+ moduleBuffer += "QwwniH+3ceRNN4x0NURPx6mBU0Yq6CNMx42zyQgRtA5WgaXmjUOGuL/rSFZzxMwOoa82o/2hsfJ2OUILR+CnIUq1zUdH3eq6mTWy";
+ moduleBuffer += "lFLJCUQe/z0XwTsghaFcJh1V+RwDIB+2NqRZfIynWadDcytiB26GLhyH8Hd7cVAz5M1J3zr5jBg+UeY3ffwHbg/3SgG8qeyNK69p";
+ moduleBuffer += "amp93tRGNHXR1m/EiGUNc8nbmuq9Nq8H5rA1/Ej6CquM1vDD+fdhMPlY+uuZ4q+dAK5pha2sMF7PWIW6w3ZTD0eII7ETgx0yeyJE";
+ moduleBuffer += "spUHfh5emqnke6n3+jYgMIzd1M0zzY2d5df3lvXrd5tfX2x+/V7z67nm1+83v/6g+fWHza/nC92wdlHGBT2qwN6cwIbgEO5O4Ep2";
+ moduleBuffer += "AOscE5G3uLrJt1XMgCtuFgwKaUU4rmePpRLpK+zZsDJNTZ+3Lt90RPNGdVEj0FZNjClgfMF2TQTNov5nQ6KOXP3fZCII0yAWXcCy";
+ moduleBuffer += "V+QvtDcWQw9WLMMBbKkQGwQQspmwUkMACIuryDoBz+sau4AMJGcvAbuAEgC7PI+s1RusAw5jlP2wG2HKQfz+fvx20GZawMTFBGYh";
+ moduleBuffer += "bEwI5aJnbU58fOCwF+MgK599I1x4J/6d3S2+4cg/QrF2v+Ek9q01W6JHmuFHQTwQ/PYHsLRXK4R2ehohnrBgajWqadZeoqziPfWr";
+ moduleBuffer += "xj01dGm/CxdUD8MFle5YR3LqHyeIPxFsBWQ06spzhJ4Q1U4IxqStQqyjLeNSa5+i6XLDES+B35BhalYlYz+lVr6L6/Vq0NiPiYMo";
+ moduleBuffer += "mj5gCiZ02Vb/YBlDR1CXKtthI8afkduFsj51KtOCUgvRUl0kZZcQoVm53eHXSwkL9PuNcjQ/Y1pgRAepHJHV+eFpT3mrjDCaz7wL";
+ moduleBuffer += "dbl8aw3GdfMRlGf8k8f5+Mb2BDQt3zRY1+ohjDi9JMNHJcBvdgEIgdWTUeTSKJfC+THKYXBLOTIkAHEpx06lR0lbpi5NykASbY1k";
+ moduleBuffer += "HZdU8xFhcqnIwpfqSKseDgCM0Vv6jfvFiq/UiOejwIPyDZibEBehaBIU7A1hAzzlbI0Xc7X54Uscu4rvMzqc8TY3eZlYIdGx4A2M";
+ moduleBuffer += "kSvS0lF7a7yMWlqGgYd/4od/bqplyWEwksmZHxA8vMDDWpacNFm+QgWX9Rv3xW74Y59yL9LQlyWnLfyl84zk9huvp9Wgx14oF5ax";
+ moduleBuffer += "+h1cinAN/CXlbqW2nDdue+OgMYl+nLG0iTJUtLFP8yAfht1mjJMWX7MI30F8jTQP/87EksDDLqyQh9Fj9mtHXZsowXgOXEv44bIS";
+ moduleBuffer += "Mzgi2pw9jov6lJ1IgHDT5hugYtiH3+wGAhiZybLfOrxdt8JZO1gHZfIRkZ1zEKYKv14m6G3FZ+m4w4GVXRbF/BhmmgSDr5fOnWHj";
+ moduleBuffer += "j1aeOWiKltG04+gIv+rKkTX5iblNph+wsxj4mWZhfnJtQxivxTwP1PNvliiNOTIJUNcwnC5OboBkDHOyuN/YiK8vhvQKcQmkPM9O";
+ moduleBuffer += "ofyU8J5S4aQpNWj0MaxM3XAQV2LS706w+Q/uzyDb5CdtdIINTi7GWNAzmo7fBB8LoNFVz1jCwPj4JW8R9iJuyrOa4XOu9ALj5wEg";
+ moduleBuffer += "wfPqM8igCcyaia31eg5NjAKQkGcQCjC4D/M25TR4XzC4Jof/IYNgJZOm0K6irRV7GLViKZ9iOFbJepjAIZfWiSCXHoctOk9gS2Ft";
+ moduleBuffer += "JvmX+3X3lvJ1jUL34IVbeVtxg4Th+vXU4jivfAmb+STHtNolLPRS6VViuGISKWp/U6sBptjcsoOIJ6wCma1DpQBaXl2P7QnBOnfA";
+ moduleBuffer += "rhYifG1bGQgCEbb55po1kz8+wCRpGKf+/ZqCHXRm8sdjzgz+GLyvKRRuVv6YiBAzwyDNKXsMMbSt5SVCrbiUPelo7XWRqZel0gw1";
+ moduleBuffer += "6JKVMtGncyYaZAhdiBZrbhqd1/QChmXzlkMr3dkI/8Gn5wkDhG5CMPo8IUXw/bGbMckUolzPw+ljc7x+aMNIvG5o4x61jiBvUsSD";
+ moduleBuffer += "1w1V9sRrd1P+8Mv2o0P1PbsVJYcvlh4d6trDyeELrY8O+Xt271bXDVl7dAalW0akHPKXjnB1IsIbR3bv3s3WwfOUfYSa3bRHredv";
+ moduleBuffer += "UGP2niv70PrCh9YXPrR+5odGBVPicAc+jU6d4lH/kvFGeLwR7msezdNu2GQeADr02AycpYZw/k/FhEmrmrDjsAm+ttH/t7KfUeKx";
+ moduleBuffer += "k5Bqj+CZjP0PofvzeFe54Rd8uYAvuAjv9DJmCi4aFveX88CLF9oY123YkLv5OAhST6ZouoYm2Jv3gLUP0UMIePeaeccxn2wcIHm0";
+ moduleBuffer += "6HxnkL8mTcNuHkqxr9hs70qlj5mENOk5YSLW2TxtlnoMtfyGruqGj/oo4/MtbaSq8gk60WPD2w8xlKwF1KzNV25tvnJrm1Zu7ZA/";
+ moduleBuffer += "kq7c2qGubOXWDtVnARHQW5kXPxn7e54XJjzz+EJBskaD95pk/Hw68ZhdV5/W4XWf9oPY1R1glO/IFtM7hW9iaerli9XwGqY3kcO4";
+ moduleBuffer += "t5Gc+J5g8whANMorN/VdyhplTu4acFeRSokd4cWYaUmEthwBD6VzIOlFI+fTLF9sIjXzInY/VQTnc8NPlzSjJ7Z1m7fC20p4qSyB";
+ moduleBuffer += "P6DUfdqn0qBMV1FjbwWbxlhvlmrgGqbVvIpl6YVq1BZR0GX4AcNawqRiKT3hqFXPJBTUIS5NMp4ZdbfGbVSxLXneaAztAsJrg5Gv";
+ moduleBuffer += "TuLxWnp84+unP/Dk+Fc/cuuA9Yv0+tMvPvOZgx9/9LFThK9voPcffWXf3x0+sufHD+CCRBtg+j56nGWMtZ53RxvWLSPcbckZJ3vD";
+ moduleBuffer += "5XXtrSAqZS8E2m3JOCFHRc+LNvw5tUHkHs3XMYak6F/6cLHVluyjKaSjCKXW08FfPh53yGfjFvlg7Ie3QfVzwiZU0MaUFXwzi5Hb";
+ moduleBuffer += "mLXAHR39+jSLveoykW3JC8wBKHmtC0fNWzttEeRYt9WRttKS1vfTmvDEFJWqRmAEru61qZaGN0qHVQm7u5RK1kFgI9ko9I37iOWX";
+ moduleBuffer += "Gq2xPWTooXXEJni6eK32CU8/UMaqIUMS9TSxPE2oNLE4TXSlic40EaaJaprw04RDD9g+7ID4c/uOeGMhfX0hPVhIbyqkNxTSNxTS";
+ moduleBuffer += "rymkbyyk1xfS12XpeN0Owj9PJV2/RfsYwLd925Ht8Vp2c0M448WPjn9n57YjamPqKJ+7zAV40RLAr0MFrp9ZwOcCH33f2QmXCgzO";
+ moduleBuffer += "LFDlAtgQu6jAppkFQi7w8Pse+zPqldows0AnChyJN6gbZv6G+FavST3+byj8sJh+uHG2HxT9sH62H5bTD9fN9kOd8TFe1bodTzVw";
+ moduleBuffer += "0bGNj8Bt8A5NULzst+IWXBGv4XpM5FP+If4VOmHJK6Es5z2d5WFPjXPe0SwPQP405x3L8hyU4LyJLA8b9xjnncjyaFvT+xjnHkpz";
+ moduleBuffer += "+QZ+G46ah/Akhu4gng6xeXi6RPrx9IglxJOOrPvwJD5p1OL2DnB7B/P2RiR/P+eP5fm7kd+KzSzvw1yOqKytWrYhMcmOpxPjl7sf";
+ moduleBuffer += "3GAdpl+Hjn3ws7/32Dd2T60csI7ZQIsf/cuLD3/g7Pf+M2HRp5Hx8Ysffef39538iz+hjMPIeGb3P/zZdz/8zLfvHYAgom3o+w8/";
+ moduleBuffer += "fPTQi/u+cMOAdQDvL3788fF3nP7Dw58jRLsPk8SCXUZWqjXciLja4XlM6KhL6N8VPKfYKOXUT44bs2CSkFj2oz+lA/9zLp0DBo01";
+ moduleBuffer += "lBP2G2vgN39A6bh4IVA4tZ4MNJL30NGDUhsbyQFKhc94bN15gKX8oWC1UGxlKBs41VQBHdeeLKmrcJYWOnSRGaerOB/HfjtVDY0B";
+ moduleBuffer += "6ybnz2Wk2OWj1K/T3yjNEXrN59FfpzaIKwj/LeWO20IoIUOIqLEI1C6qE/EjEh0pnIk1gROT3qmUqoVQJKRJKit7hF+Rexvl7oRN";
+ moduleBuffer += "Y8hXn94AEhemZdbTj0W6FjbRtXAaXTNTumZmLzBCZbpWoyfo2nx6gq4Fmq5JUaFrIeP7pbRfQ6FroaZroaZroaZrW2DZSlSoRDkn";
+ moduleBuffer += "mUEKhASFTNcyMhcyXYOURi/cC0zmavK6FGbi+uSftgi6FqR0bX5K15amdE3XNEHXTE3XpNe2UuFN0mHFXKudQiPu5YsPBnzjvijQ";
+ moduleBuffer += "NYSuhf8/XWO6diQeyEhaSsia6dj1M3JBvFKSpQZmEK2dcxOsDbPVAqG6YbYfmqjUwFxUamAuKjUwF5UauDyVCplKhUylgoxKzddU";
+ moduleBuffer += "KmQqFTKVmq+pVMhUKmQqNV9TqZCpVMhUar6mUiFTqZCp1HxNpUKmUiFTqfmaSoVMpUKmUvM1lSL8yVQqZCo1P6NSoaZSoaZSoaZS";
+ moduleBuffer += "oaZSoaZSoaZSoaZSaO8At3cwb29E8vdz/lievxv5oFLzMyoVYlcJlQo1lQpyKgWk9g5Ca+/ayUSKXkf20evDNpMownPfANL7gMkE";
+ moduleBuffer += "il4//FNamo/vYvpEr09duvTDS0dMJk/0+uRnL71z+IO/y8QpFOIUauK0SdWFOIUpcWJkxbggOfvTnDgV0EGd+OTJ/1UkTtE0kV/E";
+ moduleBuffer += "Ij9ARl1F/cYBfShzgNSuIrQ1yNZfcjKSN8jaVCSFQeTuJ6b8zIuZOG0JhL7g9Jnu/NhnaxhqEQf/CII0nWkgDHUE6ReNkZ73vXGb";
+ moduleBuffer += "Mlk4Fmnh2BKRNuPCJGifSac/tVjRYYxGA0k1O3ZRSyDrWqyWNMm6lmhx3zUYLUt9+EgZBKI23s+XRVewlUGmKT7gDIgwK9XlnGJJ";
+ moduleBuffer += "WJMu55oNrLUXiZfW5bBUDJIwVgQdtEUSNimSsBXTtcRa9mVBL1O0ZID0cszVZtDHLk1kHkG1fUu/caieOLfETnoF2j5UH7BHelUl";
+ moduleBuffer += "eaEX811JRnqhRPqEDfuXs734e643PAIjQJsd8IQfdAO58EzF3gGzmENRQxL7l3PCubmGt4kqHAxOZcZzfON6sjxgH8WF6ZFlmYII";
+ moduleBuffer += "dOrCpzLdUAU6oeFl8rwAMejFCfrRC4fhlu5atYYTySPHKdNBuqJu4vEaqhsRUnA5+6anYIPxQlUudp/BB6kPp/k9MW6FS5VT+jL3";
+ moduleBuffer += "87rQlC7El7wNueSdvNDViGx7s9jlRG7BMQ4EpnJh3QwPOHJdyon51rrb5BcBfib5KhVfW6Zq2vzKFVeD2b1leGYYkatsVpWd3ikj";
+ moduleBuffer += "v64S8P0ruVJ8qiu/Dm6GH3b5LnEVfh58WZhkD+amgrnRTpZwEbnKPAyVKoujNfGCll7UFjt7XNJOcOfaDE9a7D6CMC48RYjDKE5X";
+ moduleBuffer += "k3N/9KwRHvQN9h0BGuaxBEemwwX+RBRHW5xKOLnviMzlE+z7TemrcsO/gmkX8SguwKUX03qmS6KVMtgkZ3ob7JypCEenugbsyV54";
+ moduleBuffer += "+WJL31O9GiTl1n8vzQsAI5nsZRMKtHKKkumXAoH9iaVUsyvZd4xma6WscTKBl+GJCe3c5/Llzn86LdcanoJqfl9ZdUc0SkiluepU";
+ moduleBuffer += "FVV15+zUvktvr2NL5Rr4LNtrstwI31lG6lg59U4i82voNRZlJ+/b8Lwv9maSGK1BaBhdh++P1KL1As8H69j++1toQSuqKIv+ZxJB";
+ moduleBuffer += "H6LvKef/ARH0OGgEIZ8aTXBDC6ArsI+rQ9wKt6Rhg90tEhDt/QQt2P/yMO2dsi1C2hW7lME+CA3x9Kph1GTyB5m0U5BJE+ZqgTyZ";
+ moduleBuffer += "Le4SYgk+IaJRWiiY02qZNL8x0fmCrxfdyGXStJALi20c1m2YymCZdAU92d9CGDCVST9dF+R0uM5DOzQfZpN19P9gPZLh0vITWanL";
+ moduleBuffer += "16RpdpaVy6Sp9EtdMUPehS7IpCvaOddLAFC4meSqNmTSFXGUWeM5qsoniBJ0IUroP59MmoZk8mbFvPjJ2U/lMmkhUKARqWklJZPD";
+ moduleBuffer += "f5rOvthNZjREtkqumeGKJqqMHk+rvI1xzeerqQ0zDXG1MVndZIIe1o3nxOi3knyp2kiul1aPVrEtKfFOxknXp5aZxtt72UvuWXaq";
+ moduleBuffer += "SyQU3/0T9+aavSgZBfU6Z9AmD4IIcXHhDm6huEJZqDSOm6gDPy4UnzwLhYNdyP5WHvcpQYvIz1X8vlp0+qtpVAyo29hn4EJ93F8N";
+ moduleBuffer += "K4LVsCJYLY5WfsEyd5m/SedYeJeGwW/4XyosUIAndo7BxV78whWRDd9kBLU97O1T+2vDvZegboiDszpI2DSPneL5DI6x3uGxxz+x";
+ moduleBuffer += "PhNXpIyyLXF5BFeiD8PfuSXHU4uNYsRJoAmPZlYSbhM3jYqfMI4eKYtPz/BJWyfG7GC1uOlE0N/UdV/saHd3D4DgJhcYDmztW1j8";
+ moduleBuffer += "EIpHTj+2HoglvHzqmI5NLnCbHG7crC1wuxisMBJdJXUySwsas4XcVgRppbm/FQtwW3ewfk5XqM9/8lniXMQH6glKh1/LfKBeftSf";
+ moduleBuffer += "M2cZtXbzqlIfdwYuQpriO89Mjh0T33nmELGgoXZlzO7x4KpVLz9amjJrhjh5OvmBE0bCk9Ilvkhr4pibC8G3qhXscczSroxFEFek";
+ moduleBuffer += "2jlpOXVO6jU7J/XYOakSOxofzkm15a52TuqJjYyF25yc9jEOD4DWSQU7G5E/zdlo0OxstJw7+iTEEF56da5G/aKbT7/oarSMkCVX";
+ moduleBuffer += "5Gp0Wg/+56tzNDp7D5o+fxlHo/50R6Pl/KJfWXabOBr1xNGo2BWJo9HSdEejpYKjUU98CuMWE/N8zP9p1i24djqMC9CNv42QW5sA";
+ moduleBuffer += "+BilCwA+R42pA3mNiQNNNeZ0/Zl6/cTwxXE8u/5cO4vbY5h9sedN9hhd5bMCGCv9ievST8SyTdkNanLqNPXjm654wIb/bGYiDHaj";
+ moduleBuffer += "TdM211CGR45nu/v8W44Xh9JPCCopiVtInDKJXLm3c3jCB+HCGocCXAtJyjhoBo+Y090OrzYdXLOx9AUN39rM44vtfsO9OXVmIFig";
+ moduleBuffer += "CpL9VFlwu763yPs7DL/D6F0KsYwwYCW1eAowuFqQ9vjn78Mf/mx9+MN/yj588GfrwwfzPsyx1gdP5mu97+TxGZicYcrOYYoIUQZQ";
+ moduleBuffer += "dgZQtgaon9as8i4HPkHPaHtDk0+XUFXbxaCmFvssr8MG8k7t+5yobuDwJdV67Eu2y9k+rILzaKjNNeQAR5s9Oft96v3ncC1uyPyV";
+ moduleBuffer += "mgnRcvicx7r58NFSNYBNBJN4l0k82o44SpEfsLmtc4cji0CIRzyEY8eW+UtBVFK40F0Kn7MB9i2WZfOdkDHce5AP2ckhln0z6kku";
+ moduleBuffer += "ZL0Jxy30ha3u7D77lBVVIeBhYR0/pyw6TlbDryLgg9h3QSZUCl/2EAPFo87zIPgrVR85e91sWAiNKMOyeFiWuHiz2Nc4sd4wZbJh";
+ moduleBuffer += "Kw7rBvshVSIGdCv16nfi2lNxEH4alnng7iyFF5oIu07IPNbTAa8msFxp8DUXuJ7gq6NvCAgDOMQFEkNCbVq6TR7YfpMvTb5e3Jlz";
+ moduleBuffer += "ezdQt4J04dAKFg4Br+NK+EV0b9JsJFZ4EnMIe2rOshscvAueIhG0qMK3NtlozpSvaFVA+FkbxXT+Rp1NX3nJRoQhpM7bsUv7pjue";
+ moduleBuffer += "DeRUkHhviq3bWVfiyvayxY+slZw5T6v4A0cWmi2I2YkWMYQS++SQNe2z7CSQKp6fXjHEn06qSD1+xMNXb9p2c62EXL50427B3MAL";
+ moduleBuffer += "lIu8g1hEeh5yAl63iNierZGrakM3PRq1DhmqtgMpBPszIR8xlQsn8C3KwhmmqlpHdvO1B9SCNXZtT9TC+hL6xoQNyJFJCz/uc5hZ";
+ moduleBuffer += "vehNK6QqtCpbca4GmarIqprFVcWNozs4Es4FE3aXspL6+osRft4V8SbDn5Mc+oHMCc/hGlhrI7EeB6/w65beTI7Ypy7KJtehrTFu";
+ moduleBuffer += "SbfT6zQuG5TCFl867uQd1wAqfUPyrB2Xs59P2LShMeU27dNAlcOXIAWzZK73O9LQZoEeaemCHUmUGz0MOivpYZjSfh1/Vmm8kMaa";
+ moduleBuffer += "Uw29E+jAhuI/dNh1CpVU+LNcd8wpdsxJO4aeh++w2K9a+tFTuhXd1S78WVzs9K7mTutWDglwyh6ZZFHBhJ3BKtb/Ea9qYZlgc+oD";
+ moduleBuffer += "sci8l6Uktc1ly8SdfVFDM1/llTWm2hxGQpfR2zB/JcSCamkFLaQyAmGjMw/Z8Nt7lD1kG+Ihu0qPi39wYvjMYviURKkuvtpDSB7z";
+ moduleBuffer += "AN4/x4vAgk6QjOCXt5bpILo/TRU2KPU7HTXDESHXgK+Ajcp0CJgW5oYmC6OTMWDD2lpobmTWXouoD4+AwJzB+TRYyWeo28U5OM39";
+ moduleBuffer += "H3HoERyytuoDJ+9knM3mIsbPv/kZI2nVxypKT2O89MkwZQolGnH4vzH9lXOhpc+Fc7S/94+eyYj9xQ81tb8Ws7yGd5geHPtWTy58";
+ moduleBuffer += "haoMf/kZ9q//+vBdEgEZBYIBo+h/XZups/P15MJfUa3xU1Jrwgy/yqHvpMhcnfv99+dnypNjTWfK1fQlcfHs60smJkfKSKqDhp9o";
+ moduleBuffer += "bgeAlFjBZab3747kX9g73vSFFXxq1d77Y5wdqN6ddBpGw2/Y2hokZ75MFb7qGcGqrHEBYA4qZSZjP6bGg/AjRDbCP3b4si61e8S2";
+ moduleBuffer += "nV3m9tSHOx/q2fe8yBJSn+6xJa4cHZFY9Dk7lU6WYu8XDf535tlfR0BjuY+Cf4a1U3nvSX/9hX+Lu6LjNBdsR8D/dhXTyu1W3i9K";
+ moduleBuffer += "1W/8wn3dQ4ik6P2b7gHbHzLdISNgH1/CZvrCVplwPVwaMn61lnrCtdh5vgU3uMe+KW5w2fWysIGuxArQ3uV5zUpDw9a9ctQZNLpg";
+ moduleBuffer += "b8be7os+8tFQ6kJ/tYgu4JQEfvPPfm7CEL/5FvvNT+ZBMWsk8xHGA+WBF5qc5yuWyGBVwj/2GKSXG+xBV4CkdINhJkbAd0ZMubvk";
+ moduleBuffer += "4PRl5ye15sgJLHp5GeeanPofzsrXTXMnIOWIso8o84jWsDsSCIyahv5mK52Hgr7C9gq/azZtHNlt6a7qb9pV4Qf8YjyDdJNle2mt";
+ moduleBuffer += "ke4Khog7BIIJKzyrQ8YIdhXUytsl2ChSE+pDv8H6MomXBLnJH33wBNfO5CYSHocv+pvB004WV8ITkUkpFZk4EJnkgZJKEI6UdLwk";
+ moduleBuffer += "EY644qeRhSOcZuGIK8IRaIX4DveZgnCkJPIGOIDmyEThNvBsh0wRHhzEXV0WVADiDtPU7DMFAx7ia0VaOgKvA/T3QOZL0UqmOGdf";
+ moduleBuffer += "IWeSc/bmOaxCNxEMo8/abbLpPBHw8J0VOYzji7j4+D27SZgCuVKhuw9O667R3N2LRrG7p5u6u3tGdy8a07v7kjFrdx/Ievso9Tbr";
+ moduleBuffer += "6gt2k+DFZHGtM02bZekbN64IWDz2lykCFm+6gMUrCFh00Kb8mhdkX/ruefD7ruk3C9q8OaDGA9R4Vw416CNDjqPtsm0NOZ6cFQ6y";
+ moduleBuffer += "ZRLNAYL22LwWFvPWJoe7Y4qPlRBQsdHoKn1yFY++fAfOhnD6qKUv1Qnt/RLftXLCx3FG+CG9VBQiwch7C2RnvqqEx6nJ5J1gjOk8";
+ moduleBuffer += "eDy9G4ffnPCxSvjX+FmurJSFhRDG0Qs/VNK8X8ouhl/hji+W/neJ+418eC9NH55RHN7p5uFNzTK8T88+vEfdwvBUQ95nGV54yc8G";
+ moduleBuffer += "9rZpA5vSAwuzgfnF85AMrCo99wtwaRXg0tZugN1U8OdemeDPvZzg790Vs7orcxtRFO37WcgSDlZcBa2xJMSaAWpjEcxpq0LQb0Kj";
+ moduleBuffer += "b4GJNz33wCSOng+DD6fnsM0BK4VVg9WOVuOYyh80bsMJYtDYApo4aPwSLgMMGrcXHVtMfG2COZdUDMoxuGTzwacyjb+o465mwebE";
+ moduleBuffer += "iTr8AhQZbVYlFPybG9q/ucG8ish4fBbs0NH8IaYK/MFbH8S9H5A8id2j/NTGM2Y5UBh+ocQceuZjytAOpEIOTYm2xcTJTgfAukdu";
+ moduleBuffer += "uybfkGOLEzOB9eFAHXcezIZ8kP1W27h3ZNCBpHUbFFsMFzBXeBM77XSCtEXcwiE4/Ecx8TEEBEyJI9Acc66kPa1rJb7gK8jSOBA0";
+ moduleBuffer += "P/fr56h+juBZ22AN49mCcB9mcurTWKWHJOMNuMjNGQ9Ixv30eJoz7uOrNM8ZfF+I059Hep+kP4f0XklPIr0baaq2XVinw7YoRg7R";
+ moduleBuffer += "c2iclve8MWCN4QVrrQas/ShAu2bUlgp7dYWRtMIZqjBcqHDBkgrnLalwzpIKZy1dYYoqnLHyCqd0hSld4aSuMJlWgNv+iUKFo7rC";
+ moduleBuffer += "OJ98aAy6wiGUGaMyawZgoWYOPaKHoMuP6vJ7dfmRtDyVGS6Uv2DqEZhS/pypR2Dq8rQFzph5+VO6/JQuf1KXn0QZ+n2iUPaoLjvO";
+ moduleBuffer += "l8oRsocfd9Hj9J9jOV8rGffwio0DVH+Nky9g8e6mxEni3o6ZaXgvNh+GKgyaTovFT3lIGmLHWLbfFVXlNGNB3mDl8WiYtHeCc7a4";
+ moduleBuffer += "jeTQJwmTfMgRol5LDKlvQAXrynHHhVIH9io1waQ6LtcajUgFmzJJZRqrndcEh3usNbssfVwJpxHsUqoZcxHnSUi4zSQ8TH2G+41o";
+ moduleBuffer += "HWH69zkRTgxTFcZlmdR3V/4U5ZcHDH+wAl6Ddh1i1U2VgFeI2eKQk1OluARZLtyulOlxqtQQx/EI5hCeYFbj+VLs6rJ+GorAWiQq";
+ moduleBuffer += "uFMlWkLd/GE8ackOVRhDpJWjtLKTxzHI6h7TdY9WpKtPo4uTFZgTjVfS1fGASQ9ViPOqwFNRKcXIcPFQgQNCSy7jIDxhMlFpxK3Q";
+ moduleBuffer += "5sDGKKqKMVIN2qzkafqpg38C1xdxESPqlJA285J9X57gMKfzoUVsS/3aVcLPlyF6upkv4Q8HuMj9CWKMwiFIt+lvC/9t478L+G8X";
+ moduleBuffer += "/10oxSm1KEt1Z6nFWWpJllqapZZlKZWloiwVZ6mrstTyLHV1lurJUr1Zqp6l+rLUiiy1MkutylL9WeqaLLU6S63JUtdmqbWIfirp";
+ moduleBuffer += "QeOH4NbXDho/wPPaQeP7eK4hZILn6kHje3heM2i8iGf/oPFdPFcNGmfxXDlofAfPFYPG3+HZN2h8G8/6oPECnr2Dxrfw7Bk0/hbP";
+ moduleBuffer += "qweNb+K5fNA4g+dVg8Y38IwHjb/BMxo0/hpPNWicxnPZoPF1PJcOGv8dzyWDxl/huXjQOIVn96DxNTwXDRp/iefCQeMv8OwaNJ7H";
+ moduleBuffer += "c8Gg8VU82waNr+DZMmh8GU9iP6ZKPAvYbn4y+QShk69DBzuM8I41VQ2/BUziJ+eZYXEQ1wiA9AhynfDdFa58gnjDtg3WaWlqLEDU";
+ moduleBuffer += "GP7MBou7RxuHPtNGzR7GHUrcpm3hb0G6cRv+vDacQIsVvUec5GwJx6GzmadAJzlTEtdJec4pzsm9CTrgPO4asDEk9sZZQddDGqmr";
+ moduleBuffer += "OtU8NT/8Fvo3yoab8iGfb3TIJ6FTgPLaDD9Txh2R904YWXfGW6A5aZG2ZNzJFPGyFWhjLI6yZ18IIaQ+MmCfp0Syu43dbSbnw0b4";
+ moduleBuffer += "NpxgMJnP+InCcPe2xYgLrO7ojnwb4Qx88Z2BVcjan6ixP4S6NdImdcL/I93Z0qOsd0drPFkhxw7gqRnnnDOFnEOccyrPockypuBQ";
+ moduleBuffer += "swaHooRppC3qNygVLypscO0AH99NeEO6SL8nF5/Q+mTpHHyhiCcy3AGOabX3tomSAYGJk73vp4lU4Zdc+JoUy9EJBM0wtd3naJt4";
+ moduleBuffer += "7CD0NurGbh4qqiTn5DKdXBlx9ln73Gg9/C1nqHTExaUjOglrECjBhQr9nSjkXODYxEfzHGrJHrdonRwV6NYJ6VvMyThq/YB1whKH";
+ moduleBuffer += "Al18o4krxuuzqlMWYi+EEn1vvYQIuo79B3Zg5lrxh0MM0SipJyV9Jh6tpGO7pQYGfNQFKQv04LxkrwuycKCZmuyrDFi7oeWDPzQ/";
+ moduleBuffer += "mwqmRcNuke038rBJIXOzsO/X3qnYYZ4+GkgmDnmtqbNkbJLfq+gjrwQ6dMP30PkJGjfWhp2R8Nsc0Bmg3EhjzFfCx8uxc3NNwm/J";
+ moduleBuffer += "6bVVDn1g7hHzXlz283Xl8G0e52CXQRrxQ5tf/eSk1ZCmXPZb5EqAAHFWDIJWxuJrB7xQyeUepM0ghyr2jMvxJthhQsbPE0hEbCVC";
+ moduleBuffer += "4MNEnsDMycGMifx+l3EVT+zzJSHyU+J1VwXhW7nMYqndFckXoEp2wxch+eRXKGnnZGNGczbGaWZj5LrZ5dkY9+dhY7yfi40ZdVII";
+ moduleBuffer += "G7aFjZEOvyo2ZsKcycaMFdiY8y05G/O5AhtzvpyxMQmzMQmzMQmzMQmzMQmzMQmzMVScUouyVHeWWpyllmSppVlqWZZSWSrKUnGW";
+ moduleBuffer += "uipLLc9SV2epnizVm6XqWaovS63IUiuz1Kos1Z+lrslSq7PUmix1bZYSNobTxEZ4wsb8jSdszF97wsac9oSN+bonbMx/94SN+StP";
+ moduleBuffer += "2JhTnrAxX/OEjflLT9iYv/CEjXneEzbmq56wMV/xhI35sidszJQnbMyXPGFjvugJG/MFT9iYk56wMc95wsZ83hM25nOesDGTnrAx";
+ moduleBuffer += "/80TNuaznrAxn/GEjTnhCRvzrCdszDOesDHHPWFjJjyeBcR18pNDb0/ZmEuuZmP+dlY25uHZ2JiT0tRohdgY/iyxMdw9oHSP2Zj/";
+ moduleBuffer += "mrMx+NZMNkb2CNFbbzobM+VNZ2MmvdnZGAypwMZ8KWdjfmBnbIx8qMjG4OaSsDGfBV0ffWt2yZXIZk3YmC8V2BiwNmBjPq/ZmFMt";
+ moduleBuffer += "mo2ZokTyQouwG1Mts7Ax51pmZ2OwCln7xA4KG3O2ReqE/7vMrvQn69sI50y25CzLMOdMFHIulJFztKWJiRlvIVJeZraANgHhGmmP";
+ moduleBuffer += "ej4LI/NCS8rI0O/J6bfnjAx1byYjc66lwMicezszMl8sMDLjZoGROd+SMTLnremMDDs312zMSxazMXCukWHTsxboWj1nW85whsoz";
+ moduleBuffer += "Tlni3L/IxhD/NmUxF4PGhYs5ZgoX87RZ4GImzWlczIR5hVwMDbEEP/XCxQyXcy6mVOBiZGweO64mXqbcREx2lwesl+wCF6NLo/nz";
+ moduleBuffer += "9s/OxZw3pnEx76qIADdlYt7lFJiYNVfEw6wRFiZ1I9fEwsBytcDCjJsFFgZ3OP/5WJjz9s/Bwvg5C5O6HU5ZmEozC+MHwkQEKJYc";
+ moduleBuffer += "rIgJLgrfzKs9xjmwFPKSQ5XUP5UHd4jCzWjYxKrTMYx9IHos8weghG/nPnRGLrzkz/khO/+QXfiQ+YofavqKQ0uAFgO1TmZ0nSgR";
+ moduleBuffer += "iCWrYE7bZTJCjrMEn/W4ymuwy0JzW+ywEiFkn2QOKxHaZSlCiMxCiMzCOlcJU5uP5ENsjGAmMLbRVh9Ip2YfprIa+qrB5e1D0oLc";
+ moduleBuffer += "6MO60eFCo8MzG/2/oMyFf7DjpZhVK1Zug21DaAjISz737Amj3zAWcckv+bFFgMnhR78NKxkLCl4fyseHj7Mi3pJoRdBrD6k9Qzb7";
+ moduleBuffer += "ks5tKjIj/aoW9U5wKBS5WhtegnuszKaioFcRBXfMBnuptlvr4IPfEc2yOKuX2xeOXONzxRRWNDNsFWBhWX0ovsTawIDe3xIXEpmG";
+ moduleBuffer += "lTpymqc5vZHBHvjN8EiZ7WJf9rQb+qB/pq01yh2yC7bWo6XUTOSgabrTDATSi4bCxhqwMHRhzUfbP6J+iItttvq2AmuXRFOGuZ6y";
+ moduleBuffer += "tt6BUOVyFQNmSrfTq3LSHnzV5OuVMLRkW05DbhJksXH0vcncKmG0lFolrJw28WjubxHC9RFvxiWVK13Wr2fxjfPWtTULG78qC5Ze";
+ moduleBuffer += "Rur9Ws8ug/JxQ0B5wshBGbeWpoHyCm3kcwX2PX3UBUt0S+F7K7jNZYTvkydUpvRn8S0wXTDF9N6E4siS0I5W0pscff5ZfYHYkCmV";
+ moduleBuffer += "a3G8See48mJx+J9wykwh4dQKa55YOlPZTpGT25CTi8oNPkBsSMFxUV1bkTxry2X5Ki6ALpY067P56n4nFeyUmA1jpUxqrmzQEN4J";
+ moduleBuffer += "tuwL6OXFaHzYFZC46MjzAj9p6jl8M0sPIEYuTbu25LAGgX684NARLtcHWoiWxEGcLd5AfLMJN1pdrTUWAOnS1z/scD/uENLcdsnl";
+ moduleBuffer += "YCbhbk7CbR2+GYGOzeTaLHYzOh/JXV36bWEjuTY8W44qlO6EvSHrKUxVwa42cfEDlltsfZmF0THFvjLrualvy3axITwmijoYVQRz";
+ moduleBuffer += "iK67tRFVmR0oI8BHhfqOeGEtiQl3tuwZmHcR27jzay1/JebAxAgkWDP0lET2r30ALhavFdW6X4jMXEFk5rLgGzZlSGPh0MjF/TKm";
+ moduleBuffer += "ZEqzGZYOzVwCrq6KNpKxeDE0c4lxEXMHOb+ApQnfzfb9azSP9jysQyEEsAjaNa9maiGABX35KsAO1pXhZbn2ZlNL3amzBge4vypB";
+ moduleBuffer += "9HyJtU6n+3a2UZPre6xywuSet9klOg7viXUnX1oYz2wIuhpD2lwlzFJ+mkozVCM5/9H0mCIbJ7O7qiRgtJKnPyJQYyeLG3GgvbfD";
+ moduleBuffer += "jt4fsDr1F2E8gjufnWJAxwgzLm29XW5265awevzJiFadb5aad3THHTBtLvEld6kGt1MPQGgB44FonrUZft8YvjXgawYE6jIeXPau";
+ moduleBuffer += "iW/6zpbYSM1TLRmzzx9D22CEwUdGZbmK26Y6wOhV2C08ShELRMCE+z3MM8OYmWMAujqovM/cnQYtHxugkzed6LutLPT8tQ8QxvCT";
+ moduleBuffer += "jWjdh4Au4lAHiPfgY7wdUTnVzsESmkMnsEGZqmypWYSPubCt/fdpLwG4PcrTRNsBt+/FbFAFt9R0WApfdKIcJxHCUBhFRWXZgHLn";
+ moduleBuffer += "Lbi1xuEmaU22UtHfUOU7iAG0+IxADXNUCyb3joRiImB/ymeTL7QLGWVZTmiaDtLXb4VdjKv9At0sDv6ATd0UdY0+o2EN5gYyhLiS";
+ moduleBuffer += "DYKb4BPiKJvbqfyIetRqJKc+M8GBWbq0oJ2ypnTWQi1pp6xJnbVIsib0a/eAPWbhsE9HOd0A7Lp0RRh0SQXVzeZbEOZVYBODOZNF";
+ moduleBuffer += "cThkGNqAAPX3ccCGXI7ALDyH3DNstM0Bs4mzfx3zsxhHGWd+iLfd8HfZGiwDRUCErJIJftvNPtKicF9/RH9LtYTnHN1wmZJy5pQd";
+ moduleBuffer += "YuJKAlZka2TxrAfsUpY/zX5n9bEamtDl4mQ9edjfZHKQNZ/pMvxYw20sHan2+ey3BEEgHvamFWqVMtQ3n3B5eMiHNcikWYM1kNNn";
+ moduleBuffer += "GgOmwSde+G7GJk1z+CIjQCTL4ZDhACqdgxgc8TzVhlfbkAAfbSrIXhH0mraXfqXDHFKhtlUUbCXeYtIgNKkj9mQNM0MnS+yNGH+q";
+ moduleBuffer += "zGYka5LTx5/hu9qB5uF4aPD3+3cl5pziBSroN0bZ8/FOjmdPRXlKM0td1SJ3ddaIr/PyoGGKjWuLOHjfqKFXjF3FwB9og2cNFOsM";
+ moduleBuffer += "+6Ep6bXSC1b+v9l7Fzi5iip//L66+/Z098ydZJJMMnncvgkwQEIGBRIQNbdVMAIL6+pP3Z+7goLChAUyhPgazSAzGNyAAUECBAkI";
+ moduleBuffer += "EjXBiIABA0weapAgQYMGCTIojygRRoE1/gz4O99zqu6ju2cy4bW///+zYqar6ladepxTdU5VnTqHBbVDO1mNgH2L8NJGS9/Y5LrX";
+ moduleBuffer += "nFz0xkQR5soKEGhDFrpOppFD5/GbbLg3HB2uuYMW9e86bIfCDFfcoe25UOvug2ZqURSKi9iYcKfqfmAfKVgeN+bEQ7BJRIPEQda1";
+ moduleBuffer += "UBu3Jhqn0gxjGXuFgbjDttHpzwqzM9F1kTKbwuwRkZmckrK0Q+xzNzNpNpMOZYRtVqdcLyTHrokmzWW5pCzNDiE7oONmiiSfVd72";
+ moduleBuffer += "mJsbopOn5Wq5aDDlogFZp4G9y054O9fXm9ECDx+u7HH4DEhts2k5ibbZZlRaHsH/N8uOeLNQLTtesS+y4xPG0MLjE8YbJz0ORqqS";
+ moduleBuffer += "1eLjFfsuPlJDk/LjEwYLkE8YQ0qQYmJ3aBGyx3xdRMiv7VWENIYXIfG2c1gRkvjiUCIkdjpVImS/ta8iZM9t+sK+jgjZb+1VhESN";
+ moduleBuffer += "IxAh+60Ri5D91usvQuqb70iExI0w23HfuwjZb6VFyH5rJCKk5GoAqSZlyAHrdZMheZyGkyHRvRHKkP1WQoZkwMPIkIC7LzLkQF4v";
+ moduleBuffer += "YSs2KmJTMiTVVFeGhLjEMqTW1dju1MiQW50aGXKzM5wM2Q9BDGoNCsCgE8mQO52kDDng1Jch+3MiQw44SoaEilokQ/ZkRIbsd2IZ";
+ moduleBuffer += "UsS+h7QMebHJQmREjCJE9lspIRK1JIRImOFTQiQgayGSSTcWImkWVguRUkskRA7khxYit4NA4WFyb0Ik5UkLkdut/04hck0mFiIH";
+ moduleBuffer += "jHpS5AALb0YdOXLAqBUkF9siSD6T41JKklxhpSRJHtcaSfLkISRJ2J/lEpEouSajREkaO7Au0I2Iksin0Cai5BPGa5ElFSQtS8pq";
+ moduleBuffer += "YBHQEQqTj1hDCJO1H0SYpIWyWphckasVJlda1cIktoNx5+sKk1udvQmTidGDMHl5rTBJdJCUJt1hpcmisHJXS5NfY8OKe5EmU6Kk";
+ moduleBuffer += "o0VJEhJCNpzjsdkkObGEPouMjidZW/iWBK91XL8l5JNd3KlYfKfSgsNl3+I7FU9YDBzlsX88/HHZEd40o3DzwdboReYQGsi21kB2";
+ moduleBuffer += "oIFcpXg8RhSPc+kj1Or/5GEZv6lYAzkXGyGiXaWpM2CxunF/BvaPs7idJX6u9sw0r0Tb5klLrtMGSCRKXIoiaaeFO6V1GaVvk5GK";
+ moduleBuffer += "blMqW3I/6YAnlfgaA+KxXgKYluSCE8dyRZ7QbEeRXzghrYEZMnUVytUrbO0TEzYrIIlZ2s71gBE/n8HVJ88uvcRMgAK2PYe1EY5h";
+ moduleBuffer += "uQRWnhs5jzfg4PLMYleoayx5BoqLy/JoEa7YSCT88mw2g5ajjJwFX3acazQtGJvVgYkvL0CLXiG6eOU29ePFVvYoYy1MXmS4u+ss";
+ moduleBuffer += "lmbW4twifBCnKltoBt/psHu5PPeAOYvk8P5io2VreQJS4E5hbMmif7MlP1hIJ/LcZQn/wNkXrxqZdqoVz4zkCl9qcQqsDAm6LIjI";
+ moduleBuffer += "wh6EiGOYYpXA61Td45tzx9uZVe6EkLcYz3QXD31wZc0vbghUgwLliEzqdSYXCYcN0cWlG9Sm0+abLOuLMMgaly5GpSumlC5yabdi";
+ moduleBuffer += "8VJe1KWxiczIBQLe8I4Vp7x2uA6uukgODpfzMjP2ZpqgJdi77V9Dcs3mNTx+uMTOJVQ2cyBV8XSLFRtE6a2zQEVwr+fJa7sBR56T";
+ moduleBuffer += "Eedz1cJiQyoJimw9IWiIEklqYfsCHZ0zTYNWWRbGLRJptjuA1xyyFhhtmZJt4jdv2NzSz0xzVLmRVvu8Ku/CMZICnniGxDL+dgfK";
+ moduleBuffer += "DjbEL2n4l9m+xnaYTeC7uGNL/PZsB24c053WpIdqC/W/mvLsSN3GCxhXXiwNOLy75udSu/FL8RedZEtWZ2QAtzM/oMAjaJQNbQW7";
+ moduleBuffer += "pu85jNGLzixRLt3MaNzjJC3uC3YVYnN4WgZTp37hCPMG/Da+zVyhUUn572EI7YwCAwl3cIKonXDCLZzQGiUwJc0yvmWpMdnh1B8U";
+ moduleBuffer += "KvSio27uQytNWPXyg6p6WKIoRaxrwCrzarwiE2udyFEHjZDThf52UW9F9WQH87NVmZTqyY2ZWbSZlVWY+ZqNI4Fm4qGymGfhKXsA";
+ moduleBuffer += "MHtzYpgN7/mwDjszaOBk8sQsA4/hzHmNlsl+nt9TYpxksP835XkiC4XqKIn9rGVkFbL4hGCIHFaBnQdii4Mc8QH1BJlsdUsV+Fqb";
+ moduleBuffer += "tyBFbDg3WSQc0e9mq1wCO2mWbhTZ2UHBuy8PB2xF72f4ZR9sjZATXSiLqUNF2CrJd3IJiW3nt30NSrUMRBDALD8ryBOVFfC1STYH";
+ moduleBuffer += "0IK3wx0FzkEracn7mM9WjQapnfpAZ6deOQizBRKM6ffJArXt705qlPEsVHiJTLrAoe0jzXMStb1v8ixdDMME4stzqRs0aEC+wzt1";
+ moduleBuffer += "l+t/MMPGZ253jzKw9OwsdGq9JvGV3cCbnLklB4bpjitlpFWwCyPr85Kr+9kHsC0arbhbp1J5HPvwpk9DtHHKNFiQmb0Lv6UjqKcF";
+ moduleBuffer += "NX4NeEphq+w35n1uLK/MDt5WCApgW2dQWXR8kcaQZAM8sUCxy4vUziOsy3k54QEm/rDElWqWSuo6vLhYjG47eGFBBEOFSvLCArZh";
+ moduleBuffer += "ivi7vAjlRFeE+cFCZ3LDv7Mwi1UJEm8eaCVvBDIdGkra9jVEZEFt9X4CSu2HIhbwj92gyw+Q/Ax7IWycr4Y9z1pkyn1dD/T8sU93";
+ moduleBuffer += "iIZWfUPL57zqL3Fn0Vocbr+STRDzyIW9yyiy7hvaBDHY9BbEVqMUdM62RDCK6l1dzne9e5TsWlZyXJWe1IEktc2ylin9qMuVflQ2";
+ moduleBuffer += "vDzXWasjxTaLs+FtmU5R8A6veBjW/WDQOMMfi2I+pkqE/KoWIdVaFUuQasM8rASZfbUSZHQTkZAgV5i1EiTSUhLkgFklQfabWoLs";
+ moduleBuffer += "qC9AdqTkxw4RH2dH0uPjCelxhTmM9Hh6HeFxp5EWHpsSwmMH6yOy7LjSjGTHVSbLjjChkAnvpS1x/xCyI+dQsuNKU8mO3za17BgV";
+ moduleBuffer += "rZEdv2PWyo6rzLqyY79ZKzvuNiLZUXqnZMdnhpQdB8y9yI6J24pa2XGFuRfZUV0i1ZcdVemhZMdVppIdl5gjlB2hQjoS2bHfqiM7";
+ moduleBuffer += "koxTKztutYaQHWlH8brLjmstkR3XWinZca1VJTuus5KCDXd6SNkx/lojOxIYJTv20xZ6hyWy43ZLOMw2K9kSLTvKRsjGRmgvsuM2";
+ moduleBuffer += "Wv1YpXcto5GEprTsCFMRS8xIdlxniux4mSmy41Izlh1vMatkx2+ZVbLjN8y6suPXTTUmsv2qHRQqtM3au+wY5S9EF5u1suNSJ5Yd";
+ moduleBuffer += "bbWlj4XHVVpvmT3QL3fSr69Izn4xq/SUs7IA92dYepSFPC09FtPS4zpz36RHXNOzlCfbwjrSY/0cSemRcsRH00p6rFtKpEdWgmiA";
+ moduleBuffer += "1HibSTIO/a415cF2SbrRwF6wXJEa+XGOlh6blOiS56ddylJfQ/wkQaQfVvaOpcdG/S5BpEeSFEQ9AY8PRLhx+L1Gwfv3kUqPjUNL";
+ moduleBuffer += "j40iPbqQHvP8bqOe9JjXgHyXpcci1//zDA6cq6RHoIt6xK2E4EgsLBYcHREc82HPRfUER3yqFhzzwwmOeTxeSQiO+YTg+DstOLp8";
+ moduleBuffer += "QRgLjtQ+PGrRgmMpJTg6SnAs1AiOJXnTIoJjQd60VAmOxWrBsRgLjm7ylQk8hhegbQJ6+YWpBMUC2w78PJXCVkTJiU1aTiyxiOjw";
+ moduleBuffer += "qBDtKTmRyCNcsqSenLjlwoScuBuR5Uu0nOgSSa1aouVEQpHEGEaDkhNZ3KPNEMuKg1klK16eq5EVl+VmkYwmsiLmuZ9TQqIjcptR";
+ moduleBuffer += "IyS6dYRE0XYXWQ+n5lBtZ7/O0Lznq/3qr7b+Woghm3FYabaPEc32MVqznU9hhaHwTboT5jrDG7bigRLm/56t2pPeKDFXVa38bqeV";
+ moduleBuffer += "3+2RKb+z7XyLrb/gE8zHiKIrWyhjazIWWwW+2rXc6ESX5U3fktuYJhE7V0T27ncanWXQ4x/pNxddKULJeHkGbM4Qe7ZPwivuDMP0";
+ moduleBuffer += "rjLB0k/3c/Qp9BZ0sfBJtHtqoEy5Ot5jrtwSGjQoVPRZozOcIZYK+f2Vt1Bs1zlvMx0xYcc0aLF1azxmeojfJWIt0WE/cwwv3GiF";
+ moduleBuffer += "6X3dkQodqrAkKv0HWp9hc3ViYYctsBU7I9s7bIptItrSY8YJ05CwOJEwXbRpogSRGtj005MsVpreKtZdOL1c0AvgqYGlLNj6JNMt";
+ moduleBuffer += "M5XmrtynF2Evis2SwlfCJrYV7Mkos567HjKYqH3Z9i0Sz8oZ+dIATgRVUmK83o8tvqUOTL7MTloo4SseLpAVUBZs2SiVE8kD8YqF";
+ moduleBuffer += "btbJ927k0yRHbsJJtJwmW4BiXMiRQrhchwceHgFHKziE02VnmjuCv2ciuSqD782d4Uz5noEFOwcbdrx3iIxSbRfX9lC1iCRMXJqB";
+ moduleBuffer += "xHYb8TsKDPIs+6QIz8K358wDEiLpcTMDsxKF8Jhvtl+AEcDA8na4If6IfWFPiZqWkjvNZLHZs8Tc0lHGRPqxxAhSnq8wJ/EKAYnN";
+ moduleBuffer += "8h7GHd9szZ+UeE1dCdtFp6TAYPhWSASCw5DhcjPql5DYkojEbCHC3kQCzBkn25nsntU9iz3wcUe5KtkKGdxA709cq8EGdfh/i2aJ";
+ moduleBuffer += "wLZCKbDyIvK6rA3X/b+6Nlz137c2fP8NWxsudIZeGzb/z9rwP2vD67U2HKi823gbcgk/BE5CyCBksIQxk99eqU25w97gTH72hAdu";
+ moduleBuffer += "TYVw1VPrSTIL++nHu5AEoc22WVCPmIr6uAUONX6KUhZbFzzKmCJhL6Dt8CgJ+wFRCxuDDV1aGyZzCKvEJPnuEHFnKdqG+R02UmiC";
+ moduleBuffer += "fHAD2nUuhAVcNtVHoXG+mg6EeoqO8dHtBgq1cGgUhUb7LMBRqJlDqMiTYi1Bnitq9KGeiIpK8qGV5iMqwlA3cEUN8mEiyfeoyPWh";
+ moduleBuffer += "WIKKchxCRXgWluGKeJnjimwpNi0wuSIeTq5I/D20Lgzt+dRHa0EXSBHdHbswbJqP3TWSxnNHWxaG75xPvckiaSx3QgrmpWATN18K";
+ moduleBuffer += "NkjBIjdcChakYJ4bJQVNKWgRzjqERtgu9qCRsottepvRftu7DNpKg0bi3RpsnchhqbhVYtPUtjKsaytb3grqVrMK6vMWQ73K0hYu";
+ moduleBuffer += "9YOxjjRQNpOdfgq3X5SR9Tl8wzseakkzSfDGlkg9hBR/VGz+FA2DbD6PLW8HBhbdk8+d7xtwA6ofV8YeRZSGExrb1Emb7Zu0JWae";
+ moduleBuffer += "Rknz05bkwzLFOf9s++rh4Lsw4eTRm5pwvDPmQuw88Xnt+mNoYX+PaVkRQ5fBM5WrE3m2CdWEWLEF2sKBcSBvqExlqNt3ZuksxjR5";
+ moduleBuffer += "fwj7xEYg1naTHkScRsswscKVTCiohEZZTvtKahonjN6KTzAjVn/lJ4WwMr39lY3KWRbbUjZmYJLMMPLeTkt4duwwDOaqh8v9zTar";
+ moduleBuffer += "Kep9U5VjqaxWXslp83mZ2HyeeA13O8vN4luKfUVl1LvShOk86boc64K37bKF+e20WUHvZzZropYzUoBVh2N7MqLYivtC1uCGBqDW";
+ moduleBuffer += "EmabClaRrSM5OKHosYRr7oHKHy6xTTaPsdvs9H5jqUoYvJwwQ/Msz6f3gdYplScqRVamC0qKixIEi2WrzqBRJ6Fml2qGtuBiM7bR";
+ moduleBuffer += "yRYxBp1Zdo/U3ZOo25W6SfRy5Y0tq0PKHlmiq5xYvdUJb6RYSfEuBwd+fqOOSfXW5ahiCTQUo0K9FCsqHuewjQNuvk7h5lls48AR";
+ moduleBuffer += "mwYyVEtZIPG+ZdcO0xankwcpqmITJ9AAZaPGrXPUABWrWnibEmTW4DcHB2HsnVXgl/JsxovNSbu4BhS7xlwA48fOGUZ5/9kAMbVk";
+ moduleBuffer += "K8V8ue1p7VRvf/I4tLVi7bw8tB6tWEEvH+vNZ/x89GV2Z7j9ug1GFO/oDLcm4+2d4eZkvF9HfIqQpBXuujbxlUSw8MlkAolP4Y5k";
+ moduleBuffer += "wjYdwfUTSWMVlT4YB3dGQfycjJzebx1lYohju11vs9YWzXgv4CKIxLYcpdPYviBZSzgxH6DWen/F+TPqpRBugpRxCSL3XApSTiBB";
+ moduleBuffer += "VEyBoo0GH/qy9rhRztE/l/41ROqe0BIP/WP5HjvnN3Yezjc6U85b1U1Dnetk//Sjb+4iwh8NqbHcwCf3ZXEjWQDZFYlhFju9V1yl";
+ moduleBuffer += "D4oznVy4CLr189tgUqONfZRA0d6HFZzdqqHccYphb8N2XTrl05x58h2f7ILuVJ3hEK1dKnKgfbKQcGunICaaO16noCdKcDsFSdFc";
+ moduleBuffer += "yhN62A03aIIfN4Bm1c3qX1i3ftCCC2Yn3METhBaXaMo8ySmLEym7OGWpnVredlvsqpqBvWixi2onXEPLhpoVGT/LVm82O5rKi6K1";
+ moduleBuffer += "rGIliq2NYgxyjRPpYgdiQGgrzr+9dbDzsnRVP+yaX8pXqeHiFNSeFNTddgrqoC2ambScAJJa/AQUr8FUF8bl3jyvNF9t4NhvCcf+";
+ moduleBuffer += "KG+9W2oId65Wh5G4vmYd9122sraRg69kJ9zJcZgv+29jJI/8NzKSR/6/w0hu3hdGUsNGhmciL6WZiJtkIsp2fIqFeL1qqigGIqbK";
+ moduleBuffer += "6zGQbBUDyVYxkGzEQLJgILuviBZ49rAzmIwTA9mZjA9cETGQLDOQZV9PfAUDWZpMAANZnEzo+XrEQLIxA8nGDCQbM5CsZiBZ1Xdh";
+ moduleBuffer += "IFmvr0Gt+Vms+VlwD3AVZiaae2TCFVSV9yLW0x4JRdyDzQFmYjAZAYNVNgVHWAdylxsU68iAfcQcA17nGphjuMIxskmOkVEcw01y";
+ moduleBuffer += "DIJwrLe8ATwiQzzCZR5Bq3+CRzRQx15SLeLuUYzvNLgt8ol4BH/HJ36ryK2v02nNI7JJHpGt5hHZah6RreIRvQ2KR2STPCLFIbJJ";
+ moduleBuffer += "DpEQqyIeEWReJZdQpJ+T1RwLLLaN1N2YX8B/RcwvMrxGZRI8g0ZYeMYgVKEHxX0gszmUFNZxJzyfwjLTD/Mim2USrCMjrLTHScll";
+ moduleBuffer += "mQQD4SqEgeTYghzBywhP1TB3s5cSeEi8I881XcAGIr3HOJGnOTGRfIKJuHWYiBszEfoc580kI04h/BsiYxGxk1+sZMRMZCsQeZtM";
+ moduleBuffer += "pqD2gt8s113N4FJA2tKMupSCxlYT30kFeGpBYdhtymrP0Z56tIHtbBM2bE2yzd3VaDaqHXGjbNEyeovmxr5/ay2ca5NjbIXyGoeP";
+ moduleBuffer += "p5dmWYaOt2fyOC0j1okyfCwJCdbGgLvQEMvAy5s8e11mspG/cKsN64VaR4yfInCuksXYZRUi/QYhCw0y+roFPic4V5CPzcuyk5St";
+ moduleBuffer += "tGHdZEvl/fglJrzO5gtSgZKB+sJmG5jOdMK+ZrjOltN2qDHgRCzHlo2G0GAoKjPKgTwPy0bGCCM7AeGF1/cb3goL61aUuyGZW727";
+ moduleBuffer += "FO7Bd+Q35kUJLyfrYkHbalZ8hlXH8D4Tt/SX52R1yLEDpeUr5OLdgZucIBfGLJ/Y3QIfzoA62UqttwFuaVpw1Y3Cas4XMOcXyHog";
+ moduleBuffer += "a0pWmlOIXdpwSTEBy++0oWm7tVGs17lszp57F3gJM6ZJy+w5NofoUCsGr6PG/h7SM+tsQNn0JzQDwzUJ69Q5It2lYtevnxcoKhzZ";
+ moduleBuffer += "eRxk69cqJtJpaHk/JsYa4hridmYZbViM3ZQVZn76hJRnaLjCKZRSUHpjOVh5hO4aLrTzcqvNjz/5JdTekb1uBSM7VsckGhzMBITX";
+ moduleBuffer += "Y0pYeJZksUDtiRS0eYF6MTPL6s0KkfZg0enJdnqrs+Us70I0feOw+CZ2rTTUjFqamlFuckLpKeNE044Z8jL1oEOP9XAzyt7rjBIo";
+ moduleBuffer += "r8OMUgiH1k42slLOBklhxiN8+hIa5OuiGcW5G5K5lTGc4WeUnnu4+UnNqMuiGUWi156L9YTaUjuh3u2zaU2YTBxmPr1b5pPcpry6";
+ moduleBuffer += "+QQNJC8xh5ImguP5tBVtfc5GCjTooYPzC2zaYUW9ISIBT9PwSOfTT4aaT5Ex0Gg+/fQSnk8/H3Y+sT0ePZ/2gurlguq688nZ9/lk";
+ moduleBuffer += "184nM0qCHcibXNnqEIcvg81mhds6MtGWZhUTLRKARgRYc8ShcDZk3VjhtsJc/UaguBHctlG47f5sgk2dJ5+ozB9a8mLTEDsOmQWd";
+ moduleBuffer += "hanVZuUoz2w+bf9Sgz5Dn1596M0Sjxs7uHPFkCHXe0MmcbPMZhz4vBccWnSiA3OGoa412eEg0JM6FdtiiHW/OZ1oU/x03Yn8dzva";
+ moduleBuffer += "f7ecueUA0DzGWUTLhxMafKfXBiVEWtLoG+VZ0BWO6YK1AP1gl83KPZZl7TV9Qc13QnLbisXr1zlRAWI9LH2vmZXlkC2B882ZGBw7";
+ moduleBuffer += "0DoJN77A7vGBLVAyuO/F4liUkx5cejjiWE1yJHxORT3ThkJc3qeovoln8tieBwbIiQZIepPzbs5Lb1zdmwZ13U7zyVW9cdK94c1u";
+ moduleBuffer += "fAuremPq3piJ3pjSG/aLbka9MePe+OwEzHuBuYaB61A8idVeFm11DWxI+e36StTAlaijMkTmNZTTSAZX8MVDVAQ2MxTYzJBg1cFW";
+ moduleBuffer += "gbfFI5sbHWdGc8NPzo0P8ty4pMEXew2FaXXyrLZGkGmdXZWpPb4oi+1HfohvlgaUm0K5JeszTVvnFILYvXSD7In4GftSM+Xh1PDu";
+ moduleBuffer += "tYRoAlRIEaR9uUFsysBTF0X4MsyYYczBddeccwNcgRnzuvpD45/oi7oqW6rU3KUZB8BrMOsZG2IzxBCXZjrkSqjwUbYaqd3Ie1/N";
+ moduleBuffer += "sBqHBS6cMSxixDZtUcN+uSgK/TL7cyQeZIUbDDEdud4IV63cUGM7UpukrBm0v+TqjFrdnH+0hs7Z7yRzDkrOfkdy9jtDwnyhXu37";
+ moduleBuffer += "17ENermATJoF3a9OtvfU5NqfL8IMPe2iSzHvsqx4Hw0P88SlKdyL4lYz6VvUwrot1+mW3DzzSL6F5wTcY/XfUO2OdIgiU/k28wRp";
+ moduleBuffer += "RHxZR20QU7vA12JT7nRj5iHMwFLMwNbMIDS8ZQ1wjxpa0S2hI6yB1jmhZ5rkNq3asjQVE/33vGcsZa4UXoa5+7xMTWPlksgurmhj";
+ moduleBuffer += "oxJ5UxPAO6w4W9buYHHLe0hVVn6/HSjPzI+ouaZy95s8EwhR7DN2KBeyFC2scswmjAWcZrrM2VY0x/fSOx0pCPeu/FuUpH6Wm3Mq";
+ moduleBuffer += "UsKUphwgcspexAW5pcpmWZtISNDkfRFeMTkS7eHz3Qze4+TY9q2pQIg5Ox3tZ0t0hmQz2VAJLHtzBSTaBAXpVNCAJMsvkaBF4Nn8";
+ moduleBuffer += "i1C+3OmXm3w8ISwCimogmpaTzFmS0V7IseUfzgyXqXgrqCBlMC+L6iPalFNn/KpN4lKRNhAc7cknvma91dwpVhonDgxIJnvNyCQA";
+ moduleBuffer += "sOJ7Bhiy/Ea0zeYBkHEqIq/tl9QoNsqA51RlTTzg1CMZvCY+SCKq5Mz9HjI3SLWuzuYyUTiKaFymiZyKUQV4pgefy3YnselLs+K6";
+ moduleBuffer += "hej1ztFELdSqL+eE/0PXoo5tBdQeWgtD+0z6tecHJoUoTmg7kc1dtHbiooNY4PL7Nxrej3JK8JdtgEcZSKA5TKxLdbCHy+75QcLS";
+ moduleBuffer += "FCuYQcUAFqi8I1gsIab6XoqVQvscZD0aYR9M5wjapSC/R/lnhwabsTDgoQ9nudYH+ARzdifc+WXZwMUR1vFQJmSgQvlZ5lMZ717W";
+ moduleBuffer += "ED85EJsd7dZs/Dm6zFuZ6WXeYHVgExP+jr1CsKkaqutt5sn0s/5LfV9x4CqQj8KhMHgtK5F7bKeNPResw2D8geqbYRzv7bbKRYRO";
+ moduleBuffer += "QCiD0D8hlIeoPcM4kcKwqyNKMXLU6CyAKs1Cip9CcVqJFiAR8ZNFYswRDfwmJ1sv3nIVwx2qSpjoyfjFrq6u0F1IUjxE+WO6fLMr";
+ moduleBuffer += "/Mc/7Pkl2Gsy6V9jJEFbbM2sCw+srDLfjUBzxPF2ZYPRc4OWEm6yCBeIZ+aWoNmjPBF6MBMEqZuvPHGqV1TcSqxm08Sep1xY28eV";
+ moduleBuffer += "DFbyCTKhfRa7wGggQjoWh8oOvsnNIXZe4S5FSGwnuyA3UrgkskEuWCeILDLw2ArVkgyTRavcdbVwUq4TdpgdOEqEfxUHFsTxRtWe";
+ moduleBuffer += "DypDSEjwMM5dZKt2rGF/PHvMwE7Yh99fEKPDW2miQX4YCRch2D4f3UkEFE0QauBJgTw6bAcoUBC3fqJcQvll3LH8wmBHrvLukAjp";
+ moduleBuffer += "JKnzaFaMNMM96PTyrK/NlOHhjBku2SI4dWYYJwVNRBHBKJJW2MsB3KO64TmAPcP453IDhGe2zbPkgY0G3nBR8D8RpIz+KK7jKyqK";
+ moduleBuffer += "rd289aF73nw/A1jQxCmLY1XWmzyaNn3OgrCDlbcWdlHFXCcqG7aWpn2q5e24wF4QHs2KZFRLwwhradinWt5B0N85n3ZeIwPu7hPw";
+ moduleBuffer += "d9I6mzmxxM/WiCgotkoQhnfEhMQPBBm5LDKPKVmsV2AdJ2TyUaGQD5fZiJUJS4ewZp5CMaVY5WbdZNxkvgbk4p4mtOi/PT/fKHaV";
+ moduleBuffer += "LDFf56IjxvAYH7ruEaGc64acs+TBRN2heayu3oxIobkeKQxd/YhogauHrcblunqq3DqOVkKMx6pEohMu36JsyHN7d+ix4uK7dEwa";
+ moduleBuffer += "bVFjibJed7LNhXY0MDZSQuK74bqomXk8+IKVg6Jcm4iXNtxJBw7EXBILRnf6LW20MuRxAwzxfPQ8lirsuW1lC2bjeNsD875MdlhB";
+ moduleBuffer += "jHP9xq5yI5sg4/UqehrdyIdzobmA2xeaZVPvcykztlqmaEcb4pLWABc3ikVmTadiAvBZ4JnCVE/Hgk61gf+5MjEySDCFSdIEOQEX";
+ moduleBuffer += "fUT5SMAdmg0bTJRgI4G6jfspnNARSywKSwRHIjg4iCyCc+aEc8KVD0Fjd2qUlhX9Upc4o5/r8h3NHc2usvYprRxIk9DtQH0iOn4y";
+ moduleBuffer += "kOAmEjhHTmhk1wNJGtkTxUBbSyL6AQqXRzGUW5WirXU/T5bbElFaVrRcedvFL4ZJrDylsEA26F4k3ItBVGLEVqRfac3BE+4/boTW";
+ moduleBuffer += "Z7NNGyF+ImAdbhlw/mH2yosDT05Dwq1PbzTCnyClqTPsR2Txzo3qBZ5yEBHwbix2dKJ2y4mNWeFm2mzL2Vx8FOH9RvlO0LZi5fbd";
+ moduleBuffer += "jKx/mpH1T5N/QJ9y/Q3BkHXBD2dC5xtwi5XM5BI88w6cZPIduDgHUebj5AiECiykLZa32fWes9ho4zRtBbNwYrRpjAcw1kyVXZ7S";
+ moduleBuffer += "M+WxNZSdVZfPHbzb8mro9NiUq3bMMwzHu8pMbpavj4Ym4WHjemi2mskdPraLyhwDn4Z1HMtTtYN2edDLTQ2FGS7+P+vrDUViMbFY";
+ moduleBuffer += "x7ejMzkau1gH3DtSHx7oY9gHlBeUtGcXPirt0CekWe+d1GQrvWnWLaZKpnfCPxOqPIZWHLuL3VywY+rADlsX4AHMK/Z8HJiyrj3H";
+ moduleBuffer += "WO28qwuyEG/Brc4QfTiafsIn96xnAUiwCyF4HmvzRFtx5W6GDxYdZe9WuoNDschFDm+g4SIHw8kHCAY/IvhX01IndUnV6KSWM/tt";
+ moduleBuffer += "YefrtGP/kiVa/8k3CazuH+7eRA290Y2PA/isBQcRyn8JDYAKsSeeM6k9z7mFGsrBJcr9+pgFnat7gv42PtsbdDTqpkUHjqobltLw";
+ moduleBuffer += "ttjWsg8N7+EzuSrT0GeSt9p69kyJ8uizhc9Rb3a7apINd2YZA9l/+NbsvopdOxT2S6464Zb18TFdcuEZtmtA3J9U/5MDaXl/MAW3";
+ moduleBuffer += "OCpTI3mHbeYWJa2aWN5HcDiuD+ugsrRs2wb9OtqCuZAdppjR3qp+N5nixmgd/1J3j4APen5aUMY9xibYVyVGattsL0Os3lpwOeZ9";
+ moduleBuffer += "gx9owoEX/Sif8QZqsFgvfpPJywGsaPo570F2FO+X+AnStLJdiKtvp8o5K9smhjMzrANQqcl52/mFV6sUm1hVbKsUw8MiOCnkGjzJ";
+ moduleBuffer += "2hJl3Qqbj3bJnFCQCZJse17ajrun+QxKlGAwcIHtrQDv0JfNcpj0eaxDJtv/YGWVq5Cs3ZJStTtooIomnw1i8PW49/AJacF3YnJS";
+ moduleBuffer += "R18au3/B+xf42bpYGfOibD+sj941uQR6d+/YoK0mMXp3WdLrAfW7zRL0brEi9G7FJ1hQBnq3WXXRu8UaEr27LEHvNmsE6N3Ga9AW";
+ moduleBuffer += "K0Yv3O0CvUszw6BXig1YI0DvgFWN3rjtNeiFx8AIvXcJepU1DUbvxaaiAY3fqwW/aoDbqfMp/OqBX5NL4ZfXw42GOgymXGd2YhkP";
+ moduleBuffer += "NxnqYqUcP7HBMx1mmfjD3A9pnCPMvA3vjmBwKHG/WBBHkQXh/ZIjV5UDrH5hdaZxe8lkutF9gjp2DhviTHj8Q/tHHkbYHahz//C6";
+ moduleBuffer += "8adV922s5k/8Skdqp5X1/lrnWXJlxo/1TEf8bRHyC/rVmHEsOjEMm2NsnOndRWwuiFiCEi28Cxjj3u9yTPCQL2uyXMo3Hd66KMs0";
+ moduleBuffer += "YZaYUfLIcKs5i+8DJDaImIajX2R5X836fN3g7bD0c6zdc6xPf7FR5foc5QL/+l4ewlgsdZn+51ja+qyWtpb9XUlbLGZ9NilmfdZ7";
+ moduleBuffer += "NF++0Ew+BPtcuzU9+Ozq4BiE2oPPrw6ORWha0L06eC9CfvCF1cFchCYGX1wdvA+h1mDR6uA4hFqCHnN1cDyCXnA+BU9AsBh8iYIz";
+ moduleBuffer += "EHSDCyg4CUEj6KVgroKDtqYvBrYELsC5cje11c9VXpEvjgQuCNxe36YvQaY7wK/vIDKmG8CcoI+ATfU1FJVjag2Msb3dQVZlinIH";
+ moduleBuffer += "TXErCGS+O/5i+01oTXfQEEHGO1l/koY8WUMe1ysNmkJU0EtkvWB14HcHo3UxP8tgorobONoYQS3qDwVddUk3isE2dBN49cXxS9Ko";
+ moduleBuffer += "QlTcQ6Nm6EZN041q6fUno/R+fp80aX+0bcrC1cEBrIeL5xxuopVBc1V7R0Vj1e03ppvsFzmeaDii7RGoA/UHT7d7su4RYAcF1KG+";
+ moduleBuffer += "ZP3J0iMvKl5Gj07QPTpE92hmrz8Npaf5B3L725kSuv0LpH/t6Cj6dyChgWiDOxm06qY0I7fbm+znqHQ/836TrnO8qrM7mBDlHn4M";
+ moduleBuffer += "uoODolBb3P10xzr0h7Lu/Wg9Li561tTtu/qL64+WcSlHxQ9FF47XbTxSj8tbev1DUPoQv4PHhQki2+1/Scalw2/j5Aa/pIt6Ufei";
+ moduleBuffer += "ph7EeS6QETzIH4trp26aka3pUaRxbeaU6lEcG1GLP55BTUgNrh6+8UMOXzTQQRCFjopCE+ORS4/JW/WHQ/XANeohLalFohRNK79R";
+ moduleBuffer += "hvTQqPhhGKvj9Li8Qw/pO3v9I1H6SP+t3BmmSLfbP1+GtOxP5OSCP1kXnRgNadSiozjPl2RIj/IDjjpCFIKTiDRktPxxvs8D7lvd";
+ moduleBuffer += "gR+NVHrA/Snd/tg0Ukg8oVWvipy7BQ81Iz6uZt1Jjn1bHSzMiUKHx4OdHsaD9YfD9FhP0VhAW4PJaLP6MpZ6wMUPi4ofgT6/Tw9l";
+ moduleBuffer += "qLHwT73+O1D6Hf7BPDxM/6Vuv0ewcKh/OCc30VRXRQ+PsBC1aA7nOV+wMEdhIasQyNiNuqomCnDhtwBVDd2BUzWJZRT9/fz9fV9h";
+ moduleBuffer += "KloGc/4B3UFLFd4OiOIylfbXuYEuWlsTM2l8FQLHcXy/aJhao9D4OqjL1UHixCj01ig0K8ZVGgvT9YcjNKp8jUS0JBiNFqkvRKmC";
+ moduleBuffer += "xCOi4rPRn7kaExWNxBN7/RClQ386jxzPuLHd/iLG4WH+LE4dQ+uDKjkrwmHUIJmEPYLDtyrcuQr9TBvxAiE4zKGWmUB0gUZGsB7M";
+ moduleBuffer += "TM82DLc/Ta2XTjexTvWZEcWITqG3hZMPYFAay/5U/8AkjvdP47i5BsdVPKedSKkKy7VsdG+Yz9bBfDx9D49CB8cITqPubfrDbI1f";
+ moduleBuffer += "T2Mey3YwFcu3+tLoe4L52VHxo9HL92r8vUtj/qRev4LSFf9tPHI8y8d1+19kzB+hJvVkf4oueXCE+ahBguJFjPjD1eQtKZqZXm/y";
+ moduleBuffer += "Qr7w3wLqaKKBEVKJuVwC8Yd0+zPxm+smCSOFeEgXfkc3Cxugi0iaaR+GLmKKYAIZihAOqCKEaFWf5B+UnPpDE8XMERJFLI50RCE3";
+ moduleBuffer += "Cr2lzhIxKwpNj+khjem36w9Ha3KYpgllClA9qdufEnEAmltc/Oio+LsxCsdqdP+zJpT39/rvQul3+W/nseOVpLHb/wITymy1cIym";
+ moduleBuffer += "BVeVnB4RStQgIYkvMqHMUivEWEVib0uvEG+R5QOVvBPUNIYGRq0QeliUJAWhyD9SmDVJVNGYJumo3M3SF+ionKajGf5RCdqaGdPW";
+ moduleBuffer += "0DTVnqapaMGqoqYDaqipSkYYJUwqzU/2QjBtdQjmyDrrSSyUvbNmZYlnbnfwL1HoA1HogzH9pCnjf+kP79bk06IJywJpENe39JcZ";
+ moduleBuffer += "xJy5+Luj4h/S3/aLS6kUn4ZBkc17eFQYXtF/T0RDnBx8GGNaJLYWEB4+ovDxr+r3f6vfj6rff1O//86FQEQlfwbEZWqbrq1FLVYt";
+ moduleBuffer += "UUWC1I/x35MVhFPU78fV7yfU76nq9zSGMon+mwL4NKk0/JL6Uorgc0owjf9+UpX/lPo9Xf2eoX471e88hjLVb/SnAj6t7hr+JPVl";
+ moduleBuffer += "UgRfRPhJSh6S8meq3/9Qv2ep37PV7zlq7o6mlZ/gj1OTmSd6IALOVJV1uvp9u/qdr3671O+5il+MpR0jgZKlfaz6OFr9TlS/C9Tv";
+ moduleBuffer += "eerXqoiY4ar/sAhg/ztZzXv8Xch/P81/3YqIlmwNXRYCWgDG8DfeKwWf4b+8V/Zh3DgnuwRaB5oqskfB31xF9l5ONPVls+xwOm9h";
+ moduleBuffer += "M8KJugPch5EoH01vm/Nk0otAJp1oVy0B9nCZFNOpm8eJAEW5ozMGJbraccuHKh0XPiRaIoctGEmtMYhoc+c3pdfb9BGPBpgbDqw/";
+ moduleBuffer += "xz8hFo2VjFB1VCQoivo/HNhI0oor+EyUFHGHMWkuUtXsIWrKDlef/1b/+MQJEvam/qF7gyznOPEID1dRJBnEVX46SloYc04VmKwD";
+ moduleBuffer += "wUh6OEQT3OEa4h/uHxcLLLyX9t9Rg7rD9laXL/M4lpCHqdqKOhxVe16UtEAnRWKEPjmLdrb+O6sGw6oaDLuqgU5V20Y+OLP89yUG";
+ moduleBuffer += "B1KO/08xh5Sa/bBmuI54PYfr3Nrh6oqS5uukSECLZMqpOqA3k2p7YFWN2z4S1XCNDvKcI68rjPrwBZYXM/6/1GmBf2LN+FVqptjs";
+ moduleBuffer += "mhHM+HNRa/V0klb5MoaxHD5MI8+JYETNPTtKOksn/YcOnKkD0UnFJB3Qezf/A2/EQA/Xm6BB2J9uQNS5bh74PP1CxG/wPziClvkn";
+ moduleBuffer += "1Qz/u2qGv6FmyPP+e9GaamKV1vr5FFEP2/h5EYyoG51R0hk66XQd+JQOfFIHogMGfSLJYjAO9N5glAzXP5FHIl4fd/fzjKIG+gWK";
+ moduleBuffer += "Cv4/V3BC7f+vV0FD/vtr8NRUg6dCDW4a/GMTty9VnZBrlAgVw/bptAhG1LtTo6RP6KSP68ApOnCyDnxMB6Jdvh4A/91cIS8YM95w";
+ moduleBuffer += "xA3XXRE7Y5kp6v1nGZEF+gUim+KmH6NFfUvvxMf4HyIgvbKVkJ2Sta+dwh1BFWqtGtQ21aCz4B/THcQsON1R30pNRd1vqx6y/z2C";
+ moduleBuffer += "EXX036Kkj+qk/60D/6oDH9GBD+vAe3QgEmqjiUt7PtpYdidawSuU/4ZjvGYMErjn7UnFiORPCjbFwUIcbIiD+TiYiYNuHMzGwVwc";
+ moduleBuffer += "dOKgHQf1gMvPF5iKvlD5h3nBF3ifpYJjo6DONzpOeUVSxtXkmVqT0liTMqkmZUpNyoyaFL8mpRinuItvDlvPCz7rj7l5Ps2gRecG";
+ moduleBuffer += "n/eLN8/vwtMM0/+s30TJn/d9TmnnlAKnzOCUaZzSwClTOMXnlDynTOKUiZyS4ZRGTmnlFJdTpnJKC6dkOWUcp3ickuOU0ZxS5BSH";
+ moduleBuffer += "U8ZyisspNqdM5hSHUyxOKXGKPNUbdJSqAcUuNI8yOvzPieZBXQ3ZtfnXV0MWVrReq4bs1GptDGrnB1kd41Zbq2P0qreXqa5EShSq";
+ moduleBuffer += "gdI2SytRDHx9Q0KJwkrpqkKJwkoqFtphP8xMfZDH9FZbN5Ffifq6pR+iRqS0eWHhzAnZ3UtWjLlarJXPCrv8CJi+svZnwP6XodKr";
+ moduleBuffer += "TC6YvqFsSJmFj1SZIKYmPO4o68FSD/zr2t7tOXneDbWo0yn+Xxlu7jPQPrOPMpbSyIlR4chk8UerzBBT7gFAXmpryJtNQL4jAXmz";
+ moduleBuffer += "6e0WwDsBmFOOMlZgAJfaAlxZLjaUvhBeGVgLAiNc1b+RDZtTR3vvlaB3j1uYxCN8bKTP/T2l/ONDwQ7aQdCzCV98aqMRvsV7LG8k";
+ moduleBuffer += "VND5SWyzZxRamdydL+LTkbYbOR8vjIfyLRtb8c15vnEiwJ4Rmse0FX5mmtn4wa5g29BmGCL8FVkrfvPj/YZ3OVcH5ytsDcAJ1zzR";
+ moduleBuffer += "bxxo8Ctwtma3luLthnGEgR620MCFcH+mbJPTD7u3Uug3xEDBlkcJ8Leh5MQmjulP0XuCf+HwWkwli/l60TIVuoM2OFsn1jpUUp61";
+ moduleBuffer += "nih0oO371upuGK9jTTRvDjS8jFApqupn1Aa/WHO1gtVEQ95gAF/V7+J5GIGeY5xFCjW3Z96T8Z0CsCeV4JV3StmNUuKvP89Vf/15";
+ moduleBuffer += "rjAercouCOfMC3nI5rFtOHtuW6ENA1U40VkUrruP8I4nDwXvz7lMaBTwGntIimB6yBp7z9M4gjxvG0Get48gzzvF5oFopZlCjV2x";
+ moduleBuffer += "QyBliEHUsFnNOJ4yt315k54ySy7cFE2ZtEo5LV3eg3DDntZFnsiodsMxJ0QWSKChRhX9KleYzA1iH/HeSYTOKxt8wzsJ9g+6gO9J";
+ moduleBuffer += "pvlFtr4PajL6SBQioF/orRgfwdeJin5Nsa4RaRZGj+XDf6ylsRikP3oFCIy2sBQ2+UYb2q+V+aBTZkdU6bKaXieAlIccUx5RU+kD";
+ moduleBuffer += "grJ25cp2oufQGIW9GCZ5OO3gJfdPN28ywoz3aVbV/AsijvdpXjVY532eaD/C7AYMcxYmqw8xjmBlB8Y3+PMEYa53ODFNUwSDp3qG";
+ moduleBuffer += "fuEhZrjyyo2G98tsZG7jrEKbyuAGvDoW58lU880T2jDq/K3fko+brOTXKtCbH0mALgL0lCEGjYeMRmRSpLWID+HO5zYaSQsTqIdG";
+ moduleBuffer += "DLR4yDFdbP6AF5R2llIMtpLAcCaohjiBKeRrROQ7MR50+jWbCuGT2/qN8FBuDC/S9VansVKqetGprYfVJ6HG+d2c7ZD4Yp4drqNZ";
+ moduleBuffer += "gC+2GJqR1yDVb8f5eayhgLCVB5tX1dA+tmTSwGq2Tet/SFj/ffRYibWUMemedROPlNb8PvFIaQUiO59Uj5QCC+KitZ/pFctZ2Pcj";
+ moduleBuffer += "QXt/U172TMeE6fT68iWXc5RqchzNz00oBx6rGZSlsSZLB5Nb4CAT+5gRn1/I3FSTuZUI94YGluUonxAq/x4tVhaPLWU8L1WK+uht";
+ moduleBuffer += "zsrMtPBmFJYyymxln+2NMtjDgG9qCpuqORDGXVmIIg53c9nAAzURZ7y78EaemaXFhZRFeyoJdMiTHAsv6G98gsYw6zXUDkjSTP9s";
+ moduleBuffer += "LH/7oZHtUehoCXn7S1Gbi/LbKOoFJgZEO5lvjghWvDC3yYIlT6eYI6JZEyVsYE1qZYV5vDGCIUmrbIVLsBiUIZiqoQgnamNXBiex";
+ moduleBuffer += "ZQ41ttxcfHWQdFgnG8EClEsECoZOZS0wMTTXQR7wFlggGMwTQhgAfFkAFISYuKZ2bcROJRXCHsubmRwRlSc0y9QZTBl4RMiE/RRC";
+ moduleBuffer += "VQaniQcCyLY0EzfJvMI3BNnAEF5QzbJb8YD4ZpJuTHlL30pSbhcaIgrX3CNlkoTBFl52rOwimqpbBOR7tN64I3Yt4U3FUJrlrMGu";
+ moduleBuffer += "9bYjoyiEfq+tnEN3TD/HCPaBYO24ALn9QGt+T4PkxAhR1lVmexPThVs1dUxUC1tgtbEFlNmQdm9yq4tPShf3dHG1LnpSvF7JyemS";
+ moduleBuffer += "EVkytxYDo1wMRtao1W1YJBgP7TDCy56Y8GCWyG0CTzZAnS7D1M5fC5r5zQ7xmsMkSpoijj8NIUBQcCHsxSJV8MammiOmMGBwC7PT";
+ moduleBuffer += "EGZmgFgfychKaYpg6cD86dGqHsz9+cwsFfXCDzOPHlM5Q6Ff8aAh/nLhk9QUu1bTO8vsg5CJlL06tZV5AolFLmL84VYhk7LJISFP";
+ moduleBuffer += "RTplCYlrZEf8azg+G0gz2AJYUZok5s8KDKBwk2mZxCvCbUnyE2Gf0w7kurYDLte1LaoBlBI+KVmw6wXqwx1RPNwZlXkyCg1EIWQM";
+ moduleBuffer += "HbUThxk582YeNpfny2p+2MsbR66bWafitywDhuwzFoaJEizX0KwwlhjHMPM8LBzHcgrm+aWUCtHauwoUtMLq9K4BWraz59vCOCWQ";
+ moduleBuffer += "O9HLPop9KVs4J3rLqx4kyeCqLQI2OF6/C3sXrUJ/8BSEnS9oAw9TbcmYeLPBVJ317XkwJsCx49rYNoZgZ2wkHFI7cvMXiqcaTg47";
+ moduleBuffer += "IAmQUMq2ETu9r+c4mZg/XspFMtcfzEKLJJ+jU+fM887R8tm1DfJQNinlvEtkpIgC5HOrCK9w1rL0ok1CTxVnFvrI7468a3Ly8od3";
+ moduleBuffer += "62M0psJek8VG7w6rUBglqVqMJDLUPWSe4v2N7YGFxrGF97NwfahhpA4ZEqcs0clLhc0PErqE+ljk3vnXDYb3/ugIQh4MHS2VBMze";
+ moduleBuffer += "qMHzaB17JBdbzOLDGX6hKoI2u7VCQ1FYNnczjA7ZQnj3Z+VkowPbMLRn8eUk3XyHFxrCCRvI7gAdMbbdqm3HONM8m3NS94SjWVhs";
+ moduleBuffer += "VDqtTweXTUk30+kz0unvSxynGGrHHPZb3svirKtsJvh3yZgQOvjIhykGzJpcYkXvoeqDWjocqKVDgRpbb2dQKAxkzeyipA8djO28";
+ moduleBuffer += "gN8bZ8PPzIdn6BDGTO35Qa7NNztPZCOjGNwD2B3B3LaSqZbMPD+FInTdaQYuHKDDBoAdbvnH54+jGNynFjoJJH7n0uJJZXKyyemx";
+ moduleBuffer += "5rJZGqdrbhcC88Lze9wTu2jp5bXGnRdYvhP5NrQgfTnHcTvW/pSXRpj/zIW36YgFk6twOWax5wp0I0sA4HlubinDlm1/YnJFJAx4";
+ moduleBuffer += "c2FgxJc31jSVu0KrSwlc4ujO5mNKtCDgx2FOaKqDS9u7wSyWChpS03EkSRXZIm81MC4t8pqULhYK4Sppb9QyvGHUoE5g+5RZtj40";
+ moduleBuffer += "JBB4dcJpIZst9U3OXtN8M9l8W7kUBIgvzofnOR41XmK4PWKwsWEYeDIcOR7i9EjkaYOR6tJxpRxY5rG07xMJPOwOPyNv2U0iKCIn";
+ moduleBuffer += "Qg1DBYi5bR6xCq/HhCDuystTnT5BSllApc0vsiGxEE1abZ1zS7bsnv38cW3YfhAIAlDMFsLrXyLp4ZBwK/2we7twQBKW/pdO2GuO";
+ moduleBuffer += "+gNhCaJMhYc10RiCIJVDLJav9Z4b/Cpc+3/W8zKVUSvRmMhsK40NnI/RWtak1+PQkllKHI4XbmZ+P8IR8ZeywvjGxoxXHI/h0DRf";
+ moduleBuffer += "GC0cSOSZK9lwZMEz2GSJnICB+XoGW1oRqM8J32Xbgr+9fhOOrWLbgtGXP+BLY/KLNKDFVwd+OrkpZijerVmuSzfRmBfaCzmB2rEl";
+ moduleBuffer += "YiyHqmMVHMbjTFf5Th7GsSE6GdkhZMsSDrNUJYNQISWAPOiKTQacQrP1WlA4bG9ZbMM18R+1gGVyMzwfXh5Cqnu60WOF9y56X8ma";
+ moduleBuffer += "gMg/TIocT2uZJYa3TQgFGYhxXihi4nTjFeR5XyF8Ga5oOqcbhhQR+8NR7kw5F+5eRcJTmR0aYAfHGXDRYs0N+Nh6bpc8fLZpWSFJ";
+ moduleBuffer += "Gl9O6BJr3mxLld+tWqqK97VByoRFY/TPx8wJrLnsNhP+6jFvaVzZto19Qht9KsGmruW7cFlDc2lemU0Dami8uJrzyll+Ye3bx/DO";
+ moduleBuffer += "AM7+QmLR+WQuS+XKc2sCBsi1pXLZKpfr5yUDMRk7mcFRGWxpUi7MzIMRZsvPdtI+QL+PpTFQZgl0S4lJ5GCNwjq2lOVf4gXKMw+3";
+ moduleBuffer += "x5wu5zPvBaeZYZjhO+eX8Z51ynxsQMKPHcduSbML/GyXbG4hehJZHmFNE5zCiBR8LmZhAIeLnjOXTRDbYXEByrCb0FELiLMOGvOR";
+ moduleBuffer += "3Y6ydwVguJuIJWULgnoCyhuXuWDXYM89HgdpQBDpIX6KM0Qmz3afX/iyab9MmMFeJxP23LKJD1Mylcws2tpk2BHG6grY+sDE3ln2";
+ moduleBuffer += "6ZzkJZNO5qR2ldQziZI+zEnTVNJSJJ2kXFxJ0qBFSe8tcrNx8JBr4/bg+Amt6I9aYddtxYdrW3FSqhUKfkaepbNHJ+/HLlsCdqSK";
+ moduleBuffer += "Fat1FU7dKk6urUJqLSarkFrddK14pu+74S7qhLcalzaOd5GcOZp8UaebIh7WsHXMsAUYlqbHWObZ5iLviLIhO1IDpxRYtCHi0GIe";
+ moduleBuffer += "7lnaD4srBUyZcNG5ancgi2B05jgnWWL5N+MSvNQtIQmr0Bwvm2plb07DuD9fuBHWGCx1fijP2WnQ/NR2iF2xyZ7Iiixy24BsY0GG";
+ moduleBuffer += "OQKihEAuB+HoY17AK5EtmyXb58K2FLbFILUt+yS2R4CVK7k/gnRxmHj1ndYpPian+zCGhRDtwueJg2Sfbzkz7K7RZiedythIJ253";
+ moduleBuffer += "4OuMc2L9IiAJc1rUzBNlDcBu1pDdLltyiOLsGdmL42yCwdVxi/fsckjToQVrP7n9Cy3ZU2379Ua1p7LYN3U4Tk4xxuEinUt1yn4S";
+ moduleBuffer += "Oyc+2cAc90VO37ydRAhQDIkAsEEg8jERDMnHLBt4xxZo/8Ocp+5HiE3AtDMP1yr2fImBu98IyxImM9qwRXbJkOYRh3TAnJ8EhGbF";
+ moduleBuffer += "n8GbiYKWmExh3pedMNcJPozLisp1v7xh8frrL/2TzwbjKyt/dskNP7rihxfcuAi3kMxm2+XM8caH12Mvobg3LA9kWRgpNAKoWI0O";
+ moduleBuffer += "M8dE0VfgLumYFNFSoa+5QuZ8Xe71qyb10oacCi+ULryYY1g95jF62qiTA6+TE5IGiDV8nYOmiWekt/PSzydvunD9Fb+54UuPiGX8";
+ moduleBuffer += "yt1bt995/0s3/e0E9DOaeVdj5mHPX/nTXavveKBv20u/V/l3f+mqu6947ic/vpMHpllfEnO9uBriQn9cs/63l974w2fWLJJCmzdf";
+ moduleBuffer += "d+ddPb/8+V+wLU4KQi53hod31Sup6wwvDfnTXBVLWe18LE5YbCZxSS0++5m8/PCoyEDQhnRqW0EdTHo3NIQ0ih9XFr55cxcL0kkx";
+ moduleBuffer += "Wm3tRJDG5o5kaVPEcWsEYnJ0PeTIDZCbvADildAI+4Vw74KVLN71l5X/IKX7IJ56k2sXHPFGqdpeFq0F7J73FbkMLmdkS8g7PkyR";
+ moduleBuffer += "DCQD4594ssAYVmh4V+XkND/H7ub9GuP3OW2lHo/MaXf4Z1ufBMcOCfjo5zc5q7AIhyC69dQoZVTDDWefWS5yO7CyUZOKYhCWHWLA";
+ moduleBuffer += "AWVZu4Zz4cwj6UVBPI6wy4MN7HbOgzdftt/KbWY7wXnaSiVcHjgJlwe2uDzIsb0RRxruwklAI0Fx4STAESiu3wgnAS7qciMnAa6o";
+ moduleBuffer += "BVjRTZT4SinyJo7H0FvM1lrZTq52J0CbopDNHx7WdhRuT4E2uCmBjeBCpxgRzykzcHm+GFbODlIeJcQ/Ao1FiAveX+fgI13abaPd";
+ moduleBuffer += "ykWCLe1mRwp21O6UEwUmXdQzj9AtDu+dTsabYFl8KIiPBYYS+SJwCHjKyYLyRZAT1Os+H1syq9vMjmxovLjbgr8/ZrEz9soNFvuy";
+ moduleBuffer += "KQYlaV+e9hMNCn95cSij8ZdHxbBHWeL6c4K/9Djk9joOuWgcEvbm/2zXHYnc3kYilxwJGQFFQRnBH7s9dTrZgLNAZT9EIkFXf9BO";
+ moduleBuffer += "IOp+KLCzvGlxSbcaJJdkgo0ampGGSgYYs5SGFtDQjNo5A1ZBw8r4xXD2PMzPcDbUpawCK3GxZktB7nwa1V4SKlqbHWFjX2Gu5m3J";
+ moduleBuffer += "xxziq+AQOkZTcpddKMr6xib89MqrxL6/W5G5LPGd4opnEL3qoZFEuGxibosFTLpwhoSAI66sgVzxAcIOnmx9meuzb5RiOPhAv7JL";
+ moduleBuffer += "lAknRk6J4PoGToloxwmNHpwY/IR2dGxHi5bkwIV0xXZF+Y8b5OFsBqsO7DQzpZlKkcuGeGXGDjTRAl49ozgf77qxg00GjSN2tkuF";
+ moduleBuffer += "JcjPs/xX0l+JfgqFV19HQdy8iDHJyL8Su3lpQfaM3E9oSYX1+bxvmlUJO80kHp+z4s+wkIn8GpfsEVKzsfXCxhJSj6YP+rjSjIiA";
+ moduleBuffer += "Yt82EyQhWlInMLWAw0ITKeLT32Q+3cpHyuqKGLerhLY7aDHhyoS3H4LzkkZNY7Tg/BpyYLgeLiEO9oUZ4/OBtnx+yCzcY7HneS5C";
+ moduleBuffer += "yUx/ahlTO2UTJpSIKPnOi4h1fokN2HJx+CY0yoY9h88Hwn/AUv7NYRMchHR00Vj92gAFN8xtO4pFbcIulHG9D9AfZ3HZIY5cEIeF";
+ moduleBuffer += "Q4OYtVcIvGeGx5HzTZFSesyw/ybavn3H4QtlM9xKsdCSCigrK2R4n1Ge7V9N0ZgRAGHedhKrvcvzGFsz3P7dfmjlkNR3JMyLxfei";
+ moduleBuffer += "zPr5qM30+iEer8z72k4wJABlKNe7LC9Q785KhKFuXaehvpWFqRnqoiUyqmrxGaHcN7MItEErd0C9jOWasOhtzMmCZIZPGIioD04U";
+ moduleBuffer += "NsNDEeY6v7dN1ykde1xHC3JG9zJtOOTT33+vPx01TOuw6gasuSAt/LYLDbusaqZ0ej06vVKNQL+KHI67JSbPNFCWo325gw5dwDMS";
+ moduleBuffer += "8D5n2up60eJbVj7ZZh87CfNukGK8W+V8S38jSRIlRTFQqTY6GdFf4NtDmEZdeRVJt304paHNJ9bcgvdiVqsu3pFVqJcW43zRSPq7";
+ moduleBuffer += "jP+DkB1dvZwLq66he2Ib3Ou4pmU7mWzOFYUn3kSeJFd6H6Wfteux4/ow7SPMWdaplPALAw4cDL51PsI6mUNbDbazjxEi9uj90mVD";
+ moduleBuffer += "ywrY0foe8Gn04pdsot8IGxkKGDlq2RTVYnEtwAJxjpMY+tGdcCWRqCeuPFFjjmucYTgwfS/bb6mxWK/CwToVevtWYbagdv1SDcH/";
+ moduleBuffer += "QDxsPRvSwwb4rbMSoE6K4aeg8mkUKEgGzo/gj6vXjaUbarvh71s3HGUS+/S48TsjqM6sdGYbmdv3oc/tI+kzKzd07APUjpFAxakx";
+ moduleBuffer += "q/lGZ1fAu6GXAD4M8O42C1tNrR/Ak6hDzSGmJTiMmyN0lTnKyMnAT6Sf276zSa6+MfA4h7ESp3tyGpNTB379Zq8sIJgG/NYh3klD";
+ moduleBuffer += "m2aJqbSgBPJgBNmshTwsGBlFJUWGgxv4ooeS1YJr6lUZEo+Ds4B1lumqXbAd68SL5OcGOBazeSmjlWiXATchLLgSSwlvhBFc2lc6";
+ moduleBuffer += "tlJDOx174iMIPzl+DCCbChPC9TIoUC03I2d0siKyk6YNpjVHDFvqbUPspMnhTMpJk6U0XNqtFWbZEmFhuam3A6ZoLzwJIcD7O2uY";
+ moduleBuffer += "H1bmHUgHH9fBER83qMBtC+Dykdtnozs2n/IFmVLSaqajXBbC4yOyMoaAambXoqM/U/nCiriFnAxYcljA8lVTp7csp5Z2NfQQtF7I";
+ moduleBuffer += "aoY4GzgZNFOreEfVIh5asnTjtgLCuizbNi3biRW7KASE88EVO9aLhgkICBT1lCGaUQa7Q2nlkDhMkbt7NbHNcCWVDCcQexV1KSsF";
+ moduleBuffer += "dlM12O0jAMs6fVsAtoVVlxWBPl1/ykV369zfYTu55aqNr7KT26gkCb73KJ2/vyO6H6Jm3Ypuu7qqogvMvVYU9fMyU8sGZaNKHrCV";
+ moduleBuffer += "PACzokSVJ+BtAKVn9PMFyHPKHG5oL4g2bFpmcBIygx3JDLbIDFueXa9kBrdWZmDKc0mM2ZEQyyh8YT2cCC8yRDGXFX9xCnvb9Ztk";
+ moduleBuffer += "s4MZUeQRmK6vcXAH4qvhkaQVSMI4WafrkWtlDZr0iaIes7wIfddbhaN5Wvim3kljIfL59pbleJu3yTAoj50Z36TRPDZKsDdsibz4";
+ moduleBuffer += "5MvrlbxYlJ4OGOiqiuw2EmPgR2FXwg16s/2hwvacWWBNST4rG4z2zZub4jN/Gwn9TfGhPyesbYpP/W02aM2hNU30bSn8gHkrc75d";
+ moduleBuffer += "WQE2QZvKHY3Yo8itx7ZG9uC0Bm6ytjbihKQRUqQlG/CtjZ3exS73fbOB85OBRv38ic9knHjTCm4KSFubOnGrZeNUZ2vjLGs2PvJm";
+ moduleBuffer += "nCRBYPgkqRDZOmRtdGx1h3ki7ktZBoUUQiMP1UdrQadohPPOGEoPF7jCOlgL1VYqmmjyVvYWJ+2mwV78tQ3sEICynFTmE4fjhU5l";
+ moduleBuffer += "E26Hy2gMDTWGMKQdrkgktCNhZZxAHTKWesR29QYv7Ckey9fOUMnsjB1fTvDZZ15UVUfqm80efs0oNkg8yyIeZ9h6WaIZyAdg8Aee";
+ moduleBuffer += "LrmV/a3QL3vTot8SrIgz9sp5/FK8IdxjMsPkgwWHyJhdylC1pRQ0mo/zF9LOtEzLU5mGXJy96KpBNYY0IbCi+glpAS5qGZj3IRwh";
+ moduleBuffer += "a2isDU9k/HHc5NJfxkEA330ID5a4IIUTRXAR7hStjKquKGCDEgQuKMMVzqWZJp5XvNtJUPD2uDhAhLg6z+dYjpVnOGhh4wIfgMUa";
+ moduleBuffer += "HBj8n28onXCpDYx/gGZ5omvYC3kfwnqdVYMf4YgPoqAUy/kE46G5kDKc2el9vKC2TThcQQYux9Vb7FBILza/MdVek8bpClPkp56r";
+ moduleBuffer += "NuDTOrtwjZX2+pF+ucmqRl3pl5n8am061Tm903vF5YMoraBoRwqKoGwVYlVFKBsLaMK0NScR5bHBFkqpXlGF8+UJhqN7ktE5cFce";
+ moduleBuffer += "eVfp5hYmH5G+88t815p8Q8o7LVmVuU20/9VuZbi1UdyVA1wVV64WomXyBD2EpneXJSspyeTeC1ac5d9Yszapp8s6Mvwuhtfre2+l";
+ moduleBuffer += "WVCKTgK23ktRT58E4KYI4lJJFmn4lqDYUttsYPeqDl/YJB6y8nEdbNDbZ4LGiWLX2GdJwfDF72/gN4k2jisb5LjSVkPRMjVyuQwn";
+ moduleBuffer += "yAGuY6RwkPfuz8HlIcnPFf+iWXDax8s7sUUq1H+NeguahZQJ3TRaA3LS0wzIJYedCDfgTLiL4hNJTJCdEK6Baxq7y+Byl3Jg2rEz";
+ moduleBuffer += "Xe9rDTSdit5NJqMW3V7EGdjh1BobC08enC/PnM8VwqC2iBcVOVWAxMHvShqiN7K2Oqe0RRfWka7ydY8NAia8SEu9Gx223x9wYiv7";
+ moduleBuffer += "xPMeMUE63tsJqxvz1OxN8Jc4wN4c/n+GEdYBT2ElgRGNgBrM/D+FEZ5MOzZtULIQ30ru3rIBPtA/LVMLrmivbJAw/NDe6RYu/Bcr";
+ moduleBuffer += "v2gCVr0BU/lox/EXTjLZTVA+XEzs0iBc9YuTUupjjgTVAm8JCxjdvCj7kOC83RQP71tAq3gysZUT+FQUsg60UPLhFqr5Ky40XEOP";
+ moduleBuffer += "djn2AlYt5VXQV0/UBpU76zy7PT/Qbi37Pv145fH4ccuT8WOUp0nzAhc5Jvj0M7s8Dj9euQU/HeVR+HHLY/DTXm7Cj1EeTS2ngB+U";
+ moduleBuffer += "ZtmzKTx6lt1BP02z7PfSzxj2be6PgpKP6bdAscf0x0HdyfQnQBmIlVey8sYsw5e3OIZkh5O2L257HX9a5YYdN9x58Qv/+eMNRre3";
+ moduleBuffer += "BfcPtl9m5XJqSTBOap4gNZek5tFSc5PUPEZqHiU1t6DmrFKRcvzJlQfuv/u6yy576Jo/J8C3aPCjBHyLgB8n4CcI+JKAHy3gmwT8";
+ moduleBuffer += "mDT48ZWHLrr/2vMvXH/dz4wvRODHaPBNAn6MgB8l4FsE/DgBP0HAlwT86DR4v7Jp8/YXbv7Pi24aG0MfDZzOLhfx01FuxE972cOP";
+ moduleBuffer += "X27WNb86jMU1N1fW/vGGq++9f813j6yDlSmvESte5aoVV6655p5Nux/ZO1am7DNWGitPDVz95du/e93An+phpTwMVqaMACvFys6X";
+ moduleBuffer += "71t1w007/7zNqELLh8sBfk4qT8XPe2mS0c+c8tj6aCkPg5YpddEytnLP31945qVVV+w5IK65SUNvE+hN9dBSHgFaxlXueXz9dy8f";
+ moduleBuffer += "+NX6UXvFSptAb6qHlXJdrEytLHnqsr8++cMnlk3rrkXKxGGQ0ibQm4ZDSlD53R9e+d7da6+78OEESZUw/p8R3JxD9Es/p5en4Ofk";
+ moduleBuffer += "cllX3SpVl6TqicMgpU2qbkpXXa48f9lzX3vwlisf/0ui6iGw0irgSwJ+4giwMqXy4C9uunl5/y+X/iNBbhFaJg2DllYBXxLwE+ui";
+ moduleBuffer += "ZULl/kd//9DF333l0ifrTZY0XiYNg5dWAV9Kgx9d2XXro70/eOiCW9/xhQRaAJuYjulPE/iTBf54ge+nlsipAn9CAu+mhu/dY9cU";
+ moduleBuffer += "a5ZinhQLpFhZOJIHh9nKngKXBQ/cDz+txCxhpYBYpwlWOE0QMiRlTBoBZUyr3PLHuxY//dObbm2LO+9X0Z2fIvm6hDGpLmGMr1x7";
+ moduleBuffer += "28a7l3/1uRVeDH18FV2MT5Gdn6LqYelicuX27/5gx861zww0xUTdpqFPFuhtKbIYn6I6P0XUVWSxX+Wptbfe/dM7V16YWAxGCVlM";
+ moduleBuffer += "FBy+V3AIiI0CsVi7NGp4OYXMDkwMsMcxUmy2FEMjxwrIcQJytICcJiDH1BtgBZKnMtpVkrGaLZ3qEKp9r4xCgiLGp6aDn+73mMpL";
+ moduleBuffer += "vavue+ni+1+c0V1LEY0pilD0NkqgTxbobSmKGJ+G3lK54L5rXvrWFdff9bPEShSRhJciicYUSSiCGyXgJwv4tjT4UmXbX7/8x/t/";
+ moduleBuffer += "9J3tO4w6NNGcogkvRRONKZpQFDcqDb6pcvvNP1628prf7fmvBPiJMvhFweBswWCHLAvvlfk9R1pgSB2YyylO0VQfq+PiRWiqAA5S";
+ moduleBuffer += "bHlKBNirt0qPqw81EKhThe5mS2c7YopWtOKlaKWxLq2Mqjzc/+SShx5+duAZo87ykSaWooCfmFoCFbF4dYllXGXwmu9dtvrWS575";
+ moduleBuffer += "tVFn/RiOWIoCfqKAb65LLFMr6+/+2tr/uvCOVx5MgH8VxFIU8BOr+f3y321c3PvlFb/sT4BPEIuS8qZIBRNSwlBLav2bKhUE9RE6";
+ moduleBuffer += "RUCWa4A0pWaMknmm6EXJTADpwE4Ki9KE14EqypV7Bh67bMv5L3/1yLjfjX6apzS+WqKYUnn0+w8/c+Gvr1l1UAzd89M8xUvxlMaR";
+ moduleBuffer += "08SEyvO9l/R844/LnsrGEzzasyie0pziKV6KpzQORxKjK4M77tw6uOpnl7fE0IuCvrH+cOIE0JVLIGwOZhnk9/Ey7RMyTyBAygJk";
+ moduleBuffer += "fAJFeMVqpbDeJlifGC9dxRTfaE7xDS/FNxqref2exzffsW3rhkcP6N4b1hWjK6b4RnOKb3jV+8xvXXbNE303b774kO59w/rYFGdW";
+ moduleBuffer += "bKM5DX1i5U8PL/3Vj++95usPGK8J7WMFfDENvq3y+DO/2nXnDRcs/6VRF+9jUhJyKSUhp/d7ExNUWyVipospAWqcFBudmEq10mWL";
+ moduleBuffer += "SJdjRLosiXTZ9DrQRFPltz+9+7HNf1ze95TxBhBFqbLyqd/+/ge//tLtSXb8ulHFmMrVN9zXf81vHvjGK4kF/HWjipbKj6/466O3";
+ moduleBuffer += "PP/iT5JnAAmqGJUSB6cKyEBA+on1ZVgJczjBIb07GrGE+VqpYkxl+d9+tOzZZ/tWPJboeFBFFcGrpYqWyj+u++u1m+54+i9JqWFq";
+ moduleBuffer += "FVVMTVFFMHKqKFWe33rt7r9ceu1v3l6Hu01OkbQiiqkpogiGI4qmytYLVj/w4P3P3je7hiY8f3iZ4TUJmBNS5z7p7eo+CpijBeoE";
+ moduleBuffer += "QU0tqTSmSGVqilSCagFz56MbNv9uz4/vOKTODGxNzUCvHqU0pihlao18ufoP2+760T0/ODCGHp2EKUIZmyKU5pQYlCaUxmpR4lf3";
+ moduleBuffer += "/mjTdx78y+7CSAllbIpQmlNiULFalFj7zeevuOCSlbd7NSzFEwzWbtTa6gmXSTFj2N1CGkhauExKqLXC5RRZj8ojo4ixKYqomn5T";
+ moduleBuffer += "K5uvv/8nz96w5hfj63DqfaaIsdUy+y9/deFX+s5/9JrJ3a8/RZQrV/36R3se+MO1N9YTkV4rRUyprLz0T0t++/XvbT+sLkWkj/OT";
+ moduleBuffer += "u4F9EC5HpybtiIXL14r18ZXf33bTLeu+fsElR74BWPcr919x4dW33PedXT833gC0T6y88JOv/uiv993680frSUGvFe9tlW/++We3";
+ moduleBuffer += "3/3KNVfurJUuPX946TK9WXiV0uWUfZcup70ORDGtsuepe55/6rGBn75Y71S7OXWqve9UUaoM/HbHshf/tP0Xu1Pn9Qr82NTJa3Nq";
+ moduleBuffer += "eEZCFWMql3z77sHbX37imr8be90mj00dvTan5Lb6VNFSuXzJ86teuefe5S/USpeeXy1dTkhdj4xYukxLDenzrrZ9OL8cUmSoK7WX";
+ moduleBuffer += "Ujv4pupx3b7xhScf6+lf8bxR5wZqOKqoK7WXqsf1yt6X/nPD75789aPGF14LVdSXjSdUnr346T/0nn/lBesT4Mdp8I2p88V9p4rR";
+ moduleBuffer += "lYcfuePJh564/qeJo5lR8ZHUXo4Za8TLEcsOabl1L+Ll8Mdd5ZiGi6mz7sYURY+EVqZWnlz39C2XfmvNrsP3SirF1Fl3Y2oBrE8q";
+ moduleBuffer += "QeVvf9/z54ufeWjdIftIKcWUbNVYT9r2vcrvvr1n6dd+PHDZmNdEKMW6J93lyuLHNi05f+mq9Q01hDLFH5F4OSFFiOX6yPQF5Pga";
+ moduleBuffer += "IMMJGtXiZULQmPIaKWJ85a7HH1t680tX7c7WYSnFFEVM2WeK8Cvf+v4NX//N2se/31CHozSnKKJY7xRoWIqYWLnlmif/en/P09c1";
+ moduleBuffer += "d++NIppTFFFMUcSUuhTRVrnmkj8ve+jpDWvbau7DpviRJOHVShK14uVYES+VcJIQL8up42UvwZdrxctWwfqkvWC9OYX1Yl2se5Xe";
+ moduleBuffer += "v1+67BevPPan9jpYL48Y6811sT628rX7ll942/PfeeotdbA+PoX18j5jfVJl3cvfuuX69d978Og6WC+msD4+hfXyCLDeWtlydf/A";
+ moduleBuffer += "fbsfuWSjURftaeEyfSDhpw7clZTVWke4TBdLn3S1JQ55aoXLQITLqSJctohwObqGJIopkhifIolyXZIYXbmj72+P7Lrypd9tSXR8";
+ moduleBuffer += "tB7XtOCTpoliiibGDyFGfGfPFb9/8Ac/u7euftFwo5omimJdopha2fXSo7/6wUuPPvV4PdG4lKLo9BRMS4L1qSKoXLnm2l9s+v6F";
+ moduleBuffer += "N+yKwLdDX4+18riybuhJuz7r6bndeAjn+qzJ53XjvZ3rj0aktRsvTVyfVf18NpPv+iVW8aNIO0VY36+jGy11fVEM7ObWy8tAH5Ys";
+ moduleBuffer += "7YxYx7BYWxXPDILRldkXEg57XrEvqLRf2Itgz57cBZVWTu3p2d10QcW9sBcf3MUqgcKtiyUf0tsXc3EKzV7c29uL/kBRlfWwWRfd";
+ moduleBuffer += "bxClRaVPmQ8HTP0eBg/837PXd2KmvJuy6r0TM8N1V280wv3x0Mmufdw1WP3KaSTPqfj91O6rh38/1X9NFeTefXg/Fb/TXGInIg9Y";
+ moduleBuffer += "hYczw47FyP7jt3oYpLH6DXS+oVAsNTZ5zaNGt4wZy+O2/QbqYA4dHIvo41F0DKJPI9qAaAuig4gWER2N6B5EYZmpOArRnm9StBnR";
+ moduleBuffer += "ZkQv/ab+6iF6xTc1KHa0cV0UbUT024i6iJYQ/T6iNqJFRG9DFIrzRTZOth7RJkQb+L1i9DWP6GOINiLKBsifRTSPKIwYhi9+U3cw";
+ moduleBuffer += "y+/jIlAZRL9yowbFtvmvvFGXhT27GYbFFtUpYMpr2e03VhkvW6JssF9ssvmy0Fb2r0N7QXgbZdYWzBJWzXLy2pUfICiyq1NT702v";
+ moduleBuffer += "f01m3ZpWvv41RQSPpxIwRDZlfvRSl612xbT/WzcRud4u/MIa9illXXLPR+SuHlea6Tm788dVc3b53ueskNYglQwnRqS15CcUnRyR";
+ moduleBuffer += "1ncQLUekdT+iYyPSegLRURFpvYDoDEVaZrjip6lnmz9FtL3OsmNJF5ZtrurCta9q2enJJCKL84nIgCvOegYfoob0/SLtrGdMOE45";
+ moduleBuffer += "67nLgqExRk/q/TP7ILDwTKiDYu1il0seFoaL5HkjWFDG+25Gv2HCy7rQPKbERpHEyKGYX2cwLRIrWotYXR6Pp6msJW9pA1tcsTh4";
+ moduleBuffer += "poRAa5CBkUNlY9GcX4J1FJ5ZgDURJIHhssJd2zZKUzGOh1ECmx0EfJ+fCSI0UREz+kHDKOZhFx1DQ5w9oQveN9Cw2THM3RFMZxZc";
+ moduleBuffer += "skQFqRWF0NTPvXkyKBNGE5NGaTw/bRxdPeI63Ihfuu/IySuHPbs2yisHftK1/LmNhjyJ5+jWdHTgxVT0ycWb4qgZ7li8ST2fUMaU";
+ moduleBuffer += "d4tHhMAIf0qNaGs2DPXwfs+NumADHp4h/OnCprzpip0bC+/tYF133nHqBRm/T8vhkVyGLYGH7FxnfpCdV86jQNgNg9P8BjNL05eS";
+ moduleBuffer += "smwjRz1uL7sI8lMxk62U48dR1ixhYylw8Q4ltOey6SO87VOZ8QixU5u9JLkBhtHiuD2PLV5GcYeBq6jA8dkysMEv3jJ+dh5RFbWV";
+ moduleBuffer += "vhDKfVjTtfB6NA+XKPZ8MSR8InvXsBcETtg6H01HiTygmVwGqSQI8YThWcDP3h2/YYEY6Xd8d6HYwOYyADlXzPsIdAObgU7+Fhc3";
+ moduleBuffer += "9RubVBlYq7Lnw1MIDPziQaI1h1GAh0Esl1liZz43j9GB1xu5E2AYGNYFiCtkYYGOJ6sVmQ9VtkLVq8fEk2SgLsxRvansyMdlYjQg";
+ moduleBuffer += "nkQD4gk0sRk1J45nEM/E8Szi2TieQzzXGTXPlea5/LboWG6ak0AeJFILdJlNYM05QWPNBn6yEdY6GWt2Emu2zRbD/OxC5Q6IUKcR";
+ moduleBuffer += "hqdSMASHR54x1hyMqTicdJKoqs6dwBe1kovSlKFmgqYyYW4+ljkeXVP1FpZcgW9Bhg1k2AqQIMNMZWdkmFXIMKuQYVYhw6xChlmF";
+ moduleBuffer += "DLMKGWaMDLz/4uYxMoxjoxHJzEOfQczoMdyWxNNbSCru4LzAjLvEc9zQ1M9z3Kya42bVHDdr5ng8emq2ODLH9Zv4/UzPjINZWR8H";
+ moduleBuffer += "vtcv3Fuif0EUom7h+Ng9pLBnWBDY/NwGZUHAZAsCYCvg0is5XbizMhJAAtEvXV95e6kP7OEhgD08PDBu6LaHU+1+GtGmKLrlNxQd";
+ moduleBuffer += "E0X3PKeEcIn+bUd/0nDVjkf7RWKX6M4degg4etdfmBVR1IWQ97z7Hh5D2AP5P3nmXGyhdpMVJf89HwX/lpd9IBu/1Ymv5LXpNvF1";
+ moduleBuffer += "w4CJ2xypA0cXvp617EXj1NNl5ab0cJhCpj/d+NvOfzg4jf9w0Oc/HJzIfzjYyn842MJ/OOjxHw4W+Q8HXf7DQUf9kcUAP5jR9tzV";
+ moduleBuffer += "3drxOvt8Fk/Q4u+5jh/vIv8t8d/GyLtzJeXMuTEOluJgcR+8Pbt1/Tpn67qDdlZrz8he7Ma5OQ6OGoFH55aaPGNqUmo9Q9f6gW6t";
+ moduleBuffer += "SRlfkzKhJqWtxqOzya6bTXh0tv025dEZB66NlGz7E5RHZ6SUOGW88uiMlCKntCqPzkgpcMo45dEZKQ2cMlZ5dEZKnlPGKI/OSHE5";
+ moduleBuffer += "pUV5dObjXk7RHp2RkuWUUcqjM1IynNKsPDqzCXUkeJFDZwsOna2UkZFBR4futcQqyOWXbzC8LRnZiO2GV+XC701x7qRnUPRs34qe";
+ moduleBuffer += "8lvR835LeR0iobjsxF6Uj8GRjPKl4PBECFsXEEPqecWeH7oLusCXF3IMT+4Xdsm483tpkmUoNB1mM3ovF7MZSvhKeF2GIXLbTRgi";
+ moduleBuffer += "l2f8hnrGb6ln/IZ6xm+pZ/y85icHhHquQr/Pxe/5fyYr/wxjDmRxHqcXr5VxUrmvtlSOk5BDJd5q69BaK7F8/TBvtX9Rj+hBbG/K";
+ moduleBuffer += "DFtPcOaEreLPpJUF47A1XP7gBmUc/yD+BsQexPZwwp4HNmBfbfgHieemg+AJBnZypsM+WL9ZHovfZZDSDLyEa8APnicaotNJP2tN";
+ moduleBuffer += "CGgH2kvNcit+T6chNXCdUGBjbeXx+Fljlov4XWyWJ+D35HIbfnA7BItx5Un4WWmWJ+O3xyyX8Pvh8hS2UgZBCQfIPn5WmOVm/H6m";
+ moduleBuffer += "XMbPSeWA7aOVp4rFwRyflk6H4yA+ez6QiOdgSjs4bMdT6oOAtoMVkR0MueFghfhm/yCqo88v9/lBnz+1z8/1BdP8IlJb+/wJfX5b";
+ moduleBuffer += "nz+xz5/UF+xXMS/qC0b52b7K9IuC/f2xyNPe59t9fkOfP67P9/qCRn8yUr0+v9TnT+mjvL7fR0stSmYB+oDKor4LiIopk9/nUw1O";
+ moduleBuffer += "n1/o88f30bZmGmfL+WP7Ko0XBe3UDrEFNMqf3FexLgpG0wptXuTv1xe0UJnKrIuoukm0pFJaU18wpq/yjouoKoLfh+vMfhOCOfWr";
+ moduleBuffer += "cuBFBLzJHy2f9ptFqPNh47mhr3LARQHOfjPyafQsQpgPSzMuN7OxD+owK5HkUt1IoooaZxEyMGX8lr7K7ItI4snSuFWmAVSOBqHS";
+ moduleBuffer += "dhExIAbozSIaoqxjaCArTWhGnqY4f2qaRZTDnZvSV2m4KGiA3CafJswieuFmNHCdLg3OLKIOSmpQLcv34R7oM9zD5r7KKLRiDOGp";
+ moduleBuffer += "kqW6CabfR6NCrI/hNcyyz8GBEo1/xb2IlpKCbgTfEMFKOfVk/EUBb8jki4sjdpRxdH180I+83DdCQJDHoTwxSJ+G/u2AmyMqqLSg";
+ moduleBuffer += "LS2E0cpEgijQ+KE4cVV/VF9lxkUBrFOqego45kcvgr6KfVFQohqL8oVfjgF6SUiGCAjH7oDCrSfKCabiVN6g2lr7KmPQggP8dik9";
+ moduleBuffer += "XmxGjSHyrRyMFrXrGieJgT1bQdm/LxC3Af6B1Pv9OY9/AJGhuINjCdujZWAazfr9aMY30Wxvpqk+mia2S7M5Q3O2kaZmvhywJZVw";
+ moduleBuffer += "Fa064XojHMTqw+6XDkqtkZujZe15q3CZrRzMO5o7GGG/491o0grfj92BdzwspfgcC2ixDbe/JIu4xXYC5HNniFOgjnBn4htMMuAj";
+ moduleBuffer += "/aqvuxNfYRjkeDFZpL4u/q/4a7/62h99XZb4Oqi+DkZfVya+wtwFvtKv+ro28XWr+ro1+ro58bXHlq/0q75uT3xdo76uib7uTHwd";
+ moduleBuffer += "UF8Hoq+7E1+XOqq/TtTfv8pXtrvlKHNAbO5CSb8fKTw73iwBOf1OJPx6/8LMMeBbf+/9fNTElqmRLgYashyGZYocrBAiEwxfc+YV";
+ moduleBuffer += "JswH5lSMhjeA4xYuS2GYBXH4S48FSyGWn5NSFgxA5CkfPJa+DH7eb8GeUoNf4AwDcFrEH7mwjfa56tsKijVSrIFiDbi3lqrtuETO";
+ moduleBuffer += "b1QlaewoT1GgwIw5Vfp+WrJc/l6k2Muw0V/ET4k68TI26iVukTQM/aUfdOplJ3R5M89nh+EKGAnnnrJ8sdZhAULJPvRnTSKBJYyV";
+ moduleBuffer += "cQKEkxWO2Dwy58Egd4E370xrVE/+ja5nzrw3pZqeN6k7qp7cG10PpuSbUQ+RKuppeMPJzXxz8NMv4/aGT58B682ox0QdjW84buw3";
+ moduleBuffer += "hwbUmDW94fWYb1J/jDeH1nqkP94bPnfeFJpm3v3mrG32m7TmmG/SuL25+Pmfev4HP6gn80bX47+J1fD98WbsX/4mbnh9P/YfKBBi";
+ moduleBuffer += "/4E6rv0HqjhqUJX3O1ppIdz6NwJ6h8NbICiN6Z3q4jwnwaGPChTfU8ixd7R5+u5hP9NrSYQPje4ZvqduMHY/p/SVChdlTFucgvu8";
+ moduleBuffer += "s0ppmRhKy0RpnolPEj6TxT0XAK3aw1ch34c2TT/CYjw1XENh7wFciB14lDE63KY/je4MN8mn8L6NmwB/QtgSmt6DbGnY4cEK116w";
+ moduleBuffer += "yWg3jCPUGWe4huKwEMzxlXHEClvkMFp0JxBrCXeiqhxineF2qcq7xcHFfLvVAh+I7EKyFZdl3nOi7IR+mkcZLhdCt+Cf+Hlpcuyf";
+ moduleBuffer += "GBkM5eId3ubzvvaGzsMh/VpiBfYMw2V35DZfcrNPcr6SDumHT0hNdozjhOaxMAc7w8izyVx2djfDmBg68JfDbVgJVzJmog3QqwAd";
+ moduleBuffer += "UlvEuy2XglfG8AfXc97YcXKAFotJXnFFy+bIDekkjBi+gB5mgDtbI8iIOkIIUiNphLsTwyi3muyZz8Apvxkue5myZWsghN9AekYQ";
+ moduleBuffer += "sZjC3rNWGUQkJjFlQAj3y17YKA6nmJqJWi0dsHUgowOtROjim5J/f5svWFTuRzc458EdSr9RuDM784PnntZ17sxTzjr37LNmHvKJ";
+ moduleBuffer += "U7o+dfbMrtM+dca5C7o+O/Pcrk/MPOOsU0/7zCGf6DplwWnnHnLG2TOO+OShs059y1s+/vFTDj28o+PQT8489YxPnXbughkdhxza";
+ moduleBuffer += "ccgsLvKJs7tO+9gp55wx8xMLPrbwlK4zTvn4macdQpW85qq6Tjnr1I994vRT6P9U31sPOZSLfeq8BecSeMOYZ3jGxwzDuJH+HWDg";
+ moduleBuffer += "fx6lGUY3/ZtG/157Az5+5tmfmDfj4+d98pOndUmPD+OCZ57xcWrBLqrvZKrnw6ZhTKZfHb9BtUfH0b7WqrifiN9C/1qq4hMS8Wur";
+ moduleBuffer += "yiM+pSq+XyK+rgreDBO6WnF8dlV7DzfT8PMU3z8RL1D8kKr4qER8DMWnV8XHJuIZir+lKn5kVXxsDb66zjt3wXnnzFxw9tlnEv7P";
+ moduleBuffer += "OOvcmWed8anTF5z52RmnnNL1idOPOGzGKeecc+ZpM049pevTZ5wFlMxEEfwCRQgjsesUQjYoVDC+4LSumQu6TjljwbkcPmXB2V1M";
+ moduleBuffer += "S8stz/gcteGhHPWffv/jjFP9d/hnnnYWhdttj9LCTRfSDDq/mRpr4N8nTjnzzNNO9U9+/2nnnnfmgqOOOu+sT3edck77gSf7Z5/l";
+ moduleBuffer += "n3KWf/J7uv4ve+8BH0Xx/o9vQj9aaNLlkE5IcnfpkXY1uVxvaaDhyl5vuZ6gEKQrUgSkCEiVIigIWBCkKoqgCKhUUZogIChVKfnP";
+ moduleBuffer += "7OwmmwNU/IR8vp/X7x9ew957d3Z3duaZ53nmmWee8Q1jhvTOIE7QZkOQ6oIUWyOU6bfqkxFFZhA3+AMgK/ElE0BpizDU4slYFY6H";
+ moduleBuffer += "743CzZ9orYMK8hhR6Zw2Iyxd67pxmBO8802Q2oP0VBPNvanj1w+9URGaY7nbNrJ90bOtd89UtMn+ef+1ffZ3rg6+fqzrXvdXl4N3";
+ moduleBuffer += "Gi/ghmNaljzzc5Nvp6/eNPleu9IOxmcmfdWjQX6r4sITM1SDlX0KVqu2FWJrBk3q1My+uKHy7sDNje9VwNpuFIrFmuxqjF2/uKlg";
+ moduleBuffer += "tyZ/dk6xMF/t1RR8FXZdyls8q0ODodPPlP+58/mbbTCyjWCqA5LWVyryeVwaWHzQnB5fTbAUvznoTOAkppLck6TGgM2FFxt9pd4A";
+ moduleBuffer += "qCetWCaUKviSYp5Uw+YkZ7CLCxSirByJQJSgyeFyEjipacVANGEWUEYuyR0ozAepE0jeoAEUm+nAS5k2PzNgxZk2E+4O2AKlTK/H";
+ moduleBuffer += "5g5Q+Z8HaQDtfshRW9KwgeSmFB4BEpuGJ8AeX0Pc9uFV47dZivVBC6iXofXjMBOGuAUsI6ieYo04u7KasjnFBTJBFqgjooo0mnxd";
+ moduleBuffer += "sVpRzNVlF2PUvf3I+qFwwuM9S6lQFoMCufWBoA9/eM3+wyfJddLiGmEEHDojoIQxwQumNYjDnoPfBlIrkCznGtnHvmP52HfN3T/r";
+ moduleBuffer += "hmLZSHUz1SRrvTfePjK6S/t9Pw75z4tThvs8Ro+3FBQpPTE5lSYtmQ3jsKGgDP0bP4zv/G9rIrcaVtdEJjWsXU0k0qi6JkJhShOh";
+ moduleBuffer += "MKWJ0DGThilNhI470PD8qPspTYSOe9Dw5qjnUZoIhTOiyktpIhSmNBEKU5oIHbekYUoToeOnaJjSROg4Mwr/tzWR3o0frYlsaExo";
+ moduleBuffer += "IvtnAU1kW90YUlL9X9VEWjeprolQmNJE6Li2NZGFTaprIvAvjjEjdvGU3290eH3D+J53bqwvP9t34MbpKxZdeKd/h/lzZsx2pBnb";
+ moduleBuffer += "GT+weL7frOS/Nm1Uvfo3uy0Iblu5bOewfZvnf7pwVf3IuFPtRqx71rKeO3bv+x06Zo9t83uzy+/vuHZ5mL9R39da5ErFw24z/NKi";
+ moduleBuffer += "eWnPd/nzhcIiI2OVc+y5n4vFTd0XNl75eHGPK1eDKw82OHu0fMTke6Ox59aaTr52d9ua4/rW8Yxeq9otvHjmWfvqNeOylgz4Qj5U";
+ moduleBuffer += "XHp5T/+lyoK2P//e8Qfjoh3xj6/tcHfNA4S0r+n/isqjb1Zd5aHwP1V5qPyUykNhSuWhMKXyUJhSeShcmyrPC83/RuVhP1rloe6l";
+ moduleBuffer += "VB4KP1Llefiz/o3K8/An1YLKsy7u/47KM7jFX6k8T4bBGT1AGBgDNg94niHgw/Ekl96bBNrKV0rUz2pQppdAWUpiCAsipveDMsHs";
+ moduleBuffer += "TLPeBsRIFmjZCLM/k89VcvlibeF/p8xujwnJEGxYyzjsRXCcFYvE4YPlxU0WPNGKw3IwBwxg+nGnmYIJTDZ1/7vk/RRe/8jngRIl";
+ moduleBuffer += "AnHbuw98mskfQIC6LwmI5Xq057wLGGc3+nOj8JW6JC/5R+Umvruq8LTnXK2Dyvtfag99yGah5Dp2tVUcNgocC0AdsjCkQv7n/ciC";
+ moduleBuffer += "u3GfzZig9/n0sDOxU0ieiDoT5Lut4zA97E9k28F2aELKrvogNSCUG+68VUCqfRoL1SOihZkCm9/r1AOh4AJ14QJ9QU80hA8HDM0N";
+ moduleBuffer += "NCegI+FQ1DGDbjziBV+Om5yltaKNBHw2N+TyQ9rEYS5Q1nIGhjUDR0LygiN1fjL41I40/GoUttRFHH1229uxn+YtxN6c+WpsxgfO";
+ moduleBuffer += "OnffiK2zfceiOkP71I/NW/dr7PE/RsTO8TyNfXgors79btdjds3hxrSZ+0zMhrb3sL68MXW2bVXEhma2qLOkZzj2/WYtsRiMO2EN";
+ moduleBuffer += "qE1u/9Yr2x1i/Vwa8/7l4rszNwXjehjC8f47pZ/p0peFiqe2Y+TN/Cpf8/uJoWfabzrzYe4rPa51PTFh3PkDY5+b0KNdRclY8KBD";
+ moduleBuffer += "8EHvxlbQ/uDaAKh52dxAOwV6bqWUoU64cL9fb8GZaKjn9jAB7/fhfqbX5wkBCWSSirXFOYJiibCwWAwOUNY8Su5Uz6r8q6xGvdvt";
+ moduleBuffer += "CTBNOKAAGyhH2SPKA7VyS8BKXfQxjR6Pz2QDn4ALjSa/Pg8OQd0BWCz4Pgz7rG0cQax7yGMIZSCFqdmG+3B30MWk34xxJ60F9fYT";
+ moduleBuffer += "Qc6AOjBAM0FjgKkFyhMf6k58m9cKOAseCTDDtoCVmcLEEZFDDbxdHNaX1G4prb9xjXTWkN/vT/D5E1LAYJjU+/EA0UsL2iGtfjJW";
+ moduleBuffer += "ewwrhIMj6LjFZqC6FsPhVLEbtA9uAiXaBcpTTioD9YjRkldvhIqLJ4T7zE5PGCq97eOwFhh34XpQ06zHV6N/3PDv7lv4PrhvTV2q";
+ moduleBuffer += "xsSkqkZhEUgtaqS1/rGlBBvcsXYtF5s7VrdM0DGThinLBB13oOH5UfdTlgk67kHDlCWCwpQlgsKUJeI///6w3u9KMIBsQL6B7+ck";
+ moduleBuffer += "ZqaSLeAGBBhAI1LCjLS5E6r7TjFICDSnibc4khaAeDu8CVDNugaQH7T8HxFvszpXF2+PY7FoReNdrWmikXomJRop/GoUpkTjEx53";
+ moduleBuffer += "YBOeRgOPSSSvafjF5mtw8PHs8j1j4AAk/vaM+3AQ8lta52I4EPnmpXNr4GCki3NgPByQOLZw78BBSWnXEa2Igckgg1OjlA7oGcBx";
+ moduleBuffer += "4uh3e4lj0AiURPgLzUPBv+hjRpc44ncmOEKlaDA4wjrMIY9KcISyxBoIeP1ZSUkOkx8M4syJepcp0ehxYfPA9bawzkJG3JEUYkNr";
+ moduleBuffer += "zeYucQQ/l9mcemiL2g8w5KeI94eKQfGIivgRnIdtDHsRHHRSWE9iNe71+IBw1Qf0TJMHyHIoal36gNGayGRqrWB4SSiCgEIARbtN";
+ moduleBuffer += "NiNsDzDk1AeIcSe8rx8TEKkTCl84UnAb8X5MQN2VyoOfCXQEpkFvAuo0vApvqbpIlWcJKQspPIPkELDeCN1kyP2K2KVbNPUOL2rU";
+ moduleBuffer += "8HBmcs6L8/toll/2P0TwBkNhv9EKut5pJqr3M+TxLHk8B471Me62Hf9OTpTv+nf3bfsU3PdFPahlwVLE5tTB/vxgTMENxeZLVxST";
+ moduleBuffer += "5njqfbq6cF33dn6rJ+g0uXsFmAacCUeztcj0fnsG8bwzoIBNn6i28PeWV2e36pbX2rRH3u5W3R5ZA9wqaAiA4nAS08jZCiRwKWWV";
+ moduleBuffer += "YK5ZzH5MSiQwsX3d4wiZcxwcYc+gsiItl4ndjroedDvcnrCbSWmxw4bRnwbkZ484Qmb1AUcox8Bl0INB14TdE+jy5H1+Kl8OOLYj";
+ moduleBuffer += "eyDFyQLgXYXguIEY8nH3fgko2keffld4obCjREhxwOrzhClBwhwm97hxUpBUCT9mpVrvY3qCAW8QcJZSL6iMmJ5xxNj9Qf0f436+";
+ moduleBuffer += "F7wZzg8AtYN7GAI4OUFIGjC2Kd8HNbl6/3mrWU0JDrzUn2AM+kK4P4HoR+xEFtmEJlCeEJ7k8piQzCnviWQcHIQ/RcNskrdROJnU";
+ moduleBuffer += "Jh7DTPcYdsbHMCM+xtToY8ztPsbUbcwT61jdeiNK3UIaJ5i94jAJSCGQFoG0F6RbINWI0ZjNKYYmcq8z6AfsNSORjTQSMxLB2NLe";
+ moduleBuffer += "yFCyog6Q9aTcpTTJzhjSdIEm+eEB6BMWA+m4y/+IJhnuQ9ckuXcPgi84UZf6gsfQKwk1knoapUNS+NUoTOmQD39+daZT7S0mnJjf";
+ moduleBuffer += "qDL78Zx+cmDPg61I9JbKX5y1fZFetok8PsI+UPWQGqBm3GfCiw2AJQNCSk1k0SgaCOuAzR1ENGCwBSrVMYIQqgQJGj0mkGICKJK4";
+ moduleBuffer += "BRSUYrbmoA9yfaahFOpxNvejbmCBOkhJTUvPyNQbjCbcXBOfZmQjozyRn5ioQP1jfzzqqw6Sbm70Rbr7yxjquxQeh0GthHv3MKCy";
+ moduleBuffer += "GGgLOwJ+xD1gweJuhufbUHKrK5m4xJF79wh5Nwyx0viLWFB3hImT6TFTojWZU4sqlz6h+jBTD+RhSRAHinINURMhsDjsFFJkJUFu";
+ moduleBuffer += "gvwksHMJyFFiZl00/Kbw7LqISemZgHk4cVg1fiB2mcl6MDTwIlMAxcBg1T6DGNjCE6BG5xNSudv/CAM7mVh9KFybSubQpOpK5kPm";
+ moduleBuffer += "d/8rEwonktB8wmcYcleh6ohiyxR+NQpTbJnCX5I4Bwdv7seEPaIrqUcSHbOmDFqPFr8c4nv2suKIOeTSGCh+uZ+folTHHkB1rAQ9";
+ moduleBuffer += "Me75StAL496uBL0BpzlNgT4Yd3Yl6ItxV1SCeCDBK0E/8B4IJtSHKOFfCEOoNGKcuErV+9EG4ydLpZ041amUEjRIR68+xJjNQYP3";
+ moduleBuffer += "tzhoSEKVnS9Ua8UiMZ+rFdaA9ZQwXKYnZhLZAaNEk5Pfc5AQicfQ0JXC/bCHDWX/8xfr/W6gb5KsuthjhqSmTI7DjOBdn5CKXU2/";
+ moduleBuffer += "04frwQnEu3clo+97BaupIepDvy9AfhrGSokjPDXkoFGhMWpvAnd+yYQWDS9xpGWH1/S5lRjLbP8G8/fwqZenz/hVkn56BjO2y/Wu";
+ moduleBuffer += "8e//sVUxTNKi4T4wKvsFdIgWlEGngpxsApJ420W6vI66eB1evFwDAwVC9fMAmWwBigehXSGJHAQQkRESCRh2PTUOs4O3z8WQlbf3";
+ moduleBuffer += "xm1ic3D/gIyvvlt4KnKa6ZZ11N7Nmje+otmSwjHjtKb4H+T6breSRrVqs6DPjjVZsvtL60jWDKjbbfXKDcO3rti6SLl2dGLez2te";
+ moduleBuffer += "OVJx3dpevfOzwStsmT1jy09c+LRN0Y63I/EP+eryX8FXD7sLTtQh+xD8fafir/8ev022XQHvuUBYr2tzXmNXeu3OawzOqD6vQOGa";
+ moduleBuffer += "m1f4a2v0tozq1ujarGtWZu3W9erM6nNIdMykYWoOiY470PD8qPupOSQ67kHD1BwSham2pnDNtTVU2lmJmYlpiFE6LR6fLWB1+ZO8";
+ moduleBuffer += "flKxXp2FRvy9YpBrGoVTYtCsJ4UzY2qKHh5hBgHPH/ws3RLCnXQb9PiJmTXT4/+a6uP6V6f6wwvqbX9u/sdfNvj2hbS+feYa2p7w";
+ moduleBuffer += "sopiCqdlFja7dfhSUht2420Vlp7JlhZtCqzjczdMXj7lD1PTxCbHlir+/KRzzsbsJ0252/pXp0TC65LpAvoRNMXD6Q6/3oVTo0Q9";
+ moduleBuffer += "8rwjBo9P3t2maACimKGxT3qg8veW+b0D/nuW+YKBD3oK/6d0hWxBzICHbmOumsBiQjcGph8o8HqfPwuwsHaD4gi/95oYoIdAlwXD";
+ moduleBuffer += "czRgsflcYT2ofUsQ8PYkqGH7k8iJPOUgxMWhtR0OvXVuyN9hmatKTNh0QAH3grxwYPbw76K55aIPw43syluxq+Be6JOfxxdKqiYE";
+ moduleBuffer += "YV0gag+AfJXDeDh1CG7qNzgOeZH/x/XhDrooBQ0IOGIwhzooOBmstBdB+zplfmBHYQ557nNQJmhnT4GcH0POlelPmPvryXmAulzU";
+ moduleBuffer += "V+NIvkdh5DFQHfeonb5MdB9qpmI2eL8H9ps6yHxDx4k0fLwOkth0DNt5GKhbuHYBOkJ2jsIP9oua/B5/wIQayUM3Y1l5yOCwNqb2";
+ moduleBuffer += "jTjneQ/yo34kLQ4gMeXQPxAjjTwOQGRej98GuxGXIiCl3gekC+CzfpnN7wdjkWr3DgKJC4ZkErxUpneaPT4XbqJfHwySwmbSoUlA";
+ moduleBuffer += "j80U9W5o/ZQSgksAKBvOmosI7iAC/8k9AZEn6K72PF7U/dCpXwwGSdCSF8CpQX8xkIV6YyCodxajJTGV+QUwv0cMOpPZ5gbSA727";
+ moduleBuffer += "+jOFIAX0FrnHbdS7PW4b4LDgEyo/T4MHBEGvk7Bxg98KH5xvc1sUpKMYPDorn0o9E3ppKXGXEve5YC163ALcbcNNamLkrNVbZB4T";
+ moduleBuffer += "TlYSQPKgy4D7xMikQZQNDregbpQNEsigqzRMUkf0udW+I4fKSzwWslItkJpOUFZQ1+C90EJh8uEuQHxUs1beC73MdAFzRl7leqCq";
+ moduleBuffer += "a7mwHSBjVoTduInybgR6ApxHjcorAUnjcdWA0dhgI0wqCezEZNJUD6cEfG69E/a2M0JkIoZ8oRFZht5knUmjyiSDdEeRt7hy0sRb";
+ moduleBuffer += "SegJ8I8nzBbLmTQTEXGWIROLswvL+HweT2LhhsU8rkUs4Kq4XJmwMJuvKcnWiA3JApWQx7dzUz3cjLBAVZhbKC4Sc/N1Ah5XzGfw";
+ moduleBuffer += "VHxrjoCr51kcJVaHLTszzOJxVZYHMoJ8NvgCmUQm4FqEPFmOPyIScDUMnkWex+P6ZXxWXrCI4wwW5eeV6vNT3TKVP8xXFQryVKps";
+ moduleBuffer += "YTg3T1cm1Ml44mwuWyfkhcNSHUcUNGULLQwVJ2I1uoQRfhk3Fz3MIuM65DyZOiOcgx4gEfCKeEU5RVaDS+4s4vPk+nx5qaGUJywq";
+ moduleBuffer += "KPIyCjl5ZTK1OCzkEpkFAq6Tp3P4A9p8p78wPyWcYzXKZXZuRCYQl8q0xlJZGZedD87JBTriHKPypJ2XLlOrwkIL8SCpgBsQGVwm";
+ moduleBuffer += "r8GV5zS6wKeVCaWgaOgTrDJ+Xp6MXgdGGZ8ttxrcaqtYKPcXFuRaaXUAmiVXoNIKzTIei3gA3xLOV+WrOYX5qXZGUb7KAoprN7oy";
+ moduleBuffer += "LOrsPA74PqexTKiR8bhEZm44nKvKy5VKdWyvIVsUBM3OF9u5cqrVGKjZhCIuV8HnWjK4MAPfIgG/hVyW1JTKUecqTLgt11ki4eSa";
+ moduleBuffer += "/HkuQbrIEQh6AvnhArZZbmHkp7ALCjMLytg5QqtG57JKyzL5wUxBjtoZsuRq5BEDXljod+eaQ6X2CFtm1rHyUgMOiU3HFuJ+uSig";
+ moduleBuffer += "Z7AdWi7LXya3+U2Fxkybv8SR7irQpsZLzNlqg9mYkpeUWaYWG4UZdmeOPI2tYduDGQWZyfFppohA58vmMDRlkZLcFJ61pLTQpRP4";
+ moduleBuffer += "gsqCXE1BSkhnZLGV6fbMDJm3RKHJTPUp1KbsHFycypHry1JdHF68Ij5k9/NZjDSWKTndXpgpFeFBhTJFBvhgRonFbONoUh2SEkuS";
+ moduleBuffer += "XpSmVwaC3CJVnjo9mCwRFRYoUzMLXLmWgNFjYaUyLC4xS5uksAWk1mBZXshbZJR6rSyPyZrEFisLSiLJ8TK3XZCZzk03F3hLsk1J";
+ moduleBuffer += "pRmSSEG63eHXCsu4CgvDIOHieley0xWfXCoRG7WFMqdfLStQGu1ygzjk8vNKHYKkpIjGbQv6gzk8h8XtFMqF+RG2zmhQqXx+Rrwl";
+ moduleBuffer += "T+AI5imtfneZWC23FIZkKRmF8enSbFtuodvnEmZEjD48gjt4EV9Iz8nL1OaqStzyZFVqsiOQGrIxVLbkeAvf7HKE+SwRK2DziYsM";
+ moduleBuffer += "UkeB0qcMlxWxZJm4PGIVl2oMHLc312xxl5SlpopZweTksDXFxyqSqxi4NtscZiXLeLpAabAsG/dnO4zheKenRKYvYZeoUwL2bIOy";
+ moduleBuffer += "MMIPefkl6fEKi5fP98jktgAnKPVkytgZDHNOGZvlVMi0Ge58ri6kLhKVBfACvis+XZljKlQ6XaqwLpwsDeHu3CSxtMCjUuaYDY4c";
+ moduleBuffer += "Fr9UabY62XZGvjVXVKT387mgQ3P18nhZTjgsgD1SzVJyVTlJgM4hB8omO5JJYFHl83gakY/nU6uSzGKGT1Sgi6jZPI0klIcLfTpd";
+ moduleBuffer += "GVcJe2iOGnQnc4aQp+UK4INkAg/xgJywqkwmEIaladyAhx/MZkjyrSxTDq9MYcsAlawuA+yMVWRLtRryVcFCTmZAmlxkL8r3h0x2";
+ moduleBuffer += "YYhkMqHC5Fw/xXQZf8d1/47pMh7FdbkpgPer+GkulkPgTSsLpSjsZktpfJkTx63+SJrHyfIYLXm4kyHUegzeSLwwyPeX5InUSgnb";
+ moduleBuffer += "XsT2e5OcpabMeJZZxfKlpbnTHXqL2pHC1ydnWtLS8rO1uTI811RS6LOFGRqt3S7gS/KUGtyfX1CozOOWCoD2lermhOJ5hTZvUb7V";
+ moduleBuffer += "Gyrx6m2KeGG2JFXMU8anpmeo8Pwkv8bj8EkYphy9lBvJ5kitRRF7pl6Unmwu4acruLlFqXqlxx1OUQs5mZmiPL3PytZGOLg2Oayx";
+ moduleBuffer += "OASWYICv5bELSxhl2lRBMBzi4vFGD4cvzhODRtK7CoMakV0pZ/H4Fo/dmZ4Xb9B6gukmmb9EHEzS5if5lPyCzCShzuhlSLIlJUpV";
+ moduleBuffer += "sjJenuljW+1CUSHb6+RZMpMDqckKhSclM1sujs9jl4UKlFJxWkQsyvNb410BD0cdsAgLknCG1yWTaOXyNK8/PwNwknQj26rND8jT";
+ moduleBuffer += "ZAZ1UMUKuQDnSeIEJDwRx5qhzTFkpihCoZwcj0jgNfCFUmcJI8ctLrRGSlmFkoJsIBTZcrtZJ434fK5IHpBLRneqMCPbZHKF5Po0";
+ moduleBuffer += "wPQy/MZcvUVoYye7rNnBlNwSKyNZpUv2mzNsOo3Ox8qMqAThnIBCpcsTl0RSXHpekZIX0MjM8SU6QcBeoNGUZDjN+UZThkHqy3SZ";
+ moduleBuffer += "/Do3I7colxUfCCplEhfPrcnJSGM5nRJHfJ43T+W3lBjKBOKQQhoSpOWzda4STqrBE+EX5sZrgzyPPsUfn5PD4OfZuCGLNtMBhnS8";
+ moduleBuffer += "ErYp3hayp/kdjpxIsMwYMTjYkVBaUXbEF8BzI3k56RJnQXqh2lSUhnPVkrAUT2FwRUVAfHkkfNWAAQxCaRHKBQ8qMn+n5Ni0QMkR";
+ moduleBuffer += "2OhKDu//V3IepeRYSuUCcThKySFP/p9WcoBekf+vlBy3jmPy+eRas8EqV4mdTnN8Pqc0Xq3gGzRlYhNbLykyBxgcbWaZvUilKLNn";
+ moduleBuffer += "G41OdrqN7RJL8p3pcq2Rx8orLAgk50aKNGWKIrvfLpXncYVyjizbnqkFQyNpvAoPMyRFBaxcl0oYLLS74vMlDr80ELGYpN5MYbqw";
+ moduleBuffer += "SB6WC0ry2D5WiVqZGuBlKPIdpSqD2CTFgyl6flm6PUnDcLJFDjhYCWX6DaLsskC6Mey2l9kyXeluT4nfER9U5/G8yfFid3KqSmky";
+ moduleBuffer += "2jMKzU6hy53Dk4eCOkGulSHl58ryMyQKuzItPl5pNfiTbXxbINfIlQsD+SklWrnII8lP5uc4DUYN366VZUj8coMukszNwB2pwjwp";
+ moduleBuffer += "A0iuHLY3kClM1pq96rSCUrNK4i5MczhT9UKxMmzKT8ZFhfoSvkjpE3syvSptWn5QoFGm5ALGYChy4wyJRGwospcVOHIDyXJVdjJH";
+ moduleBuffer += "GHQUil08Q6aG73Blxps1qdIikSXTYy8LGmQFyfFyB8+jKRCnK5Qhd44swrAHvZmucKofTwOcLD27xMvncrTyUq/H6Qqq4o1cfSQv";
+ moduleBuffer += "PbckR5hhcmZ6883xhcl6nyE+02YT8cOiQIqTwXXmhlMFLL5WreWzC1ML80UCHt/HTQplu11ad0l2Bj/ebtdxNelGu12dUZKiUFpL";
+ moduleBuffer += "Ba5ctdKt5ycVZacygkqWhFWWlu1RJCUHcXdmuMRv5QdzcItU61XgOcJctcSnEvlSlHnicJ6Cx4rHDYpUkcVTqginJLtLRQxBqk7C";
+ moduleBuffer += "E0SEvBSexJPECnJtkhypOhSySA0KtUGXIeGqxX620FMitLtEGbqAz6XKz+NYdfZwWUk4lCNi4LYMnzIiI5UcBc9Txud5BFwToaeo";
+ moduleBuffer += "UoQii0qnyCgKZvN9giQt21YktBlS0k05Uqk2I5RkCTNywoRGZOfxLGGRh6uz6sN6lk4J9M5IHlumM6l0Nh+7wCphi2Soq6tZWqQ9";
+ moduleBuffer += "WcI8wNoYSZCRCrgK9MYMpBlxQYlUqrAC3WDmCWRhmZYb8vA5FklKoVefo2YZc2Rp0tJMH6MoR+4FfMAldYkCRfxUu4HDCpkA69KX";
+ moduleBuffer += "ZnJkmkzAviJWgy0TdPdwWG0pzJV4isTWkFEOejBgry4LQ1AG+7bTYnVYeEUqmRCwdRFXIjTKeJ7qbF3wsHxiAQP0+7AnDIssFFgs";
+ moduleBuffer += "4HPEFlyn0hi55mSnoLDEkq9j5wWcAoNLLM/QcEz8VIdLVeYvSsoJcO0qt1TIUIrZdmuyJdcgjUjTLOZkSYY9YgyUKfLdjkKjwWSW";
+ moduleBuffer += "KRQ+ToZEm5wq1nPVHJYPd0jUIm9Am2PF4wUiHyOZKyorkgoE6cZ8CSczKdurtAWUuQIJPyRO56boLKw0nyM9l1XGw9nmsqQSPMXG";
+ moduleBuffer += "SRKxOb6QOczPLrQaGeqIsjRdJUouyTCr07L5uSYeW6dK1TjDfLsoIkgJ4mU6dVlA7BRz7TJHIF0gCknU1nhOmSQ+1evMy85miPx2";
+ moduleBuffer += "QW5AVsYJmjJLWd6QQphiTzblpIrzM+3ZEb0mWxMokfv0BrfbK+Ikpwm1PnaSPiXZkCESSaSpKjnDFcjI82VG3AVqb5m7hK8Oldh9";
+ moduleBuffer += "8Y48nyHN5DQHtU6nrQBXaWVOnkedL8pVqKUZXCMvN5JdlCLhuAoAUwU6uy5VK8WtqZICaaY8P12fVMJViHV+jsimsJb4AmVca67a";
+ moduleBuffer += "kim2Z6gcqkylI94oyS4LpwmdydpkB6hEoSWtzBFxhWRBvaFI4TdJzGpHvtmawymSGLVOgdmVw85hlZWwVBxDdnIwpM8z2fgBoMxJ";
+ moduleBuffer += "nfmlvOSMXIaGY5b71UnK0rRAqsEnzOWL5KEyvcBRmibB+Sk2jzvJmGfR6W3pZWWaZEO2Kr9MIpDoklM1JXIdJ9+hZIgzIvwiFis/";
+ moduleBuffer += "ILZJJCJ3Qb5OFQk5JS6XpYgnLlTiLHaZgCXP0AdEEVe+TeM25zrTMlm8TF+uV66GQw69PcLPT9bgtrA/zccucsUH+ME8g8wmD3g1";
+ moduleBuffer += "mVqrXV6QEgzhqQFrqVnIEVg8EbUoVMjm+z2iVNlfKEWN+o7LGXeraUwMA+OuX7cdazyrW9DtD3rhjAJOW3nMrLSvZzHXF8QR5mrK";
+ moduleBuffer += "A0mt4dImM7KYxwvQgoWqaQ/kHMQMGPzFRrjc30zYEuHMnUCohrMd2F1wT5+oZ1a+HORgFaKlVxpwDvcx6U+pnByh7iH+w3F6JuId";
+ moduleBuffer += "SvCMTNo7lEIZcX4GON+Udp4q02ryfK06ZBTWskNGUXUnADruQMOUEwAdd4nCPWiYcgKgcKXDR1FNOwE8xFuKdJ1OImeqmENQfBcx";
+ moduleBuffer += "RlsKSJpG5TVShke7VC8dUuVS3SwKd6HRXEBvqby2naxLugmXmnYglth5ql9TQNp2GP0ZSvheIelBlQe+CTKmJ+tbMGpozboWUM5n";
+ moduleBuffer += "bDLpyWNt9sGc52q3D+56rrqjDh0zaZjqo3TcgYbnR91P9VE67kHDVB+lMNVHKUz1UfhHTccoo+hSBenSXQrIl/CYfaLUduX56rSG";
+ moduleBuffer += "1QC9IQd0GL0JShDUF4MBcwbVL4MZzLAViDEmMXsEsxrQ/KWv2j3g+5lmj49JrEOhX+ChSRxCSMGlpKRoZRIrArKyBFX+AL6sLJp3";
+ moduleBuffer += "QLEeVCp0dIGeAk6byxZgWoG4NOA4nO/XG6145aONejfT43aWUlKW8oX1M/VuE1wnQC4TtupDQOQy4dwY4bJAPFpvxfUmuK4ARh2z";
+ moduleBuffer += "edAyACD91gxDS22gIKR45jZwDq61pfkas+AKY3Y/8O1BN+F5TOU9BPK2p2EqS6UXtR4tuabXD/JwICuI+Ph/UElMFx6wekxM8Dxi";
+ moduleBuffer += "+g+rckHQgZSHoan+Wl3MAN43QV/dN7823u/Th4tDuJEoQENDHAbngeNjayxYxt96XU8w1J7X9V1D7XpdW43Vva5rxcWmlv1RBpiq";
+ moduleBuffer += "u6PQcSINU+4odPyg29GTdfe4ZKru7nHYWN0Vho4TKR5E8oXCKBn2f8MdpEqze0CvI1U5Wknor6rMD4PjKIlxGCjNX3uXVN4zJKo8";
+ moduleBuffer += "/6+5l8A4hLXuXgLdRqCPCKVkePUmQrVA0TKwztY4Ytk6bZUsIZb7g/PQlQ1UCBrWVl4B5QLX4BovKhIX6HZMp8dt8ZL32NxwPT/l";
+ moduleBuffer += "QgtUCaBATADXoD7p9voAofgrrw4cwOQsJa/B55jxMJPMAhQFiy0EdBDS9xaM7VFYEjiadxMjcAdeCu7bBu5PxarGN8T9VLBdWxyh";
+ moduleBuffer += "v1VGD/OYgs6gH+tkQ4EUqPOgKUBFuQMpNuob0HmjBzeD77eBS5iUfBb5DPTdgBvDvm+1oQAKpG2CehyRx+8CPAVcG2NDesrD8lDP";
+ moduleBuffer += "WWGrrstQbjhU3R+yodVWTr0Bd1bWPIZdIs9HNzNFzXXtqJ2p6+B1QTJCGdbdjspeaZ+JwbiXDm3HGn/asj9JUs+RxaHw8+Q5qx15";
+ moduleBuffer += "Bg3D0PAJLrkzEuTkN/psBD317gOVVBPu9eHEwuVnmUE/Tq0SpUdW3muPe4hn8ZPx1f/Rjrwx4fC3IQ3vxlAUBwp/jiH1n8L7ovL/";
+ moduleBuffer += "gCERQOHTGFp4FoORDECJ2kFD9DZBZSfLo3UrGepGWo9HCppSDDsPYJ85RLeRo74ArmkgEYGjCA8riXPUCyAgf8sQYZJISNIXCflV";
+ moduleBuffer += "lEzmg2+EZIf4OJWdetcDZ6UkidJZDWRwUGywo85XihMxSb9SSK+Vn0hVDeDgJOBS9FjbfrGgDZ3VVRE6TqRhShWh49pWRaa6qqsi";
+ moduleBuffer += "Sglf043N5GrkiWxqPNXEjdgpeQ0tgbP49F4rZDqIjVDshcwTQkIfXaX3yWFu1CeN1qDbgUZxFOcG0jUBRirCAm7kef6QMLawozL7";
+ moduleBuffer += "D4APq4HROqRKMOZIYCeyk0nveSou6ftuFOb3Sv2HrU54cl7p3T1I9YPDECYNQ77CIOuYqmvqWmYs8rSlcFYs8lin8LOxyFRC4XOx";
+ moduleBuffer += "yCxF4Z+j8l+IRaYWCkcaVC9LWQPEwyj8QgNkaqHw6AZomEHhsQ0QD6PwiAZoWEfh5g0RNtlg/E+moZQIWNUVm+BFIpXKZ2n0xNuC";
+ moduleBuffer += "xtoBnwVNstaL+gf83g619m6/FY4U+5Wgd8O6gaEQKNySpA06fzRj0Bxh0YHHwtBoxDVqsTfU5h5j4TifDKapqIqlWfUeqMdyIRcB";
+ moduleBuffer += "+YG49QRrIlzJX/TDgT7UD9UxiHc+LNInlYcbg1ZoUPirumQwjAf4iBsPF4MnQWURcBIq/5y6iE4p3LVBrcUvQxIEro+CJn9/HOYF";
+ moduleBuffer += "7/2tHlr3R+efC/3EbhHbfgba1NqWT5AaXR53gIguvs2PDCOQCuGqQwpDydaLpESKIwkCKNRA9JG6hxP1DOhv3pOGoe93cxqGExx9";
+ moduleBuffer += "aRgOOPtEYQENQy7Ylob5UflFUc9/iezZFF6AIW2NwnCvlSY0vCwKr4l63wYMhTyh8DYMcUYKryB7Mh0n0/BKDK33eZBiXYmwWw9h";
+ moduleBuffer += "PcfsyWTD0OJs+jfUi+IG9iiqOR6sKU34n3POq8H/BucEMgS82xlC74Y0CoOIUxgaUVrSMFzzlUnDkJ660LAGQ9o4hWGvfJqGh5PP";
+ moduleBuffer += "oDAMeNKehl+KwpDWa68d/Fa42CISRu/ugNWUsfGfS7Dr4eoSjMKUBKPTaHmkNmnUH4TyZUakqm5gonBHEvNR0EC4LNqnNwItFS12";
+ moduleBuffer += "1AN11aiHo04DHIoSQ20fnKcAojSRWRpHaFPUs+LJ/klhftS7BCR+sM/ri622RJu/GHd5A6W9+9DuyYl6piQKa0g+R2Etien1fbX0";
+ moduleBuffer += "idd3Nc22bhnS4lQNa2q1+j9pZ5ceTim8UFbVrpA/g7f5qlQIpilIzKO5gGZkQ7Y80AyQd1D3dSPbiMIC8lkUhjHFnqLh8VF4Nknz";
+ moduleBuffer += "FJ4ThZdG4fej3rc+Ch8k+Q6FD0Xhw1H4CIlrk+9cHV6d75hwfwCG0bcRCqeJ6fcEfUaciUKYofk9kw3OMUMLFrIy+Z0voL4E/yjZ";
+ moduleBuffer += "5ojC8B1SQhOFo0kw9Le4sVe/y0qeea5Vq7EFig9kv59dzjzweeMR783LwLgT/gSKE8vf59O99vaXLpUtX5vzXtMOBScT0q+Pkhl3";
+ moduleBuffer += "PyokCsY9D+97WNiZ2XfgA6kTGJnh/t/EWMG4t+F9HzWqzYg0t19EEWleJjnyY9cCVt2cfHLLrj6Gk/MOT2WNieyrd3X1d4ldb73N";
+ moduleBuffer += "XHw2JWd83c71WcepCoG1BqcTiWkKaL0tDniK0Up4ktfVUoxVByc1DdTE/RFoehHq9g+u9H1ib/eit4NeObKm3//P3UPujqzlXQzL";
+ moduleBuffer += "o3YpLK/uHkLhyl0Ky6u7h1B4ftT9lbsUlld3D6Fw5a6E5VG7EpZXdw8hpwIoUfCfVwfudEIztRHRAqwQajMNSPkc4iz6abbhTlMS";
+ moduleBuffer += "HvHCfShdftRHx4+Kw0aCcpWRfSyHw09Q5AnVGnGRMEGg0Sb8F0N29HmJHrGDu3nsDqwxjE1DEDOdOUBjJrnnnNgdQMH9uZPG7UAh";
+ moduleBuffer += "M+9SPyaM3/HwyJvw/Kg6TzqwzObR1XcVg39PfmexxwsGrRyDPDFCGDLRUTgfQ4EoKDyKZCd03JGGodnmGRq2YcicQse9aBgK1fYY";
+ moduleBuffer += "t/yVHaTUu0trpToYdx68cLxeXfLK30mCWnVCHVvLTqjjqnM4OmbScKWT6rgoJ9VxUU6q46KcVMdFOamOi3JSHRflpDqupp1U/z1L";
+ moduleBuffer += "S4q4CEIePD4OGw25L4ZsQBSehiG9F6uJEN5/0dnPjX/8rg5Uu2kko1o67eGMavZr4PwfMTUTBeuf63GdJlaPLFib7549ka5DcjfM";
+ moduleBuffer += "ADUwsQZaDypHiLKQ/VdPjCVwQHU0IiNKkPIyKkE++fUUHoJKdHgmKFEfyiCp6mG8u2PPR9fGLGi7fM2f5zbTVVl4BI278HVwg3TF";
+ moduleBuffer += "a+wR+rPHS3lfv3Iw70X/D2Q+KIrL4ZEKoAhP3qEp+PdAqotVjQpI5R4+syE1WgDvmAVw0yge+iE82eefslA4hT7r4WS4cDZJp6tn";
+ moduleBuffer += "PzzDj/A88+/qAtD5HJDvRixdx3+SMeXWTqoeXb9W+9Cr1cdC//m7HZUUnBJNwWiskxS2mfBkFE0Ym/0qErQXSA4IWu/DeaD258dw";
+ moduleBuffer += "uWn7Jz1/YOuzC3PePXf8nU3RQ8narKWCydVrCZRyxoIa6vF/UV9RPb71FFSKeWQpKLwQ9fgP3wQlElM9/u+qbyGzo1WUdOFkZ+XS";
+ moduleBuffer += "fL87/7moyyMbgN67EDzQUjNc/S++0hUkYuFwJywmu+9h+IPFXntMOJc5/fzIPedLWr+8akCbi2NeOzPVeX6f49DyrgfGsXae2cpY";
+ moduleBuffer += "OVLr6T2hWcx3I/hngBhaAu7bElMyctfL72woafNZ/RvzVzds+cyuqIz98tYNWLEP/96VEmjwKaP3y9E18/XolhvjPv/6xx2Zuyff";
+ moduleBuffer += "/ah8xdI3LofvnT5S1OXrJYPWq+etfmEqmnAwxiDFisKmKJwXgxQfCudHYbhMohENywnMXbGMrIZD1I+lb0EG+WvMzJhOjCGxrYbO";
+ moduleBuffer += "wb6THIoRX50Xk9W0aZ1fSgWxH3E7YS/g8bFFm56GtHkb3nChEbU8xkuSRA3zs0cul5kxHfEzaA3sS8MTMRS8m75chrpGLZehMKTx";
+ moduleBuffer += "1mS5KZfPkqjveKjLZ1QeuJvao5bcEAOLRy25ebTraLSX6L9wE32UE2hV3gD2+G6gwahn/L/mBgoHh3/hBvq4Xp9/7faJ/T2LfZI6";
+ moduleBuffer += "w+3Xq+sMVcsss4guwRxOGpazmLC0xKzJyFloV7sxs9BsNPwU5otVq0Mrl43MQktEatP/6sNZ/zwwfsps5JLJm00FxudeXQs43jRi";
+ moduleBuffer += "BBJ5oiX/+3iukdnVrEOT3gMlGwwLBk8+hvsJSeFkJ+T+Bp+zrTGrRvZ4MAedgKhSSQuCFXd6wTNh6X1z0AARTtrASVoKwwF1CxqG";
+ moduleBuffer += "zUDfRg0SEZw68nhhTcBNy0COuch9jcpDeC/7s5jd51b3BH5gY2Svz+Mxi6Ovko7V9PPMStdqYuvkyg1QPEagNPlAPZMTWkBU+fAA";
+ moduleBuffer += "kQlAauURzfWaWCm8AZSrzQPE82SNNIfm1q6RRvlGdaMLhSkjCoUpIwqFa86IYnXpjbBcnGoc7Sp4TwFZD3CSkcJ+kvaetA3UOq+6";
+ moduleBuffer += "YeTJ2z//OY3cnle7NBKYj9ocOv1AWyiFKcMeHTNpmDLs0XEHGp4fdT9l2KPjHjRM0SSFKZqkMEWT/5cCi7+zoHpgcbqjAfNNwmVt";
+ moduleBuffer += "8yeAka+pAyXC8JrpUQ6TGfUoeisK3kQ9KJYMiq9US5Cbsc3PBJTmA9IUo/JA9yuoIFR6vjuQ1HnSve7HN2u71z1ka3coOUBxvAuR";
+ moduleBuffer += "syNUvKGLCB23x7jXt4NWWxRD7MGOuwM+j7e00j8F5Li+sKZkhw+ajGE1gWpLq9airRehEr0Zg+Y44Ko4apXsCJAIGx3GXbgTlPRI";
+ moduleBuffer += "U0hfcPbjf2LfsEXV9w2jtsGmzlfulbUoaq+sRVFbGMK9fokFyOTGcMirAi5wekj/f7IK7YbFD1do4dijBjelg7aqhDKbpUxvITbG";
+ moduleBuffer += "owtVTLgErXfdSloaKLyJpCAKfx/zoFvUoSUPc4t68muezy+p6TXPD90FktjlyroU9aiBschFksKDYlH90LbVxd3EAntCh+Vx1cIH";
+ moduleBuffer += "17rr3aWV8QYC5oQMuB0kovDK02C4TKz1B/8R5hKYBUYhoMiBklk+gG1Af3XpvdGnatsHGwsvQ07YK+tjD+FwT74At8n3l5OLJYiR";
+ moduleBuffer += "LFblav1SOTq+jI7lxD9wfKW8Mh/xaxR5vhGZ72Xy/gnksRG6DheXEMdXSPwKulw+kbyvDnmMJY/ka8oZ5A/y/nLqfWSGcqocDcnz";
+ moduleBuffer += "NWBSxY1GvQNKV9JuTa0VwAYvR8aBaxjik1ymDxqLgFgJAqKzgJFSgPLTlAj5fK6kWFSsVujkgmI++F9Lxb6ojCDVlfbMX7Ha36YE";
+ moduleBuffer += "W0Hnpdy13wAJdz727V8qKiq2jvy1okK7uqJiVYOJA1YPWJGy98i7gp/6/3Sg85HUiwemXr7w2Wtv/VE8uUxQXn/lKmIm6KOKCs26";
+ moduleBuffer += "+xVvP9395tqbCw+wLFtbjr02RhI2fb9awn9/eUfJ3HMjM39pEdPhSe6maGGjloJ/9yqgsaVRKBZrsqsxdv3ipoLdmvzZOcXCfLVX";
+ moduleBuffer += "U/BV2HUpb/GsDg2GTj9T/ufO52+2iVuJdMw5MahHXKuAWkCvVQws5S4H26sZWc5wlF2Ykv19903nPhlxcF3S25Gtz/q/mDzih9ED";
+ moduleBuffer += "VMLvGp03vVzaMe03Vt+ir0a8feLDa7fCbT7L2rPiqTdi7wVuJ9l3uDt5h5k/SEsbpu/Y/e2lHeth3M8PQYP845YT4674Ftw3tg70";
+ moduleBuffer += "uKRCh9A3iEX7pICB9yq0h/o2cIRe6tQQ301Y+mBOtL8ujM2SzVb6PHa432YIp1uFDq9CO5SsXoVCkohp4vbBOzGs09txNTWwfLiN";
+ moduleBuffer += "rlb7Bxg8vV1d3SBWnbxdba+qqUdAa8yugRmrvyBrzr8na4x7+Cgo4MLYqasRfYvIzXnouDUNZ0ddh7gNDR8j+weFz/zL/vK4+RN1";
+ moduleBuffer += "cNQcEjCxHP5c7MPjha+4c7+6MMLz2ZCV2z5g1Vn3gfbpO3fXDdb/tKHxyEafjKrzuPlBRZ34d/1x9kmigofq/gCM8OL4PyumHD1b";
+ moduleBuffer += "4cEPZB0UTg/sb349hNc3nlMdOVh+gTugQ58fmta9/6LU3KbhO6vgxPwN/r2K7Mu/V3zAsc2/sFicdb5B2cec0exrKy7Ztl1f+PSr";
+ moduleBuffer += "ra/Uj60Y2HM9o24c4Sm1f/W+vZM+nz/nyPytauMHX/Tds/GrqZuvbw5s/G2Ud3nvLhuO8lo+va/16s+SWnV7BjLm10/PntN0X1Ly";
+ moduleBuffer += "VsUuaUWH/lskTQr29CztOW2e4/Xrt955S/ZOn2n57ZNmJNri1iuydTpd/6n1Wgi/mrl3dvEPf/54JbFg8puG/R+/875o4meaH841";
+ moduleBuffer += "+ya3TFQv69To66KSZreLPly1atWOPn/+2uy0NbnVVuGdr+v7yhbvHsr7QvBV3V/nj/7KlHJ26KK6M1fP33hjz5TGGPf8T6Cirsbw";
+ moduleBuffer += "1K3qYFjW2bGxt39o3qRhzJabg08fWzDh55j67J6qdFXjtwW72+bP/i7Wov2l9MIGZsv35t8GpPLLM0sZGSUnOZ+73W9tHDB4Rkf3";
+ moduleBuffer += "Jv+M5Zr+W4MpjH5c27KDA75RHA88f2zoY+c3PP9jp90lN7MHZtZv2SD/RP3FJfeu9d1X/oJhv3PBL3VG1b2Zvv/z1U8JP+X+wmyk";
+ moduleBuffer += "m1Le6nHzY9wJZ6CVOWZ/iRTU8NniJavs3U5UDBrf7g/3e+1FDrtQPL7hmAk7un769qTY5fvSem8purc8Lnk3Y2dJIcjfhPHOqgVd";
+ moduleBuffer += "AC8/Nqu0tPOMpDvrOrm5V3gNXj94Pa/ejlODsQ+ezRx1Vh+Z3/p8xlugRX5/V6XbOO3Xijf5k15IP9JkSerGxUv5dXmCn6ae0olG";
+ moduleBuffer += "HTR3nPH8mvuaCXOM9S732F3SafeqwZNPjynT6Rq13/k2dwqjXtvD6zwjPz801nS4cP/Y26Ub3LYDseWcQIfJQEdYcY74kFlvtwKk";
+ moduleBuffer += "ldVlYMWSzvq7Q35v+F77jC/z0/e0uzTJk9bLNHDi2pnDPh8+q456ZeagdfNv1n3cvvii7jB4/oTgyYrGblPFNe4eO2/1gfPrbt1+";
+ moduleBuffer += "/xhnX4fA+i4FCTkf3Th64UN2YNOPmpFP/Ys+ex58yLBPwne3jLl5+PVT+83PXj/D2nhP/Xp6xYTcdj/VPf/npW5f5q+8uGTNgtMH";
+ moduleBuffer += "mu/89lP28/U+b/i4+UGFXSAqrP6GaYBkGFvvZYReOaBzyX4tYhZP/uOl+d+269B5+OKyxeMmTz/w3ns7Y0eWN2rMa/Vik0AnDWj5";
+ moduleBuffer += "P75fsepozq2Kr7uKPnnDOe6buUWqA11juy725vzWd8k22/qmue/mVfTZtXddbPrk1aDl653K05VaG2DH755Ib/Nyh5jXm7gHG38z";
+ moduleBuffer += "rqzf6dyoFS9JrzeNuTilvHlPoaLt0GuWpEVbvEt7bOiVfCrj/rZXLVc/+33/wS8SZxcNmf6FrpPJErh6atvNXtqpq3q7n3+hBaiw";
+ moduleBuffer += "i7DCThaF/qyoMMQE74zGcn4ZPqVF2oXCZ/p3zPs2+PnK7W/+1GJYKA27O7Bkj6rFUe6AhZ/Vedz8oMIuERX2aeyz9yoq1j636d7F";
+ moduleBuffer += "gm43Wn3f4SnZCn2Dt57P3fWWfEmw38dvtNjetdD/GePmndVbWh053ezTiixAAevMLOyS6Wes9Zf1v1nm2fj8wOUrG91f2OqLMRNb";
+ moduleBuffer += "jVwTucP4qYV6yrSBzebz6p1btQtQmEzzdYVF2rZilqZzj8bjL/p/39qm0Xh1yUu/H92ZsGDPpnlZmTn5v/55LPBJ639BYb+CD/m8";
+ moduleBuffer += "UuxCNy64lnPY32htKR8grW3wB/9Aa+M8XGsr+ABpbf0+eKTWxqFrbfM+eMJaGxBcuz6oPrP6+BV69Tqo0G9jn6Si5dXbiKksqG55";
+ moduleBuffer += "N8URS9ufiUHzdhTuRtrHKdw9BqmGFO4Rg+zzFO4ZhXtF4d5RuE8U7huF46NwvyhM2fcp3LUOcoqtvB6F0+sSauz5W3D0F+Oa9/u1";
+ moduleBuffer += "qRfmfNFt6Gvjv7zsjJ+SqfW93vpgvRYVhW8eOZLT4EnWPvJjQ6puw81oOd/7pJ2dwh+Q2iqFPyS1Uwp/ROIp6g3cze7sQvX2u/z3";
+ moduleBuffer += "miz51Ldl7+DMcynxE7zd9/SY2vZpjFv+J/jgwx0flw47tcLevfZ+O9mkU/enz+r6Z/t32o8U/Ta296C66yt+T/nleDcttq3iQMGQ";
+ moduleBuffer += "b65/wmQwP2nV6JUtx4ZmjJ04cZX5yO7+Z0r7Z3Xbd336T7ParOlmlj19JX3c8JeaHvg14b0Wa8aMn/Pp8EYNJObGOVkFvGWfWc/2";
+ moduleBuffer += "3GYrufvWxsNy9pXFQ36+GqvaNk07pBTr+6J3jvtkd92w759uM6YBt9ctb++ucnFX1tItSWffeHuA9PSM0vwbPYdtudL3/P35dSeq";
+ moduleBuffer += "lb0jJ47iFzvE/MI+NL2ZULb8O0n416lj123lvtzpaJnpeo/1mokdmg8tP9Oxa3dp3JSyX9ofzJz21M14zeQ1zX5v9EHPtOunpp9w";
+ moduleBuffer += "bfl+76K5/XKWbbk+up1RyGl9bNuIW3tnMBLfzMlrlpPQe22fiWkbvtx6vd29hMGaL65+2u2C4qsCWwW/zHhyWcKAppn9mn//x0+z";
+ moduleBuffer += "h57cP+s93zLb7MMV98/3SNpdEW751or6zcVXr5eOuscqXzHj9tg40yvrtKyjLfGmE+rhI5ed+g07M+z3wMKPe+/verPU8EHDxmu/";
+ moduleBuffer += "jWwS+s4FTe26zN2UN2bDs+vP3dw6IfLluOZLPhrb5tSv93VXjs97q97qZSfnnphzrlGDkhtb83eebfpeXAfHOxuaMl7dt3695eO8";
+ moduleBuffer += "U4r35svz8w69XMq9pyyexq8bNL7ywy3JpEa7+xx5cYR+7bmgX8M7lO6+vyCnrNXRH97tfPGF0KA131w58/VPzUeaD6tyO73Ueavk";
+ moduleBuffer += "pKLe8NCruLLvMd+36/MX/zlt68vZb5vSR39nu3CxUVzf1l6uKOkT1rFVMYp1z5UM9oy1v9NO+Mfae+GFho8Wtjp6pXlg5VuCT78b";
+ moduleBuffer += "OClPtn1gq1emDt85aMNTUwv7fJHVeF5xizXTnavwmCPb6y97dm6vbva2+AzGnq9fq7iqS1+X2+fZ6e94lZ2OuloImZekr7GEl7/6";
+ moduleBuffer += "bdTl70YnN7x76U3BWzvGzr6aHD64Vxufy9ueMf7em0fb3vtzPafX8jsLW1olZ9MUaRWnutUz99/epzn3auSlFnvFp+/U5SRNeWb8";
+ moduleBuffer += "IaXqh7ljehz84uSONvO+i1/JPzOcu1kQ6depiaDB9TGq2JbD631pfwcfWdCFOVjFuSJoLT7qbfnzzD/u8Ox837D6R/e+52jXXDG1";
+ moduleBuffer += "YaDNtpuXjf0/asVs33rfM+Om3dlwYs9Ankma2/POrV59ul1svGNA1u2bsj9YE66Vf9/90OV3Ln4849uEwXvrTxn0nqpFqMuh9e3z";
+ moduleBuffer += "+Xj3lZyP+n024XzaddOZz/JvLVrpPTlKWjjk1SXJtvrmDem+kZ4mtz4PRQIN+9uuln/9R+OxXzzTfbvyo6MlUyd3e3d4p+8Mmyd2";
+ moduleBuffer += "e+Hbo4dPOTY/s6j1qvG2aW3vPdVqHr/idMflJ0uCWd3xOaP23TD0uXlrd6e0GdfmrvqMc73Xjp/a/brj45SP2Z9u6hfXpMHW1cO/";
+ moduleBuffer += "aB2as+21aR/5jLf1Oweltr47c9KQJPH4vs768XtajLdtHTKl7VPnf7x+9fvjb7V8XH5i8Y0+dW1kXrxlecFH+Qtknf3+LXV/mRL7";
+ moduleBuffer += "1cmDzsaMJey903vaXnqr3fAX4+r0PSRowGo6SMxbVqzbMSdyO5ADBs33Xx42a8orw64+97k4vh4n48fWS799ceZbPY1enZC748ia";
+ moduleBuffer += "VxlZN4f2fY13pNWLT/d0n04ekfpqw7wxLyyu9/VV5aafO2/BsB+6TErS7N4/ul6fra9ca3yr1cdb3t06817+0AZttc+/Vbikt6tx";
+ moduleBuffer += "2s0NX43O1LhG/HHzzZ/evRXfXimcIgLU/sr8M/vebzxI9XLFbkPjwntf7fGdlkrY2IoPZ3zFueIoHlAyc+GYk65pXWevlX71i+nV";
+ moduleBuffer += "CR3x/l3H1TmxuWMLNoO97KWJrY/e2Ja76MKBbtov5q35Y/mZgb1nbnOvajCtU2JslyFfT2874XLRyXsxyiPLv1/rW4a3z8oePSph";
+ moduleBuffer += "6KktL47/8ueLd3esnTg35Dz4Xr07C9znO77eclOXH05u79PxYoPu+3bd8s38cfo0ZWlo6mvytI2qd60jRLaxzVNuZM5Y8eJSk+zM";
+ moduleBuffer += "S+XT/rxeWmQ7tyT+W4a2uKl8TJ/W05Lfc6iWqAbtN7s1g/NGFAx4KWX5yiUHxv2Zrrv825pvm62c7n/ezpk3r3WH11r2X/tJvKht";
+ moduleBuffer += "bi/GnzfmHr98Me38lsm6uaJ3FB1+u73AZDjePx7/CRv15dFpOwxbDO169vtt4p4Pv6inWP3RyuZPzYjp92eptWiAyT7/J9GEE0PM";
+ moduleBuffer += "rbfeHPSupmnnj88aJr6386fdLdsOfLnx1K3Pb9wV81qHS+Hj96/LOvwSd6xBF1lhh13PfXOn6TRNbvLv2TMzlpYUPDX7TW4s866w";
+ moduleBuffer += "AfbuUxtu7H/r6fkD8yar62eF2g4MvXDl4wVtrk4WxrT6+PUuvPui0Qe6n5730vCEpm1E32VsdDSanvVS55nte/b1LFWoCn9Zb56S";
+ moduleBuffer += "1OhW3fRzxht/Hvld6mwl8Ym37v/660JbXZFmsFvyauCXKd/G9pvX4MK0wjdcM3Bxfe6vP3184De2ZWHHQUssp2bdblDcrGv7Rn3a";
+ moduleBuffer += "xs1Szn5x+1t9x/fNM7V8SrP311jljYqy0+82yLB+cjYyNahdsfflY20SPtr1UavOG78Z74rrFH82e36q8+IwmTHu5eIr7UYMmT9h";
+ moduleBuffer += "YcmfJ7q1uvvp8ZKBPtvQph9g+dfVv00LnXl69iuMOx+l6hT97foWR47N9Ncp9hzFh57+VFr8e0HPz5bcP6kcGGqQ123Z8WT7wPuO";
+ moduleBuffer += "4beurGk+r573uuv9C/E8y8ElhdsXd0/v2+Sbsk+eayGbcDYRzzW+f73D4Q/fe+V+Xe68+3mLl++IGbck+OyV28N/H9Tgi1Ag7ZWJ";
+ moduleBuffer += "xfKkSY7EnO71G7a4/93HP37+soAdGrl9beGWrQNe+faFOi0++9WyOHHabjb2wb7iTp6tndfdG7fptKLpwaWLL3wyRf1O/7lrVtrf";
+ moduleBuffer += "OLd33Z0ZCcaPp/Prnt+98dcrN92f6T72nZi4o/vszrPb/3Zg6bqSve0b3Vm1XRHX+y3ekZiT4maHfJxwoyxno+tX1hRfbLF57tXe";
+ moduleBuffer += "+RMYy45zpH5bG9+SLnfW18d/KTF8sGuy76s5uuXmQ5fflxabDo1qMuTMK0Oa/TaHyyo9v27mGdPRijPJb9wfmPrlZ91Nq7rfWbAA";
+ moduleBuffer += "D3RjWJNfvVo/IB0YG0luuuxg4NJr72wYMStl9ZurNnB3jg9NXTCxzrkhF7cMXb73yNY60/90rEztI83beO9USfLOa80SV98UH+py";
+ moduleBuffer += "YQSrLPWjoVu+PVveytF+2aSscLf98ra+Rff2r3kntLz58x85K1641GTpt880bT/23tjXfux1a/jEtqwVuvnH35kRqbflsDh4+/DU";
+ moduleBuffer += "Afr2Y9oyxOBVz1+4u2DXoN/fqbDU7Vic8YJ9QWh7nU7bfmk6fXPpxtOXuxXt1muFTboNXfAS071P0zf8dPPJL1UMbylefsXegrFd";
+ moduleBuffer += "0GtrXKc4LdueVe/V3z6Ovdnz6oJrlxZqVMdfF8/H7h5suOXbRrHYR/2/b5J9pnhBuwPP5y9yareM0HVs2Hl20Ytnuu459H6P99/L";
+ moduleBuffer += "38sc+0zdTYvWXhsZt2P0RP/s70bNL9117ESrVPHozMQ32Y26Dl27pd/MBXWmm24tXhnepLOYGn528nTde4mByIuJo2feafb8u3vl";
+ moduleBuffer += "O/5o9rj8/0mOucp31/QKmEcr72YvUtxXPeb0kfJzNM7tUtz14J6SjfwdCd5OV4Zt2Ns4bpZCMSEhEJ+xJIMzsN+xCVO+GrRoUPMz";
+ moduleBuffer += "FYtfm/3uYj+mWnVjbrNVeNLOp8Y8nSAVjTvF3vLBtLNDP3xB/vvGaZ1+6pXa7q7jqDu999jODc7u1Gnb/Ljomfsltjl3PAmBIesH";
+ moduleBuffer += "rpy769M5P7Qalj2p5GzXxTt7DRw/4bC66MxG3x5Hxstc/eCX6h+vgA5zzgmdsamsVzFv8529Cy637W4JD257nH+h2+r5Xdu0mtdx";
+ moduleBuffer += "kE55/n3GJ0klkxqI2qZ0Suly8vpvdb9p9Na5EOPb92dKndlnX902ev70lRMuWhJmtt84dmDp3FWn97x2dsrsFpd2I7vAh+QAh8If";
+ moduleBuffer += "kQMcCm8iBzQU/jgKb47CW0j84yLpEcfqnMu31yyv8/ToYvaJPs/r+6Zq5urbPv3a8/JtKb2zfXjqoZY9ZM8Fpw1LeYvxuNN4cC6C";
+ moduleBuffer += "vvLhce9/XDp5fHvBhNd3Yo23C3TfwnU3FccrKlYWVFTomrccXjBcaZu9vnjijtIdy559z/Hdsq7HDr7aQ3Zta6cbE7CmtT0Tn/Fl";
+ moduleBuffer += "9Zl4IhwPszTB6PH4TDCiSU1sHPGIRSV7vkQMonUs8gHUCPlRwTkxLGUvip5MXHtIcE7KY4BaxsskVlYxkScGtdwLZSUeUS12J3kv";
+ moduleBuffer += "nZCIEJ8Z1Uvx4V5aiNCMqFI48FImjF7GdFHLJchslTFjmFW7eVdlqtqVqepbmfvQtz5kQ/Bqz0ArVqpXlGEf2hFJo5SI/7aEQbRi";
+ moduleBuffer += "Iom+n1RVcRViQRZzPnheN7J+Usj6GYuh5QX0OoNLR2pmU/WHRPnXu2GQPsrThisHxHIVlAsuhm0Qg3YKgn/UUqJxUe350KVE/3DZ";
+ moduleBuffer += "zfioZ9XMshv0/18stan2zsFY1NKjx1qIU/NLcaBXTa1HZI9qB7jc7EnuXjF0P+JJcF1HDe0w9pB3JXlxF3rf5/uRtyyc4m9DwzD4";
+ moduleBuffer += "Ynsa3okhbzaeQiEVcuViuVaYLVTzxFqmRqsWy7MVfK2Q+i3XSaUKXq6Qr2WKBUI53FZOqFYLuVKhXCcTqrlaoUCnFWVoCD82jVCl";
+ moduleBuffer += "E8r5Qo1QC1oe+kGj80rwXwB6qyOoxSHdRxDIs5lwTyUSc1PRD52WD3tWNhF2Hu4CY4Iwz+a3VT6GJ1OiHzBStw3a/40eN6jLIDF1";
+ moduleBuffer += "cAB5J/Y5gJYAcZVKKdwQT6yQM4c8xyScxAQHEJ9TgSOkS+0BtOyJrwA1UqBN0CiFfLiNHhMwCe8BxE+j8yrV4jxQCTALNo98Z3Qe";
+ moduleBuffer += "QLu9WZEs5rYDSEH87ABaPkVdrw1PEIMngsMIEz8eQG4gsxrUVHC5v6bJoQcRzT0L30XDMCjBUzQM46r0pWG4nqEnDUMv3iexkxwx";
+ moduleBuffer += "kVQM2AqOAsk0OYQ8XmF/6fEE3vewneteOIR2rkuMQWum6PjBgKBP2FPo2+puQvCPktmTsUfL7Gh+HS3vnkg9GmyB4kofcUq0V/Gx";
+ moduleBuffer += "XeBb4LYImhgyeApWJd+nRJXxP5HvU7H/X55Pw2phaW3UtYlRGAaP5On9eFoK36qHYUhxH7VmGxz1Xn/QCbfB0OKRQA7xfQKbH/aA";
+ moduleBuffer += "MG4iNkkgl14DFuYCQgYcq+4CFcOD7Q46jdLjDzz0QrWywMCVVZWhLfXixCuoE5XeyUx9AO5Eirz+AT5+GMkkExwtwd3ayNHF9cMo";
+ moduleBuffer += "xHvl+klycUmTI2itpBnuXgd9cs2IPLsfQUtgkWYP30DtGWPzM22VxJpVNdfej4maion1B/dCXmw+guSZOElROTYoPxJHruukqJdy";
+ moduleBuffer += "QDdVVuYMkKcTkYdcR0RlgfP14PyHR9BaGFQ2tByDIvjKDe5M5L6xIN/hI0hu/gCOcD1Y5dgDDi8AjjsaR3rjPzgUIQYg4Frvo2h3";
+ moduleBuffer += "F6CaMBUiuPwjAHkn00T1GXBNWj2Ph+xCleM771FUbpJ9V8bCm3oUtcFD67pqoxhsBcgHgyQrhbLK+tx/FNWnt7IDMk1EDwTnzhxF";
+ moduleBuffer += "u8MgmfrwzfOg2z/uh19aSRkYdiyOkLVkfcAwCnD3HTzjWPV1tfA8csYAZTqG9BvaioaqzwEZYSU6QR4oj2gkg009hmhkzjGk01hA";
+ moduleBuffer += "+VaD33Uf0R5RD2XBxdgfgvzEuj6SLaARpj5Aramg1WgWk+QXpJdJP/LIpPOP8+B5MIxEm+PIaaTzcfTdVXRTVQpiJTVJmDnHkfMI";
+ moduleBuffer += "tYsLyTuqr7OOaYLFdCEcYJ6l9/e5UbzoDZJvETKFuL846C0OeIh2L66RXTmqC8Swj1hwTsnxb4+j7YFg8LDuD+Gb6GsocRbN/vke";
+ moduleBuffer += "txu61Hjcatwc9Fc/4ccDOYAH6tzEDpVQrZfjgTCQnLQzVfm5BqLhwZvIc7iJazIBGQK+H/4AF7gh0O605wgA0fB8HgfuVtq8ONcJ";
+ moduleBuffer += "6b9UGAFV48+HC7h4cHUqvE9gg9zF4ysV+6t+V/4AOYTQAgVlmcLtLIXy218K+oqr6pfU4/FqAvrKV8MrOXq3yUktIyc2BSJ/Q3EF";
+ moduleBuffer += "1QGTIhjIh9VdhPs8GvAqQJiioNMJXqjBcQf8kqo3qIKegF4YMeJAJBIqBLWfD6hIIv4CL+gHH4cbgwHqRnhGAAoNP5Pv8/j9uF+A";
+ moduleBuffer += "h2D0X3CvTO8uldrcDmqvIXiDW+/CqW18pKCaKnf7ARThC3pBleuqumCVVBJ6zOBLFGYZ7oJ16Fb6PBYf6GcKwFh8OjfkitCOUwaZ";
+ moduleBuffer += "EexHsA9BftScTC1JDJ28GpHXIS+D2680pR2bkPlgfiiTniLPwbwNyXsbk6ktea0Jmb8heU8T8p2taHmb0t5Xj8RFJ4DOB5IPpNEg";
+ moduleBuffer += "vQbSIpDWg7QLpP0gHQHpAkjXQboPUuMfAF8H6RmQEkEaBJIKpGKQgiCNAmkSSDNAmg/SCpDWg7QHpO9AOgXSdZDugsQ4GYc9BVIP";
+ moduleBuffer += "kDJA4oMkB2kISGaQvCAFQartzZYO/Yi2TmrOQD5VNTCBQmhaxkACOzGtcs0c5M2E9UP7E+I/Z2PQGm46TonCfBr+JQaNAyl8Kgat";
+ moduleBuffer += "PKbjzjS8PQYFKqfwVyQd0nE3Gj4UdR3iZ6JwOg0fw9A4kMJwG5XWUbhLFE6iYWjn6hWFoc8a1AGQrlplsz10CslgeM1IabBRhudK";
+ moduleBuffer += "3QEuDcRpWi0zANRaeNVKaAt+mj4GNwpSi/jpKWkZMAOMmMJEu9iRmgA8S6potDNeUhGuUpYoxYGQz73lOikhfPtUKxO4KwGnq8dM";
+ moduleBuffer += "A6U4V8sGJMgj8tFUkOrFpZRVWBnPgEa7cjqOsBG0OYPsKPTVqb3P/HdWp/Y/U311agL84wmzxXJmDcR+xF0JPrMRNiQh+VGvs/j0";
+ moduleBuffer += "Lhflbbj7DBrzLiTp/on0c1rou/5nUawFuO0cXElI4aEkv6bjrjQMbSx9onALGt4Z9bwfSN5Pxz1o+EcMhQ6j4zY0/A3Zb+kY0g7Q";
+ moduleBuffer += "2ou2VWCYvmwT+J+VWQ+LiYe7vcYkDYb/t6+PxSRvrIgZ8FtFzMA6T6Y29U4v0JlwFBvt5XOofL3I76Nw7yjcJwr3jcLQztGIhhOi";
+ moduleBuffer += "cGIUhju+t6RhVRRWR2Ft1P26KJwXhfNJTOsPxE+hXFADHeOvZdGPPyPem0JNKNNwAg2LSP9nOu5ZC32o/HxVvBJYR5WWLCQfEGeO";
+ moduleBuffer += "OkndDimY2r5sQY2UlTCiJ3hsJvpGnj4juX1nvwvIHgtlZBIN9ycxGG9XzQ3SrkP7bc1sqvOw8iE/kb0X0Or8mRjSMSm8guz7CgNc";
+ moduleBuffer += "J1A1EQonAXJ+QWPswl+QDKHsMrB/BMhzGFZ97MT1GUnlG9QLAEDd5tkssGHYnIyo/NAWKrBZbAFhNXsYMTCpHIMJ3Z6gxQqe5K+0";
+ moduleBuffer += "jHkCaFyr9yGzDhzrV4pFGKYFPPfmL8geUpuBTpkXUUjR5mR/zkbxbrhw8UdWFhH9BI5DwXjciNtCcJyOo5gifqYhGKj6hHngOVAe";
+ moduleBuffer += "bAHHmtlp/e8i72DYmYvIscQdg8YLte0fUXAJ+UcwG9ZU5AoUC8YKB93gi5NJrylLMED0Vkh/hy8hXnYOg9/MPXR0J9b4j/qQqhdi";
+ moduleBuffer += "MNocsW2T3gjGloDWmForHGszpR6j3skkR7akiYSMlAa0N70ZNjDcpQZOtQHN7cnVoz9gIk4GiHIlOWG54JctvhxHBPusS86QKDRM";
+ moduleBuffer += "IaVFd/81jhgRkvbmygsZvyILqgUPwGrzuLJAp4IGOjgYDzwQ0gBoqm5PFtCiUbwYFAwHVBGaGwiR1ULTVcHpIKHIanCjmngB3+Mt";
+ moduleBuffer += "5cFenMW0gRKC86AOA6VMM3S/gNYGwoYb9OHqgBP0IzVZqnzQ7J6wn4nsB0xz0G2sNPjCzAI1Vy7IIu2/1F5MOBMai8Gb+Eod+BY/";
+ moduleBuffer += "aDGnzYE7S6nsNndle1X/0HzcwETBT5lcpRjWQ9CtpywyfKDlwmaHmeBVxCgSQYWh0hJmeT9ZFlitxEfiWcy8SD74QD9TLc9GO3/j";
+ moduleBuffer += "VA1Do7ENTenKgYROtPvJpzL5HpfL487V0G54SFGom2jFQe0psjmdmlK3kSwNlU9IPa+KmZoIE5GztKoS+jH9OM60BgJef1ZSkslD";
+ moduleBuffer += "iLukSlLp5gYPs/sTcH8CelYCeSegp0WwH5HBY6HW1pOUNhxS64JSEXK6zgTmHv4J9MBkNnkRRj6ArFwJiDMM0nyQ1oF0GqS4K3HY";
+ moduleBuffer += "IJCGgfQiSNwZp3bCiNKrwO9jIDW8GodlXI02JfwbNgK+DBAbwUHSq+8qCkO8kaQPOwvW/bc4rAiylXZEVM0Vp0GJZtb5X2cnN3+r";
+ moduleBuffer += "zk7+8xoldisxgGxAKhFhlzJTyfBmRNgpJBcIJh35HQXv6xSDDF1Gp8cPg1kCfc/jAP3bBzuUHzAcQK6VtWXACTO5z+P14qZcP9EL";
+ moduleBuffer += "gTbT8xoyeCdeg4oL9/NzsHW6/a+3zuvXqreO1meD5g4P028FpXQQwbuorQWpXW/bXY97SCjEJz/8F1xHw//3a8xP+Z9T0q7riJJ+";
+ moduleBuffer += "JNXYtbX0/UaP04ls/f4kQ8CH40mQW4ISPbhRI8ieCIYzvfvAjVlN/gACUEW+EUeEq0tq8KRVs4e3290b1c02vfvUanw7bMTN6oHs";
+ moduleBuffer += "KPxqFKYC2a3DqkL7vYehfQ/LyaEHNRzcDNVrDO2QvjXq2jYMRVTfEXUeml2CQEDrychkxLQ0oVEbwKfDALrDhk2+hUxrs26h4RE1";
+ moduleBuffer += "HToM/F4Rdc3s9OgJex1yoh226xaaiqOuV5k5h2FnbqGpUOoaKgHQ6G7HYQ3IciH+pEAxfYnfbjxMWAgRg6ICpbn0XtwddJG3+Gz6";
+ moduleBuffer += "/6+9KwGLqur799xtFgaGIRbZZDRUkG02ZobFNTQxUgtRUxQGZjASGGKG0NQaFLNySys1tbQyV1wqszLUFkQtFSutNFyzt12trCxZ";
+ moduleBuffer += "vv85995hIKvved73eb7ne553fH5efvee/Z7lf87/f8+pcEsORQqvs8xLBM8SA5EOGhX4rLRVlBb/h/aXI2dXGfQmcXFCXJeff12Y";
+ moduleBuffer += "Hn8nF96rlHfpWoj74MJOzv4uqMIljjfodpZgRazP1FVXTWah0hS0EbcnXAOLU4wl+iKH3lFscRQb7VaHVVfkKDJa9Q6H1aA3m2w6";
+ moduleBuffer += "m81YbLNYLH+7lVAOpGEk1Wki9B8I29sONkHYd/jU+38/7M5Wzv4RSM7Nltr4IZ82dBjwPuADKU54RZWuFHtZOQmJdLzCUoN066b9";
+ moduleBuffer += "WyXZQHXgAGEj1QRteWlFAbYSwGvy1HSIH/d1m1hhbPgr75md3m3TO717/W9nBVXXEDKQC1thek3XK9x4huE1BPmTWUGxVzELkgVR";
+ moduleBuffer += "7Xa543K473W63CB3e1W5FYJm1PeWjxeboN4Vt9QU9Ls2ux2rEfEyP0QgMSJ7SMK8FKgdWwQRVa+2srTSISbfJqh8tQ6i8+00eakh";
+ moduleBuffer += "23eSzYlJaKIg76yaUeryZd4/SKTkMwQcYJKzAoSoEq9qFrctlyj3lDvspdXlPs/KnM5KLdFVCKHh+Muwnak2zpE8NRlmZ+VlWPrA";
+ moduleBuffer += "7uJdWIWslTJFbHHuJVrkLlubdxre+ypS8LzNrnVWu4kGX/ugo8pZ4fSmywXyDLwVxzS8/3t1hUvUL5M4fFJ7P9YyQ3kJamaSAGJ4";
+ moduleBuffer += "QqQiUdGsLap2zXB4Nc1CMvE9u6hrLsa65iQ7UTVrSeaceCEHa5dxYOW2ihnkttfUrkTUPdtE3TM8hbojWbx0vrfSTkW0jy3InzfP";
+ moduleBuffer += "xOFBQeA/y4lOmuiTBKW0EyulBf1Rta9qWrg1WtxUTOrzjuCxBaQQSuwXMY4CsHWfb7vH6kHRtOQOeCTtK+sdD5upruEeB9wG3YOz";
+ moduleBuffer += "XNBkxTldok4r3tsGX2wXxrHt7aJaimRFS3oNoTy8m6SILR/6onbBtOhMu2DKJMnCUlfT2i6Mm8XiErFvHj7sNoZ/1I3jM5CxWvMk";
+ moduleBuffer += "4BPAp5SgAiXLQ5Rw5vFpSlB1DnVOz7TPqNAOqZgx8L/GIf81DvnfGId0tnNXNRmSSqrLJFORILGuYdwicuk03xCq0wwkRIRafIbd";
+ moduleBuffer += "4oUUqyhjSGYhuO4rxfDCxGcBYpjBYp2PFO9hN6FiuH7i35LJiJ8Yh+lGIJUFyANMBdQA5gNWAeoBbwIOAloAXwN+BshbA6loQCIg";
+ moduleBuffer += "HXAnwAXYCmgEfA74CnAV8AdA2RZI9QKkA0YA8gClgPsBCwGrAFsAbwNOAs4DfgUw0OYDAOHtgf9vzG88HYHUo4CVgM2ANwAHAacA";
+ moduleBuffer += "3wJ+BXR04IVYDczlNTBH11B6QAZgBGAswAGoAcwDrAZsBLwC2AN4D3AMcApwFdAKkCMIC9AboANkAu4ATAGUAtyAWsBCwHLAaoDU";
+ moduleBuffer += "0bf49KNnKEGtfA73s+I6gtfGE+7NYjWkHG8mW66EZ7j+SbLlzWTbBnCDyw+buIRRQ75+rJHya1ThEeI89oGNEMttbjJbIsfG/PN+";
+ moduleBuffer += "7DX3OiqIZgh6aUdV2QxylIkbm21I69ad6SgpFxTMwzkNqSkPiQcQSKmSJO4/S6XQN5WBcAFSrc6r14C5VYq9dEYBmd+RcJ+GcHFr";
+ moduleBuffer += "zBFrlMRHifwd50+PYIOE2iv18yYNKU+6DEWOYu7bb//BWvHDio2nr/0+6BtmdA8KDXw6WfHMOabNGqJOueS+9ftfmj+Wt7CNp3ce";
+ moduleBuffer += "bQh/2LiB6RvzzShIO5qVvHLS/I/3Va099dn8lJCgpjFnp1VWjGxWf/b0yYr7X+m7s6RpW6w5JHrix0MzA8Z2FL/tyjsSduV3x09x";
+ moduleBuffer += "DXm/HWzxtPxQce3YlZaC33I5qku2SsrcBruDvDjcx81IsUMX7qy4qbxvTwahyK0dqNVRZbyGLP8+ILaGmzourah2EdeU133N37jH";
+ moduleBuffer += "X6Zj55Lb6X/ptqi6RFxYgdd055AJBbnZtxdkZd+ePTbXJ66Zon+Jvyu+G4nfEFuxxPHREOa/ygtkPLn4XkfxNIe9wFVdFCdmLz65";
+ moduleBuffer += "1FXgEk6UksJ58O/KxDccmCvECdn2DcYbzoxu6fdDXbmqG/fvxvEXvrG+ZY8EwwSJ14n5lXgJ6loeOeKGZBJXdws/QOT4d25YxACm";
+ moduleBuffer += "OeJf79w40o75+02rDoa1V25tuXGC8NEtDftaX67p+PVGC+GqT6YNubJ03D5N6yXCM1sffmJbzPFFia3fEz53VZ4+Lv+uj4e3XiP8";
+ moduleBuffer += "tcMbti2pv/9ZW2sr4R8suHxrTe81385sZclBpeW50wcvzT6yfXmrivDxx3ZPnhGUOefl1mDCLeNu3Gl+KvDdD1qjCB+9coTV+e3y";
+ moduleBuffer += "J/7VGkv4wfQ5fT6Y5/6Uaksk/NqK/SuONj+yLrLNRPiX9f3DVipNV1LbMglf/Epq/xtTra+MacsiPGNQ00fnThyqm9aWQ/ieox9H";
+ moduleBuffer += "9Ms6c2Be21jClx/u89axtdOeXNeWT3jdS0WzY8vqP9/TZif819MF/hNKtr54sq2M8L4/vnf2yesXf77S5ib8DU/Hlk3bXntN2T6L";
+ moduleBuffer += "8AUjZ5VxBUXz+7TXEZ6re8dU2NFweFD7QsLz+u5ZunDeqOUT258ifO9D8ZWxNb+fc7evIXzJG1++sXbvuQ1L2tcT/tRs96PNBZuv";
+ moduleBuffer += "b26vJ7x59aYlT1ZmvdnYvovwaSHq/devyh8/195A+G693pHXZ+fR39sbCa9/eObxpouDngnuOEI4n5HQvzEw/1JyxwnCP17mKn0m";
+ moduleBuffer += "NnZLdkcL4QHvU3N/em1+W3HHJcK/i9Ass8u/bHio43vCjzw6xqk40rDwmY5rhCc6wi9OCHv9w1c7WjuoIbuXw2DCDV5zrIOlhjRi";
+ moduleBuffer += "sisk8KUTX39NtibGv6L6A99N38aIZybWKZ66Pj1tUG1PYjxJUa+GyA7PPLbibatoLF6Z/+3MY4aHluQSQyKKutfzzdb11o9OlhPj";
+ moduleBuffer += "TYoa1ntVWN9+o9c+Sgw/KKrfjcYT+heKf3iBfNxEUZu2HVpodZzduZeMBzC3cGyNWCw/OPczYjhEUaui7x/6e/Tkxp+IgQZFTfgq";
+ moduleBuffer += "ckNi6Z3L/JHwWdG3iyoj7JfR6X5I+BR4ZM2VVc+8WP7CUOQmfN602btmTlf8lI9mEV7T48yM5y+N3VWD6gh/98DqScsemfTIMrSQ";
+ moduleBuffer += "8AGTlx86kJt6qB49JeR33Yo/8nf1f/ogWkP4FwXrntm7dvjZC2g94X0Wpn1uenf1S62onvD8tStfrFrV9GsovYvwY/u+GZu7v+V1";
+ moduleBuffer += "Pd1A+MUhvX8K+7n10Ry6kfCXpud/vPqY9kgJfYTwc7m9Zv48MXRlLX2C8HRdzIqW19ZdXE23EL781S/ycz88tWk3fYnwzKyN60/N";
+ moduleBuffer += "Wn3jOP094YFZ6zfm5Dzw1nf0NcIj1gzefWXx1gU800p4Yt34DYFXYo5rGZZMQ+P1S7/5cn3g6gyGCBjUs6o1z99YHfhVHhMsPL+W";
+ moduleBuffer += "UXRKG1dfyUQRPq9544NT7sjyLGBiCU86U88MvtRr/0tMIuFLOrKmpKyZuvhtxkT4kDcWrnk2zHjiNJNJ+ObIL3Yt+zz8uV+YLMJP";
+ moduleBuffer += "1ZzbU7F/+XdqNofwvx9hp1aVuqqJFHHcX0PkfqwLwHK7xDdTQs8q8S3d+NZufDv19yOONkEaXjO1cXptZqbWrI/38b+jW3hKcWtw";
+ moduleBuffer += "ifuL83CJD+7Gt3XzX/+X6emFh24Y68gqVZxvGlrQP+TBJ+mSnzOoa7xnRY5fApbTcev6moH6BMPVukcQNXiomvIsX0lRF37hqPdX";
+ moduleBuffer += "ZUj+jHTX/Jrprvkr68a/oAVJT+JXgI/04UdEftN6IJqof6bWEAn0rb8sKyiqSbrJIBEV9dP187pv+Ev3lbYqt6tTLoKuS/KzV/ST";
+ moduleBuffer += "rEtOShhlG1VaUaL7B6mq3DZdMC2WwnhIPARGfAveo9TrAzVEX/EqXPG95GSd3mA0pZot1jRbUbHdUTLUCeJ7DZmDCH/eWe0mTFr4";
+ moduleBuffer += "LCJ3xaOjfoNw8FxMelhOFgO6OgrWaIhuVErDJOkcSUFV0v0cSW0h/o5XPEeyq7oD3i2EhWcGRK+hFdfjiHG2K53MNqAYsG0GMejC";
+ moduleBuffer += "XHAId2BcAb84zes1Gu8nt9La2beAAQN6DYBJDsh7PtJ0YZmjxK3VVmGNWqFY+EqtFt9N1yqF+5DJLzTCzOVnuOJ5qjJIQ+pgV4/Y";
+ moduleBuffer += "h+gV10vRT2KQcM0U/Uh+sSOpzO6Fe7T4tzQn/A6Ae+AfcDz4N1ObCP8pE5WztbPj4uA62VulYYaFqzXpx7YGCbMqvC0ATqtuuk6n";
+ moduleBuffer += "0+sMOqPOpEvVmXUWnVWXptfp9XqD3qg36VP1Zr1Fb9WnGXQGvcFgMBpMhlSD2WAxWA1pRp1RbzQYjUaTMdVoNlqMVmOaSWfSmwwm";
+ moduleBuffer += "o8lkSjWZTRaT1ZSWqkvVpxpSjamm1NRUc6ol1ZqaZtaZ9WaD2Wg2mVPNZrPFbDWnWXQWvcVgMVpMllSL2WKxWC1pVp1VbzVYjVaT";
+ moduleBuffer += "NdVqtlqsVmtaGiQxDaJPg6DTwFsavvVv/roUl9DyS2xlLoe7Cn/fe/oWodw2KoT1H4nvVAi6/ypbBV4Ud0PDFqudVEGFJ/hDPuFI";
+ moduleBuffer += "L7glftLQI1ioi/3h2tsbBl5yFkLIDxbqhvRc8C88IzG58LeIgvkitAFMqFngFq+jLIMrWa8VVtgFr2K80G14P9kkdZ6YUeB9kMha";
+ moduleBuffer += "WRenOyEcPN4dgGuCT9/R9cAo7zFQPgvIVc5yMa3yEKEP6B0i5LfzK1/Re5eTxXx9UlQW+MEm5Oj/+EcN2VMPwquR/tsf0+3H4h81";
+ moduleBuffer += "5Dr2+m7opOTk5MlFjqmlFViVht9zHP4jXlguweWO10kKC2eHCv3cAriSLQFChXqwNlQoe1JcYiUTbdds5Lsc75cqGdpSt/A9tavU";
+ moduleBuffer += "7tBq44R3Eo/fTyH1NoSD18c+CBXGwB/hitfTfocr7xMPDqFLLyt49/qPCxPqmuS+07jUXSWNnRPChHbyIyWY/nvdiEeKpVRKW7AI";
+ moduleBuffer += "prCzwD02SMP1xezDsYyA6x/FI8QgluZkMlouV9BKzo8OYAORhg7ibokKRiF0GB3uH8VFy2NQLLqPnUbvYF6mG+hm+kP6hOqk4hP6";
+ moduleBuffer += "U/o0Os9doL9iv6Yva6+y1+k/2BtI1S9j4KjRS557bu3MBU8uf+GVPY+8zMsU5gEDx/18/EM2uIfZMm78w1u279ibej5o/mOLn2P9";
+ moduleBuffer += "AzRB8XpT+rDh2SNHjbY7Hl+4aMnud95rbPrgk/zdr0dGyeRKv+Awc1r6ps2fnVJYnli6SabMGFhSumSZxlmw//KViUXXWjtyx65a";
+ moduleBuffer += "nZzSLy7v2XXPv7h+46ZtexoaeT9VSHT6oGF3bdh45Og6WXhE7z4DB331/ZWOA02s9tY+feOM1vQRI3PG5OaNmzAxf0phsaNkmmv6";
+ moduleBuffer += "7IcfX79lx863j2/fUeE8c/bJKb1ncgybxJQwKCXZMyea0auj2FhFTy6By2ID+nu28LFsLBsnN/mNYkyqWosiVCnvkTEsjSmWK3Sh";
+ moduleBuffer += "XC8mkkODrewdXAqrlClkg7X9WJXCzKRzETJWJRuTbTH6G2XJciXfl4mW057jdwcylkR5/9CIvlHBYYpREFWWf7hMyY+Q91NU+w0d";
+ moduleBuffer += "2J/P4JT8XTziAhnO7x45HV3Uc4Rc6dkwpfcwPyXvf0s6r+SDoxLZMM+bmfZc1QiFcviwyBHyXP9smdKzu3eAkh+ujGZuz7YwARBr";
+ moduleBuffer += "mkxZaw6XZTDReUht8J+7uqTaz9P4eE6xf50uMFS5ZDU35/ZVb6Y/0jQnTdafzef7Kocr47hbaneme5omOe5g02SawbjmrLgur/sk";
+ moduleBuffer += "XvnCV7VGNYrmA1h57cLH2GmcP6OQBS4p9PzB1+7KuV3hzvT8qnTJK0OGPxisClaNV4R75tfezswbqg6pGxPD856TCdzAXqgyiYlg";
+ moduleBuffer += "6drBMZp0DtUe7+/5JIFFtec9v8XnsEqWnqvJyhngeTeTR2weF2miawMSWbtqnNKz3Rrtn8gqZHQA71k19zNWw/gzNWwBr2KRWsVa";
+ moduleBuffer += "Ib9x8kSWHlg7VhXNKDmrLIpXyDx/1PEUYjiO52kZL5cpNMoov3BVhH9ggErNBjJBQbcoQlEY2wOFMxGySBRFx4RqmQQmyS8Z6Vg9";
+ moduleBuffer += "bUAb2c30Fnar/A/6BtdGtzMdim3TZyxY9IJu/IQFC5+IOhOgviPnRmtyyqD8yQUX6xYtXrps88t73jrQdPj9s5e+7KBY0gAs6RkD";
+ moduleBuffer += "skdOrlsMD3fteavp/WPNl76kvM0jA7ePKXZH3dLVzx4+1uyviYdb2eMn5U8psDsWLd0MXg4cPnfpy6v+mmHZdoen7pWGfftPfnr1";
+ moduleBuffer += "x7nzFqzfsG//gYPNpz8fsXLv0aZjzdmjRo+/Z0rBY4uXvLz79f3vNB38VBMaNin/19/aOzzl9589FxBT4YyKLpj90PYdd77VEBrW";
+ moduleBuffer += "M2b47aNG40by0MOvHThxsuXqj79UuZa4q5f3TU7ZuOP1/QebPz23ihq8YqVuScyx5o9OHOsYNXriJJlcHdgv5fKVCqdlwKChw55Y";
+ moduleBuffer += "mju1+tDh4x9+duqr9g5KW9B7zjl2TpY8kuU1tfUBnq1cjLw2igmXIzaFNbEyBsl4mUY5Rh0ky5MxbJRSwcgZGYPHBhXLMX48Cgjh";
+ moduleBuffer += "RskiZeNlNB+mGsPexiRBj6bh1ap0NrpPgbacva+P5xA3ZycTwc9pY+6RhSp6KHC1uw+aSAR/jyyBG65MZKFyMHq/RDaC92M89fAo";
+ moduleBuffer += "Re+5Js9k1MxAzipP4OZ0aHrIUzRJTC91L7VnITtnVahfyKNPcSlcBlS0HgrPvt5uleeTiNpAznNB8dNzjEVRmx/seUPuOROSwSh5";
+ moduleBuffer += "q3y4XMW7/XoyE9l7FJ65PaKUoYoc1vM4v3W9KozVP8/Wnu4rU3GcZ0Ng7S8ypO3Pw9NFrGcfE8mo/f/U0YvXAmxaIPT1jmhBJsfz";
+ moduleBuffer += "szgfju14Q7vPyYpKp0oy7KZoYdzZggQZ+c/zowqnMAe5yQwVf/KCJ9emm0yrBFX+QK3O5nbjaS+24LSXPoCH0KIZxACC6t1T0B7g";
+ moduleBuffer += "/WXmslpqKVdITb5lHRUUpo1RaQtjriRqE/rr1iU4NxQm0pvOJ/a8cT6Jatean+soNLehC2ak7GWJ9b9g2RpgS0vpcSFNF3Vh5M89";
+ moduleBuffer += "L4wabHr+7p62C7lX77ONHe28MPbZBlse1Wwb5/jw+XHU6V7jqfPPT9h+sdfE7y9dmHT8a1u+lrqcfxU9PJmqhCldEggoNPxDI/x0";
+ moduleBuffer += "IYHIARWLphF7K+oZOckvXaFAPVikgGGTS2AyFP17IK0FPLByqEAyJR2N0rF3Vg5OlHQEouk0GF9ZLMygnjSD/DDnwAEKpkNh9E3H";
+ moduleBuffer += "cYFrGaOke6IM8KsCn3EQPITKcFCVZbQfCRXSgBiRR9FpdGcs0WgEYhEEjuToLkTLVPIiRCv8ZNl0JJG2LAEIYuT8UKwClbCIh6Do";
+ moduleBuffer += "cJplAll/+JNHagTlz0Yx0XRPejCNZHJE+ykQNCNUTfdGDzAsrUA88zkkAFIrwyHScl5JI12MntUpWaavQkVrWZq3IpIIaC80vZJB";
+ moduleBuffer += "/kiGI2PopsEUeq8XxSxChVqKL6UpFim19BiawrIHCqc5tIKOCPJHfeXhfgglMjqEC4wGieM2HsuBKshXCjJC9mmag3z3p+XoMi42";
+ moduleBuffer += "BBU2MBDvSIIuoqc5ioFcsnEMi16COIZwFD2aHe6nZ2ciszoecqpk9BCuDA1gYjkkH4hUtEkBZcbSqIChWSgW9Cxi5CGkbIX3ECBj";
+ moduleBuffer += "uNsQFBGuDgwLmQug8+Q4k2G4pIX7UFe+gxTzcI3ET+HOfaSMHKQmII5SIPoXpGRZ9ATEzyKtMo4n746nmWR4BZQMigndHQpJgzAe";
+ moduleBuffer += "5BkcJpTzCBwRouB9mziOCYPc8mpKxTAU9DkUGsTeBbUJ8p5Mh1Ecw8vltKwn+xRDWViDHAWgUA6pIWQNCZWzo3XgZwBLse0QX7mM";
+ moduleBuffer += "KvRcpYY0vAeiNGKouUhRWeW0Vxc7qly0vAxmTtW2qQ7E3l3tclMqeIT1/Q57UtEMhiOmen30yVZTsi5JNI/VxnlN97QwszUl6XVJ";
+ moduleBuffer += "Bms8X2MrA+e8LtlgSNapfG2cgwQbZ/Bos9ptluIiazyVrRY+0ikocdjc1VUOF5ugFlZBHElTy5xFMH9MkLug50pyTHcnqKscJY4q";
+ moduleBuffer += "PMdJwgafrgQl+UaGrHX8D3ZPlcE=";
+ function getModule() {
+ let module3 = pako.inflate(new Uint8Array(Buffer.from(moduleBuffer, "base64")));
+ return Uint8Array.from(module3);
+ }
+ var wasm;
+ var cachedTextDecoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }) : { decode: () => {
+ throw Error("TextDecoder not available");
+ } };
+ if (typeof TextDecoder !== "undefined") {
+ cachedTextDecoder.decode();
+ }
+ var cachedUint8ArrayMemory0 = null;
+ function getUint8ArrayMemory0() {
+ if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
+ cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
+ }
+ return cachedUint8ArrayMemory0;
+ }
+ function getStringFromWasm0(ptr, len) {
+ ptr = ptr >>> 0;
+ return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
+ }
+ var WASM_VECTOR_LEN = 0;
+ var cachedTextEncoder = typeof TextEncoder !== "undefined" ? new TextEncoder("utf-8") : { encode: () => {
+ throw Error("TextEncoder not available");
+ } };
+ var encodeString = typeof cachedTextEncoder.encodeInto === "function" ? function(arg, view) {
+ return cachedTextEncoder.encodeInto(arg, view);
+ } : function(arg, view) {
+ const buf = cachedTextEncoder.encode(arg);
+ view.set(buf);
+ return {
+ read: arg.length,
+ written: buf.length
+ };
+ };
+ function passStringToWasm0(arg, malloc, realloc) {
+ if (realloc === void 0) {
+ const buf = cachedTextEncoder.encode(arg);
+ const ptr2 = malloc(buf.length, 1) >>> 0;
+ getUint8ArrayMemory0().subarray(ptr2, ptr2 + buf.length).set(buf);
+ WASM_VECTOR_LEN = buf.length;
+ return ptr2;
+ }
+ let len = arg.length;
+ let ptr = malloc(len, 1) >>> 0;
+ const mem = getUint8ArrayMemory0();
+ let offset = 0;
+ for (; offset < len; offset++) {
+ const code = arg.charCodeAt(offset);
+ if (code > 127)
+ break;
+ mem[ptr + offset] = code;
+ }
+ if (offset !== len) {
+ if (offset !== 0) {
+ arg = arg.slice(offset);
+ }
+ ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
+ const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
+ const ret = encodeString(arg, view);
+ offset += ret.written;
+ ptr = realloc(ptr, len, offset, 1) >>> 0;
+ }
+ WASM_VECTOR_LEN = offset;
+ return ptr;
+ }
+ function isLikeNone(x) {
+ return x === void 0 || x === null;
+ }
+ var cachedDataViewMemory0 = null;
+ function getDataViewMemory0() {
+ if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || cachedDataViewMemory0.buffer.detached === void 0 && cachedDataViewMemory0.buffer !== wasm.memory.buffer) {
+ cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
+ }
+ return cachedDataViewMemory0;
+ }
+ function debugString(val) {
+ const type = typeof val;
+ if (type == "number" || type == "boolean" || val == null) {
+ return `${val}`;
+ }
+ if (type == "string") {
+ return `"${val}"`;
+ }
+ if (type == "symbol") {
+ const description = val.description;
+ if (description == null) {
+ return "Symbol";
+ } else {
+ return `Symbol(${description})`;
+ }
+ }
+ if (type == "function") {
+ const name = val.name;
+ if (typeof name == "string" && name.length > 0) {
+ return `Function(${name})`;
+ } else {
+ return "Function";
+ }
+ }
+ if (Array.isArray(val)) {
+ const length = val.length;
+ let debug = "[";
+ if (length > 0) {
+ debug += debugString(val[0]);
+ }
+ for (let i = 1; i < length; i++) {
+ debug += ", " + debugString(val[i]);
+ }
+ debug += "]";
+ return debug;
+ }
+ const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
+ let className;
+ if (builtInMatches.length > 1) {
+ className = builtInMatches[1];
+ } else {
+ return toString.call(val);
+ }
+ if (className == "Object") {
+ try {
+ return "Object(" + JSON.stringify(val) + ")";
+ } catch (_) {
+ return "Object";
+ }
+ }
+ if (val instanceof Error) {
+ return `${val.name}: ${val.message}
+${val.stack}`;
+ }
+ return className;
+ }
+ function addToExternrefTable0(obj) {
+ const idx = wasm.__externref_table_alloc();
+ wasm.__wbindgen_export_2.set(idx, obj);
+ return idx;
+ }
+ function passArrayJsValueToWasm0(array, malloc) {
+ const ptr = malloc(array.length * 4, 4) >>> 0;
+ const mem = getDataViewMemory0();
+ for (let i = 0; i < array.length; i++) {
+ mem.setUint32(ptr + 4 * i, addToExternrefTable0(array[i]), true);
+ }
+ WASM_VECTOR_LEN = array.length;
+ return ptr;
+ }
+ function takeFromExternrefTable0(idx) {
+ const value = wasm.__wbindgen_export_2.get(idx);
+ wasm.__externref_table_dealloc(idx);
+ return value;
+ }
+ function ecdsaCombineAndVerifyWithDerivedKey(variant, pre_signature, signature_shares, message_hash, id, public_keys) {
+ const ptr0 = passArrayJsValueToWasm0(signature_shares, wasm.__wbindgen_malloc);
+ const len0 = WASM_VECTOR_LEN;
+ const ptr1 = passArrayJsValueToWasm0(public_keys, wasm.__wbindgen_malloc);
+ const len1 = WASM_VECTOR_LEN;
+ const ret = wasm.ecdsaCombineAndVerifyWithDerivedKey(variant, pre_signature, ptr0, len0, message_hash, id, ptr1, len1);
+ if (ret[2]) {
+ throw takeFromExternrefTable0(ret[1]);
+ }
+ return takeFromExternrefTable0(ret[0]);
+ }
+ function ecdsaCombineAndVerify(variant, pre_signature, signature_shares, message_hash, public_key) {
+ const ptr0 = passArrayJsValueToWasm0(signature_shares, wasm.__wbindgen_malloc);
+ const len0 = WASM_VECTOR_LEN;
+ const ret = wasm.ecdsaCombineAndVerify(variant, pre_signature, ptr0, len0, message_hash, public_key);
+ if (ret[2]) {
+ throw takeFromExternrefTable0(ret[1]);
+ }
+ return takeFromExternrefTable0(ret[0]);
+ }
+ function ecdsaCombine(variant, presignature, signature_shares) {
+ const ptr0 = passArrayJsValueToWasm0(signature_shares, wasm.__wbindgen_malloc);
+ const len0 = WASM_VECTOR_LEN;
+ const ret = wasm.ecdsaCombine(variant, presignature, ptr0, len0);
+ if (ret[2]) {
+ throw takeFromExternrefTable0(ret[1]);
+ }
+ return takeFromExternrefTable0(ret[0]);
+ }
+ function ecdsaVerify(variant, message_hash, public_key, signature) {
+ const ret = wasm.ecdsaVerify(variant, message_hash, public_key, signature);
+ if (ret[1]) {
+ throw takeFromExternrefTable0(ret[0]);
+ }
+ }
+ function ecdsaDeriveKey(variant, id, public_keys) {
+ const ptr0 = passArrayJsValueToWasm0(public_keys, wasm.__wbindgen_malloc);
+ const len0 = WASM_VECTOR_LEN;
+ const ret = wasm.ecdsaDeriveKey(variant, id, ptr0, len0);
+ if (ret[2]) {
+ throw takeFromExternrefTable0(ret[1]);
+ }
+ return takeFromExternrefTable0(ret[0]);
+ }
+ function passArray8ToWasm0(arg, malloc) {
+ const ptr = malloc(arg.length * 1, 1) >>> 0;
+ getUint8ArrayMemory0().set(arg, ptr / 1);
+ WASM_VECTOR_LEN = arg.length;
+ return ptr;
+ }
+ function sevSnpGetVcekUrl(attestation_report) {
+ let deferred3_0;
+ let deferred3_1;
+ try {
+ const ptr0 = passArray8ToWasm0(attestation_report, wasm.__wbindgen_malloc);
+ const len0 = WASM_VECTOR_LEN;
+ const ret = wasm.sevSnpGetVcekUrl(ptr0, len0);
+ var ptr2 = ret[0];
+ var len2 = ret[1];
+ if (ret[3]) {
+ ptr2 = 0;
+ len2 = 0;
+ throw takeFromExternrefTable0(ret[2]);
+ }
+ deferred3_0 = ptr2;
+ deferred3_1 = len2;
+ return getStringFromWasm0(ptr2, len2);
+ } finally {
+ wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
+ }
+ }
+ function sevSnpVerify(attestation_report, attestation_data, signatures, challenge, vcek_certificate) {
+ const ptr0 = passArray8ToWasm0(attestation_report, wasm.__wbindgen_malloc);
+ const len0 = WASM_VECTOR_LEN;
+ const ptr1 = passArrayJsValueToWasm0(signatures, wasm.__wbindgen_malloc);
+ const len1 = WASM_VECTOR_LEN;
+ const ptr2 = passArray8ToWasm0(challenge, wasm.__wbindgen_malloc);
+ const len2 = WASM_VECTOR_LEN;
+ const ptr3 = passArray8ToWasm0(vcek_certificate, wasm.__wbindgen_malloc);
+ const len3 = WASM_VECTOR_LEN;
+ const ret = wasm.sevSnpVerify(ptr0, len0, attestation_data, ptr1, len1, ptr2, len2, ptr3, len3);
+ if (ret[1]) {
+ throw takeFromExternrefTable0(ret[0]);
+ }
+ }
+ function blsCombine(variant, signature_shares) {
+ const ptr0 = passArrayJsValueToWasm0(signature_shares, wasm.__wbindgen_malloc);
+ const len0 = WASM_VECTOR_LEN;
+ const ret = wasm.blsCombine(variant, ptr0, len0);
+ if (ret[2]) {
+ throw takeFromExternrefTable0(ret[1]);
+ }
+ return takeFromExternrefTable0(ret[0]);
+ }
+ function blsVerify(variant, public_key, message, signature) {
+ const ret = wasm.blsVerify(variant, public_key, message, signature);
+ if (ret[1]) {
+ throw takeFromExternrefTable0(ret[0]);
+ }
+ }
+ function blsEncrypt(variant, encryption_key, message, identity) {
+ const ret = wasm.blsEncrypt(variant, encryption_key, message, identity);
+ if (ret[2]) {
+ throw takeFromExternrefTable0(ret[1]);
+ }
+ return takeFromExternrefTable0(ret[0]);
+ }
+ function blsDecrypt(variant, ciphertext, decryption_key) {
+ const ret = wasm.blsDecrypt(variant, ciphertext, decryption_key);
+ if (ret[2]) {
+ throw takeFromExternrefTable0(ret[1]);
+ }
+ return takeFromExternrefTable0(ret[0]);
+ }
+ function greet() {
+ let deferred1_0;
+ let deferred1_1;
+ try {
+ const ret = wasm.greet();
+ deferred1_0 = ret[0];
+ deferred1_1 = ret[1];
+ return getStringFromWasm0(ret[0], ret[1]);
+ } finally {
+ wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
+ }
+ }
+ function handleError(f, args) {
+ try {
+ return f.apply(this, args);
+ } catch (e) {
+ const idx = addToExternrefTable0(e);
+ wasm.__wbindgen_exn_store(idx);
+ }
+ }
+ async function __wbg_load(module3, imports) {
+ if (typeof Response === "function" && module3 instanceof Response) {
+ if (typeof WebAssembly.instantiateStreaming === "function") {
+ try {
+ return await WebAssembly.instantiateStreaming(module3, imports);
+ } catch (e) {
+ if (module3.headers.get("Content-Type") != "application/wasm") {
+ console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
+ } else {
+ throw e;
+ }
+ }
+ }
+ const bytes = await module3.arrayBuffer();
+ return await WebAssembly.instantiate(bytes, imports);
+ } else {
+ const instance = await WebAssembly.instantiate(module3, imports);
+ if (instance instanceof WebAssembly.Instance) {
+ return { instance, module: module3 };
+ } else {
+ return instance;
+ }
+ }
+ }
+ function __wbg_get_imports() {
+ const imports = {};
+ imports.wbg = {};
+ imports.wbg.__wbindgen_error_new = function(arg0, arg1) {
+ const ret = new Error(getStringFromWasm0(arg0, arg1));
+ return ret;
+ };
+ imports.wbg.__wbindgen_string_get = function(arg0, arg1) {
+ const obj = arg1;
+ const ret = typeof obj === "string" ? obj : void 0;
+ var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ var len1 = WASM_VECTOR_LEN;
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
+ };
+ imports.wbg.__wbindgen_is_string = function(arg0) {
+ const ret = typeof arg0 === "string";
+ return ret;
+ };
+ imports.wbg.__wbindgen_is_object = function(arg0) {
+ const val = arg0;
+ const ret = typeof val === "object" && val !== null;
+ return ret;
+ };
+ imports.wbg.__wbindgen_jsval_loose_eq = function(arg0, arg1) {
+ const ret = arg0 == arg1;
+ return ret;
+ };
+ imports.wbg.__wbindgen_boolean_get = function(arg0) {
+ const v = arg0;
+ const ret = typeof v === "boolean" ? v ? 1 : 0 : 2;
+ return ret;
+ };
+ imports.wbg.__wbindgen_number_get = function(arg0, arg1) {
+ const obj = arg1;
+ const ret = typeof obj === "number" ? obj : void 0;
+ getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
+ };
+ imports.wbg.__wbindgen_as_number = function(arg0) {
+ const ret = +arg0;
+ return ret;
+ };
+ imports.wbg.__wbg_String_b9412f8799faab3e = function(arg0, arg1) {
+ const ret = String(arg1);
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ const len1 = WASM_VECTOR_LEN;
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
+ };
+ imports.wbg.__wbindgen_number_new = function(arg0) {
+ const ret = arg0;
+ return ret;
+ };
+ imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
+ const ret = getStringFromWasm0(arg0, arg1);
+ return ret;
+ };
+ imports.wbg.__wbg_String_88810dfeb4021902 = function(arg0, arg1) {
+ const ret = String(arg1);
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ const len1 = WASM_VECTOR_LEN;
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
+ };
+ imports.wbg.__wbg_crypto_1d1f22824a6a080c = function(arg0) {
+ const ret = arg0.crypto;
+ return ret;
+ };
+ imports.wbg.__wbg_process_4a72847cc503995b = function(arg0) {
+ const ret = arg0.process;
+ return ret;
+ };
+ imports.wbg.__wbg_versions_f686565e586dd935 = function(arg0) {
+ const ret = arg0.versions;
+ return ret;
+ };
+ imports.wbg.__wbg_node_104a2ff8d6ea03a2 = function(arg0) {
+ const ret = arg0.node;
+ return ret;
+ };
+ imports.wbg.__wbg_require_cca90b1a94a0255b = function() {
+ return handleError(function() {
+ const ret = module2.require;
+ return ret;
+ }, arguments);
+ };
+ imports.wbg.__wbg_msCrypto_eb05e62b530a1508 = function(arg0) {
+ const ret = arg0.msCrypto;
+ return ret;
+ };
+ imports.wbg.__wbg_randomFillSync_5c9c955aa56b6049 = function() {
+ return handleError(function(arg0, arg1) {
+ arg0.randomFillSync(arg1);
+ }, arguments);
+ };
+ imports.wbg.__wbg_getRandomValues_3aa56aa6edec874c = function() {
+ return handleError(function(arg0, arg1) {
+ arg0.getRandomValues(arg1);
+ }, arguments);
+ };
+ imports.wbg.__wbg_length_f217bbbf7e8e4df4 = function(arg0) {
+ const ret = arg0.length;
+ return ret;
+ };
+ imports.wbg.__wbg_new_034f913e7636e987 = function() {
+ const ret = new Array();
+ return ret;
+ };
+ imports.wbg.__wbg_newnoargs_1ede4bf2ebbaaf43 = function(arg0, arg1) {
+ const ret = new Function(getStringFromWasm0(arg0, arg1));
+ return ret;
+ };
+ imports.wbg.__wbg_next_13b477da1eaa3897 = function(arg0) {
+ const ret = arg0.next;
+ return ret;
+ };
+ imports.wbg.__wbindgen_is_function = function(arg0) {
+ const ret = typeof arg0 === "function";
+ return ret;
+ };
+ imports.wbg.__wbg_value_2ab8a198c834c26a = function(arg0) {
+ const ret = arg0.value;
+ return ret;
+ };
+ imports.wbg.__wbg_iterator_695d699a44d6234c = function() {
+ const ret = Symbol.iterator;
+ return ret;
+ };
+ imports.wbg.__wbg_self_bf91bf94d9e04084 = function() {
+ return handleError(function() {
+ const ret = self.self;
+ return ret;
+ }, arguments);
+ };
+ imports.wbg.__wbg_window_52dd9f07d03fd5f8 = function() {
+ return handleError(function() {
+ const ret = window.window;
+ return ret;
+ }, arguments);
+ };
+ imports.wbg.__wbg_globalThis_05c129bf37fcf1be = function() {
+ return handleError(function() {
+ const ret = globalThis.globalThis;
+ return ret;
+ }, arguments);
+ };
+ imports.wbg.__wbg_global_3eca19bb09e9c484 = function() {
+ return handleError(function() {
+ const ret = global.global;
+ return ret;
+ }, arguments);
+ };
+ imports.wbg.__wbindgen_is_undefined = function(arg0) {
+ const ret = arg0 === void 0;
+ return ret;
+ };
+ imports.wbg.__wbg_get_5419cf6b954aa11d = function(arg0, arg1) {
+ const ret = arg0[arg1 >>> 0];
+ return ret;
+ };
+ imports.wbg.__wbg_set_425e70f7c64ac962 = function(arg0, arg1, arg2) {
+ arg0[arg1 >>> 0] = arg2;
+ };
+ imports.wbg.__wbg_from_91a67a5f04c98a54 = function(arg0) {
+ const ret = Array.from(arg0);
+ return ret;
+ };
+ imports.wbg.__wbg_isArray_6f3b47f09adb61b5 = function(arg0) {
+ const ret = Array.isArray(arg0);
+ return ret;
+ };
+ imports.wbg.__wbg_instanceof_ArrayBuffer_74945570b4a62ec7 = function(arg0) {
+ let result;
+ try {
+ result = arg0 instanceof ArrayBuffer;
+ } catch (_) {
+ result = false;
+ }
+ const ret = result;
+ return ret;
+ };
+ imports.wbg.__wbg_call_a9ef466721e824f2 = function() {
+ return handleError(function(arg0, arg1) {
+ const ret = arg0.call(arg1);
+ return ret;
+ }, arguments);
+ };
+ imports.wbg.__wbg_call_3bfa248576352471 = function() {
+ return handleError(function(arg0, arg1, arg2) {
+ const ret = arg0.call(arg1, arg2);
+ return ret;
+ }, arguments);
+ };
+ imports.wbg.__wbg_next_b06e115d1b01e10b = function() {
+ return handleError(function(arg0) {
+ const ret = arg0.next();
+ return ret;
+ }, arguments);
+ };
+ imports.wbg.__wbg_done_983b5ffcaec8c583 = function(arg0) {
+ const ret = arg0.done;
+ return ret;
+ };
+ imports.wbg.__wbg_isSafeInteger_b9dff570f01a9100 = function(arg0) {
+ const ret = Number.isSafeInteger(arg0);
+ return ret;
+ };
+ imports.wbg.__wbg_entries_c02034de337d3ee2 = function(arg0) {
+ const ret = Object.entries(arg0);
+ return ret;
+ };
+ imports.wbg.__wbg_buffer_ccaed51a635d8a2d = function(arg0) {
+ const ret = arg0.buffer;
+ return ret;
+ };
+ imports.wbg.__wbg_newwithbyteoffsetandlength_7e3eb787208af730 = function(arg0, arg1, arg2) {
+ const ret = new Uint8Array(arg0, arg1 >>> 0, arg2 >>> 0);
+ return ret;
+ };
+ imports.wbg.__wbg_new_fec2611eb9180f95 = function(arg0) {
+ const ret = new Uint8Array(arg0);
+ return ret;
+ };
+ imports.wbg.__wbg_instanceof_Uint8Array_df0761410414ef36 = function(arg0) {
+ let result;
+ try {
+ result = arg0 instanceof Uint8Array;
+ } catch (_) {
+ result = false;
+ }
+ const ret = result;
+ return ret;
+ };
+ imports.wbg.__wbg_newwithlength_76462a666eca145f = function(arg0) {
+ const ret = new Uint8Array(arg0 >>> 0);
+ return ret;
+ };
+ imports.wbg.__wbg_subarray_975a06f9dbd16995 = function(arg0, arg1, arg2) {
+ const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0);
+ return ret;
+ };
+ imports.wbg.__wbg_length_9254c4bd3b9f23c4 = function(arg0) {
+ const ret = arg0.length;
+ return ret;
+ };
+ imports.wbg.__wbg_set_ec2fcf81bc573fd9 = function(arg0, arg1, arg2) {
+ arg0.set(arg1, arg2 >>> 0);
+ };
+ imports.wbg.__wbg_get_ef828680c64da212 = function() {
+ return handleError(function(arg0, arg1) {
+ const ret = Reflect.get(arg0, arg1);
+ return ret;
+ }, arguments);
+ };
+ imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {
+ const ret = debugString(arg1);
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ const len1 = WASM_VECTOR_LEN;
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
+ };
+ imports.wbg.__wbindgen_throw = function(arg0, arg1) {
+ throw new Error(getStringFromWasm0(arg0, arg1));
+ };
+ imports.wbg.__wbindgen_memory = function() {
+ const ret = wasm.memory;
+ return ret;
+ };
+ imports.wbg.__wbindgen_init_externref_table = function() {
+ const table = wasm.__wbindgen_export_2;
+ const offset = table.grow(4);
+ table.set(0, void 0);
+ table.set(offset + 0, void 0);
+ table.set(offset + 1, null);
+ table.set(offset + 2, true);
+ table.set(offset + 3, false);
+ ;
+ };
+ return imports;
+ }
+ function __wbg_init_memory(imports, memory) {
+ }
+ function __wbg_finalize_init(instance, module3) {
+ wasm = instance.exports;
+ __wbg_init.__wbindgen_wasm_module = module3;
+ cachedDataViewMemory0 = null;
+ cachedUint8ArrayMemory0 = null;
+ wasm.__wbindgen_start();
+ return wasm;
+ }
+ function initSync(module3) {
+ if (wasm !== void 0)
+ return wasm;
+ if (typeof module3 !== "undefined") {
+ if (Object.getPrototypeOf(module3) === Object.prototype) {
+ ({ module: module3 } = module3);
+ } else {
+ console.warn("using deprecated parameters for `initSync()`; pass a single object instead");
+ }
+ }
+ const imports = __wbg_get_imports();
+ __wbg_init_memory(imports);
+ if (!(module3 instanceof WebAssembly.Module)) {
+ module3 = new WebAssembly.Module(module3);
+ }
+ const instance = new WebAssembly.Instance(module3, imports);
+ return __wbg_finalize_init(instance, module3);
+ }
+ async function __wbg_init(module_or_path) {
+ if (wasm !== void 0)
+ return wasm;
+ if (typeof module_or_path !== "undefined") {
+ if (Object.getPrototypeOf(module_or_path) === Object.prototype) {
+ ({ module_or_path } = module_or_path);
+ } else {
+ console.warn("using deprecated parameters for the initialization function; pass a single object instead");
+ }
+ }
+ const imports = __wbg_get_imports();
+ __wbg_init_memory(imports);
+ const { instance, module: module3 } = await __wbg_load(await module_or_path, imports);
+ return __wbg_finalize_init(instance, module3);
+ }
+ exports2.default = __wbg_init;
+ }
+});
+
+// node_modules/@lit-protocol/wasm/src/index.js
+var require_src10 = __commonJS({
+ "node_modules/@lit-protocol/wasm/src/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.blsCombine = blsCombine;
+ exports2.blsDecrypt = blsDecrypt;
+ exports2.blsEncrypt = blsEncrypt;
+ exports2.blsVerify = blsVerify;
+ exports2.ecdsaCombine = ecdsaCombine;
+ exports2.ecdsaDeriveKey = ecdsaDeriveKey;
+ exports2.ecdsaVerify = ecdsaVerify;
+ exports2.ecdsaCombnieAndVerify = ecdsaCombnieAndVerify;
+ exports2.sevSnpGetVcekUrl = sevSnpGetVcekUrl;
+ exports2.sevSnpVerify = sevSnpVerify;
+ var tslib_1 = (init_tslib_es611(), __toCommonJS(tslib_es6_exports11));
+ var wasm_internal_1 = require_wasm_internal();
+ var wasmInternal = tslib_1.__importStar(require_wasm_internal());
+ var loadingPromise = null;
+ var wasmSdkInstance;
+ async function initWasm() {
+ return (0, wasm_internal_1.initSync)((0, wasm_internal_1.getModule)());
+ }
+ async function loadModules() {
+ if (wasmSdkInstance) {
+ return wasmSdkInstance;
+ }
+ if (loadingPromise) {
+ return loadingPromise;
+ }
+ loadingPromise = initWasm();
+ try {
+ wasmSdkInstance = await loadingPromise;
+ } finally {
+ loadingPromise = null;
+ }
+ return;
+ }
+ async function blsCombine(variant, signature_shares) {
+ await loadModules();
+ return wasmInternal.blsCombine(variant, signature_shares);
+ }
+ async function blsDecrypt(variant, ciphertext, decryption_key) {
+ await loadModules();
+ return wasmInternal.blsDecrypt(variant, ciphertext, decryption_key);
+ }
+ async function blsEncrypt(variant, encryption_key, message, identity) {
+ await loadModules();
+ return wasmInternal.blsEncrypt(variant, encryption_key, message, identity);
+ }
+ async function blsVerify(variant, public_key, message, signature) {
+ await loadModules();
+ return wasmInternal.blsVerify(variant, public_key, message, signature);
+ }
+ async function ecdsaCombine(variant, presignature, signature_shares) {
+ await loadModules();
+ return wasmInternal.ecdsaCombine(variant, presignature, signature_shares);
+ }
+ async function ecdsaDeriveKey(variant, id, public_keys) {
+ await loadModules();
+ return wasmInternal.ecdsaDeriveKey(variant, id, public_keys);
+ }
+ async function ecdsaVerify(variant, message_hash, public_key, signature) {
+ await loadModules();
+ return wasmInternal.ecdsaVerify(variant, message_hash, public_key, signature);
+ }
+ async function ecdsaCombnieAndVerify(variant, pre_signature, signature_shares, message_hash, public_key) {
+ await loadModules();
+ return wasmInternal.ecdsaCombineAndVerify(variant, pre_signature, signature_shares, message_hash, public_key);
+ }
+ async function sevSnpGetVcekUrl(attestation_report) {
+ await loadModules();
+ return wasmInternal.sevSnpGetVcekUrl(attestation_report);
+ }
+ async function sevSnpVerify(attestation_report, attestation_data, signatures, challenge, vcek_certificate) {
+ await loadModules();
+ return wasmInternal.sevSnpVerify(attestation_report, attestation_data, signatures, challenge, vcek_certificate);
+ }
+ }
+});
+
+// node_modules/@lit-protocol/crypto/src/lib/crypto.js
+var require_crypto = __commonJS({
+ "node_modules/@lit-protocol/crypto/src/lib/crypto.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.checkSevSnpAttestation = exports2.generateSessionKeyPair = exports2.computeHDPubKey = exports2.combineEcdsaShares = exports2.verifySignature = exports2.combineSignatureShares = exports2.verifyAndDecryptWithSignatureShares = exports2.decryptWithSignatureShares = exports2.encrypt = void 0;
+ var utils_1 = require_utils8();
+ var constants_1 = require_src2();
+ var misc_1 = require_src4();
+ var nacl_1 = require_src9();
+ var uint8arrays_1 = require_src5();
+ var wasm_1 = require_src10();
+ var LIT_CORS_PROXY = `https://cors.litgateway.com`;
+ var encrypt = async (publicKeyHex, message, identity) => {
+ const publicKey = Buffer.from(publicKeyHex, "hex");
+ if (publicKeyHex.replace("0x", "").length !== 96) {
+ throw new constants_1.InvalidParamType({
+ info: {
+ publicKeyHex
+ }
+ }, `Invalid public key length. Expecting 96 characters, got ${publicKeyHex.replace("0x", "").length} instead.`);
+ }
+ return Buffer.from(await (0, wasm_1.blsEncrypt)("Bls12381G2", publicKey, message, identity)).toString("base64");
+ };
+ exports2.encrypt = encrypt;
+ var decryptWithSignatureShares = async (ciphertextBase64, shares) => {
+ const signature = await doCombineSignatureShares(shares);
+ return doDecrypt(ciphertextBase64, signature);
+ };
+ exports2.decryptWithSignatureShares = decryptWithSignatureShares;
+ var verifyAndDecryptWithSignatureShares = async (publicKeyHex, identity, ciphertextBase64, shares) => {
+ const publicKey = Buffer.from(publicKeyHex, "hex");
+ const signature = await doCombineSignatureShares(shares);
+ await (0, wasm_1.blsVerify)("Bls12381G2", publicKey, identity, signature);
+ return doDecrypt(ciphertextBase64, signature);
+ };
+ exports2.verifyAndDecryptWithSignatureShares = verifyAndDecryptWithSignatureShares;
+ var combineSignatureShares = async (shares) => {
+ const signature = await doCombineSignatureShares(shares);
+ return Buffer.from(signature).toString("hex");
+ };
+ exports2.combineSignatureShares = combineSignatureShares;
+ var verifySignature = async (publicKeyHex, message, signature) => {
+ const publicKey = Buffer.from(publicKeyHex, "hex");
+ await (0, wasm_1.blsVerify)("Bls12381G2", publicKey, message, signature);
+ };
+ exports2.verifySignature = verifySignature;
+ var ecdsaSigntureTypeMap = {
+ [constants_1.LIT_CURVE.EcdsaCaitSith]: "K256",
+ [constants_1.LIT_CURVE.EcdsaK256]: "K256",
+ [constants_1.LIT_CURVE.EcdsaCAITSITHP256]: "P256"
+ };
+ var combineEcdsaShares = async (sigShares) => {
+ const validShares = sigShares.filter((share) => share.signatureShare);
+ const anyValidShare = validShares[0];
+ if (!anyValidShare) {
+ throw new constants_1.NoValidShares({
+ info: {
+ shares: sigShares
+ }
+ }, "No valid shares to combine");
+ }
+ const variant = ecdsaSigntureTypeMap[anyValidShare.sigType];
+ const presignature = Buffer.from(anyValidShare.bigR, "hex");
+ const signatureShares = validShares.map((share) => Buffer.from(share.signatureShare, "hex"));
+ const [r, s, v] = await (0, wasm_1.ecdsaCombine)(variant, presignature, signatureShares);
+ const publicKey = Buffer.from(anyValidShare.publicKey, "hex");
+ const messageHash = Buffer.from(anyValidShare.dataSigned, "hex");
+ await (0, wasm_1.ecdsaVerify)(variant, messageHash, publicKey, [r, s, v]);
+ const signature = (0, utils_1.splitSignature)(Buffer.concat([r, s, Buffer.from([v])]));
+ return {
+ r: signature.r.slice("0x".length),
+ s: signature.s.slice("0x".length),
+ recid: signature.recoveryParam
+ };
+ };
+ exports2.combineEcdsaShares = combineEcdsaShares;
+ var computeHDPubKey = async (pubkeys, keyId, sigType) => {
+ const variant = ecdsaSigntureTypeMap[sigType];
+ switch (sigType) {
+ case constants_1.LIT_CURVE.EcdsaCaitSith:
+ case constants_1.LIT_CURVE.EcdsaK256:
+ pubkeys = pubkeys.map((value) => {
+ return value.replace("0x", "");
+ });
+ keyId = keyId.replace("0x", "");
+ const preComputedPubkey = await (0, wasm_1.ecdsaDeriveKey)(variant, Buffer.from(keyId, "hex"), pubkeys.map((hex) => Buffer.from(hex, "hex")));
+ return Buffer.from(preComputedPubkey).toString("hex");
+ default:
+ throw new constants_1.InvalidParamType({
+ info: {
+ sigType
+ }
+ }, `Non supported signature type`);
+ }
+ };
+ exports2.computeHDPubKey = computeHDPubKey;
+ var generateSessionKeyPair = () => {
+ const keyPair = nacl_1.nacl.sign.keyPair();
+ const sessionKeyPair = {
+ publicKey: (0, uint8arrays_1.uint8arrayToString)(keyPair.publicKey, "base16"),
+ secretKey: (0, uint8arrays_1.uint8arrayToString)(keyPair.secretKey, "base16")
+ };
+ return sessionKeyPair;
+ };
+ exports2.generateSessionKeyPair = generateSessionKeyPair;
+ function doDecrypt(ciphertextBase64, signature) {
+ console.log("signature from encrypt op: ", signature);
+ const ciphertext = Buffer.from(ciphertextBase64, "base64");
+ return (0, wasm_1.blsDecrypt)("Bls12381G2", ciphertext, signature);
+ }
+ function doCombineSignatureShares(shares) {
+ const sigShares = shares.map((s) => Buffer.from(s.ProofOfPossession, "hex"));
+ const signature = (0, wasm_1.blsCombine)("Bls12381G2", sigShares);
+ return signature;
+ }
+ async function getAmdCert(url) {
+ const proxyUrl = `${LIT_CORS_PROXY}/${url}`;
+ (0, misc_1.log)(`[getAmdCert] Fetching AMD cert using proxy URL ${proxyUrl} to manage CORS restrictions and to avoid being rate limited by AMD.`);
+ async function fetchAsUint8Array(targetUrl) {
+ const res = await fetch(targetUrl);
+ if (!res.ok) {
+ throw new constants_1.NetworkError({
+ info: {
+ targetUrl
+ }
+ }, `[getAmdCert] HTTP error! status: ${res.status}`);
+ }
+ const arrayBuffer = await res.arrayBuffer();
+ return new Uint8Array(arrayBuffer);
+ }
+ try {
+ return await fetchAsUint8Array(proxyUrl);
+ } catch (e) {
+ (0, misc_1.log)(`[getAmdCert] Failed to fetch AMD cert from proxy:`, e);
+ }
+ (0, misc_1.log)("[getAmdCert] Attempting to fetch directly without proxy.");
+ try {
+ return await fetchAsUint8Array(url);
+ } catch (e) {
+ (0, misc_1.log)("[getAmdCert] Direct fetch also failed:", e);
+ throw e;
+ }
+ }
+ var checkSevSnpAttestation = async (attestation, challengeHex, url) => {
+ var _a;
+ const noonce = Buffer.from(attestation.noonce, "base64");
+ const challenge = Buffer.from(challengeHex, "hex");
+ const data = Object.fromEntries(Object.entries(attestation.data).map(([k, v]) => [
+ k,
+ Buffer.from(v, "base64")
+ ]));
+ const signatures = attestation.signatures.map((s) => Buffer.from(s, "base64"));
+ const report = Buffer.from(attestation.report, "base64");
+ if (!noonce.equals(challenge)) {
+ throw new constants_1.NetworkError({
+ info: {
+ attestation,
+ challengeHex,
+ noonce,
+ challenge
+ }
+ }, `Attestation noonce ${noonce} does not match challenge ${challenge}`);
+ }
+ const parsedUrl = new URL(url);
+ const ipWeTalkedTo = parsedUrl.hostname;
+ let portWeTalkedTo = parsedUrl.port;
+ if (portWeTalkedTo === "") {
+ if (url.startsWith("https://")) {
+ portWeTalkedTo = "443";
+ } else if (url.startsWith("http://")) {
+ portWeTalkedTo = "80";
+ } else {
+ throw new constants_1.NetworkError({
+ info: {
+ url
+ }
+ }, `Unknown port in URL ${url}`);
+ }
+ }
+ const ipAndAddrFromReport = data["EXTERNAL_ADDR"].toString("utf8");
+ const ipFromReport = ipAndAddrFromReport.split(":")[0];
+ const portFromReport = ipAndAddrFromReport.split(":")[1];
+ if (ipWeTalkedTo !== ipFromReport) {
+ throw new constants_1.NetworkError({
+ info: {
+ attestation,
+ ipWeTalkedTo,
+ ipFromReport
+ }
+ }, `Attestation external address ${ipFromReport} does not match IP we talked to ${ipWeTalkedTo}`);
+ }
+ if (portWeTalkedTo !== portFromReport) {
+ throw new constants_1.NetworkError({
+ info: {
+ attestation,
+ portWeTalkedTo,
+ portFromReport
+ }
+ }, `Attestation external port ${portFromReport} does not match port we talked to ${portWeTalkedTo}`);
+ }
+ let vcekCert;
+ const vcekUrl = await (0, wasm_1.sevSnpGetVcekUrl)(report);
+ if (globalThis.localStorage) {
+ (0, misc_1.log)("Using local storage for certificate caching");
+ vcekCert = localStorage.getItem(vcekUrl);
+ if (vcekCert) {
+ vcekCert = (0, uint8arrays_1.uint8arrayFromString)(vcekCert, "base64");
+ } else {
+ vcekCert = await getAmdCert(vcekUrl);
+ localStorage.setItem(vcekUrl, (0, uint8arrays_1.uint8arrayToString)(vcekCert, "base64"));
+ }
+ } else {
+ const cache = (_a = globalThis).amdCertStore ?? (_a.amdCertStore = {});
+ cache[vcekUrl] ?? (cache[vcekUrl] = await getAmdCert(vcekUrl));
+ vcekCert = cache[vcekUrl];
+ }
+ if (!vcekCert || vcekCert.length === 0 || vcekCert.length < 256) {
+ throw new constants_1.UnknownError({
+ info: {
+ attestation,
+ report,
+ vcekUrl
+ }
+ }, "Unable to retrieve VCEK certificate from AMD");
+ }
+ return (0, wasm_1.sevSnpVerify)(report, data, signatures, challenge, vcekCert);
+ };
+ exports2.checkSevSnpAttestation = checkSevSnpAttestation;
+ }
+});
+
+// node_modules/@lit-protocol/crypto/src/index.js
+var require_src11 = __commonJS({
+ "node_modules/@lit-protocol/crypto/src/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var tslib_1 = (init_tslib_es69(), __toCommonJS(tslib_es6_exports9));
+ tslib_1.__exportStar(require_crypto(), exports2);
+ }
+});
+
+// node_modules/@lit-protocol/core/src/lib/endpoint-version.js
+var require_endpoint_version = __commonJS({
+ "node_modules/@lit-protocol/core/src/lib/endpoint-version.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.composeLitUrl = void 0;
+ var composeLitUrl = (params) => {
+ try {
+ new URL(params.url);
+ } catch (error) {
+ throw new Error(`[composeLitUrl] Invalid URL: "${params.url}"`);
+ }
+ const version = params.endpoint.version;
+ return `${params.url}${params.endpoint.path}${version}`;
+ };
+ exports2.composeLitUrl = composeLitUrl;
+ }
+});
+
+// node_modules/@lit-protocol/core/src/lib/lit-core.js
+var require_lit_core = __commonJS({
+ "node_modules/@lit-protocol/core/src/lib/lit-core.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.LitCore = void 0;
+ var ethers_1 = require_lib36();
+ var access_control_conditions_1 = require_src6();
+ var constants_1 = require_src2();
+ var contracts_sdk_1 = require_src8();
+ var crypto_1 = require_src11();
+ var misc_1 = require_src4();
+ var endpoint_version_1 = require_endpoint_version();
+ var EPOCH_PROPAGATION_DELAY = 45e3;
+ var BLOCKHASH_SYNC_INTERVAL = 3e4;
+ var NETWORKS_REQUIRING_SEV = [
+ constants_1.LIT_NETWORK.DatilTest,
+ constants_1.LIT_NETWORK.Datil
+ ];
+ var FALLBACK_RPC_URLS = [
+ "https://ethereum-rpc.publicnode.com",
+ "https://eth.llamarpc.com",
+ "https://eth.drpc.org",
+ "https://eth.llamarpc.com"
+ ];
+ var LitCore = class {
+ // ========== Constructor ==========
+ constructor(config) {
+ this.config = {
+ alertWhenUnauthorized: false,
+ debug: true,
+ connectTimeout: 2e4,
+ checkNodeAttestation: false,
+ litNetwork: constants_1.LIT_NETWORK.Custom,
+ minNodeCount: 2,
+ // Default value, should be replaced
+ bootstrapUrls: [],
+ // Default value, should be replaced
+ nodeProtocol: null
+ };
+ this.connectedNodes = /* @__PURE__ */ new Set();
+ this.serverKeys = {};
+ this.ready = false;
+ this.subnetPubKey = null;
+ this.networkPubKey = null;
+ this.networkPubKeySet = null;
+ this.hdRootPubkeys = null;
+ this.latestBlockhash = null;
+ this.lastBlockHashRetrieved = null;
+ this._networkSyncInterval = null;
+ this._stakingContract = null;
+ this._stakingContractListener = null;
+ this._connectingPromise = null;
+ this._epochCache = {
+ currentNumber: null,
+ startTime: null
+ };
+ this._blockHashUrl = "https://block-indexer.litgateway.com/get_most_recent_valid_block";
+ this.getLogsForRequestId = (id) => {
+ return globalThis.logManager.getLogsForId(id);
+ };
+ this.getRequestIds = () => {
+ return globalThis.logManager.LoggerIds;
+ };
+ this.setCustomBootstrapUrls = () => {
+ if (this.config.litNetwork === constants_1.LIT_NETWORK.Custom)
+ return;
+ const hasNetwork = this.config.litNetwork in constants_1.LIT_NETWORKS;
+ if (!hasNetwork) {
+ throw new constants_1.LitNodeClientBadConfigError({}, "the litNetwork specified in the LitNodeClient config not found in LIT_NETWORKS");
+ }
+ this.config.bootstrapUrls = constants_1.LIT_NETWORKS[this.config.litNetwork];
+ };
+ this.getLatestBlockhash = async () => {
+ await this._syncBlockhash();
+ if (!this.latestBlockhash) {
+ throw new constants_1.InvalidEthBlockhash({}, `latestBlockhash is not available. Received: "%s"`, this.latestBlockhash);
+ }
+ return this.latestBlockhash;
+ };
+ this._getProviderWithFallback = async () => {
+ for (const url of FALLBACK_RPC_URLS) {
+ try {
+ const provider = new ethers_1.ethers.providers.JsonRpcProvider({
+ url,
+ // https://docs.ethers.org/v5/api/utils/web/#ConnectionInfo
+ timeout: 6e4
+ });
+ await provider.getBlockNumber();
+ return provider;
+ } catch (error) {
+ (0, misc_1.logError)(`RPC URL failed: ${url}`);
+ }
+ }
+ return null;
+ };
+ this.handshakeWithNode = async (params, requestId) => {
+ const { url } = params;
+ const urlWithPath = (0, endpoint_version_1.composeLitUrl)({
+ url,
+ endpoint: constants_1.LIT_ENDPOINT.HANDSHAKE
+ });
+ (0, misc_1.log)(`handshakeWithNode ${urlWithPath}`);
+ const data = {
+ clientPublicKey: "test",
+ challenge: params.challenge
+ };
+ return await this.sendCommandToNode({
+ url: urlWithPath,
+ data,
+ requestId
+ });
+ };
+ this.sendCommandToNode = async ({ url, data, requestId }) => {
+ data = { ...data, epoch: this.currentEpochNumber };
+ if (data.sessionSigs) {
+ delete data.sessionSigs;
+ }
+ (0, misc_1.logWithRequestId)(requestId, `sendCommandToNode with url ${url} and data`, data);
+ const req = {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ Accept: "application/json",
+ "X-Lit-SDK-Version": constants_1.version,
+ "X-Lit-SDK-Type": "Typescript",
+ "X-Request-Id": "lit_" + requestId
+ },
+ body: JSON.stringify(data)
+ };
+ return (0, misc_1.sendRequest)(url, req, requestId);
+ };
+ this.getNodePromises = (callback) => {
+ const nodePromises = [];
+ for (const url of this.connectedNodes) {
+ nodePromises.push(callback(url));
+ }
+ return nodePromises;
+ };
+ this.getSessionSigByUrl = ({ sessionSigs, url }) => {
+ if (!sessionSigs) {
+ throw new constants_1.InvalidArgumentException({}, "You must pass in sessionSigs. Received: %s", sessionSigs);
+ }
+ const sigToPassToNode = sessionSigs[url];
+ if (!sessionSigs[url]) {
+ throw new constants_1.InvalidArgumentException({}, "You passed sessionSigs but we could not find session sig for node %s", url);
+ }
+ return sigToPassToNode;
+ };
+ this.validateAccessControlConditionsSchema = async (params) => {
+ const { accessControlConditions, evmContractConditions, solRpcConditions, unifiedAccessControlConditions } = params;
+ if (accessControlConditions) {
+ await (0, access_control_conditions_1.validateAccessControlConditionsSchema)(accessControlConditions);
+ } else if (evmContractConditions) {
+ await (0, access_control_conditions_1.validateEVMContractConditionsSchema)(evmContractConditions);
+ } else if (solRpcConditions) {
+ await (0, access_control_conditions_1.validateSolRpcConditionsSchema)(solRpcConditions);
+ } else if (unifiedAccessControlConditions) {
+ await (0, access_control_conditions_1.validateUnifiedAccessControlConditionsSchema)(unifiedAccessControlConditions);
+ }
+ return true;
+ };
+ this.getHashedAccessControlConditions = async (params) => {
+ let hashOfConditions;
+ const { accessControlConditions, evmContractConditions, solRpcConditions, unifiedAccessControlConditions } = params;
+ if (accessControlConditions) {
+ hashOfConditions = await (0, access_control_conditions_1.hashAccessControlConditions)(accessControlConditions);
+ } else if (evmContractConditions) {
+ hashOfConditions = await (0, access_control_conditions_1.hashEVMContractConditions)(evmContractConditions);
+ } else if (solRpcConditions) {
+ hashOfConditions = await (0, access_control_conditions_1.hashSolRpcConditions)(solRpcConditions);
+ } else if (unifiedAccessControlConditions) {
+ hashOfConditions = await (0, access_control_conditions_1.hashUnifiedAccessControlConditions)(unifiedAccessControlConditions);
+ } else {
+ return;
+ }
+ return hashOfConditions;
+ };
+ this.handleNodePromises = async (nodePromises, requestId, minNodeCount) => {
+ async function waitForNSuccessesWithErrors(promises, n) {
+ let responses = 0;
+ const successes2 = [];
+ const errors2 = [];
+ return new Promise((resolve) => {
+ promises.forEach((promise) => {
+ promise.then((result) => {
+ successes2.push(result);
+ if (successes2.length >= n) {
+ resolve({ successes: successes2, errors: errors2 });
+ }
+ }).catch((error) => {
+ errors2.push(error);
+ }).finally(() => {
+ responses++;
+ if (responses === promises.length) {
+ resolve({ successes: successes2, errors: errors2 });
+ }
+ });
+ });
+ });
+ }
+ const { successes, errors } = await waitForNSuccessesWithErrors(nodePromises, minNodeCount);
+ if (successes.length >= minNodeCount) {
+ return {
+ success: true,
+ values: successes
+ };
+ }
+ const mostCommonError = JSON.parse(
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ (0, misc_1.mostCommonString)(errors.map((r) => JSON.stringify(r)))
+ );
+ (0, misc_1.logErrorWithRequestId)(requestId || "", `most common error: ${JSON.stringify(mostCommonError)}`);
+ return {
+ success: false,
+ error: mostCommonError
+ };
+ };
+ this._throwNodeError = (res, requestId) => {
+ if (res.error) {
+ if ((res.error.errorCode && res.error.errorCode === constants_1.LIT_ERROR_CODE.NODE_NOT_AUTHORIZED || res.error.errorCode === "not_authorized") && this.config.alertWhenUnauthorized) {
+ (0, misc_1.log)("You are not authorized to access this content");
+ }
+ throw new constants_1.NodeError({
+ info: {
+ requestId,
+ errorCode: res.error.errorCode,
+ message: res.error.message
+ },
+ cause: res.error
+ }, "There was an error getting the signing shares from the nodes. Response from the nodes: %s", JSON.stringify(res));
+ } else {
+ throw new constants_1.UnknownError({
+ info: {
+ requestId
+ }
+ }, `There was an error getting the signing shares from the nodes. Response from the nodes: %s`, JSON.stringify(res));
+ }
+ };
+ this.getFormattedAccessControlConditions = (params) => {
+ const { accessControlConditions, evmContractConditions, solRpcConditions, unifiedAccessControlConditions } = params;
+ let formattedAccessControlConditions;
+ let formattedEVMContractConditions;
+ let formattedSolRpcConditions;
+ let formattedUnifiedAccessControlConditions;
+ let error = false;
+ if (accessControlConditions) {
+ formattedAccessControlConditions = accessControlConditions.map((c) => (0, access_control_conditions_1.canonicalAccessControlConditionFormatter)(c));
+ (0, misc_1.log)("formattedAccessControlConditions", JSON.stringify(formattedAccessControlConditions));
+ } else if (evmContractConditions) {
+ formattedEVMContractConditions = evmContractConditions.map((c) => (0, access_control_conditions_1.canonicalEVMContractConditionFormatter)(c));
+ (0, misc_1.log)("formattedEVMContractConditions", JSON.stringify(formattedEVMContractConditions));
+ } else if (solRpcConditions) {
+ formattedSolRpcConditions = solRpcConditions.map((c) => (0, access_control_conditions_1.canonicalSolRpcConditionFormatter)(c));
+ (0, misc_1.log)("formattedSolRpcConditions", JSON.stringify(formattedSolRpcConditions));
+ } else if (unifiedAccessControlConditions) {
+ formattedUnifiedAccessControlConditions = unifiedAccessControlConditions.map((c) => (0, access_control_conditions_1.canonicalUnifiedAccessControlConditionFormatter)(c));
+ (0, misc_1.log)("formattedUnifiedAccessControlConditions", JSON.stringify(formattedUnifiedAccessControlConditions));
+ } else {
+ error = true;
+ }
+ return {
+ error,
+ formattedAccessControlConditions,
+ formattedEVMContractConditions,
+ formattedSolRpcConditions,
+ formattedUnifiedAccessControlConditions
+ };
+ };
+ this.computeHDPubKey = async (keyId, sigType = constants_1.LIT_CURVE.EcdsaCaitSith) => {
+ if (!this.hdRootPubkeys) {
+ (0, misc_1.logError)("root public keys not found, have you connected to the nodes?");
+ throw new constants_1.LitNodeClientNotReadyError({}, "root public keys not found, have you connected to the nodes?");
+ }
+ return await (0, crypto_1.computeHDPubKey)(this.hdRootPubkeys, keyId, sigType);
+ };
+ if (!(config.litNetwork in constants_1.LIT_NETWORKS)) {
+ const validNetworks = Object.keys(constants_1.LIT_NETWORKS).join(", ");
+ throw new constants_1.InvalidParamType({}, 'Unsupported network has been provided please use a "litNetwork" option which is supported (%s)', validNetworks);
+ }
+ switch (config?.litNetwork) {
+ case constants_1.LIT_NETWORK.DatilDev:
+ this.config = {
+ ...this.config,
+ checkNodeAttestation: NETWORKS_REQUIRING_SEV.includes(config?.litNetwork),
+ ...config
+ };
+ break;
+ default:
+ this.config = {
+ ...this.config,
+ ...config
+ };
+ }
+ this.setCustomBootstrapUrls();
+ (0, misc_1.setMiscLitConfig)(this.config);
+ (0, misc_1.bootstrapLogManager)("core", this.config.debug ? constants_1.LogLevel.DEBUG : constants_1.LogLevel.OFF);
+ if (this.config.storageProvider?.provider) {
+ (0, misc_1.log)("localstorage api not found, injecting persistence instance found in config");
+ Object.defineProperty(globalThis, "localStorage", {
+ value: this.config.storageProvider?.provider
+ });
+ } else if ((0, misc_1.isNode)() && !globalThis.localStorage && !this.config.storageProvider?.provider) {
+ (0, misc_1.log)("Looks like you are running in NodeJS and did not provide a storage provider, your sessions will not be cached");
+ }
+ }
+ /**
+ * Retrieves the validator data including staking contract, epoch, minNodeCount, and bootstrapUrls.
+ * @returns An object containing the validator data.
+ * @throws Error if minNodeCount is not provided, is less than or equal to 0, or if bootstrapUrls are not available.
+ */
+ async _getValidatorData() {
+ const { stakingContract, epochInfo, minNodeCount, bootstrapUrls } = await contracts_sdk_1.LitContracts.getConnectionInfo({
+ litNetwork: this.config.litNetwork,
+ networkContext: this.config.contractContext,
+ rpcUrl: this.config.rpcUrl,
+ nodeProtocol: this.config.nodeProtocol
+ });
+ if (!minNodeCount) {
+ throw new constants_1.InvalidArgumentException({}, `minNodeCount is %s, which is invalid. Please check your network connection and try again.`, minNodeCount);
+ }
+ if (!Array.isArray(bootstrapUrls) || bootstrapUrls.length <= 0) {
+ throw new constants_1.InitError({}, `Failed to get bootstrapUrls for network %s`, this.config.litNetwork);
+ }
+ (0, misc_1.log)("[_getValidatorData] epochInfo: ", epochInfo);
+ (0, misc_1.log)("[_getValidatorData] minNodeCount: ", minNodeCount);
+ (0, misc_1.log)("[_getValidatorData] Bootstrap urls: ", bootstrapUrls);
+ (0, misc_1.log)("[_getValidatorData] stakingContract: ", stakingContract.address);
+ return {
+ stakingContract,
+ epochInfo,
+ minNodeCount,
+ bootstrapUrls
+ };
+ }
+ // ========== Scoped Class Helpers ==========
+ async _handleStakingContractStateChange(state) {
+ (0, misc_1.log)(`New state detected: "${state}"`);
+ const validatorData = await this._getValidatorData();
+ if (state === constants_1.STAKING_STATES.Active) {
+ this._epochState = await this._fetchCurrentEpochState(validatorData.epochInfo);
+ if (constants_1.CENTRALISATION_BY_NETWORK[this.config.litNetwork] !== "centralised") {
+ try {
+ (0, misc_1.log)("State found to be new validator set locked, checking validator set");
+ const existingNodeUrls = [...this.config.bootstrapUrls];
+ const delta = validatorData.bootstrapUrls.filter((item) => existingNodeUrls.includes(item));
+ if (delta.length > 1) {
+ (0, misc_1.log)("Active validator sets changed, new validators ", delta, "starting node connection");
+ }
+ await this.connect();
+ } catch (err) {
+ const { message = "" } = err;
+ (0, misc_1.logError)("Error while attempting to reconnect to nodes after epoch transition:", message);
+ }
+ }
+ }
+ }
+ /**
+ * Sets up a listener to detect state changes (new epochs) in the staking contract.
+ * When a new epoch is detected, it triggers the `setNewConfig` function to update
+ * the client's configuration based on the new state of the network. This ensures
+ * that the client's configuration is always in sync with the current state of the
+ * staking contract.
+ *
+ * @returns {Promise} A promise that resolves when the listener is successfully set up.
+ */
+ _listenForNewEpoch() {
+ if (this._stakingContractListener) {
+ return;
+ }
+ if (this._stakingContract) {
+ (0, misc_1.log)("listening for state change on staking contract: ", this._stakingContract.address);
+ this._stakingContractListener = (state) => {
+ this._handleStakingContractStateChange(state);
+ };
+ this._stakingContract.on("StateChanged", this._stakingContractListener);
+ }
+ }
+ /**
+ * Stops internal listeners/polling that refresh network state and watch for epoch changes.
+ * Removes global objects created internally
+ */
+ async disconnect() {
+ this.ready = false;
+ this._stopListeningForNewEpoch();
+ (0, misc_1.setMiscLitConfig)(void 0);
+ }
+ // _stopNetworkPolling() {
+ // if (this._networkSyncInterval) {
+ // clearInterval(this._networkSyncInterval);
+ // this._networkSyncInterval = null;
+ // }
+ // }
+ _stopListeningForNewEpoch() {
+ if (this._stakingContract && this._stakingContractListener) {
+ this._stakingContract.off("StateChanged", this._stakingContractListener);
+ this._stakingContractListener = null;
+ }
+ }
+ /**
+ *
+ * Connect to the LIT nodes
+ *
+ * @returns { Promise } A promise that resolves when the nodes are connected.
+ *
+ */
+ async connect() {
+ if (this._connectingPromise) {
+ return this._connectingPromise;
+ }
+ this._connectingPromise = this._connect();
+ await this._connectingPromise.finally(() => {
+ this._connectingPromise = null;
+ });
+ }
+ async _connect() {
+ this._stopListeningForNewEpoch();
+ if (!this.config.contractContext) {
+ this.config.contractContext = await contracts_sdk_1.LitContracts.getContractAddresses(this.config.litNetwork, new ethers_1.ethers.providers.StaticJsonRpcProvider({
+ url: this.config.rpcUrl || constants_1.RPC_URL_BY_NETWORK[this.config.litNetwork],
+ skipFetchSetup: true
+ }));
+ } else if (!this.config.contractContext.Staking && !this.config.contractContext.resolverAddress) {
+ throw new constants_1.InitError({
+ info: {
+ contractContext: this.config.contractContext,
+ litNetwork: this.config.litNetwork,
+ rpcUrl: this.config.rpcUrl
+ }
+ }, 'The provided contractContext was missing the "Staking" contract');
+ }
+ if (this.config.contractContext) {
+ const logAddresses = Object.entries(this.config.contractContext).reduce((output, [key, val]) => {
+ output[key] = val.address;
+ return output;
+ }, {});
+ if (this.config.litNetwork === constants_1.LIT_NETWORK.Custom) {
+ (0, misc_1.log)("using custom contracts: ", logAddresses);
+ }
+ }
+ const validatorData = await this._getValidatorData();
+ this._stakingContract = validatorData.stakingContract;
+ this.config.minNodeCount = validatorData.minNodeCount;
+ this.config.bootstrapUrls = validatorData.bootstrapUrls;
+ this._epochState = await this._fetchCurrentEpochState(validatorData.epochInfo);
+ const { connectedNodes, serverKeys, coreNodeConfig } = await this._runHandshakeWithBootstrapUrls();
+ Object.assign(this, { ...coreNodeConfig, connectedNodes, serverKeys });
+ this._listenForNewEpoch();
+ this.ready = true;
+ (0, misc_1.log)(`\u{1F525} lit is ready. "litNodeClient" variable is ready to use globally.`);
+ (0, misc_1.log)("current network config", {
+ networkPubkey: this.networkPubKey,
+ networkPubKeySet: this.networkPubKeySet,
+ hdRootPubkeys: this.hdRootPubkeys,
+ subnetPubkey: this.subnetPubKey,
+ latestBlockhash: this.latestBlockhash
+ });
+ if ((0, misc_1.isBrowser)()) {
+ document.dispatchEvent(new Event("lit-ready"));
+ }
+ }
+ async _handshakeAndVerifyNodeAttestation({ url, requestId }) {
+ const challenge = this.getRandomHexString(64);
+ const handshakeResult = await this.handshakeWithNode({ url, challenge }, requestId);
+ const keys = {
+ serverPubKey: handshakeResult.serverPublicKey,
+ subnetPubKey: handshakeResult.subnetPublicKey,
+ networkPubKey: handshakeResult.networkPublicKey,
+ networkPubKeySet: handshakeResult.networkPublicKeySet,
+ hdRootPubkeys: handshakeResult.hdRootPubkeys,
+ latestBlockhash: handshakeResult.latestBlockhash
+ };
+ if (keys.serverPubKey === "ERR" || keys.subnetPubKey === "ERR" || keys.networkPubKey === "ERR" || keys.networkPubKeySet === "ERR") {
+ (0, misc_1.logErrorWithRequestId)(requestId, 'Error connecting to node. Detected "ERR" in keys', url, keys);
+ }
+ (0, misc_1.log)(`Handshake with ${url} returned keys: `, keys);
+ if (!keys.latestBlockhash) {
+ (0, misc_1.logErrorWithRequestId)(requestId, `Error getting latest blockhash from the node ${url}.`);
+ }
+ if (this.config.checkNodeAttestation || NETWORKS_REQUIRING_SEV.includes(this.config.litNetwork)) {
+ const attestation = handshakeResult.attestation;
+ if (!attestation) {
+ throw new constants_1.InvalidNodeAttestation({}, `Missing attestation in handshake response from %s`, url);
+ }
+ (0, misc_1.log)("Checking attestation against amd certs...");
+ try {
+ await (0, crypto_1.checkSevSnpAttestation)(attestation, challenge, url);
+ (0, misc_1.log)(`Lit Node Attestation verified for ${url}`);
+ } catch (e) {
+ throw new constants_1.InvalidNodeAttestation({
+ cause: e
+ }, `Lit Node Attestation failed verification for %s - %s`, url, e.message);
+ }
+ } else if (this.config.litNetwork === constants_1.LIT_NETWORK.Custom) {
+ (0, misc_1.log)(`Node attestation SEV verification is disabled. You must explicitly set "checkNodeAttestation" to true when using 'custom' network`);
+ }
+ return keys;
+ }
+ /** Handshakes with all nodes that are in `bootstrapUrls`
+ * @private
+ *
+ * @returns {Promise<{connectedNodes: Set, serverKeys: {}}>} Returns a set of the urls of nodes that we
+ * successfully connected to, an object containing their returned keys, and our 'core' config (most common values for
+ * critical values)
+ */
+ async _runHandshakeWithBootstrapUrls() {
+ const requestId = this._getNewRequestId();
+ const connectedNodes = /* @__PURE__ */ new Set();
+ const serverKeys = {};
+ let timeoutHandle;
+ await Promise.race([
+ new Promise((_resolve, reject) => {
+ timeoutHandle = setTimeout(() => {
+ const msg = `Error: Could not handshake with nodes after timeout of ${this.config.connectTimeout}ms. Could only connect to ${Object.keys(serverKeys).length} of ${this.config.bootstrapUrls.length} nodes. Please check your network connection and try again. Note that you can control this timeout with the connectTimeout config option which takes milliseconds.`;
+ try {
+ throw new constants_1.InitError({}, msg);
+ } catch (e) {
+ (0, misc_1.logErrorWithRequestId)(requestId, e);
+ reject(e);
+ }
+ }, this.config.connectTimeout);
+ }),
+ Promise.all(this.config.bootstrapUrls.map(async (url) => {
+ serverKeys[url] = await this._handshakeAndVerifyNodeAttestation({
+ url,
+ requestId
+ });
+ connectedNodes.add(url);
+ })).finally(() => {
+ clearTimeout(timeoutHandle);
+ })
+ ]);
+ const coreNodeConfig = this._getCoreNodeConfigFromHandshakeResults({
+ serverKeys,
+ requestId
+ });
+ return { connectedNodes, serverKeys, coreNodeConfig };
+ }
+ _getCoreNodeConfigFromHandshakeResults({ serverKeys, requestId }) {
+ const latestBlockhash = (0, misc_1.mostCommonString)(Object.values(serverKeys).map((keysFromSingleNode) => keysFromSingleNode.latestBlockhash));
+ if (!latestBlockhash) {
+ (0, misc_1.logErrorWithRequestId)(requestId, "Error getting latest blockhash from the nodes.");
+ throw new constants_1.InvalidEthBlockhash({
+ info: {
+ requestId
+ }
+ }, `latestBlockhash is not available. Received: "%s"`, latestBlockhash);
+ }
+ return {
+ subnetPubKey: (0, misc_1.mostCommonString)(Object.values(serverKeys).map((keysFromSingleNode) => keysFromSingleNode.subnetPubKey)),
+ networkPubKey: (0, misc_1.mostCommonString)(Object.values(serverKeys).map((keysFromSingleNode) => keysFromSingleNode.networkPubKey)),
+ networkPubKeySet: (0, misc_1.mostCommonString)(Object.values(serverKeys).map((keysFromSingleNode) => keysFromSingleNode.networkPubKeySet)),
+ hdRootPubkeys: (0, misc_1.mostCommonString)(Object.values(serverKeys).map((keysFromSingleNode) => keysFromSingleNode.hdRootPubkeys)),
+ latestBlockhash,
+ lastBlockHashRetrieved: Date.now()
+ };
+ }
+ /**
+ * Fetches the latest block hash and log any errors that are returned
+ * @returns void
+ */
+ async _syncBlockhash() {
+ const currentTime = Date.now();
+ const blockHashValidityDuration = BLOCKHASH_SYNC_INTERVAL;
+ if (this.latestBlockhash && this.lastBlockHashRetrieved && currentTime - this.lastBlockHashRetrieved < blockHashValidityDuration) {
+ (0, misc_1.log)("Blockhash is still valid. No need to sync.");
+ return;
+ }
+ (0, misc_1.log)("Syncing state for new blockhash ", "current blockhash: ", this.latestBlockhash);
+ return fetch(this._blockHashUrl).then(async (resp) => {
+ const blockHashBody = await resp.json();
+ this.latestBlockhash = blockHashBody.blockhash;
+ this.lastBlockHashRetrieved = Date.now();
+ (0, misc_1.log)("Done syncing state new blockhash: ", this.latestBlockhash);
+ if (!this.latestBlockhash) {
+ throw new Error(`Error getting latest blockhash. Received: "${this.latestBlockhash}"`);
+ }
+ }).catch(async (err) => {
+ (0, misc_1.logError)("Error while attempting to fetch new latestBlockhash:", err instanceof Error ? err.message : err.messages, "Reason: ", err instanceof Error ? err : err.reason);
+ (0, misc_1.log)("Attempting to fetch blockhash manually using ethers with fallback RPC URLs...");
+ const provider = await this._getProviderWithFallback();
+ if (!provider) {
+ (0, misc_1.logError)("All fallback RPC URLs failed. Unable to retrieve blockhash.");
+ return;
+ }
+ try {
+ const latestBlock = await provider.getBlock("latest");
+ this.latestBlockhash = latestBlock.hash;
+ this.lastBlockHashRetrieved = Date.now();
+ (0, misc_1.log)("Successfully retrieved blockhash manually: ", this.latestBlockhash);
+ } catch (ethersError) {
+ (0, misc_1.logError)("Failed to manually retrieve blockhash using ethers");
+ }
+ });
+ }
+ /** Currently, we perform a full sync every 30s, including handshaking with every node
+ * However, we also have a state change listener that watches for staking contract state change events, which
+ * _should_ be the only time that we need to perform handshakes with every node.
+ *
+ * However, the current block hash does need to be updated regularly, and we currently update it only when we
+ * handshake with every node.
+ *
+ * We can remove this network sync code entirely if we refactor our code to fetch latest blockhash on-demand.
+ * @private
+ */
+ // private _scheduleNetworkSync() {
+ // if (this._networkSyncInterval) {
+ // clearInterval(this._networkSyncInterval);
+ // }
+ // this._networkSyncInterval = setInterval(async () => {
+ // if (
+ // !this.lastBlockHashRetrieved ||
+ // Date.now() - this.lastBlockHashRetrieved >= BLOCKHASH_SYNC_INTERVAL
+ // ) {
+ // await this._syncBlockhash();
+ // }
+ // }, BLOCKHASH_SYNC_INTERVAL);
+ // }
+ /**
+ *
+ * Get a new random request ID
+ *
+ * @returns { string }
+ *
+ */
+ _getNewRequestId() {
+ return Math.random().toString(16).slice(2);
+ }
+ /**
+ *
+ * Get a random hex string for use as an attestation challenge
+ *
+ * @returns { string }
+ */
+ getRandomHexString(size) {
+ return [...Array(size)].map(() => Math.floor(Math.random() * 16).toString(16)).join("");
+ }
+ async _fetchCurrentEpochState(epochInfo) {
+ if (!this._stakingContract) {
+ throw new constants_1.InitError({}, "Unable to fetch current epoch number; no staking contract configured. Did you forget to `connect()`?");
+ }
+ if (!epochInfo) {
+ (0, misc_1.log)("epochinfo not found. Not a problem, fetching current epoch state from staking contract");
+ try {
+ const validatorData = await this._getValidatorData();
+ epochInfo = validatorData.epochInfo;
+ } catch (error) {
+ throw new constants_1.UnknownError({}, "[_fetchCurrentEpochNumber] Error getting current epoch number: %s", error);
+ }
+ }
+ const startTime = epochInfo.endTime - epochInfo.epochLength;
+ return {
+ currentNumber: epochInfo.number,
+ startTime
+ };
+ }
+ get currentEpochNumber() {
+ if (this._epochCache.currentNumber && this._epochCache.startTime && Math.floor(Date.now() / 1e3) < this._epochCache.startTime + Math.floor(EPOCH_PROPAGATION_DELAY / 1e3) && this._epochCache.currentNumber >= 3) {
+ return this._epochCache.currentNumber - 1;
+ }
+ return this._epochCache.currentNumber;
+ }
+ set _epochState({ currentNumber, startTime }) {
+ this._epochCache.currentNumber = currentNumber;
+ this._epochCache.startTime = startTime;
+ }
+ getRandomNodePromise(callback) {
+ const randomNodeIndex = Math.floor(Math.random() * this.connectedNodes.size);
+ const nodeUrlsArr = Array.from(this.connectedNodes);
+ return [callback(nodeUrlsArr[randomNodeIndex])];
+ }
+ /**
+ * Calculates a Key Id for claiming a pkp based on a user identifier and an app identifier.
+ * The key Identifier is an Auth Method Id which scopes the key uniquely to a specific application context.
+ * These identifiers are specific to each auth method and will derive the public key portion of a pkp which will be persisted
+ * when a key is claimed.
+ * | Auth Method | User ID | App ID |
+ * |:------------|:--------|:-------|
+ * | Google OAuth | token `sub` | token `aud` |
+ * | Discord OAuth | user id | client app identifier |
+ * | Stytch OTP |token `sub` | token `aud`|
+ * | Lit Actions | user defined | ipfs cid |
+ * *Note* Lit Action claiming uses a different schema than other auth methods
+ *
+ * @param {string} userId user identifier for the Key Identifier
+ * @param {string} appId app identifier for the Key Identifier
+ * @param {boolean} isForActionContext should be set for true if using claiming through actions
+ *
+ * @returns {string} public key of pkp when claimed
+ */
+ computeHDKeyId(userId, appId, isForActionContext = false) {
+ if (!isForActionContext) {
+ return ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.toUtf8Bytes(`${userId}:${appId}`));
+ } else {
+ return ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.toUtf8Bytes(`${appId}:${userId}`));
+ }
+ }
+ };
+ exports2.LitCore = LitCore;
+ }
+});
+
+// node_modules/@lit-protocol/core/src/index.js
+var require_src12 = __commonJS({
+ "node_modules/@lit-protocol/core/src/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var tslib_1 = (init_tslib_es67(), __toCommonJS(tslib_es6_exports7));
+ tslib_1.__exportStar(require_lit_core(), exports2);
+ tslib_1.__exportStar(require_endpoint_version(), exports2);
+ }
+});
+
+// node_modules/@lit-protocol/misc-browser/node_modules/tslib/tslib.es6.js
+var tslib_es6_exports12 = {};
+__export(tslib_es6_exports12, {
+ __assign: () => __assign12,
+ __asyncDelegator: () => __asyncDelegator12,
+ __asyncGenerator: () => __asyncGenerator12,
+ __asyncValues: () => __asyncValues12,
+ __await: () => __await12,
+ __awaiter: () => __awaiter12,
+ __classPrivateFieldGet: () => __classPrivateFieldGet12,
+ __classPrivateFieldSet: () => __classPrivateFieldSet12,
+ __createBinding: () => __createBinding12,
+ __decorate: () => __decorate12,
+ __exportStar: () => __exportStar12,
+ __extends: () => __extends12,
+ __generator: () => __generator12,
+ __importDefault: () => __importDefault12,
+ __importStar: () => __importStar12,
+ __makeTemplateObject: () => __makeTemplateObject12,
+ __metadata: () => __metadata12,
+ __param: () => __param12,
+ __read: () => __read12,
+ __rest: () => __rest12,
+ __spread: () => __spread12,
+ __spreadArrays: () => __spreadArrays12,
+ __values: () => __values12
+});
+function __extends12(d, b) {
+ extendStatics12(d, b);
+ function __() {
+ this.constructor = d;
+ }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+}
+function __rest12(s, e) {
+ var t = {};
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
+ t[p] = s[p];
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
+ return t;
+}
+function __decorate12(decorators, target, key, desc) {
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
+ r = Reflect.decorate(decorators, target, key, desc);
+ else
+ for (var i = decorators.length - 1; i >= 0; i--)
+ if (d = decorators[i])
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
+}
+function __param12(paramIndex, decorator) {
+ return function(target, key) {
+ decorator(target, key, paramIndex);
+ };
+}
+function __metadata12(metadataKey, metadataValue) {
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
+ return Reflect.metadata(metadataKey, metadataValue);
+}
+function __awaiter12(thisArg, _arguments, P, generator) {
+ function adopt(value) {
+ return value instanceof P ? value : new P(function(resolve) {
+ resolve(value);
+ });
+ }
+ return new (P || (P = Promise))(function(resolve, reject) {
+ function fulfilled(value) {
+ try {
+ step(generator.next(value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function rejected(value) {
+ try {
+ step(generator["throw"](value));
+ } catch (e) {
+ reject(e);
+ }
+ }
+ function step(result) {
+ result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
+ }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+}
+function __generator12(thisArg, body) {
+ var _ = { label: 0, sent: function() {
+ if (t[0] & 1)
+ throw t[1];
+ return t[1];
+ }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
+ return this;
+ }), g;
+ function verb(n) {
+ return function(v) {
+ return step([n, v]);
+ };
+ }
+ function step(op) {
+ if (f)
+ throw new TypeError("Generator is already executing.");
+ while (_)
+ try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
+ return t;
+ if (y = 0, t)
+ op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0:
+ case 1:
+ t = op;
+ break;
+ case 4:
+ _.label++;
+ return { value: op[1], done: false };
+ case 5:
+ _.label++;
+ y = op[1];
+ op = [0];
+ continue;
+ case 7:
+ op = _.ops.pop();
+ _.trys.pop();
+ continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
+ _ = 0;
+ continue;
+ }
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
+ _.label = op[1];
+ break;
+ }
+ if (op[0] === 6 && _.label < t[1]) {
+ _.label = t[1];
+ t = op;
+ break;
+ }
+ if (t && _.label < t[2]) {
+ _.label = t[2];
+ _.ops.push(op);
+ break;
+ }
+ if (t[2])
+ _.ops.pop();
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) {
+ op = [6, e];
+ y = 0;
+ } finally {
+ f = t = 0;
+ }
+ if (op[0] & 5)
+ throw op[1];
+ return { value: op[0] ? op[1] : void 0, done: true };
+ }
+}
+function __createBinding12(o, m, k, k2) {
+ if (k2 === void 0)
+ k2 = k;
+ o[k2] = m[k];
+}
+function __exportStar12(m, exports2) {
+ for (var p in m)
+ if (p !== "default" && !exports2.hasOwnProperty(p))
+ exports2[p] = m[p];
+}
+function __values12(o) {
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
+ if (m)
+ return m.call(o);
+ if (o && typeof o.length === "number")
+ return {
+ next: function() {
+ if (o && i >= o.length)
+ o = void 0;
+ return { value: o && o[i++], done: !o };
+ }
+ };
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
+}
+function __read12(o, n) {
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
+ if (!m)
+ return o;
+ var i = m.call(o), r, ar = [], e;
+ try {
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
+ ar.push(r.value);
+ } catch (error) {
+ e = { error };
+ } finally {
+ try {
+ if (r && !r.done && (m = i["return"]))
+ m.call(i);
+ } finally {
+ if (e)
+ throw e.error;
+ }
+ }
+ return ar;
+}
+function __spread12() {
+ for (var ar = [], i = 0; i < arguments.length; i++)
+ ar = ar.concat(__read12(arguments[i]));
+ return ar;
+}
+function __spreadArrays12() {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
+ s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+}
+function __await12(v) {
+ return this instanceof __await12 ? (this.v = v, this) : new __await12(v);
+}
+function __asyncGenerator12(thisArg, _arguments, generator) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i;
+ function verb(n) {
+ if (g[n])
+ i[n] = function(v) {
+ return new Promise(function(a, b) {
+ q.push([n, v, a, b]) > 1 || resume(n, v);
+ });
+ };
+ }
+ function resume(n, v) {
+ try {
+ step(g[n](v));
+ } catch (e) {
+ settle(q[0][3], e);
+ }
+ }
+ function step(r) {
+ r.value instanceof __await12 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
+ }
+ function fulfill(value) {
+ resume("next", value);
+ }
+ function reject(value) {
+ resume("throw", value);
+ }
+ function settle(f, v) {
+ if (f(v), q.shift(), q.length)
+ resume(q[0][0], q[0][1]);
+ }
+}
+function __asyncDelegator12(o) {
+ var i, p;
+ return i = {}, verb("next"), verb("throw", function(e) {
+ throw e;
+ }), verb("return"), i[Symbol.iterator] = function() {
+ return this;
+ }, i;
+ function verb(n, f) {
+ i[n] = o[n] ? function(v) {
+ return (p = !p) ? { value: __await12(o[n](v)), done: n === "return" } : f ? f(v) : v;
+ } : f;
+ }
+}
+function __asyncValues12(o) {
+ if (!Symbol.asyncIterator)
+ throw new TypeError("Symbol.asyncIterator is not defined.");
+ var m = o[Symbol.asyncIterator], i;
+ return m ? m.call(o) : (o = typeof __values12 === "function" ? __values12(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
+ return this;
+ }, i);
+ function verb(n) {
+ i[n] = o[n] && function(v) {
+ return new Promise(function(resolve, reject) {
+ v = o[n](v), settle(resolve, reject, v.done, v.value);
+ });
+ };
+ }
+ function settle(resolve, reject, d, v) {
+ Promise.resolve(v).then(function(v2) {
+ resolve({ value: v2, done: d });
+ }, reject);
+ }
+}
+function __makeTemplateObject12(cooked, raw) {
+ if (Object.defineProperty) {
+ Object.defineProperty(cooked, "raw", { value: raw });
+ } else {
+ cooked.raw = raw;
+ }
+ return cooked;
+}
+function __importStar12(mod) {
+ if (mod && mod.__esModule)
+ return mod;
+ var result = {};
+ if (mod != null) {
+ for (var k in mod)
+ if (Object.hasOwnProperty.call(mod, k))
+ result[k] = mod[k];
+ }
+ result.default = mod;
+ return result;
+}
+function __importDefault12(mod) {
+ return mod && mod.__esModule ? mod : { default: mod };
+}
+function __classPrivateFieldGet12(receiver, privateMap) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to get private field on non-instance");
+ }
+ return privateMap.get(receiver);
+}
+function __classPrivateFieldSet12(receiver, privateMap, value) {
+ if (!privateMap.has(receiver)) {
+ throw new TypeError("attempted to set private field on non-instance");
+ }
+ privateMap.set(receiver, value);
+ return value;
+}
+var extendStatics12, __assign12;
+var init_tslib_es612 = __esm({
+ "node_modules/@lit-protocol/misc-browser/node_modules/tslib/tslib.es6.js"() {
+ extendStatics12 = function(d, b) {
+ extendStatics12 = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
+ d2.__proto__ = b2;
+ } || function(d2, b2) {
+ for (var p in b2)
+ if (b2.hasOwnProperty(p))
+ d2[p] = b2[p];
+ };
+ return extendStatics12(d, b);
+ };
+ __assign12 = function() {
+ __assign12 = Object.assign || function __assign13(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s)
+ if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign12.apply(this, arguments);
+ };
+ }
+});
+
+// node_modules/@lit-protocol/misc-browser/src/lib/misc-browser.js
+var require_misc_browser = __commonJS({
+ "node_modules/@lit-protocol/misc-browser/src/lib/misc-browser.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.injectViewerIFrame = exports2.downloadFile = exports2.fileToDataUrl = exports2.base64StringToBlob = exports2.blobToBase64String = exports2.removeStorageItem = exports2.setStorageItem = exports2.getStorageItem = void 0;
+ var constants_1 = require_src2();
+ var uint8arrays_1 = require_src5();
+ var getStorageItem = (key) => {
+ let item;
+ try {
+ item = localStorage.getItem(key);
+ } catch (e) {
+ }
+ if (!item) {
+ return (0, constants_1.ELeft)(new constants_1.LocalStorageItemNotFoundException({
+ info: {
+ storageKey: key
+ }
+ }, `Failed to get %s from local storage`, key));
+ }
+ return (0, constants_1.ERight)(item);
+ };
+ exports2.getStorageItem = getStorageItem;
+ var setStorageItem = (key, value) => {
+ try {
+ localStorage.setItem(key, value);
+ return (0, constants_1.ERight)(value);
+ } catch (e) {
+ return (0, constants_1.ELeft)(new constants_1.LocalStorageItemNotSetException({
+ info: {
+ storageKey: key
+ }
+ }, `Failed to set %s in local storage`, key));
+ }
+ };
+ exports2.setStorageItem = setStorageItem;
+ var removeStorageItem = (key) => {
+ try {
+ localStorage.removeItem(key);
+ return (0, constants_1.ERight)(key);
+ } catch (e) {
+ return (0, constants_1.ELeft)(new constants_1.LocalStorageItemNotRemovedException({
+ info: {
+ storageKey: key
+ }
+ }, `Failed to remove %s from local storage`, key));
+ }
+ };
+ exports2.removeStorageItem = removeStorageItem;
+ var blobToBase64String = async (blob) => {
+ const arrayBuffer = await blob.arrayBuffer();
+ const uint8array = new Uint8Array(arrayBuffer);
+ return (0, uint8arrays_1.uint8arrayToString)(uint8array, "base64urlpad");
+ };
+ exports2.blobToBase64String = blobToBase64String;
+ var base64StringToBlob = (base64String) => {
+ return new Blob([(0, uint8arrays_1.uint8arrayFromString)(base64String, "base64urlpad")]);
+ };
+ exports2.base64StringToBlob = base64StringToBlob;
+ var fileToDataUrl = (file) => {
+ return new Promise((resolve) => {
+ const reader = new FileReader();
+ reader.onloadend = () => {
+ resolve(reader.result);
+ };
+ reader.readAsDataURL(file);
+ });
+ };
+ exports2.fileToDataUrl = fileToDataUrl;
+ var downloadFile = ({ fileName, data, mimeType }) => {
+ const element = document.createElement("a");
+ element.setAttribute("href", "data:" + mimeType + ";base64," + (0, uint8arrays_1.uint8arrayToString)(data, "base64"));
+ element.setAttribute("download", fileName);
+ element.style.display = "none";
+ document.body.appendChild(element);
+ element.click();
+ document.body.removeChild(element);
+ };
+ exports2.downloadFile = downloadFile;
+ var injectViewerIFrame = ({ destinationId, title, fileUrl, className }) => {
+ if (fileUrl.includes("data:")) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ fileUrl
+ }
+ }, "You can not inject an iFrame with a data url. Try a regular https URL.");
+ }
+ const url = new URL(fileUrl);
+ if (url.host.toLowerCase() === window.location.host.toLowerCase()) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ fileUrl
+ }
+ }, "You cannot host a LIT on the same domain as the parent webpage. This is because iFrames with the same origin have access to localstorage and cookies in the parent webpage which is unsafe");
+ }
+ const iframe = Object.assign(document.createElement("iframe"), {
+ src: fileUrl,
+ title,
+ sandbox: "allow-forms allow-scripts allow-popups allow-modals allow-popups-to-escape-sandbox allow-same-origin",
+ loading: "lazy",
+ allow: "accelerometer; ambient-light-sensor; autoplay; battery; camera; display-capture; encrypted-media; fullscreen; geolocation; gyroscope; layout-animations; legacy-image-formats; magnetometer; microphone; midi; payment; picture-in-picture; publickey-credentials-get; sync-xhr; usb; vr; screen-wake-lock; web-share; xr-spatial-tracking"
+ });
+ if (className) {
+ iframe.className = className;
+ }
+ document.getElementById(destinationId)?.appendChild(iframe);
+ };
+ exports2.injectViewerIFrame = injectViewerIFrame;
+ }
+});
+
+// node_modules/@lit-protocol/misc-browser/src/index.js
+var require_src13 = __commonJS({
+ "node_modules/@lit-protocol/misc-browser/src/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ var tslib_1 = (init_tslib_es612(), __toCommonJS(tslib_es6_exports12));
+ tslib_1.__exportStar(require_misc_browser(), exports2);
+ }
+});
+
+// node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/encode-code.js
+var require_encode_code = __commonJS({
+ "node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/encode-code.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.encodeCode = void 0;
+ var uint8arrays_1 = require_src5();
+ var encodeCode = (code) => {
+ const _uint8Array = (0, uint8arrays_1.uint8arrayFromString)(code, "utf8");
+ const encodedJs = (0, uint8arrays_1.uint8arrayToString)(_uint8Array, "base64");
+ return encodedJs;
+ };
+ exports2.encodeCode = encodeCode;
+ }
+});
+
+// node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/get-bls-signatures.js
+var require_get_bls_signatures = __commonJS({
+ "node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/get-bls-signatures.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getBlsSignatures = getBlsSignatures;
+ var misc_1 = require_src4();
+ function getBlsSignatures(responseData) {
+ if (!responseData) {
+ throw new Error("[getBlsSignatures] No data provided");
+ }
+ const signatureShares = responseData.map((s) => ({
+ ProofOfPossession: s.signatureShare.ProofOfPossession
+ }));
+ (0, misc_1.log)(`[getBlsSignatures] signatureShares:`, signatureShares);
+ if (!signatureShares || signatureShares.length <= 0) {
+ throw new Error("[getBlsSignatures] No signature shares provided");
+ }
+ return signatureShares;
+ }
+ }
+});
+
+// node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/get-claims.js
+var require_get_claims = __commonJS({
+ "node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/get-claims.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getClaims = void 0;
+ var ethers_1 = require_lib36();
+ var getClaims = (claims) => {
+ const keys = Object.keys(claims[0]);
+ const signatures = {};
+ const claimRes = {};
+ for (let i = 0; i < keys.length; i++) {
+ const claimSet = claims.map((c) => c[keys[i]]);
+ signatures[keys[i]] = [];
+ claimSet.map((c) => {
+ const sig = ethers_1.ethers.utils.splitSignature(`0x${c.signature}`);
+ const convertedSig = {
+ r: sig.r,
+ s: sig.s,
+ v: sig.v
+ };
+ signatures[keys[i]].push(convertedSig);
+ });
+ claimRes[keys[i]] = {
+ signatures: signatures[keys[i]],
+ derivedKeyId: claimSet[0].derivedKeyId
+ };
+ }
+ return claimRes;
+ };
+ exports2.getClaims = getClaims;
+ }
+});
+
+// node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/get-claims-list.js
+var require_get_claims_list = __commonJS({
+ "node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/get-claims-list.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getClaimsList = void 0;
+ var getClaimsList = (responseData) => {
+ const claimsList = responseData.map((r) => {
+ const { claimData } = r;
+ if (claimData) {
+ for (const key of Object.keys(claimData)) {
+ for (const subkey of Object.keys(claimData[key])) {
+ if (typeof claimData[key][subkey] == "string") {
+ claimData[key][subkey] = claimData[key][subkey].replaceAll('"', "");
+ }
+ }
+ }
+ return claimData;
+ }
+ return null;
+ }).filter((item) => item !== null);
+ return claimsList;
+ };
+ exports2.getClaimsList = getClaimsList;
+ }
+});
+
+// node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/get-signatures.js
+var require_get_signatures = __commonJS({
+ "node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/get-signatures.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.getSignatures = exports2.getFlattenShare = void 0;
+ var utils_1 = require_utils8();
+ var constants_1 = require_src2();
+ var crypto_1 = require_src11();
+ var misc_1 = require_src4();
+ var getFlattenShare = (share) => {
+ const flattenObj = Object.values(share).map((item) => {
+ if (item === null || item === void 0) {
+ return null;
+ }
+ const typedItem = item;
+ const requiredShareProps = [
+ "sigType",
+ "dataSigned",
+ "signatureShare",
+ "shareIndex",
+ "bigR",
+ "publicKey"
+ ];
+ const requiredSessionSigsShareProps = [
+ ...requiredShareProps,
+ "siweMessage"
+ ];
+ const requiredSignatureShareProps = [
+ ...requiredShareProps,
+ "sigName"
+ ];
+ const hasProps = (props) => {
+ return props.every((prop) => typedItem[prop] !== void 0 && typedItem[prop] !== null);
+ };
+ if (hasProps(requiredSessionSigsShareProps) || hasProps(requiredSignatureShareProps)) {
+ const bigR = typedItem.bigR ?? typedItem.bigr;
+ typedItem.signatureShare = (typedItem.signatureShare ?? "").replaceAll('"', "");
+ typedItem.bigR = (bigR ?? "").replaceAll('"', "");
+ typedItem.publicKey = (typedItem.publicKey ?? "").replaceAll('"', "");
+ typedItem.dataSigned = (typedItem.dataSigned ?? "").replaceAll('"', "");
+ return typedItem;
+ }
+ return null;
+ });
+ const flattenShare = flattenObj.filter((item) => item !== null)[0];
+ if (flattenShare === null || flattenShare === void 0) {
+ return share;
+ }
+ return flattenShare;
+ };
+ exports2.getFlattenShare = getFlattenShare;
+ var getSignatures = async (params) => {
+ const { networkPubKeySet, minNodeCount, signedData, requestId } = params;
+ const initialKeys = [...new Set(signedData.flatMap((i) => Object.keys(i)))];
+ for (const signatureResponse of signedData) {
+ for (const sigName of Object.keys(signatureResponse)) {
+ const requiredFields = ["signatureShare"];
+ for (const field of requiredFields) {
+ if (!signatureResponse[sigName][field]) {
+ (0, misc_1.logWithRequestId)(requestId, `invalid field ${field} in signature share: ${sigName}, continuing with share processing`);
+ delete signatureResponse[sigName];
+ } else {
+ let share = (0, exports2.getFlattenShare)(signatureResponse[sigName]);
+ share = {
+ sigType: share.sigType,
+ signatureShare: share.signatureShare,
+ shareIndex: share.shareIndex,
+ bigR: share.bigR,
+ publicKey: share.publicKey,
+ dataSigned: share.dataSigned,
+ sigName: share.sigName ? share.sigName : "sig"
+ };
+ signatureResponse[sigName] = share;
+ }
+ }
+ }
+ }
+ const validatedSignedData = signedData;
+ const signatures = {};
+ const allKeys = [
+ ...new Set(validatedSignedData.flatMap((i) => Object.keys(i)))
+ ];
+ if (allKeys.length !== initialKeys.length) {
+ throw new constants_1.NoValidShares({}, "total number of valid signatures does not match requested");
+ }
+ for (const key of allKeys) {
+ const shares = validatedSignedData.map((r) => r[key]).filter((r) => r !== void 0);
+ shares.sort((a, b) => a.shareIndex - b.shareIndex);
+ const sigName = shares[0].sigName;
+ (0, misc_1.logWithRequestId)(requestId, `starting signature combine for sig name: ${sigName}`, shares);
+ (0, misc_1.logWithRequestId)(requestId, `number of shares for ${sigName}:`, signedData.length);
+ (0, misc_1.logWithRequestId)(requestId, `validated length for signature: ${sigName}`, shares.length);
+ (0, misc_1.logWithRequestId)(requestId, "minimum required shares for threshold:", minNodeCount);
+ if (shares.length < minNodeCount) {
+ (0, misc_1.logErrorWithRequestId)(requestId, `not enough nodes to get the signatures. Expected ${minNodeCount}, got ${shares.length}`);
+ throw new constants_1.NoValidShares({
+ info: {
+ requestId,
+ shares: shares.length,
+ minNodeCount
+ }
+ }, "The total number of valid signatures shares %s does not meet the threshold of %s", shares.length, minNodeCount);
+ }
+ const sigType = (0, misc_1.mostCommonString)(shares.map((s) => s.sigType));
+ if (networkPubKeySet === null) {
+ throw new constants_1.ParamNullError({
+ info: {
+ requestId
+ }
+ }, "networkPubKeySet cannot be null");
+ }
+ if (sigType !== constants_1.LIT_CURVE.EcdsaCaitSith && sigType !== constants_1.LIT_CURVE.EcdsaK256 && sigType !== constants_1.LIT_CURVE.EcdsaCAITSITHP256) {
+ throw new constants_1.UnknownSignatureType({
+ info: {
+ requestId,
+ signatureType: sigType
+ }
+ }, "signature type is %s which is invalid", sigType);
+ }
+ const signature = await (0, crypto_1.combineEcdsaShares)(shares);
+ if (!signature.r) {
+ throw new constants_1.UnknownSignatureError({
+ info: {
+ requestId,
+ signature
+ }
+ }, "signature could not be combined");
+ }
+ const encodedSig = (0, utils_1.joinSignature)({
+ r: "0x" + signature.r,
+ s: "0x" + signature.s,
+ v: signature.recid
+ });
+ signatures[key] = {
+ ...signature,
+ signature: encodedSig,
+ publicKey: (0, misc_1.mostCommonString)(shares.map((s) => s.publicKey)),
+ dataSigned: (0, misc_1.mostCommonString)(shares.map((s) => s.dataSigned))
+ };
+ }
+ return signatures;
+ };
+ exports2.getSignatures = getSignatures;
+ }
+});
+
+// node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/normalize-array.js
+var require_normalize_array = __commonJS({
+ "node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/normalize-array.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.normalizeArray = void 0;
+ var normalizeArray = (toSign) => {
+ const arr = [];
+ const uint8Array = new Uint8Array(toSign);
+ for (let i = 0; i < uint8Array.length; i++) {
+ arr.push(uint8Array[i]);
+ }
+ return arr;
+ };
+ exports2.normalizeArray = normalizeArray;
+ }
+});
+
+// node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/normalize-params.js
+var require_normalize_params = __commonJS({
+ "node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/normalize-params.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.normalizeJsParams = void 0;
+ var normalizeJsParams = (jsParams) => {
+ for (const key of Object.keys(jsParams)) {
+ const value = jsParams[key];
+ if (ArrayBuffer.isView(value)) {
+ jsParams[key] = Array.from(new Uint8Array(value.buffer, value.byteOffset, value.byteLength));
+ } else if (value instanceof ArrayBuffer) {
+ jsParams[key] = Array.from(new Uint8Array(value));
+ }
+ }
+ return jsParams;
+ };
+ exports2.normalizeJsParams = normalizeJsParams;
+ }
+});
+
+// node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/parse-as-json-or-string.js
+var require_parse_as_json_or_string = __commonJS({
+ "node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/parse-as-json-or-string.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.parseAsJsonOrString = void 0;
+ var misc_1 = require_src4();
+ var parseAsJsonOrString = (responseString) => {
+ try {
+ return JSON.parse(responseString);
+ } catch (e) {
+ (0, misc_1.log)("[parseResponses] Error parsing response as json. Swallowing and returning as string.", responseString);
+ return responseString;
+ }
+ };
+ exports2.parseAsJsonOrString = parseAsJsonOrString;
+ }
+});
+
+// node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/parse-pkp-sign-response.js
+var require_parse_pkp_sign_response = __commonJS({
+ "node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/parse-pkp-sign-response.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.parsePkpSignResponse = exports2.cleanStringValues = exports2.convertKeysToCamelCase = exports2.snakeToCamel = void 0;
+ var snakeToCamel = (s) => s.replace(/(_\w)/g, (m) => m[1].toUpperCase());
+ exports2.snakeToCamel = snakeToCamel;
+ var convertKeysToCamelCase = (obj) => Object.keys(obj).reduce((acc, key) => ({
+ ...acc,
+ [(0, exports2.snakeToCamel)(key)]: obj[key]
+ }), {});
+ exports2.convertKeysToCamelCase = convertKeysToCamelCase;
+ var cleanStringValues = (obj) => Object.keys(obj).reduce((acc, key) => ({
+ ...acc,
+ [key]: typeof obj[key] === "string" ? obj[key].replace(/"/g, "") : obj[key]
+ }), {});
+ exports2.cleanStringValues = cleanStringValues;
+ var parsePkpSignResponse = (responseData) => responseData.map(({ signatureShare }) => {
+ delete signatureShare.result;
+ const camelCaseShare = (0, exports2.convertKeysToCamelCase)(signatureShare);
+ const cleanedShare = (0, exports2.cleanStringValues)(camelCaseShare);
+ if (cleanedShare.digest) {
+ cleanedShare.dataSigned = cleanedShare.digest;
+ }
+ return { signature: cleanedShare };
+ });
+ exports2.parsePkpSignResponse = parsePkpSignResponse;
+ }
+});
+
+// node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/process-lit-action-response-strategy.js
+var require_process_lit_action_response_strategy = __commonJS({
+ "node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/process-lit-action-response-strategy.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.processLitActionResponseStrategy = void 0;
+ var misc_1 = require_src4();
+ var _findFrequency = (responses) => {
+ const sorted = responses.sort((a, b) => responses.filter((v) => v === a).length - responses.filter((v) => v === b).length);
+ return { min: sorted[0], max: sorted[sorted?.length - 1] };
+ };
+ var processLitActionResponseStrategy = (responses, strategy) => {
+ const executionResponses = responses.map((nodeResp) => {
+ return nodeResp.response;
+ });
+ const copiedExecutionResponses = executionResponses.map((r) => {
+ return "" + r;
+ });
+ if (strategy.strategy === "custom") {
+ try {
+ if (strategy.customFilter) {
+ const customResponseFilterResult = strategy?.customFilter(executionResponses);
+ return customResponseFilterResult;
+ } else {
+ (0, misc_1.logError)("Custom filter specified for response strategy but none found. using most common");
+ }
+ } catch (e) {
+ (0, misc_1.logError)("Error while executing custom response filter, defaulting to most common", e.toString());
+ }
+ }
+ let respFrequency = _findFrequency(copiedExecutionResponses);
+ if (strategy?.strategy === "leastCommon") {
+ (0, misc_1.log)("strategy found to be most common, taking most common response from execution results");
+ return respFrequency.min;
+ } else if (strategy?.strategy === "mostCommon") {
+ (0, misc_1.log)("strategy found to be most common, taking most common response from execution results");
+ return respFrequency.max;
+ } else {
+ (0, misc_1.log)("no strategy found, using least common response object from execution results");
+ respFrequency.min;
+ }
+ };
+ exports2.processLitActionResponseStrategy = processLitActionResponseStrategy;
+ }
+});
+
+// node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/remove-double-quotes.js
+var require_remove_double_quotes = __commonJS({
+ "node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/remove-double-quotes.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.removeDoubleQuotes = void 0;
+ var removeDoubleQuotes = (obj) => {
+ for (const key of Object.keys(obj)) {
+ const value = obj[key];
+ for (const subkey of Object.keys(value)) {
+ if (typeof value[subkey] === "string") {
+ value[subkey] = value[subkey].replaceAll('"', "");
+ }
+ }
+ }
+ return obj;
+ };
+ exports2.removeDoubleQuotes = removeDoubleQuotes;
+ }
+});
+
+// node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/validate-bls-session-sig.js
+var require_validate_bls_session_sig = __commonJS({
+ "node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/helpers/validate-bls-session-sig.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.blsSessionSigVerify = void 0;
+ var ethers_1 = require_lib36();
+ var siwe_1 = require_siwe();
+ var LIT_SESSION_SIGNED_MESSAGE_PREFIX = "lit_session:";
+ var blsSessionSigVerify = async (verifier, networkPubKey, authSig, authSigSiweMessage) => {
+ let sigJson = JSON.parse(authSig.sig);
+ const eip191Hash = ethers_1.ethers.utils.hashMessage(authSig.signedMessage);
+ const prefixedStr = LIT_SESSION_SIGNED_MESSAGE_PREFIX + eip191Hash.replace("0x", "");
+ const prefixedEncoded = ethers_1.ethers.utils.toUtf8Bytes(prefixedStr);
+ const shaHashed = ethers_1.ethers.utils.sha256(prefixedEncoded).replace("0x", "");
+ const signatureBytes = Buffer.from(sigJson.ProofOfPossession, `hex`);
+ const checkTime = /* @__PURE__ */ new Date();
+ if (!authSigSiweMessage.expirationTime || !authSigSiweMessage.issuedAt) {
+ throw new Error("Invalid SIWE message. Missing expirationTime or issuedAt.");
+ }
+ const expirationDate = new Date(authSigSiweMessage.expirationTime);
+ if (checkTime.getTime() >= expirationDate.getTime()) {
+ throw new siwe_1.SiweError(siwe_1.SiweErrorType.EXPIRED_MESSAGE, `${checkTime.toISOString()} < ${expirationDate.toISOString()}`, `${checkTime.toISOString()} >= ${expirationDate.toISOString()}`);
+ }
+ const issuedAt = new Date(authSigSiweMessage.issuedAt);
+ if (checkTime.getTime() < issuedAt.getTime()) {
+ throw new siwe_1.SiweError(siwe_1.SiweErrorType.NOT_YET_VALID_MESSAGE, `${checkTime.toISOString()} >= ${issuedAt.toISOString()}`, `${checkTime.toISOString()} < ${issuedAt.toISOString()}`);
+ }
+ await verifier(networkPubKey, Buffer.from(shaHashed, "hex"), signatureBytes);
+ };
+ exports2.blsSessionSigVerify = blsSessionSigVerify;
+ }
+});
+
+// node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/lit-node-client-nodejs.js
+var require_lit_node_client_nodejs = __commonJS({
+ "node_modules/@lit-protocol/lit-node-client-nodejs/src/lib/lit-node-client-nodejs.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.LitNodeClientNodeJs = void 0;
+ var transactions_1 = require_lib14();
+ var ethers_1 = require_lib36();
+ var utils_1 = require_utils8();
+ var siwe_1 = require_siwe();
+ var auth_helpers_1 = require_src7();
+ var constants_1 = require_src2();
+ var core_1 = require_src12();
+ var crypto_1 = require_src11();
+ var misc_1 = require_src4();
+ var misc_browser_1 = require_src13();
+ var nacl_1 = require_src9();
+ var uint8arrays_1 = require_src5();
+ var encode_code_1 = require_encode_code();
+ var get_bls_signatures_1 = require_get_bls_signatures();
+ var get_claims_1 = require_get_claims();
+ var get_claims_list_1 = require_get_claims_list();
+ var get_signatures_1 = require_get_signatures();
+ var normalize_array_1 = require_normalize_array();
+ var normalize_params_1 = require_normalize_params();
+ var parse_as_json_or_string_1 = require_parse_as_json_or_string();
+ var parse_pkp_sign_response_1 = require_parse_pkp_sign_response();
+ var process_lit_action_response_strategy_1 = require_process_lit_action_response_strategy();
+ var remove_double_quotes_1 = require_remove_double_quotes();
+ var validate_bls_session_sig_1 = require_validate_bls_session_sig();
+ var LitNodeClientNodeJs = class _LitNodeClientNodeJs extends core_1.LitCore {
+ // ========== Constructor ==========
+ constructor(args) {
+ if (!args) {
+ throw new constants_1.ParamsMissingError({}, "must provide LitNodeClient parameters");
+ }
+ super(args);
+ this.createCapacityDelegationAuthSig = async (params) => {
+ if (!params.dAppOwnerWallet) {
+ throw new constants_1.InvalidParamType({
+ info: {
+ params
+ }
+ }, "dAppOwnerWallet must exist");
+ }
+ if (!params.delegateeAddresses || params.delegateeAddresses.length === 0) {
+ (0, misc_1.log)(`[createCapacityDelegationAuthSig] 'delegateeAddresses' is an empty array. It means that no body can use it. However, if the 'delegateeAddresses' field is omitted, It means that the capability will not restrict access based on delegatee list, but it may still enforce other restrictions such as usage limits (uses) and specific NFT IDs (nft_id).`);
+ }
+ const dAppOwnerWalletAddress = ethers_1.ethers.utils.getAddress(await params.dAppOwnerWallet.getAddress());
+ if (!this.ready) {
+ await this.connect();
+ }
+ const siweMessage = await (0, auth_helpers_1.createSiweMessageWithCapacityDelegation)({
+ uri: "lit:capability:delegation",
+ litNodeClient: this,
+ walletAddress: dAppOwnerWalletAddress,
+ nonce: await this.getLatestBlockhash(),
+ expiration: params.expiration,
+ domain: params.domain,
+ statement: params.statement,
+ // -- capacity delegation specific configuration
+ uses: params.uses,
+ delegateeAddresses: params.delegateeAddresses,
+ capacityTokenId: params.capacityTokenId
+ });
+ const authSig = await (0, auth_helpers_1.generateAuthSig)({
+ signer: params.dAppOwnerWallet,
+ toSign: siweMessage
+ });
+ return { capacityDelegationAuthSig: authSig };
+ };
+ this.getJWTParams = () => {
+ const now = Date.now();
+ const iat = Math.floor(now / 1e3);
+ const exp = iat + 12 * 60 * 60;
+ return { iat, exp };
+ };
+ this.getSessionKey = () => {
+ const storageKey = constants_1.LOCAL_STORAGE_KEYS.SESSION_KEY;
+ const storedSessionKeyOrError = (0, misc_browser_1.getStorageItem)(storageKey);
+ if (storedSessionKeyOrError.type === constants_1.EITHER_TYPE.ERROR || !storedSessionKeyOrError.result || storedSessionKeyOrError.result === "") {
+ console.warn(`Storage key "${storageKey}" is missing. Not a problem. Continue...`);
+ const newSessionKey = (0, crypto_1.generateSessionKeyPair)();
+ try {
+ localStorage.setItem(storageKey, JSON.stringify(newSessionKey));
+ } catch (e) {
+ (0, misc_1.log)(`[getSessionKey] Localstorage not available.Not a problem. Continue...`);
+ }
+ return newSessionKey;
+ } else {
+ return JSON.parse(storedSessionKeyOrError.result);
+ }
+ };
+ this.getExpiration = () => {
+ return _LitNodeClientNodeJs.getExpiration();
+ };
+ this.getWalletSig = async ({ authNeededCallback, chain, sessionCapabilityObject, switchChain, expiration, sessionKeyUri, nonce, resourceAbilityRequests, litActionCode, litActionIpfsId, jsParams, sessionKey }) => {
+ let walletSig;
+ const storageKey = constants_1.LOCAL_STORAGE_KEYS.WALLET_SIGNATURE;
+ const storedWalletSigOrError = (0, misc_browser_1.getStorageItem)(storageKey);
+ (0, misc_1.log)(`getWalletSig - flow starts
+ storageKey: ${storageKey}
+ storedWalletSigOrError: ${JSON.stringify(storedWalletSigOrError)}
+ `);
+ if (storedWalletSigOrError.type === constants_1.EITHER_TYPE.ERROR || !storedWalletSigOrError.result || storedWalletSigOrError.result == "") {
+ (0, misc_1.log)("getWalletSig - flow 1");
+ console.warn(`Storage key "${storageKey}" is missing. Not a problem. Continue...`);
+ if (authNeededCallback) {
+ (0, misc_1.log)("getWalletSig - flow 1.1");
+ const body = {
+ chain,
+ statement: sessionCapabilityObject?.statement,
+ resources: sessionCapabilityObject ? [sessionCapabilityObject.encodeAsSiweResource()] : void 0,
+ ...switchChain && { switchChain },
+ expiration,
+ uri: sessionKeyUri,
+ sessionKey,
+ nonce,
+ // for recap
+ ...resourceAbilityRequests && { resourceAbilityRequests },
+ // for lit action custom auth
+ ...litActionCode && { litActionCode },
+ ...litActionIpfsId && { litActionIpfsId },
+ ...jsParams && { jsParams }
+ };
+ (0, misc_1.log)("callback body:", body);
+ walletSig = await authNeededCallback(body);
+ } else {
+ (0, misc_1.log)("getWalletSig - flow 1.2");
+ if (!this.defaultAuthCallback) {
+ (0, misc_1.log)("getWalletSig - flow 1.2.1");
+ throw new constants_1.ParamsMissingError({}, "No authNeededCallback nor default auth callback provided");
+ }
+ (0, misc_1.log)("getWalletSig - flow 1.2.2");
+ walletSig = await this.defaultAuthCallback({
+ chain,
+ statement: sessionCapabilityObject.statement,
+ resources: sessionCapabilityObject ? [sessionCapabilityObject.encodeAsSiweResource()] : void 0,
+ switchChain,
+ expiration,
+ uri: sessionKeyUri,
+ nonce
+ });
+ }
+ (0, misc_1.log)("getWalletSig - flow 1.3");
+ const storeNewWalletSigOrError = (0, misc_browser_1.setStorageItem)(storageKey, JSON.stringify(walletSig));
+ if (storeNewWalletSigOrError.type === "ERROR") {
+ (0, misc_1.log)("getWalletSig - flow 1.4");
+ console.warn(`Unable to store walletSig in local storage. Not a problem. Continue...`);
+ }
+ } else {
+ (0, misc_1.log)("getWalletSig - flow 2");
+ try {
+ walletSig = JSON.parse(storedWalletSigOrError.result);
+ (0, misc_1.log)("getWalletSig - flow 2.1");
+ } catch (e) {
+ console.warn("Error parsing walletSig", e);
+ (0, misc_1.log)("getWalletSig - flow 2.2");
+ }
+ }
+ (0, misc_1.log)("getWalletSig - flow 3");
+ return walletSig;
+ };
+ this._authCallbackAndUpdateStorageItem = async ({ authCallbackParams, authCallback }) => {
+ let authSig;
+ if (authCallback) {
+ authSig = await authCallback(authCallbackParams);
+ } else {
+ if (!this.defaultAuthCallback) {
+ throw new constants_1.ParamsMissingError({}, "No authCallback nor default auth callback provided");
+ }
+ authSig = await this.defaultAuthCallback(authCallbackParams);
+ }
+ const storeNewWalletSigOrError = (0, misc_browser_1.setStorageItem)(constants_1.LOCAL_STORAGE_KEYS.WALLET_SIGNATURE, JSON.stringify(authSig));
+ if (storeNewWalletSigOrError.type === constants_1.EITHER_TYPE.SUCCESS) {
+ return authSig;
+ }
+ console.warn(`Unable to store walletSig in local storage. Not a problem. Continuing to remove item key...`);
+ const removeWalletSigOrError = (0, misc_browser_1.removeStorageItem)(constants_1.LOCAL_STORAGE_KEYS.WALLET_SIGNATURE);
+ if (removeWalletSigOrError.type === constants_1.EITHER_TYPE.ERROR) {
+ console.warn(`Unable to remove walletSig in local storage. Not a problem. Continuing...`);
+ }
+ return authSig;
+ };
+ this.checkNeedToResignSessionKey = async ({ authSig, sessionKeyUri, resourceAbilityRequests }) => {
+ const authSigSiweMessage = new siwe_1.SiweMessage(authSig.signedMessage);
+ if (authSig.algo === `ed25519` || authSig.algo === void 0) {
+ try {
+ await authSigSiweMessage.verify({ signature: authSig.sig }, { suppressExceptions: false });
+ } catch (e) {
+ (0, misc_1.log)(`Error while verifying BLS signature: `, e);
+ return true;
+ }
+ } else if (authSig.algo === `LIT_BLS`) {
+ try {
+ await (0, validate_bls_session_sig_1.blsSessionSigVerify)(crypto_1.verifySignature, this.networkPubKey, authSig, authSigSiweMessage);
+ } catch (e) {
+ (0, misc_1.log)(`Error while verifying bls signature: `, e);
+ return true;
+ }
+ } else {
+ throw new constants_1.InvalidSignatureError({
+ info: {
+ authSig,
+ resourceAbilityRequests,
+ sessionKeyUri
+ }
+ }, "Unsupported signature algo for session signature. Expected ed25519 or LIT_BLS received %s", authSig.algo);
+ }
+ if (authSigSiweMessage.uri !== sessionKeyUri) {
+ (0, misc_1.log)("Need retry because uri does not match");
+ return true;
+ }
+ if (!authSigSiweMessage.resources || authSigSiweMessage.resources.length === 0) {
+ (0, misc_1.log)("Need retry because empty resources");
+ return true;
+ }
+ const authSigSessionCapabilityObject = (0, auth_helpers_1.decode)(authSigSiweMessage.resources[0]);
+ for (const resourceAbilityRequest of resourceAbilityRequests) {
+ if (!authSigSessionCapabilityObject.verifyCapabilitiesForResource(resourceAbilityRequest.resource, resourceAbilityRequest.ability)) {
+ (0, misc_1.log)("Need retry because capabilities do not match", {
+ authSigSessionCapabilityObject,
+ resourceAbilityRequest
+ });
+ return true;
+ }
+ }
+ return false;
+ };
+ this.combineSharesAndGetJWT = async (signatureShares, requestId = "") => {
+ if (!signatureShares.every((val, i, arr) => val.unsignedJwt === arr[0].unsignedJwt)) {
+ const msg = "Unsigned JWT is not the same from all the nodes. This means the combined signature will be bad because the nodes signed the wrong things";
+ (0, misc_1.logErrorWithRequestId)(requestId, msg);
+ }
+ signatureShares.sort((a, b) => a.shareIndex - b.shareIndex);
+ const signature = await (0, crypto_1.combineSignatureShares)(signatureShares.map((s) => s.signatureShare));
+ (0, misc_1.logWithRequestId)(requestId, "signature is", signature);
+ const unsignedJwt = (0, misc_1.mostCommonString)(signatureShares.map((s) => s.unsignedJwt));
+ const finalJwt = `${unsignedJwt}.${(0, uint8arrays_1.uint8arrayToString)((0, uint8arrays_1.uint8arrayFromString)(signature, "base16"), "base64urlpad")}`;
+ return finalJwt;
+ };
+ this._decryptWithSignatureShares = (networkPubKey, identityParam, ciphertext, signatureShares) => {
+ const sigShares = signatureShares.map((s) => s.signatureShare);
+ return (0, crypto_1.verifyAndDecryptWithSignatureShares)(networkPubKey, identityParam, ciphertext, sigShares);
+ };
+ this.getIpfsId = async ({ dataToHash, sessionSigs }) => {
+ const res = await this.executeJs({
+ ipfsId: constants_1.LIT_ACTION_IPFS_HASH,
+ sessionSigs,
+ jsParams: {
+ dataToHash
+ }
+ }).catch((e) => {
+ (0, misc_1.logError)("Error getting IPFS ID", e);
+ throw e;
+ });
+ let data;
+ if (typeof res.response === "string") {
+ try {
+ data = JSON.parse(res.response).res;
+ } catch (e) {
+ data = res.response;
+ }
+ }
+ if (!data.success) {
+ (0, misc_1.logError)("Error getting IPFS ID", data.data);
+ }
+ return data.data;
+ };
+ this.runOnTargetedNodes = async (params) => {
+ (0, misc_1.log)("running runOnTargetedNodes:", params.targetNodeRange);
+ if (!params.targetNodeRange) {
+ throw new constants_1.InvalidParamType({
+ info: {
+ params
+ }
+ }, "targetNodeRange is required");
+ }
+ const ipfsId = await this.getIpfsId({
+ dataToHash: params.code,
+ sessionSigs: params.sessionSigs
+ });
+ const randomSelectedNodeIndexes = [];
+ let nodeCounter = 0;
+ while (randomSelectedNodeIndexes.length < params.targetNodeRange) {
+ const str = `${nodeCounter}:${ipfsId.toString()}`;
+ const cidBuffer = Buffer.from(str);
+ const hash = (0, utils_1.sha256)(cidBuffer);
+ const hashAsNumber = ethers_1.BigNumber.from(hash);
+ const nodeIndex = hashAsNumber.mod(this.config.bootstrapUrls.length).toNumber();
+ (0, misc_1.log)("nodeIndex:", nodeIndex);
+ if (!randomSelectedNodeIndexes.includes(nodeIndex) && nodeIndex < this.config.bootstrapUrls.length) {
+ randomSelectedNodeIndexes.push(nodeIndex);
+ }
+ nodeCounter++;
+ }
+ (0, misc_1.log)("Final Selected Indexes:", randomSelectedNodeIndexes);
+ const requestId = this._getNewRequestId();
+ const nodePromises = [];
+ for (let i = 0; i < randomSelectedNodeIndexes.length; i++) {
+ const nodeIndex = randomSelectedNodeIndexes[i];
+ const url = this.config.bootstrapUrls[nodeIndex];
+ (0, misc_1.log)(`running on node ${nodeIndex} at ${url}`);
+ const sessionSig = this.getSessionSigByUrl({
+ sessionSigs: params.sessionSigs,
+ url
+ });
+ const reqBody = {
+ ...params,
+ targetNodeRange: params.targetNodeRange,
+ authSig: sessionSig
+ };
+ const singleNodePromise = this.sendCommandToNode({
+ url,
+ data: params,
+ requestId
+ });
+ nodePromises.push(singleNodePromise);
+ }
+ return await this.handleNodePromises(nodePromises, requestId, params.targetNodeRange);
+ };
+ this.executeJs = async (params) => {
+ if (!this.ready) {
+ const message = "[executeJs] LitNodeClient is not ready. Please call await litNodeClient.connect() first.";
+ throw new constants_1.LitNodeClientNotReadyError({}, message);
+ }
+ const paramsIsSafe = (0, misc_1.safeParams)({
+ functionName: "executeJs",
+ params
+ });
+ if (!paramsIsSafe) {
+ throw new constants_1.InvalidParamType({
+ info: {
+ params
+ }
+ }, "executeJs params are not valid");
+ }
+ const checkedSessionSigs = (0, misc_1.validateSessionSigs)(params.sessionSigs);
+ if (checkedSessionSigs.isValid === false) {
+ throw new constants_1.InvalidSessionSigs({}, `Invalid sessionSigs. Errors: ${checkedSessionSigs.errors}`);
+ }
+ let formattedParams = {
+ ...params,
+ ...params.jsParams && { jsParams: (0, normalize_params_1.normalizeJsParams)(params.jsParams) },
+ ...params.code && { code: (0, encode_code_1.encodeCode)(params.code) }
+ };
+ const overwriteCode = params.ipfsOptions?.overwriteCode || constants_1.GLOBAL_OVERWRITE_IPFS_CODE_BY_NETWORK[this.config.litNetwork];
+ if (overwriteCode && params.ipfsId) {
+ const code = await this._getFallbackIpfsCode(params.ipfsOptions?.gatewayUrl, params.ipfsId);
+ formattedParams = {
+ ...params,
+ code,
+ ipfsId: void 0
+ };
+ }
+ const requestId = this._getNewRequestId();
+ const getNodePromises = async () => {
+ if (params.useSingleNode) {
+ return this.getRandomNodePromise((url) => this.executeJsNodeRequest(url, formattedParams, requestId));
+ }
+ return this.getNodePromises((url) => this.executeJsNodeRequest(url, formattedParams, requestId));
+ };
+ const nodePromises = await getNodePromises();
+ const res = await this.handleNodePromises(nodePromises, requestId, params.useSingleNode ? 1 : this.connectedNodes.size);
+ if (!res.success) {
+ this._throwNodeError(res, requestId);
+ }
+ const responseData = res.values;
+ (0, misc_1.logWithRequestId)(requestId, "executeJs responseData from node : ", JSON.stringify(responseData, null, 2));
+ const mostCommonResponse = (0, misc_1.findMostCommonResponse)(responseData);
+ const responseFromStrategy = (0, process_lit_action_response_strategy_1.processLitActionResponseStrategy)(responseData, params.responseStrategy ?? { strategy: "leastCommon" });
+ mostCommonResponse.response = responseFromStrategy;
+ const isSuccess = mostCommonResponse.success;
+ const hasSignedData = Object.keys(mostCommonResponse.signedData).length > 0;
+ const hasClaimData = Object.keys(mostCommonResponse.claimData).length > 0;
+ if (isSuccess && !hasSignedData && !hasClaimData) {
+ return mostCommonResponse;
+ }
+ if (!hasSignedData && !hasClaimData) {
+ return {
+ claims: {},
+ signatures: null,
+ decryptions: [],
+ response: mostCommonResponse.response,
+ logs: mostCommonResponse.logs
+ };
+ }
+ const signedDataList = responseData.map((r) => {
+ return (0, remove_double_quotes_1.removeDoubleQuotes)(r.signedData);
+ });
+ (0, misc_1.logWithRequestId)(requestId, "signatures shares to combine: ", signedDataList);
+ const signatures = await (0, get_signatures_1.getSignatures)({
+ requestId,
+ networkPubKeySet: this.networkPubKeySet,
+ minNodeCount: params.useSingleNode ? 1 : this.config.minNodeCount,
+ signedData: signedDataList
+ });
+ const parsedResponse = (0, parse_as_json_or_string_1.parseAsJsonOrString)(mostCommonResponse.response);
+ const mostCommonLogs = (0, misc_1.mostCommonString)(responseData.map((r) => r.logs));
+ const claimsList = (0, get_claims_list_1.getClaimsList)(responseData);
+ const claims = claimsList.length > 0 ? (0, get_claims_1.getClaims)(claimsList) : void 0;
+ const returnVal = {
+ claims,
+ signatures,
+ // decryptions: [],
+ response: parsedResponse,
+ logs: mostCommonLogs
+ };
+ (0, misc_1.log)("returnVal:", returnVal);
+ return returnVal;
+ };
+ this.generatePromise = async (url, params, requestId) => {
+ return await this.sendCommandToNode({
+ url,
+ data: params,
+ requestId
+ });
+ };
+ this.pkpSign = async (params) => {
+ const requiredParamKeys = ["toSign", "pubKey"];
+ requiredParamKeys.forEach((key) => {
+ if (!params[key]) {
+ throw new constants_1.ParamNullError({
+ info: {
+ params,
+ key
+ }
+ }, `"%s" cannot be undefined, empty, or null. Please provide a valid value.`, key);
+ }
+ });
+ if (!params.sessionSigs && (!params.authMethods || params.authMethods.length <= 0)) {
+ throw new constants_1.ParamNullError({
+ info: {
+ params
+ }
+ }, "Either sessionSigs or authMethods (length > 0) must be present.");
+ }
+ const requestId = this._getNewRequestId();
+ const checkedSessionSigs = (0, misc_1.validateSessionSigs)(params.sessionSigs);
+ if (checkedSessionSigs.isValid === false) {
+ throw new constants_1.InvalidSessionSigs({}, `Invalid sessionSigs. Errors: ${checkedSessionSigs.errors}`);
+ }
+ const nodePromises = this.getNodePromises((url) => {
+ const sessionSig = this.getSessionSigByUrl({
+ sessionSigs: params.sessionSigs,
+ url
+ });
+ const reqBody = {
+ toSign: (0, normalize_array_1.normalizeArray)(params.toSign),
+ pubkey: (0, misc_1.hexPrefixed)(params.pubKey),
+ authSig: sessionSig,
+ // -- optional params
+ ...params.authMethods && params.authMethods.length > 0 && {
+ authMethods: params.authMethods
+ }
+ };
+ (0, misc_1.logWithRequestId)(requestId, "reqBody:", reqBody);
+ const urlWithPath = (0, core_1.composeLitUrl)({
+ url,
+ endpoint: constants_1.LIT_ENDPOINT.PKP_SIGN
+ });
+ return this.generatePromise(urlWithPath, reqBody, requestId);
+ });
+ const res = await this.handleNodePromises(nodePromises, requestId, this.connectedNodes.size);
+ if (!res.success) {
+ this._throwNodeError(res, requestId);
+ }
+ const responseData = res.values;
+ (0, misc_1.logWithRequestId)(requestId, "responseData", JSON.stringify(responseData, null, 2));
+ const signedDataList = (0, parse_pkp_sign_response_1.parsePkpSignResponse)(responseData);
+ const signatures = await (0, get_signatures_1.getSignatures)({
+ requestId,
+ networkPubKeySet: this.networkPubKeySet,
+ minNodeCount: this.config.minNodeCount,
+ signedData: signedDataList
+ });
+ (0, misc_1.logWithRequestId)(requestId, `signature combination`, signatures);
+ return signatures.signature;
+ };
+ this.encrypt = async (params) => {
+ if (!this.ready) {
+ throw new constants_1.LitNodeClientNotReadyError({}, "6 LitNodeClient is not ready. Please call await litNodeClient.connect() first.");
+ }
+ if (!this.subnetPubKey) {
+ throw new constants_1.LitNodeClientNotReadyError({}, "subnetPubKey cannot be null");
+ }
+ const paramsIsSafe = (0, misc_1.safeParams)({
+ functionName: "encrypt",
+ params
+ });
+ if (!paramsIsSafe) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ params
+ }
+ }, "You must provide either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions");
+ }
+ await this.validateAccessControlConditionsSchema(params);
+ const hashOfConditions = await this.getHashedAccessControlConditions(params);
+ if (!hashOfConditions) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ params
+ }
+ }, "You must provide either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions");
+ }
+ const hashOfConditionsStr = (0, uint8arrays_1.uint8arrayToString)(new Uint8Array(hashOfConditions), "base16");
+ const hashOfPrivateData = await crypto.subtle.digest("SHA-256", params.dataToEncrypt);
+ const hashOfPrivateDataStr = (0, uint8arrays_1.uint8arrayToString)(new Uint8Array(hashOfPrivateData), "base16");
+ const identityParam = this._getIdentityParamForEncryption(hashOfConditionsStr, hashOfPrivateDataStr);
+ const ciphertext = await (0, crypto_1.encrypt)(this.subnetPubKey, params.dataToEncrypt, (0, uint8arrays_1.uint8arrayFromString)(identityParam, "utf8"));
+ return { ciphertext, dataToEncryptHash: hashOfPrivateDataStr };
+ };
+ this.decrypt = async (params) => {
+ const { sessionSigs, authSig, chain, ciphertext, dataToEncryptHash } = params;
+ if (!this.ready) {
+ throw new constants_1.LitNodeClientNotReadyError({}, "6 LitNodeClient is not ready. Please call await litNodeClient.connect() first.");
+ }
+ if (!this.subnetPubKey) {
+ throw new constants_1.LitNodeClientNotReadyError({}, "subnetPubKey cannot be null");
+ }
+ const paramsIsSafe = (0, misc_1.safeParams)({
+ functionName: "decrypt",
+ params
+ });
+ if (!paramsIsSafe) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ params
+ }
+ }, "Parameter validation failed.");
+ }
+ const hashOfConditions = await this.getHashedAccessControlConditions(params);
+ if (!hashOfConditions) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ params
+ }
+ }, "You must provide either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions");
+ }
+ const hashOfConditionsStr = (0, uint8arrays_1.uint8arrayToString)(new Uint8Array(hashOfConditions), "base16");
+ const { error, formattedAccessControlConditions, formattedEVMContractConditions, formattedSolRpcConditions, formattedUnifiedAccessControlConditions } = this.getFormattedAccessControlConditions(params);
+ if (error) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ params
+ }
+ }, "You must provide either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions");
+ }
+ const identityParam = this._getIdentityParamForEncryption(hashOfConditionsStr, dataToEncryptHash);
+ (0, misc_1.log)("identityParam", identityParam);
+ const requestId = this._getNewRequestId();
+ const nodePromises = this.getNodePromises((url) => {
+ const authSigToSend = sessionSigs ? sessionSigs[url] : authSig;
+ if (!authSigToSend) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ params
+ }
+ }, "authSig is required");
+ }
+ const reqBody = {
+ accessControlConditions: formattedAccessControlConditions,
+ evmContractConditions: formattedEVMContractConditions,
+ solRpcConditions: formattedSolRpcConditions,
+ unifiedAccessControlConditions: formattedUnifiedAccessControlConditions,
+ dataToEncryptHash,
+ chain,
+ authSig: authSigToSend,
+ epoch: this.currentEpochNumber
+ };
+ const urlWithParh = (0, core_1.composeLitUrl)({
+ url,
+ endpoint: constants_1.LIT_ENDPOINT.ENCRYPTION_SIGN
+ });
+ return this.generatePromise(urlWithParh, reqBody, requestId);
+ });
+ const res = await this.handleNodePromises(nodePromises, requestId, this.config.minNodeCount);
+ if (!res.success) {
+ this._throwNodeError(res, requestId);
+ }
+ const signatureShares = res.values;
+ (0, misc_1.logWithRequestId)(requestId, "signatureShares", signatureShares);
+ const decryptedData = await this._decryptWithSignatureShares(this.subnetPubKey, (0, uint8arrays_1.uint8arrayFromString)(identityParam, "utf8"), ciphertext, signatureShares);
+ return { decryptedData };
+ };
+ this.getLitResourceForEncryption = async (params) => {
+ const hashOfConditions = await this.getHashedAccessControlConditions(params);
+ if (!hashOfConditions) {
+ throw new constants_1.InvalidArgumentException({
+ info: {
+ params
+ }
+ }, "You must provide either accessControlConditions or evmContractConditions or solRpcConditions or unifiedAccessControlConditions");
+ }
+ const hashOfConditionsStr = (0, uint8arrays_1.uint8arrayToString)(new Uint8Array(hashOfConditions), "base16");
+ const hashOfPrivateData = await crypto.subtle.digest("SHA-256", params.dataToEncrypt);
+ const hashOfPrivateDataStr = (0, uint8arrays_1.uint8arrayToString)(new Uint8Array(hashOfPrivateData), "base16");
+ return new auth_helpers_1.LitAccessControlConditionResource(`${hashOfConditionsStr}/${hashOfPrivateDataStr}`);
+ };
+ this._getIdentityParamForEncryption = (hashOfConditionsStr, hashOfPrivateDataStr) => {
+ return new auth_helpers_1.LitAccessControlConditionResource(`${hashOfConditionsStr}/${hashOfPrivateDataStr}`).getResourceKey();
+ };
+ this.signSessionKey = async (params) => {
+ (0, misc_1.log)(`[signSessionKey] params:`, params);
+ if (!this.ready) {
+ throw new constants_1.LitNodeClientNotReadyError({}, "[signSessionKey] ]LitNodeClient is not ready. Please call await litNodeClient.connect() first.");
+ }
+ const _expiration = params.expiration || new Date(Date.now() + 24 * 60 * 60 * 1e3).toISOString();
+ const sessionKey = params.sessionKey ?? this.getSessionKey();
+ const sessionKeyUri = constants_1.LIT_SESSION_KEY_URI + sessionKey.publicKey;
+ (0, misc_1.log)(`[signSessionKey] sessionKeyUri is not found in params, generating a new one`, sessionKeyUri);
+ if (!sessionKeyUri) {
+ throw new constants_1.InvalidParamType({
+ info: {
+ params
+ }
+ }, "[signSessionKey] sessionKeyUri is not defined. Please provide a sessionKeyUri or a sessionKey.");
+ }
+ const pkpEthAddress = function() {
+ params.pkpPublicKey = (0, misc_1.hexPrefixed)(params.pkpPublicKey);
+ if (params.pkpPublicKey)
+ return (0, transactions_1.computeAddress)(params.pkpPublicKey);
+ return "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2";
+ }();
+ let siwe_statement = "Lit Protocol PKP session signature";
+ if (params.statement) {
+ siwe_statement += " " + params.statement;
+ (0, misc_1.log)(`[signSessionKey] statement found in params: "${params.statement}"`);
+ }
+ let siweMessage;
+ const siweParams = {
+ domain: params?.domain || globalThis.location?.host || "litprotocol.com",
+ walletAddress: pkpEthAddress,
+ statement: siwe_statement,
+ uri: sessionKeyUri,
+ version: "1",
+ chainId: params.chainId ?? 1,
+ expiration: _expiration,
+ nonce: await this.getLatestBlockhash()
+ };
+ if (params.resourceAbilityRequests) {
+ siweMessage = await (0, auth_helpers_1.createSiweMessageWithRecaps)({
+ ...siweParams,
+ resources: params.resourceAbilityRequests,
+ litNodeClient: this
+ });
+ } else {
+ siweMessage = await (0, auth_helpers_1.createSiweMessage)(siweParams);
+ }
+ const body = {
+ sessionKey: sessionKeyUri,
+ authMethods: params.authMethods,
+ ...params?.pkpPublicKey && { pkpPublicKey: params.pkpPublicKey },
+ siweMessage,
+ curveType: constants_1.LIT_CURVE.BLS,
+ // -- custom auths
+ ...params?.litActionIpfsId && {
+ litActionIpfsId: params.litActionIpfsId
+ },
+ ...params?.litActionCode && { code: params.litActionCode },
+ ...params?.jsParams && { jsParams: params.jsParams },
+ ...this.currentEpochNumber && { epoch: this.currentEpochNumber }
+ };
+ (0, misc_1.log)(`[signSessionKey] body:`, body);
+ const requestId = this._getNewRequestId();
+ (0, misc_1.logWithRequestId)(requestId, "signSessionKey body", body);
+ const nodePromises = this.getNodePromises((url) => {
+ const reqBody = body;
+ const urlWithPath = (0, core_1.composeLitUrl)({
+ url,
+ endpoint: constants_1.LIT_ENDPOINT.SIGN_SESSION_KEY
+ });
+ return this.generatePromise(urlWithPath, reqBody, requestId);
+ });
+ let res;
+ try {
+ res = await this.handleNodePromises(nodePromises, requestId, this.config.minNodeCount);
+ (0, misc_1.log)("signSessionKey node promises:", res);
+ } catch (e) {
+ throw new constants_1.UnknownError({
+ info: {
+ requestId
+ },
+ cause: e
+ }, "Error when handling node promises");
+ }
+ (0, misc_1.logWithRequestId)(requestId, "handleNodePromises res:", res);
+ if (!this._isSuccessNodePromises(res)) {
+ this._throwNodeError(res, requestId);
+ return {};
+ }
+ const responseData = res.values;
+ (0, misc_1.logWithRequestId)(requestId, "[signSessionKey] responseData", JSON.stringify(responseData, null, 2));
+ let curveType = responseData[0]?.curveType;
+ if (curveType === "ECDSA") {
+ throw new Error("The ECDSA curve type is not supported in this version. Please use version 6.x.x instead.");
+ }
+ (0, misc_1.log)(`[signSessionKey] curveType is "${curveType}"`);
+ const signedDataList = responseData.map((s) => s.dataSigned);
+ if (signedDataList.length <= 0) {
+ const err = `[signSessionKey] signedDataList is empty.`;
+ (0, misc_1.log)(err);
+ throw new constants_1.InvalidSignatureError({
+ info: {
+ requestId,
+ responseData,
+ signedDataList
+ }
+ }, err);
+ }
+ (0, misc_1.logWithRequestId)(requestId, "[signSessionKey] signedDataList", signedDataList);
+ const validatedSignedDataList = responseData.map((data) => {
+ const requiredFields = [
+ "signatureShare",
+ "curveType",
+ "shareIndex",
+ "siweMessage",
+ "dataSigned",
+ "blsRootPubkey",
+ "result"
+ ];
+ for (const field of requiredFields) {
+ const key = field;
+ if (data[key] === void 0 || data[key] === null || data[key] === "") {
+ (0, misc_1.log)(`[signSessionKey] Invalid signed data. "${field}" is missing. Not a problem, we only need ${this.config.minNodeCount} nodes to sign the session key.`);
+ return null;
+ }
+ }
+ if (!data.signatureShare.ProofOfPossession) {
+ const err = `[signSessionKey] Invalid signed data. "ProofOfPossession" is missing.`;
+ (0, misc_1.log)(err);
+ throw new constants_1.InvalidSignatureError({
+ info: {
+ requestId,
+ responseData,
+ data
+ }
+ }, err);
+ }
+ return data;
+ }).filter((item) => item !== null);
+ (0, misc_1.logWithRequestId)(requestId, "[signSessionKey] requested length:", signedDataList.length);
+ (0, misc_1.logWithRequestId)(requestId, "[signSessionKey] validated length:", validatedSignedDataList.length);
+ (0, misc_1.logWithRequestId)(requestId, "[signSessionKey] minimum required length:", this.config.minNodeCount);
+ if (validatedSignedDataList.length < this.config.minNodeCount) {
+ throw new constants_1.InvalidSignatureError({
+ info: {
+ requestId,
+ responseData,
+ validatedSignedDataList,
+ minNodeCount: this.config.minNodeCount
+ }
+ }, `[signSessionKey] not enough nodes signed the session key. Expected ${this.config.minNodeCount}, got ${validatedSignedDataList.length}`);
+ }
+ const blsSignedData = validatedSignedDataList;
+ const sigType = (0, misc_1.mostCommonString)(blsSignedData.map((s) => s.curveType));
+ (0, misc_1.log)(`[signSessionKey] sigType:`, sigType);
+ const signatureShares = (0, get_bls_signatures_1.getBlsSignatures)(blsSignedData);
+ (0, misc_1.log)(`[signSessionKey] signatureShares:`, signatureShares);
+ const blsCombinedSignature = await (0, crypto_1.combineSignatureShares)(signatureShares);
+ (0, misc_1.log)(`[signSessionKey] blsCombinedSignature:`, blsCombinedSignature);
+ const publicKey = (0, misc_1.removeHexPrefix)(params.pkpPublicKey);
+ (0, misc_1.log)(`[signSessionKey] publicKey:`, publicKey);
+ const dataSigned = (0, misc_1.mostCommonString)(blsSignedData.map((s) => s.dataSigned));
+ (0, misc_1.log)(`[signSessionKey] dataSigned:`, dataSigned);
+ const mostCommonSiweMessage = (0, misc_1.mostCommonString)(blsSignedData.map((s) => s.siweMessage));
+ (0, misc_1.log)(`[signSessionKey] mostCommonSiweMessage:`, mostCommonSiweMessage);
+ const signedMessage = (0, misc_1.normalizeAndStringify)(mostCommonSiweMessage);
+ (0, misc_1.log)(`[signSessionKey] signedMessage:`, signedMessage);
+ const signSessionKeyRes = {
+ authSig: {
+ sig: JSON.stringify({
+ ProofOfPossession: blsCombinedSignature
+ }),
+ algo: "LIT_BLS",
+ derivedVia: "lit.bls",
+ signedMessage,
+ address: (0, transactions_1.computeAddress)((0, misc_1.hexPrefixed)(publicKey))
+ },
+ pkpPublicKey: publicKey
+ };
+ return signSessionKeyRes;
+ };
+ this._isSuccessNodePromises = (res) => {
+ return res.success;
+ };
+ this.getSignSessionKeyShares = async (url, params, requestId) => {
+ (0, misc_1.log)("getSignSessionKeyShares");
+ const urlWithPath = (0, core_1.composeLitUrl)({
+ url,
+ endpoint: constants_1.LIT_ENDPOINT.SIGN_SESSION_KEY
+ });
+ return await this.sendCommandToNode({
+ url: urlWithPath,
+ data: params.body,
+ requestId
+ });
+ };
+ this.getSessionSigs = async (params) => {
+ const sessionKey = params.sessionKey ?? this.getSessionKey();
+ const sessionKeyUri = this.getSessionKeyUri(sessionKey.publicKey);
+ const sessionCapabilityObject = params.sessionCapabilityObject ? params.sessionCapabilityObject : await this.generateSessionCapabilityObjectWithWildcards(params.resourceAbilityRequests.map((r) => r.resource));
+ const expiration = params.expiration || _LitNodeClientNodeJs.getExpiration();
+ let authSig = await this.getWalletSig({
+ authNeededCallback: params.authNeededCallback,
+ chain: params.chain || "ethereum",
+ sessionCapabilityObject,
+ switchChain: params.switchChain,
+ expiration,
+ sessionKey,
+ sessionKeyUri,
+ nonce: await this.getLatestBlockhash(),
+ // -- for recap
+ resourceAbilityRequests: params.resourceAbilityRequests,
+ // -- optional fields
+ ...params.litActionCode && { litActionCode: params.litActionCode },
+ ...params.litActionIpfsId && {
+ litActionIpfsId: params.litActionIpfsId
+ },
+ ...params.jsParams && { jsParams: params.jsParams }
+ });
+ const needToResignSessionKey = await this.checkNeedToResignSessionKey({
+ authSig,
+ sessionKeyUri,
+ resourceAbilityRequests: params.resourceAbilityRequests
+ });
+ if (needToResignSessionKey) {
+ (0, misc_1.log)("need to re-sign session key. Signing...");
+ authSig = await this._authCallbackAndUpdateStorageItem({
+ authCallback: params.authNeededCallback,
+ authCallbackParams: {
+ chain: params.chain || "ethereum",
+ statement: sessionCapabilityObject.statement,
+ resources: [sessionCapabilityObject.encodeAsSiweResource()],
+ switchChain: params.switchChain,
+ expiration,
+ sessionKey,
+ uri: sessionKeyUri,
+ nonce: await this.getLatestBlockhash(),
+ resourceAbilityRequests: params.resourceAbilityRequests,
+ // -- optional fields
+ ...params.litActionCode && { litActionCode: params.litActionCode },
+ ...params.litActionIpfsId && {
+ litActionIpfsId: params.litActionIpfsId
+ },
+ ...params.jsParams && { jsParams: params.jsParams }
+ }
+ });
+ }
+ if (authSig.address === "" || authSig.derivedVia === "" || authSig.sig === "" || authSig.signedMessage === "") {
+ throw new constants_1.WalletSignatureNotFoundError({
+ info: {
+ authSig
+ }
+ }, "No wallet signature found");
+ }
+ const sessionExpiration = expiration ?? new Date(Date.now() + 1e3 * 60 * 5).toISOString();
+ const capabilities = params.capacityDelegationAuthSig ? [
+ ...params.capabilityAuthSigs ?? [],
+ params.capacityDelegationAuthSig,
+ authSig
+ ] : [...params.capabilityAuthSigs ?? [], authSig];
+ const signingTemplate = {
+ sessionKey: sessionKey.publicKey,
+ resourceAbilityRequests: params.resourceAbilityRequests,
+ capabilities,
+ issuedAt: (/* @__PURE__ */ new Date()).toISOString(),
+ expiration: sessionExpiration
+ };
+ const signatures = {};
+ this.connectedNodes.forEach((nodeAddress) => {
+ const toSign = {
+ ...signingTemplate,
+ nodeAddress
+ };
+ const signedMessage = JSON.stringify(toSign);
+ const uint8arrayKey = (0, uint8arrays_1.uint8arrayFromString)(sessionKey.secretKey, "base16");
+ const uint8arrayMessage = (0, uint8arrays_1.uint8arrayFromString)(signedMessage, "utf8");
+ const signature = nacl_1.nacl.sign.detached(uint8arrayMessage, uint8arrayKey);
+ signatures[nodeAddress] = {
+ sig: (0, uint8arrays_1.uint8arrayToString)(signature, "base16"),
+ derivedVia: "litSessionSignViaNacl",
+ signedMessage,
+ address: sessionKey.publicKey,
+ algo: "ed25519"
+ };
+ });
+ (0, misc_1.log)("signatures:", signatures);
+ try {
+ const formattedSessionSigs = (0, misc_1.formatSessionSigs)(JSON.stringify(signatures));
+ (0, misc_1.log)(formattedSessionSigs);
+ } catch (e) {
+ (0, misc_1.log)("Error formatting session signatures: ", e);
+ }
+ return signatures;
+ };
+ this.getPkpSessionSigs = async (params) => {
+ const chain = params?.chain || "ethereum";
+ const pkpSessionSigs = this.getSessionSigs({
+ chain,
+ ...params,
+ authNeededCallback: async (props) => {
+ if (!props.expiration) {
+ throw new constants_1.ParamsMissingError({
+ info: {
+ props
+ }
+ }, "[getPkpSessionSigs/callback] expiration is required");
+ }
+ if (!props.resources) {
+ throw new constants_1.ParamsMissingError({
+ info: {
+ props
+ }
+ }, "[getPkpSessionSigs/callback]resources is required");
+ }
+ if (!props.resourceAbilityRequests) {
+ throw new constants_1.ParamsMissingError({
+ info: {
+ props
+ }
+ }, "[getPkpSessionSigs/callback]resourceAbilityRequests is required");
+ }
+ if (props.litActionCode && props.litActionIpfsId) {
+ throw new constants_1.UnsupportedMethodError({
+ info: {
+ props
+ }
+ }, "[getPkpSessionSigs/callback]litActionCode and litActionIpfsId cannot exist at the same time");
+ }
+ const overwriteCode = params.ipfsOptions?.overwriteCode || constants_1.GLOBAL_OVERWRITE_IPFS_CODE_BY_NETWORK[this.config.litNetwork];
+ if (overwriteCode && props.litActionIpfsId) {
+ const code = await this._getFallbackIpfsCode(params.ipfsOptions?.gatewayUrl, props.litActionIpfsId);
+ props = {
+ ...props,
+ litActionCode: code,
+ litActionIpfsId: void 0
+ };
+ }
+ const authMethods = params.authMethods || [];
+ const response = await this.signSessionKey({
+ sessionKey: props.sessionKey,
+ statement: props.statement || "Some custom statement.",
+ authMethods: [...authMethods],
+ pkpPublicKey: params.pkpPublicKey,
+ expiration: props.expiration,
+ resources: props.resources,
+ chainId: 1,
+ // -- required fields
+ resourceAbilityRequests: props.resourceAbilityRequests,
+ // -- optional fields
+ ...props.litActionCode && { litActionCode: props.litActionCode },
+ ...props.litActionIpfsId && {
+ litActionIpfsId: props.litActionIpfsId
+ },
+ ...props.jsParams && { jsParams: props.jsParams }
+ });
+ return response.authSig;
+ }
+ });
+ return pkpSessionSigs;
+ };
+ this.getLitActionSessionSigs = async (params) => {
+ if (!params.litActionCode && !params.litActionIpfsId) {
+ throw new constants_1.InvalidParamType({
+ info: {
+ params
+ }
+ }, 'Either "litActionCode" or "litActionIpfsId" must be provided.');
+ }
+ if (!params.jsParams) {
+ throw new constants_1.ParamsMissingError({
+ info: {
+ params
+ }
+ }, "'jsParams' is required.");
+ }
+ return this.getPkpSessionSigs(params);
+ };
+ this.getSessionKeyUri = (publicKey) => {
+ return constants_1.LIT_SESSION_KEY_URI + publicKey;
+ };
+ if (args !== void 0 && args !== null && "defaultAuthCallback" in args) {
+ this.defaultAuthCallback = args.defaultAuthCallback;
+ }
+ }
+ /**
+ * Check if a given object is of type SessionKeyPair.
+ *
+ * @param obj - The object to check.
+ * @returns True if the object is of type SessionKeyPair.
+ */
+ isSessionKeyPair(obj) {
+ return typeof obj === "object" && "publicKey" in obj && "secretKey" in obj && typeof obj.publicKey === "string" && typeof obj.secretKey === "string";
+ }
+ /**
+ * Generates wildcard capability for each of the LIT resources
+ * specified.
+ * @param litResources is an array of LIT resources
+ * @param addAllCapabilities is a boolean that specifies whether to add all capabilities for each resource
+ */
+ static async generateSessionCapabilityObjectWithWildcards(litResources, addAllCapabilities) {
+ const sessionCapabilityObject = new auth_helpers_1.RecapSessionCapabilityObject({}, []);
+ const _addAllCapabilities = addAllCapabilities ?? false;
+ if (_addAllCapabilities) {
+ for (const litResource of litResources) {
+ sessionCapabilityObject.addAllCapabilitiesForResource(litResource);
+ }
+ }
+ return sessionCapabilityObject;
+ }
+ // backward compatibility
+ async generateSessionCapabilityObjectWithWildcards(litResources) {
+ return await _LitNodeClientNodeJs.generateSessionCapabilityObjectWithWildcards(litResources);
+ }
+ // ========== Scoped Business Logics ==========
+ /**
+ * Retrieves the fallback IPFS code for a given IPFS ID.
+ *
+ * @param gatewayUrl - the gateway url.
+ * @param ipfsId - The IPFS ID.
+ * @returns The base64-encoded fallback IPFS code.
+ * @throws An error if the code retrieval fails.
+ */
+ async _getFallbackIpfsCode(gatewayUrl, ipfsId) {
+ const allGateways = gatewayUrl ? [gatewayUrl, ...constants_1.FALLBACK_IPFS_GATEWAYS] : constants_1.FALLBACK_IPFS_GATEWAYS;
+ (0, misc_1.log)(`Attempting to fetch code for IPFS ID: ${ipfsId} using fallback IPFS gateways`);
+ for (const url of allGateways) {
+ try {
+ const response = await fetch(`${url}${ipfsId}`);
+ if (!response.ok) {
+ throw new Error(`Failed to fetch code from IPFS gateway ${url}: ${response.status} ${response.statusText}`);
+ }
+ const code = await response.text();
+ const codeBase64 = Buffer.from(code).toString("base64");
+ return codeBase64;
+ } catch (error) {
+ console.error(`Error fetching code from IPFS gateway ${url}`);
+ }
+ }
+ throw new Error("All IPFS gateways failed to fetch the code.");
+ }
+ async executeJsNodeRequest(url, formattedParams, requestId) {
+ const sessionSig = this.getSessionSigByUrl({
+ sessionSigs: formattedParams.sessionSigs,
+ url
+ });
+ const reqBody = {
+ ...formattedParams,
+ authSig: sessionSig
+ };
+ const urlWithPath = (0, core_1.composeLitUrl)({
+ url,
+ endpoint: constants_1.LIT_ENDPOINT.EXECUTE_JS
+ });
+ return this.generatePromise(urlWithPath, reqBody, requestId);
+ }
+ /**
+ * Authenticates an Auth Method for claiming a Programmable Key Pair (PKP).
+ * A {@link MintCallback} can be defined for custom on chain interactions
+ * by default the callback will forward to a relay server for minting on chain.
+ * @param {ClaimKeyRequest} params an Auth Method and {@link MintCallback}
+ * @returns {Promise}
+ */
+ async claimKeyId(params) {
+ if (!this.ready) {
+ const message = "LitNodeClient is not ready. Please call await litNodeClient.connect() first.";
+ throw new constants_1.LitNodeClientNotReadyError({}, message);
+ }
+ if (params.authMethod.authMethodType == constants_1.AUTH_METHOD_TYPE.WebAuthn) {
+ throw new constants_1.LitNodeClientNotReadyError({}, "Unsupported auth method type. Webauthn, and Lit Actions are not supported for claiming");
+ }
+ const requestId = this._getNewRequestId();
+ const nodePromises = this.getNodePromises((url) => {
+ if (!params.authMethod) {
+ throw new constants_1.ParamsMissingError({
+ info: {
+ params
+ }
+ }, "authMethod is required");
+ }
+ const reqBody = {
+ authMethod: params.authMethod
+ };
+ const urlWithPath = (0, core_1.composeLitUrl)({
+ url,
+ endpoint: constants_1.LIT_ENDPOINT.PKP_CLAIM
+ });
+ return this.generatePromise(urlWithPath, reqBody, requestId);
+ });
+ const responseData = await this.handleNodePromises(nodePromises, requestId, this.connectedNodes.size);
+ if (responseData.success) {
+ const nodeSignatures = responseData.values.map((r) => {
+ const sig = ethers_1.ethers.utils.splitSignature(`0x${r.signature}`);
+ return {
+ r: sig.r,
+ s: sig.s,
+ v: sig.v
+ };
+ });
+ (0, misc_1.logWithRequestId)(requestId, `responseData: ${JSON.stringify(responseData, null, 2)}`);
+ const derivedKeyId = responseData.values[0].derivedKeyId;
+ const pubkey = await this.computeHDPubKey(derivedKeyId);
+ (0, misc_1.logWithRequestId)(requestId, `pubkey ${pubkey} derived from key id ${derivedKeyId}`);
+ const relayParams = params;
+ let mintTx = "";
+ if (params.mintCallback && "signer" in params) {
+ mintTx = await params.mintCallback({
+ derivedKeyId,
+ authMethodType: params.authMethod.authMethodType,
+ signatures: nodeSignatures,
+ pubkey,
+ signer: params.signer,
+ ...relayParams
+ }, this.config.litNetwork);
+ } else {
+ mintTx = await (0, misc_1.defaultMintClaimCallback)({
+ derivedKeyId,
+ authMethodType: params.authMethod.authMethodType,
+ signatures: nodeSignatures,
+ pubkey,
+ ...relayParams
+ }, this.config.litNetwork);
+ }
+ return {
+ signatures: nodeSignatures,
+ claimedKeyId: derivedKeyId,
+ pubkey,
+ mintTx
+ };
+ } else {
+ throw new constants_1.UnknownError({
+ info: {
+ requestId,
+ responseData
+ }
+ }, `Claim request has failed. Request trace id: lit_%s`, requestId);
+ }
+ }
+ };
+ exports2.LitNodeClientNodeJs = LitNodeClientNodeJs;
+ LitNodeClientNodeJs.getExpiration = () => {
+ return new Date(Date.now() + 1e3 * 60 * 60 * 24).toISOString();
+ };
+ }
+});
+
+// node_modules/@lit-protocol/lit-node-client-nodejs/src/index.js
+var require_src14 = __commonJS({
+ "node_modules/@lit-protocol/lit-node-client-nodejs/src/index.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.uint8arrayToString = exports2.uint8arrayFromString = exports2.blobToBase64String = exports2.base64StringToBlob = exports2.humanizeAccessControlConditions = exports2.hashResourceIdForSigning = void 0;
+ var tslib_1 = (init_tslib_es6(), __toCommonJS(tslib_es6_exports));
+ require_node_polyfill();
+ tslib_1.__exportStar(require_lit_node_client_nodejs(), exports2);
+ var access_control_conditions_1 = require_src6();
+ Object.defineProperty(exports2, "hashResourceIdForSigning", { enumerable: true, get: function() {
+ return access_control_conditions_1.hashResourceIdForSigning;
+ } });
+ Object.defineProperty(exports2, "humanizeAccessControlConditions", { enumerable: true, get: function() {
+ return access_control_conditions_1.humanizeAccessControlConditions;
+ } });
+ var misc_browser_1 = require_src13();
+ Object.defineProperty(exports2, "base64StringToBlob", { enumerable: true, get: function() {
+ return misc_browser_1.base64StringToBlob;
+ } });
+ Object.defineProperty(exports2, "blobToBase64String", { enumerable: true, get: function() {
+ return misc_browser_1.blobToBase64String;
+ } });
+ var uint8arrays_1 = require_src5();
+ Object.defineProperty(exports2, "uint8arrayFromString", { enumerable: true, get: function() {
+ return uint8arrays_1.uint8arrayFromString;
+ } });
+ Object.defineProperty(exports2, "uint8arrayToString", { enumerable: true, get: function() {
+ return uint8arrays_1.uint8arrayToString;
+ } });
+ }
+});
+
+// utils.js
+var require_utils18 = __commonJS({
+ "utils.js"(exports2, module2) {
+ var {
+ LitAbility: LitAbility2,
+ LitActionResource: LitActionResource2,
+ LitPKPResource: LitPKPResource2,
+ createSiweMessage: createSiweMessage2,
+ generateAuthSig: generateAuthSig2
+ } = require_src7();
+ var { LIT_ABILITY: LIT_ABILITY2 } = require_src2();
+ async function getSessionSigs2(app2) {
+ if (!app2.locals.ethersWallet) {
+ throw new Error("No Lit auth token set");
+ }
+ const sessionSigs = await app2.locals.litNodeClient.getSessionSigs({
+ chain: "ethereum",
+ expiration: new Date(Date.now() + 1e3 * 60 * 10).toISOString(),
+ // 10 minutes
+ resourceAbilityRequests: [
+ {
+ resource: new LitActionResource2("*"),
+ ability: LIT_ABILITY2.LitActionExecution
+ },
+ {
+ resource: new LitPKPResource2("*"),
+ ability: LIT_ABILITY2.PKPSigning
+ }
+ ],
+ authNeededCallback: async ({
+ uri,
+ expiration,
+ resourceAbilityRequests
+ }) => {
+ const toSign = await createSiweMessage2({
+ uri,
+ expiration,
+ resources: resourceAbilityRequests,
+ walletAddress: await app2.locals.ethersWallet.getAddress(),
+ nonce: await app2.locals.litNodeClient.getLatestBlockhash(),
+ litNodeClient: app2.locals.litNodeClient
+ });
+ return await generateAuthSig2({
+ signer: app2.locals.ethersWallet,
+ toSign
+ });
+ }
+ });
+ return sessionSigs;
+ }
+ module2.exports = {
+ getSessionSigs: getSessionSigs2
+ };
+ }
+});
+
+// node_modules/imurmurhash/imurmurhash.js
+var require_imurmurhash = __commonJS({
+ "node_modules/imurmurhash/imurmurhash.js"(exports2, module2) {
+ (function() {
+ var cache;
+ function MurmurHash3(key, seed) {
+ var m = this instanceof MurmurHash3 ? this : cache;
+ m.reset(seed);
+ if (typeof key === "string" && key.length > 0) {
+ m.hash(key);
+ }
+ if (m !== this) {
+ return m;
+ }
+ }
+ ;
+ MurmurHash3.prototype.hash = function(key) {
+ var h1, k1, i, top, len;
+ len = key.length;
+ this.len += len;
+ k1 = this.k1;
+ i = 0;
+ switch (this.rem) {
+ case 0:
+ k1 ^= len > i ? key.charCodeAt(i++) & 65535 : 0;
+ case 1:
+ k1 ^= len > i ? (key.charCodeAt(i++) & 65535) << 8 : 0;
+ case 2:
+ k1 ^= len > i ? (key.charCodeAt(i++) & 65535) << 16 : 0;
+ case 3:
+ k1 ^= len > i ? (key.charCodeAt(i) & 255) << 24 : 0;
+ k1 ^= len > i ? (key.charCodeAt(i++) & 65280) >> 8 : 0;
+ }
+ this.rem = len + this.rem & 3;
+ len -= this.rem;
+ if (len > 0) {
+ h1 = this.h1;
+ while (1) {
+ k1 = k1 * 11601 + (k1 & 65535) * 3432906752 & 4294967295;
+ k1 = k1 << 15 | k1 >>> 17;
+ k1 = k1 * 13715 + (k1 & 65535) * 461832192 & 4294967295;
+ h1 ^= k1;
+ h1 = h1 << 13 | h1 >>> 19;
+ h1 = h1 * 5 + 3864292196 & 4294967295;
+ if (i >= len) {
+ break;
+ }
+ k1 = key.charCodeAt(i++) & 65535 ^ (key.charCodeAt(i++) & 65535) << 8 ^ (key.charCodeAt(i++) & 65535) << 16;
+ top = key.charCodeAt(i++);
+ k1 ^= (top & 255) << 24 ^ (top & 65280) >> 8;
+ }
+ k1 = 0;
+ switch (this.rem) {
+ case 3:
+ k1 ^= (key.charCodeAt(i + 2) & 65535) << 16;
+ case 2:
+ k1 ^= (key.charCodeAt(i + 1) & 65535) << 8;
+ case 1:
+ k1 ^= key.charCodeAt(i) & 65535;
+ }
+ this.h1 = h1;
+ }
+ this.k1 = k1;
+ return this;
+ };
+ MurmurHash3.prototype.result = function() {
+ var k1, h1;
+ k1 = this.k1;
+ h1 = this.h1;
+ if (k1 > 0) {
+ k1 = k1 * 11601 + (k1 & 65535) * 3432906752 & 4294967295;
+ k1 = k1 << 15 | k1 >>> 17;
+ k1 = k1 * 13715 + (k1 & 65535) * 461832192 & 4294967295;
+ h1 ^= k1;
+ }
+ h1 ^= this.len;
+ h1 ^= h1 >>> 16;
+ h1 = h1 * 51819 + (h1 & 65535) * 2246770688 & 4294967295;
+ h1 ^= h1 >>> 13;
+ h1 = h1 * 44597 + (h1 & 65535) * 3266445312 & 4294967295;
+ h1 ^= h1 >>> 16;
+ return h1 >>> 0;
+ };
+ MurmurHash3.prototype.reset = function(seed) {
+ this.h1 = typeof seed === "number" ? seed : 0;
+ this.rem = this.k1 = this.len = 0;
+ return this;
+ };
+ cache = new MurmurHash3();
+ if (typeof module2 != "undefined") {
+ module2.exports = MurmurHash3;
+ } else {
+ this.MurmurHash3 = MurmurHash3;
+ }
+ })();
+ }
+});
+
+// node_modules/signal-exit/dist/cjs/signals.js
+var require_signals = __commonJS({
+ "node_modules/signal-exit/dist/cjs/signals.js"(exports2) {
+ "use strict";
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.signals = void 0;
+ exports2.signals = [];
+ exports2.signals.push("SIGHUP", "SIGINT", "SIGTERM");
+ if (process.platform !== "win32") {
+ exports2.signals.push(
+ "SIGALRM",
+ "SIGABRT",
+ "SIGVTALRM",
+ "SIGXCPU",
+ "SIGXFSZ",
+ "SIGUSR2",
+ "SIGTRAP",
+ "SIGSYS",
+ "SIGQUIT",
+ "SIGIOT"
+ // should detect profiler and enable/disable accordingly.
+ // see #21
+ // 'SIGPROF'
+ );
+ }
+ if (process.platform === "linux") {
+ exports2.signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT");
+ }
+ }
+});
+
+// node_modules/signal-exit/dist/cjs/index.js
+var require_cjs3 = __commonJS({
+ "node_modules/signal-exit/dist/cjs/index.js"(exports2) {
+ "use strict";
+ var _a;
+ Object.defineProperty(exports2, "__esModule", { value: true });
+ exports2.unload = exports2.load = exports2.onExit = exports2.signals = void 0;
+ var signals_js_1 = require_signals();
+ Object.defineProperty(exports2, "signals", { enumerable: true, get: function() {
+ return signals_js_1.signals;
+ } });
+ var processOk = (process3) => !!process3 && typeof process3 === "object" && typeof process3.removeListener === "function" && typeof process3.emit === "function" && typeof process3.reallyExit === "function" && typeof process3.listeners === "function" && typeof process3.kill === "function" && typeof process3.pid === "number" && typeof process3.on === "function";
+ var kExitEmitter = Symbol.for("signal-exit emitter");
+ var global2 = globalThis;
+ var ObjectDefineProperty = Object.defineProperty.bind(Object);
+ var Emitter = class {
+ emitted = {
+ afterExit: false,
+ exit: false
+ };
+ listeners = {
+ afterExit: [],
+ exit: []
+ };
+ count = 0;
+ id = Math.random();
+ constructor() {
+ if (global2[kExitEmitter]) {
+ return global2[kExitEmitter];
+ }
+ ObjectDefineProperty(global2, kExitEmitter, {
+ value: this,
+ writable: false,
+ enumerable: false,
+ configurable: false
+ });
+ }
+ on(ev, fn) {
+ this.listeners[ev].push(fn);
+ }
+ removeListener(ev, fn) {
+ const list = this.listeners[ev];
+ const i = list.indexOf(fn);
+ if (i === -1) {
+ return;
+ }
+ if (i === 0 && list.length === 1) {
+ list.length = 0;
+ } else {
+ list.splice(i, 1);
+ }
+ }
+ emit(ev, code, signal) {
+ if (this.emitted[ev]) {
+ return false;
+ }
+ this.emitted[ev] = true;
+ let ret = false;
+ for (const fn of this.listeners[ev]) {
+ ret = fn(code, signal) === true || ret;
+ }
+ if (ev === "exit") {
+ ret = this.emit("afterExit", code, signal) || ret;
+ }
+ return ret;
+ }
+ };
+ var SignalExitBase = class {
+ };
+ var signalExitWrap = (handler) => {
+ return {
+ onExit(cb, opts) {
+ return handler.onExit(cb, opts);
+ },
+ load() {
+ return handler.load();
+ },
+ unload() {
+ return handler.unload();
+ }
+ };
+ };
+ var SignalExitFallback = class extends SignalExitBase {
+ onExit() {
+ return () => {
+ };
+ }
+ load() {
+ }
+ unload() {
+ }
+ };
+ var SignalExit = class extends SignalExitBase {
+ // "SIGHUP" throws an `ENOSYS` error on Windows,
+ // so use a supported signal instead
+ /* c8 ignore start */
+ #hupSig = process2.platform === "win32" ? "SIGINT" : "SIGHUP";
+ /* c8 ignore stop */
+ #emitter = new Emitter();
+ #process;
+ #originalProcessEmit;
+ #originalProcessReallyExit;
+ #sigListeners = {};
+ #loaded = false;
+ constructor(process3) {
+ super();
+ this.#process = process3;
+ this.#sigListeners = {};
+ for (const sig of signals_js_1.signals) {
+ this.#sigListeners[sig] = () => {
+ const listeners = this.#process.listeners(sig);
+ let { count } = this.#emitter;
+ const p = process3;
+ if (typeof p.__signal_exit_emitter__ === "object" && typeof p.__signal_exit_emitter__.count === "number") {
+ count += p.__signal_exit_emitter__.count;
+ }
+ if (listeners.length === count) {
+ this.unload();
+ const ret = this.#emitter.emit("exit", null, sig);
+ const s = sig === "SIGHUP" ? this.#hupSig : sig;
+ if (!ret)
+ process3.kill(process3.pid, s);
+ }
+ };
+ }
+ this.#originalProcessReallyExit = process3.reallyExit;
+ this.#originalProcessEmit = process3.emit;
+ }
+ onExit(cb, opts) {
+ if (!processOk(this.#process)) {
+ return () => {
+ };
+ }
+ if (this.#loaded === false) {
+ this.load();
+ }
+ const ev = opts?.alwaysLast ? "afterExit" : "exit";
+ this.#emitter.on(ev, cb);
+ return () => {
+ this.#emitter.removeListener(ev, cb);
+ if (this.#emitter.listeners["exit"].length === 0 && this.#emitter.listeners["afterExit"].length === 0) {
+ this.unload();
+ }
+ };
+ }
+ load() {
+ if (this.#loaded) {
+ return;
+ }
+ this.#loaded = true;
+ this.#emitter.count += 1;
+ for (const sig of signals_js_1.signals) {
+ try {
+ const fn = this.#sigListeners[sig];
+ if (fn)
+ this.#process.on(sig, fn);
+ } catch (_) {
+ }
+ }
+ this.#process.emit = (ev, ...a) => {
+ return this.#processEmit(ev, ...a);
+ };
+ this.#process.reallyExit = (code) => {
+ return this.#processReallyExit(code);
+ };
+ }
+ unload() {
+ if (!this.#loaded) {
+ return;
+ }
+ this.#loaded = false;
+ signals_js_1.signals.forEach((sig) => {
+ const listener = this.#sigListeners[sig];
+ if (!listener) {
+ throw new Error("Listener not defined for signal: " + sig);
+ }
+ try {
+ this.#process.removeListener(sig, listener);
+ } catch (_) {
+ }
+ });
+ this.#process.emit = this.#originalProcessEmit;
+ this.#process.reallyExit = this.#originalProcessReallyExit;
+ this.#emitter.count -= 1;
+ }
+ #processReallyExit(code) {
+ if (!processOk(this.#process)) {
+ return 0;
+ }
+ this.#process.exitCode = code || 0;
+ this.#emitter.emit("exit", this.#process.exitCode, null);
+ return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);
+ }
+ #processEmit(ev, ...args) {
+ const og = this.#originalProcessEmit;
+ if (ev === "exit" && processOk(this.#process)) {
+ if (typeof args[0] === "number") {
+ this.#process.exitCode = args[0];
+ }
+ const ret = og.call(this.#process, ev, ...args);
+ this.#emitter.emit("exit", this.#process.exitCode, null);
+ return ret;
+ } else {
+ return og.call(this.#process, ev, ...args);
+ }
+ }
+ };
+ var process2 = globalThis.process;
+ _a = signalExitWrap(processOk(process2) ? new SignalExit(process2) : new SignalExitFallback()), /**
+ * Called when the process is exiting, whether via signal, explicit
+ * exit, or running out of stuff to do.
+ *
+ * If the global process object is not suitable for instrumentation,
+ * then this will be a no-op.
+ *
+ * Returns a function that may be used to unload signal-exit.
+ */
+ exports2.onExit = _a.onExit, /**
+ * Load the listeners. Likely you never need to call this, unless
+ * doing a rather deep integration with signal-exit functionality.
+ * Mostly exposed for the benefit of testing.
+ *
+ * @internal
+ */
+ exports2.load = _a.load, /**
+ * Unload the listeners. Likely you never need to call this, unless
+ * doing a rather deep integration with signal-exit functionality.
+ * Mostly exposed for the benefit of testing.
+ *
+ * @internal
+ */
+ exports2.unload = _a.unload;
+ }
+});
+
+// node_modules/write-file-atomic/lib/index.js
+var require_lib37 = __commonJS({
+ "node_modules/write-file-atomic/lib/index.js"(exports2, module2) {
+ "use strict";
+ module2.exports = writeFile;
+ module2.exports.sync = writeFileSync;
+ module2.exports._getTmpname = getTmpname;
+ module2.exports._cleanupOnExit = cleanupOnExit;
+ var fs = require("fs");
+ var MurmurHash3 = require_imurmurhash();
+ var { onExit } = require_cjs3();
+ var path = require("path");
+ var { promisify } = require("util");
+ var activeFiles = {};
+ var threadId = function getId() {
+ try {
+ const workerThreads = require("worker_threads");
+ return workerThreads.threadId;
+ } catch (e) {
+ return 0;
+ }
+ }();
+ var invocations = 0;
+ function getTmpname(filename) {
+ return filename + "." + MurmurHash3(__filename).hash(String(process.pid)).hash(String(threadId)).hash(String(++invocations)).result();
+ }
+ function cleanupOnExit(tmpfile) {
+ return () => {
+ try {
+ fs.unlinkSync(typeof tmpfile === "function" ? tmpfile() : tmpfile);
+ } catch {
+ }
+ };
+ }
+ function serializeActiveFile(absoluteName) {
+ return new Promise((resolve) => {
+ if (!activeFiles[absoluteName]) {
+ activeFiles[absoluteName] = [];
+ }
+ activeFiles[absoluteName].push(resolve);
+ if (activeFiles[absoluteName].length === 1) {
+ resolve();
+ }
+ });
+ }
+ function isChownErrOk(err) {
+ if (err.code === "ENOSYS") {
+ return true;
+ }
+ const nonroot = !process.getuid || process.getuid() !== 0;
+ if (nonroot) {
+ if (err.code === "EINVAL" || err.code === "EPERM") {
+ return true;
+ }
+ }
+ return false;
+ }
+ async function writeFileAsync(filename, data, options = {}) {
+ if (typeof options === "string") {
+ options = { encoding: options };
+ }
+ let fd;
+ let tmpfile;
+ const removeOnExitHandler = onExit(cleanupOnExit(() => tmpfile));
+ const absoluteName = path.resolve(filename);
+ try {
+ await serializeActiveFile(absoluteName);
+ const truename = await promisify(fs.realpath)(filename).catch(() => filename);
+ tmpfile = getTmpname(truename);
+ if (!options.mode || !options.chown) {
+ const stats = await promisify(fs.stat)(truename).catch(() => {
+ });
+ if (stats) {
+ if (options.mode == null) {
+ options.mode = stats.mode;
+ }
+ if (options.chown == null && process.getuid) {
+ options.chown = { uid: stats.uid, gid: stats.gid };
+ }
+ }
+ }
+ fd = await promisify(fs.open)(tmpfile, "w", options.mode);
+ if (options.tmpfileCreated) {
+ await options.tmpfileCreated(tmpfile);
+ }
+ if (ArrayBuffer.isView(data)) {
+ await promisify(fs.write)(fd, data, 0, data.length, 0);
+ } else if (data != null) {
+ await promisify(fs.write)(fd, String(data), 0, String(options.encoding || "utf8"));
+ }
+ if (options.fsync !== false) {
+ await promisify(fs.fsync)(fd);
+ }
+ await promisify(fs.close)(fd);
+ fd = null;
+ if (options.chown) {
+ await promisify(fs.chown)(tmpfile, options.chown.uid, options.chown.gid).catch((err) => {
+ if (!isChownErrOk(err)) {
+ throw err;
+ }
+ });
+ }
+ if (options.mode) {
+ await promisify(fs.chmod)(tmpfile, options.mode).catch((err) => {
+ if (!isChownErrOk(err)) {
+ throw err;
+ }
+ });
+ }
+ await promisify(fs.rename)(tmpfile, truename);
+ } finally {
+ if (fd) {
+ await promisify(fs.close)(fd).catch(
+ /* istanbul ignore next */
+ () => {
+ }
+ );
+ }
+ removeOnExitHandler();
+ await promisify(fs.unlink)(tmpfile).catch(() => {
+ });
+ activeFiles[absoluteName].shift();
+ if (activeFiles[absoluteName].length > 0) {
+ activeFiles[absoluteName][0]();
+ } else {
+ delete activeFiles[absoluteName];
+ }
+ }
+ }
+ async function writeFile(filename, data, options, callback) {
+ if (options instanceof Function) {
+ callback = options;
+ options = {};
+ }
+ const promise = writeFileAsync(filename, data, options);
+ if (callback) {
+ try {
+ const result = await promise;
+ return callback(result);
+ } catch (err) {
+ return callback(err);
+ }
+ }
+ return promise;
+ }
+ function writeFileSync(filename, data, options) {
+ if (typeof options === "string") {
+ options = { encoding: options };
+ } else if (!options) {
+ options = {};
+ }
+ try {
+ filename = fs.realpathSync(filename);
+ } catch (ex) {
+ }
+ const tmpfile = getTmpname(filename);
+ if (!options.mode || !options.chown) {
+ try {
+ const stats = fs.statSync(filename);
+ options = Object.assign({}, options);
+ if (!options.mode) {
+ options.mode = stats.mode;
+ }
+ if (!options.chown && process.getuid) {
+ options.chown = { uid: stats.uid, gid: stats.gid };
+ }
+ } catch (ex) {
+ }
+ }
+ let fd;
+ const cleanup = cleanupOnExit(tmpfile);
+ const removeOnExitHandler = onExit(cleanup);
+ let threw = true;
+ try {
+ fd = fs.openSync(tmpfile, "w", options.mode || 438);
+ if (options.tmpfileCreated) {
+ options.tmpfileCreated(tmpfile);
+ }
+ if (ArrayBuffer.isView(data)) {
+ fs.writeSync(fd, data, 0, data.length, 0);
+ } else if (data != null) {
+ fs.writeSync(fd, String(data), 0, String(options.encoding || "utf8"));
+ }
+ if (options.fsync !== false) {
+ fs.fsyncSync(fd);
+ }
+ fs.closeSync(fd);
+ fd = null;
+ if (options.chown) {
+ try {
+ fs.chownSync(tmpfile, options.chown.uid, options.chown.gid);
+ } catch (err) {
+ if (!isChownErrOk(err)) {
+ throw err;
+ }
+ }
+ }
+ if (options.mode) {
+ try {
+ fs.chmodSync(tmpfile, options.mode);
+ } catch (err) {
+ if (!isChownErrOk(err)) {
+ throw err;
+ }
+ }
+ }
+ fs.renameSync(tmpfile, filename);
+ threw = false;
+ } finally {
+ if (fd) {
+ try {
+ fs.closeSync(fd);
+ } catch (ex) {
+ }
+ }
+ removeOnExitHandler();
+ if (threw) {
+ cleanup();
+ }
+ }
+ }
+ }
+});
+
+// node_modules/node-localstorage/LocalStorage.js
+var require_LocalStorage = __commonJS({
+ "node_modules/node-localstorage/LocalStorage.js"(exports2) {
+ (function() {
+ var JSONStorage, KEY_FOR_EMPTY_STRING, LocalStorage, MetaKey, QUOTA_EXCEEDED_ERR, StorageEvent, _emptyDirectory, _escapeKey, _rm, createMap, events, fs, path, writeSync;
+ path = require("path");
+ fs = require("fs");
+ events = require("events");
+ writeSync = require_lib37().sync;
+ KEY_FOR_EMPTY_STRING = "---.EMPTY_STRING.---";
+ _emptyDirectory = function(target) {
+ var i, len, p, ref, results;
+ ref = fs.readdirSync(target);
+ results = [];
+ for (i = 0, len = ref.length; i < len; i++) {
+ p = ref[i];
+ results.push(_rm(path.join(target, p)));
+ }
+ return results;
+ };
+ _rm = function(target) {
+ if (fs.statSync(target).isDirectory()) {
+ _emptyDirectory(target);
+ return fs.rmdirSync(target);
+ } else {
+ return fs.unlinkSync(target);
+ }
+ };
+ _escapeKey = function(key) {
+ var newKey;
+ if (key === "") {
+ newKey = KEY_FOR_EMPTY_STRING;
+ } else {
+ newKey = `${key}`;
+ }
+ return newKey;
+ };
+ QUOTA_EXCEEDED_ERR = class QUOTA_EXCEEDED_ERR extends Error {
+ constructor(message = "Unknown error.") {
+ super();
+ this.message = message;
+ if (Error.captureStackTrace != null) {
+ Error.captureStackTrace(this, this.constructor);
+ }
+ this.name = this.constructor.name;
+ }
+ toString() {
+ return `${this.name}: ${this.message}`;
+ }
+ };
+ StorageEvent = class StorageEvent {
+ constructor(key1, oldValue1, newValue1, url, storageArea = "localStorage") {
+ this.key = key1;
+ this.oldValue = oldValue1;
+ this.newValue = newValue1;
+ this.url = url;
+ this.storageArea = storageArea;
+ }
+ };
+ MetaKey = class MetaKey2 {
+ // MetaKey contains key and size
+ constructor(key1, index1) {
+ this.key = key1;
+ this.index = index1;
+ if (!(this instanceof MetaKey2)) {
+ return new MetaKey2(this.key, this.index);
+ }
+ }
+ };
+ createMap = function() {
+ var Map2;
+ Map2 = function() {
+ };
+ Map2.prototype = /* @__PURE__ */ Object.create(null);
+ return new Map2();
+ };
+ LocalStorage = function() {
+ var instanceMap;
+ class LocalStorage2 extends events.EventEmitter {
+ constructor(_location, quota = 5 * 1024 * 1024) {
+ var handler;
+ super();
+ this._location = _location;
+ this.quota = quota;
+ if (!(this instanceof LocalStorage2)) {
+ return new LocalStorage2(this._location, this.quota);
+ }
+ this._location = path.resolve(this._location);
+ if (instanceMap[this._location] != null) {
+ return instanceMap[this._location];
+ }
+ this.length = 0;
+ this._bytesInUse = 0;
+ this._keys = [];
+ this._metaKeyMap = createMap();
+ this._eventUrl = "pid:" + process.pid;
+ this._init();
+ this._QUOTA_EXCEEDED_ERR = QUOTA_EXCEEDED_ERR;
+ if (typeof Proxy !== "undefined" && Proxy !== null) {
+ handler = {
+ set: (receiver, key, value) => {
+ if (this[key] != null) {
+ this[key] = value;
+ } else {
+ this.setItem(key, value);
+ }
+ return true;
+ },
+ get: (receiver, key) => {
+ if (this[key] != null) {
+ return this[key];
+ } else {
+ return this.getItem(key);
+ }
+ },
+ ownKeys: (target) => {
+ return this._keys.map(function(k) {
+ if (k === KEY_FOR_EMPTY_STRING) {
+ return "";
+ } else {
+ return k;
+ }
+ });
+ },
+ getOwnPropertyDescriptor: (target, key) => {
+ return {
+ value: this[key],
+ enumerable: true,
+ configurable: true
+ };
+ }
+ };
+ instanceMap[this._location] = new Proxy(this, handler);
+ return instanceMap[this._location];
+ }
+ instanceMap[this._location] = this;
+ return instanceMap[this._location];
+ }
+ _init() {
+ var e, stat;
+ try {
+ stat = fs.statSync(this._location);
+ if (stat != null && !stat.isDirectory()) {
+ throw new Error(`A file exists at the location '${this._location}' when trying to create/open localStorage`);
+ }
+ this._sync();
+ } catch (error) {
+ e = error;
+ if (e.code !== "ENOENT") {
+ throw e;
+ }
+ try {
+ fs.mkdirSync(this._location, {
+ recursive: true
+ });
+ } catch (error2) {
+ e = error2;
+ if (e.code !== "EEXIST") {
+ throw e;
+ }
+ }
+ }
+ }
+ _sync() {
+ var _MetaKey, _decodedKey, _keys, i, index, k, len, stat;
+ this._bytesInUse = 0;
+ this.length = 0;
+ _keys = fs.readdirSync(this._location);
+ for (index = i = 0, len = _keys.length; i < len; index = ++i) {
+ k = _keys[index];
+ _decodedKey = decodeURIComponent(k);
+ this._keys.push(_decodedKey);
+ _MetaKey = new MetaKey(k, index);
+ this._metaKeyMap[_decodedKey] = _MetaKey;
+ stat = this._getStat(k);
+ if ((stat != null ? stat.size : void 0) != null) {
+ _MetaKey.size = stat.size;
+ this._bytesInUse += stat.size;
+ }
+ }
+ return this.length = _keys.length;
+ }
+ setItem(key, value) {
+ var encodedKey, evnt, existsBeforeSet, filename, hasListeners, metaKey, oldLength, oldValue, valueString, valueStringLength;
+ hasListeners = this.listenerCount("storage");
+ oldValue = null;
+ if (hasListeners) {
+ oldValue = this.getItem(key);
+ }
+ key = _escapeKey(key);
+ encodedKey = encodeURIComponent(key).replace(/[!'()]/g, escape).replace(/\*/g, "%2A");
+ filename = path.join(this._location, encodedKey);
+ valueString = `${value}`;
+ valueStringLength = valueString.length;
+ metaKey = this._metaKeyMap[key];
+ existsBeforeSet = !!metaKey;
+ if (existsBeforeSet) {
+ oldLength = metaKey.size;
+ } else {
+ oldLength = 0;
+ }
+ if (this._bytesInUse - oldLength + valueStringLength > this.quota) {
+ throw new QUOTA_EXCEEDED_ERR();
+ }
+ writeSync(filename, valueString, {
+ encoding: "utf8"
+ });
+ if (!existsBeforeSet) {
+ metaKey = new MetaKey(encodedKey, this._keys.push(key) - 1);
+ metaKey.size = valueStringLength;
+ this._metaKeyMap[key] = metaKey;
+ this.length += 1;
+ this._bytesInUse += valueStringLength;
+ }
+ if (hasListeners) {
+ evnt = new StorageEvent(key, oldValue, value, this._eventUrl);
+ return this.emit("storage", evnt);
+ }
+ }
+ getItem(key) {
+ var filename, metaKey;
+ key = _escapeKey(key);
+ metaKey = this._metaKeyMap[key];
+ if (!!metaKey) {
+ filename = path.join(this._location, metaKey.key);
+ return fs.readFileSync(filename, "utf8");
+ } else {
+ return null;
+ }
+ }
+ _getStat(key) {
+ var filename;
+ key = _escapeKey(key);
+ filename = path.join(this._location, encodeURIComponent(key));
+ try {
+ return fs.statSync(filename);
+ } catch (error) {
+ return null;
+ }
+ }
+ removeItem(key) {
+ var evnt, filename, hasListeners, k, meta, metaKey, oldValue, ref, v;
+ key = _escapeKey(key);
+ metaKey = this._metaKeyMap[key];
+ if (!!metaKey) {
+ hasListeners = this.listenerCount("storage");
+ oldValue = null;
+ if (hasListeners) {
+ oldValue = this.getItem(key);
+ }
+ delete this._metaKeyMap[key];
+ this.length -= 1;
+ this._bytesInUse -= metaKey.size;
+ filename = path.join(this._location, metaKey.key);
+ this._keys.splice(metaKey.index, 1);
+ ref = this._metaKeyMap;
+ for (k in ref) {
+ v = ref[k];
+ meta = this._metaKeyMap[k];
+ if (meta.index > metaKey.index) {
+ meta.index -= 1;
+ }
+ }
+ _rm(filename);
+ if (hasListeners) {
+ evnt = new StorageEvent(key, oldValue, null, this._eventUrl);
+ return this.emit("storage", evnt);
+ }
+ }
+ }
+ key(n) {
+ var rawKey;
+ rawKey = this._keys[n];
+ if (rawKey === KEY_FOR_EMPTY_STRING) {
+ return "";
+ } else {
+ return rawKey;
+ }
+ }
+ clear() {
+ var evnt;
+ _emptyDirectory(this._location);
+ this._metaKeyMap = createMap();
+ this._keys = [];
+ this.length = 0;
+ this._bytesInUse = 0;
+ if (this.listenerCount("storage")) {
+ evnt = new StorageEvent(null, null, null, this._eventUrl);
+ return this.emit("storage", evnt);
+ }
+ }
+ _getBytesInUse() {
+ return this._bytesInUse;
+ }
+ _deleteLocation() {
+ delete instanceMap[this._location];
+ _rm(this._location);
+ this._metaKeyMap = {};
+ this._keys = [];
+ this.length = 0;
+ return this._bytesInUse = 0;
+ }
+ }
+ ;
+ instanceMap = {};
+ return LocalStorage2;
+ }.call(this);
+ JSONStorage = class JSONStorage extends LocalStorage {
+ setItem(key, value) {
+ var newValue;
+ newValue = JSON.stringify(value);
+ return super.setItem(key, newValue);
+ }
+ getItem(key) {
+ return JSON.parse(super.getItem(key));
+ }
+ };
+ exports2.LocalStorage = LocalStorage;
+ exports2.JSONStorage = JSONStorage;
+ exports2.QUOTA_EXCEEDED_ERR = QUOTA_EXCEEDED_ERR;
+ }).call(exports2);
+ }
+});
+
+// server.js
+var express = require_express2();
+var bodyParser = require_body_parser();
+var LitJsSdk = require_src14();
+var {
+ LitNetwork,
+ LIT_RPC,
+ AuthMethodScope,
+ AuthMethodType,
+ ProviderType,
+ LIT_ABILITY
+} = require_src2();
+var ethers = require_lib36();
+var {
+ LitAbility,
+ LitActionResource,
+ LitPKPResource,
+ createSiweMessage,
+ generateAuthSig
+} = require_src7();
+var { LitContracts } = require_src8();
+var { getSessionSigs } = require_utils18();
+if (typeof localStorage === "undefined" || localStorage === null) {
+ LocalStorage = require_LocalStorage().LocalStorage;
+ localStorage = new LocalStorage("./lit-session-storage");
+}
+var LocalStorage;
+var app = express();
+var port = 3092;
+app.use(bodyParser.json());
+app.use((req, res, next) => {
+ res.header("Access-Control-Allow-Origin", "*");
+ res.header(
+ "Access-Control-Allow-Headers",
+ "Origin, X-Requested-With, Content-Type, Accept"
+ );
+ res.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
+ next();
+});
+app.post("/setAuthToken", (req, res) => {
+ const { authToken } = req.body;
+ app.locals.ethersWallet = new ethers.Wallet(
+ authToken,
+ new ethers.providers.JsonRpcProvider(LIT_RPC.CHRONICLE_YELLOWSTONE)
+ );
+ res.json({ success: true });
+});
+app.post("/isReady", (req, res) => {
+ try {
+ res.json({
+ ready: app.locals.litNodeClient.ready
+ });
+ } catch (error) {
+ res.status(500).json({
+ success: false,
+ error: error.message
+ });
+ }
+});
+app.post("/executeJs", async (req, res) => {
+ try {
+ const { code, jsParams } = req.body;
+ if (!code) {
+ return res.status(400).json({
+ success: false,
+ error: "No code provided"
+ });
+ }
+ const sessionSigs = await getSessionSigs(app);
+ const response = await app.locals.litNodeClient.executeJs({
+ sessionSigs,
+ code,
+ jsParams
+ });
+ res.json(response);
+ } catch (error) {
+ res.status(500).json({
+ success: false,
+ error,
+ stack: error.stack,
+ message: error.message
+ });
+ }
+});
+app.post("/createWallet", async (req, res) => {
+ const contractClient = new LitContracts({
+ signer: app.locals.ethersWallet,
+ litNodeClient: app.locals.litNodeClient,
+ network: LitNetwork.DatilDev,
+ debug: true
+ });
+ await contractClient.connect();
+ const toSign = await createSiweMessage({
+ uri: "http://localhost:3092/createWallet",
+ expiration: new Date(Date.now() + 1e3 * 60 * 10).toISOString(),
+ // 10 minutes
+ resources: [
+ {
+ resource: new LitActionResource("*"),
+ ability: LIT_ABILITY.LitActionExecution
+ },
+ {
+ resource: new LitPKPResource("*"),
+ ability: LIT_ABILITY.PKPSigning
+ }
+ ],
+ walletAddress: app.locals.ethersWallet.address,
+ nonce: await app.locals.litNodeClient.getLatestBlockhash(),
+ litNodeClient: app.locals.litNodeClient
+ });
+ const authSig = await generateAuthSig({
+ signer: app.locals.ethersWallet,
+ toSign
+ });
+ const authMethod = {
+ authMethodType: AuthMethodType.EthWallet,
+ accessToken: JSON.stringify(authSig)
+ };
+ const mintInfo = await contractClient.mintWithAuth({
+ authMethod,
+ scopes: [AuthMethodScope.SignAnything]
+ });
+ localStorage.setItem("pkp", JSON.stringify(mintInfo.pkp));
+ app.locals.pkp = mintInfo.pkp;
+ res.json(mintInfo);
+});
+app.get("/pkp", (req, res) => {
+ const pkp = localStorage.getItem("pkp");
+ res.json(JSON.parse(pkp));
+});
+app.post("/sign", async (req, res) => {
+ const { toSign } = req.body;
+ const sessionSigs = await getSessionSigs(app);
+ const signingResult = await app.locals.litNodeClient.pkpSign({
+ pubKey: app.locals.pkp.publicKey,
+ sessionSigs,
+ toSign: ethers.utils.arrayify(toSign)
+ });
+ res.json({ signature: signingResult });
+});
+app.get("/", (req, res) => {
+ res.json({ status: "Server is running" });
+});
+app.listen(port, async () => {
+ app.locals.litNodeClient = new LitJsSdk.LitNodeClientNodeJs({
+ litNetwork: LitNetwork.DatilDev
+ });
+ await app.locals.litNodeClient.connect();
+ const pkp = localStorage.getItem("pkp");
+ if (pkp) {
+ app.locals.pkp = JSON.parse(pkp);
+ }
+ console.log(`Server running at http://localhost:${port}`);
+});
+/*! Bundled license information:
+
+depd/index.js:
+ (*!
+ * depd
+ * Copyright(c) 2014-2018 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+bytes/index.js:
+ (*!
+ * bytes
+ * Copyright(c) 2012-2014 TJ Holowaychuk
+ * Copyright(c) 2015 Jed Watson
+ * MIT Licensed
+ *)
+
+content-type/index.js:
+ (*!
+ * content-type
+ * Copyright(c) 2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+statuses/index.js:
+ (*!
+ * statuses
+ * Copyright(c) 2014 Jonathan Ong
+ * Copyright(c) 2016 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+toidentifier/index.js:
+ (*!
+ * toidentifier
+ * Copyright(c) 2016 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+http-errors/index.js:
+ (*!
+ * http-errors
+ * Copyright(c) 2014 Jonathan Ong
+ * Copyright(c) 2016 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+destroy/index.js:
+ (*!
+ * destroy
+ * Copyright(c) 2014 Jonathan Ong
+ * Copyright(c) 2015-2022 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+unpipe/index.js:
+ (*!
+ * unpipe
+ * Copyright(c) 2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+raw-body/index.js:
+ (*!
+ * raw-body
+ * Copyright(c) 2013-2014 Jonathan Ong
+ * Copyright(c) 2014-2022 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+ee-first/index.js:
+ (*!
+ * ee-first
+ * Copyright(c) 2014 Jonathan Ong
+ * MIT Licensed
+ *)
+
+on-finished/index.js:
+ (*!
+ * on-finished
+ * Copyright(c) 2013 Jonathan Ong
+ * Copyright(c) 2014 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+body-parser/lib/read.js:
+ (*!
+ * body-parser
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+media-typer/index.js:
+ (*!
+ * media-typer
+ * Copyright(c) 2014 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+mime-db/index.js:
+ (*!
+ * mime-db
+ * Copyright(c) 2014 Jonathan Ong
+ * Copyright(c) 2015-2022 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+mime-types/index.js:
+ (*!
+ * mime-types
+ * Copyright(c) 2014 Jonathan Ong
+ * Copyright(c) 2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+type-is/index.js:
+ (*!
+ * type-is
+ * Copyright(c) 2014 Jonathan Ong
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+body-parser/lib/types/json.js:
+ (*!
+ * body-parser
+ * Copyright(c) 2014 Jonathan Ong
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+body-parser/lib/types/raw.js:
+ (*!
+ * body-parser
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+body-parser/lib/types/text.js:
+ (*!
+ * body-parser
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+body-parser/lib/types/urlencoded.js:
+ (*!
+ * body-parser
+ * Copyright(c) 2014 Jonathan Ong
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+body-parser/index.js:
+ (*!
+ * body-parser
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+merge-descriptors/index.js:
+ (*!
+ * merge-descriptors
+ * Copyright(c) 2014 Jonathan Ong
+ * Copyright(c) 2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+encodeurl/index.js:
+ (*!
+ * encodeurl
+ * Copyright(c) 2016 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+escape-html/index.js:
+ (*!
+ * escape-html
+ * Copyright(c) 2012-2013 TJ Holowaychuk
+ * Copyright(c) 2015 Andreas Lubbe
+ * Copyright(c) 2015 Tiancheng "Timothy" Gu
+ * MIT Licensed
+ *)
+
+parseurl/index.js:
+ (*!
+ * parseurl
+ * Copyright(c) 2014 Jonathan Ong
+ * Copyright(c) 2014-2017 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+finalhandler/index.js:
+ (*!
+ * finalhandler
+ * Copyright(c) 2014-2022 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+express/lib/router/layer.js:
+ (*!
+ * express
+ * Copyright(c) 2009-2013 TJ Holowaychuk
+ * Copyright(c) 2013 Roman Shtylman
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+methods/index.js:
+ (*!
+ * methods
+ * Copyright(c) 2013-2014 TJ Holowaychuk
+ * Copyright(c) 2015-2016 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+express/lib/router/route.js:
+ (*!
+ * express
+ * Copyright(c) 2009-2013 TJ Holowaychuk
+ * Copyright(c) 2013 Roman Shtylman
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+express/lib/router/index.js:
+ (*!
+ * express
+ * Copyright(c) 2009-2013 TJ Holowaychuk
+ * Copyright(c) 2013 Roman Shtylman
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+express/lib/middleware/init.js:
+ (*!
+ * express
+ * Copyright(c) 2009-2013 TJ Holowaychuk
+ * Copyright(c) 2013 Roman Shtylman
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+express/lib/middleware/query.js:
+ (*!
+ * express
+ * Copyright(c) 2009-2013 TJ Holowaychuk
+ * Copyright(c) 2013 Roman Shtylman
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+express/lib/view.js:
+ (*!
+ * express
+ * Copyright(c) 2009-2013 TJ Holowaychuk
+ * Copyright(c) 2013 Roman Shtylman
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+safe-buffer/index.js:
+ (*! safe-buffer. MIT License. Feross Aboukhadijeh *)
+
+content-disposition/index.js:
+ (*!
+ * content-disposition
+ * Copyright(c) 2014-2017 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+encodeurl/index.js:
+ (*!
+ * encodeurl
+ * Copyright(c) 2016 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+etag/index.js:
+ (*!
+ * etag
+ * Copyright(c) 2014-2016 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+fresh/index.js:
+ (*!
+ * fresh
+ * Copyright(c) 2012 TJ Holowaychuk
+ * Copyright(c) 2016-2017 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+range-parser/index.js:
+ (*!
+ * range-parser
+ * Copyright(c) 2012-2014 TJ Holowaychuk
+ * Copyright(c) 2015-2016 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+send/index.js:
+ (*!
+ * send
+ * Copyright(c) 2012 TJ Holowaychuk
+ * Copyright(c) 2014-2022 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+forwarded/index.js:
+ (*!
+ * forwarded
+ * Copyright(c) 2014-2017 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+proxy-addr/index.js:
+ (*!
+ * proxy-addr
+ * Copyright(c) 2014-2016 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+express/lib/utils.js:
+ (*!
+ * express
+ * Copyright(c) 2009-2013 TJ Holowaychuk
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+express/lib/application.js:
+ (*!
+ * express
+ * Copyright(c) 2009-2013 TJ Holowaychuk
+ * Copyright(c) 2013 Roman Shtylman
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+negotiator/index.js:
+ (*!
+ * negotiator
+ * Copyright(c) 2012 Federico Romero
+ * Copyright(c) 2012-2014 Isaac Z. Schlueter
+ * Copyright(c) 2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+accepts/index.js:
+ (*!
+ * accepts
+ * Copyright(c) 2014 Jonathan Ong
+ * Copyright(c) 2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+express/lib/request.js:
+ (*!
+ * express
+ * Copyright(c) 2009-2013 TJ Holowaychuk
+ * Copyright(c) 2013 Roman Shtylman
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+cookie/index.js:
+ (*!
+ * cookie
+ * Copyright(c) 2012-2014 Roman Shtylman
+ * Copyright(c) 2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+vary/index.js:
+ (*!
+ * vary
+ * Copyright(c) 2014-2017 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+express/lib/response.js:
+ (*!
+ * express
+ * Copyright(c) 2009-2013 TJ Holowaychuk
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+serve-static/index.js:
+ (*!
+ * serve-static
+ * Copyright(c) 2010 Sencha Inc.
+ * Copyright(c) 2011 TJ Holowaychuk
+ * Copyright(c) 2014-2016 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+express/lib/express.js:
+ (*!
+ * express
+ * Copyright(c) 2009-2013 TJ Holowaychuk
+ * Copyright(c) 2013 Roman Shtylman
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+express/index.js:
+ (*!
+ * express
+ * Copyright(c) 2009-2013 TJ Holowaychuk
+ * Copyright(c) 2013 Roman Shtylman
+ * Copyright(c) 2014-2015 Douglas Christopher Wilson
+ * MIT Licensed
+ *)
+
+tslib/tslib.es6.js:
+ (*! *****************************************************************************
+ Copyright (c) Microsoft Corporation.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+ ***************************************************************************** *)
+
+js-sha3/src/sha3.js:
+ (**
+ * [js-sha3]{@link https://github.com/emn178/js-sha3}
+ *
+ * @version 0.8.0
+ * @author Chen, Yi-Cyuan [emn178@gmail.com]
+ * @copyright Chen, Yi-Cyuan 2015-2018
+ * @license MIT
+ *)
+
+@noble/hashes/utils.js:
+ (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
+
+tslib/tslib.es6.js:
+ (*! *****************************************************************************
+ Copyright (c) Microsoft Corporation.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+ ***************************************************************************** *)
+
+tslib/tslib.es6.js:
+ (*! *****************************************************************************
+ Copyright (c) Microsoft Corporation.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+ ***************************************************************************** *)
+
+assertion-error/index.js:
+ (*!
+ * assertion-error
+ * Copyright(c) 2013 Jake Luer
+ * MIT Licensed
+ *)
+ (*!
+ * Return a function that will copy properties from
+ * one object to another excluding any originally
+ * listed. Returned function will create a new `{}`.
+ *
+ * @param {String} excluded properties ...
+ * @return {Function}
+ *)
+ (*!
+ * Primary Exports
+ *)
+ (*!
+ * Inherit from Error.prototype
+ *)
+ (*!
+ * Statically set name
+ *)
+ (*!
+ * Ensure correct constructor
+ *)
+
+tslib/tslib.es6.js:
+ (*! *****************************************************************************
+ Copyright (c) Microsoft Corporation.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+ ***************************************************************************** *)
+
+tslib/tslib.es6.js:
+ (*! *****************************************************************************
+ Copyright (c) Microsoft Corporation.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+ ***************************************************************************** *)
+
+tslib/tslib.es6.js:
+ (*! *****************************************************************************
+ Copyright (c) Microsoft Corporation.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+ ***************************************************************************** *)
+
+tslib/tslib.es6.js:
+ (*! *****************************************************************************
+ Copyright (c) Microsoft Corporation.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+ ***************************************************************************** *)
+
+tslib/tslib.es6.js:
+ (*! *****************************************************************************
+ Copyright (c) Microsoft Corporation.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+ ***************************************************************************** *)
+
+date-and-time/date-and-time.js:
+ (**
+ * @preserve date-and-time (c) KNOWLEDGECODE | MIT
+ *)
+
+tslib/tslib.es6.js:
+ (*! *****************************************************************************
+ Copyright (c) Microsoft Corporation.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+ ***************************************************************************** *)
+
+tslib/tslib.es6.js:
+ (*! *****************************************************************************
+ Copyright (c) Microsoft Corporation.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+ ***************************************************************************** *)
+
+tslib/tslib.es6.js:
+ (*! *****************************************************************************
+ Copyright (c) Microsoft Corporation.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+ ***************************************************************************** *)
+
+tslib/tslib.es6.js:
+ (*! *****************************************************************************
+ Copyright (c) Microsoft Corporation.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ PERFORMANCE OF THIS SOFTWARE.
+ ***************************************************************************** *)
+
+imurmurhash/imurmurhash.js:
+ (**
+ * @preserve
+ * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)
+ *
+ * @author Jens Taylor
+ * @see http://github.com/homebrewing/brauhaus-diff
+ * @author Gary Court
+ * @see http://github.com/garycourt/murmurhash-js
+ * @author Austin Appleby
+ * @see http://sites.google.com/site/murmurhash/
+ *)
+*/
diff --git a/python/lit_python_sdk/client.py b/python/lit_python_sdk/client.py
index 7310d5b..1986c97 100644
--- a/python/lit_python_sdk/client.py
+++ b/python/lit_python_sdk/client.py
@@ -38,6 +38,14 @@ def _wait_for_server(self, timeout=10):
time.sleep(0.1)
raise TimeoutError("Server failed to start within timeout period")
+
+ def set_auth_token(self, auth_token: str) -> dict:
+ """Sets the auth token on the Node.js server"""
+ response = requests.post(
+ f"http://localhost:{self.port}/setAuthToken",
+ json={"authToken": auth_token},
+ )
+ return response.json()
def execute_js(self, code: str) -> dict:
"""Executes JavaScript code on the Node.js server"""
diff --git a/python/lit_python_sdk/requirements.txt b/python/lit_python_sdk/requirements.txt
deleted file mode 100644
index f56f3fa..0000000
--- a/python/lit_python_sdk/requirements.txt
+++ /dev/null
@@ -1 +0,0 @@
-Requests==2.32.3
diff --git a/python/lit_python_sdk/server.py b/python/lit_python_sdk/server.py
index bc314cc..90a48d9 100644
--- a/python/lit_python_sdk/server.py
+++ b/python/lit_python_sdk/server.py
@@ -8,20 +8,25 @@ class NodeServer:
def __init__(self, port: int):
self.port = port
self.process = None
- self.server_folder = Path(__file__).parent / "../../js-sdk-server"
+ self.server_path = Path(__file__).parent / "bundled_server.js"
def start(self):
"""Starts the Node.js server process"""
if self.process is not None:
return
- log_file = open(self.server_folder / "server.log", "w")
+ if not self.server_path.exists():
+ raise RuntimeError(
+ "Bundled server not found. This is likely an installation issue."
+ )
+
+ log_file = open(Path(__file__).parent / "server.log", "w")
self.process = subprocess.Popen(
- ["npm", "start"],
+ ["node", str(self.server_path)],
env={**os.environ, "PORT": str(self.port)},
stdout=log_file,
stderr=log_file,
- cwd=self.server_folder
+ cwd=Path(__file__).parent
)
def stop(self):
diff --git a/python/pyproject.toml b/python/pyproject.toml
index fc055fc..1d5c025 100644
--- a/python/pyproject.toml
+++ b/python/pyproject.toml
@@ -13,9 +13,16 @@ readme = "README.md"
requires-python = ">=3.7"
dependencies = [
"requests>=2.25.0",
- "eth_account>=0.13.3"
+ "eth_account>=0.13.3",
+ "python-dotenv>=1.0.1",
]
[project.urls]
"Homepage" = "https://github.com/yourusername/lit-python-sdk"
-"Bug Tracker" = "https://github.com/yourusername/lit-python-sdk/issues"
\ No newline at end of file
+"Bug Tracker" = "https://github.com/yourusername/lit-python-sdk/issues"
+
+[tool.hatch.build.targets.wheel]
+packages = ["lit_python_sdk"]
+
+[tool.hatch.build.targets.wheel.force-include]
+"lit_python_sdk/bundled_server.js" = "lit_python_sdk/bundled_server.js"
\ No newline at end of file
diff --git a/python/tests/test_client.py b/python/tests/test_client.py
index 0a822dd..c71431c 100644
--- a/python/tests/test_client.py
+++ b/python/tests/test_client.py
@@ -1,8 +1,16 @@
import pytest
from lit_python_sdk import connect
import time
+import os
+from dotenv import load_dotenv
+from pathlib import Path
+
+# Load environment variables from .env file in the root directory
+dotenv_path = Path(__file__).parent.parent.parent / '.env'
+load_dotenv(dotenv_path)
client = connect()
+client.set_auth_token(os.getenv("LIT_POLYGLOT_SDK_TEST_PRIVATE_KEY"))
def test_connect_and_execute():
@@ -34,6 +42,6 @@ def test_create_wallet_and_sign():
signature = client.sign(to_sign)
print(signature)
-def test_multi_connect():
- client2 = connect()
- assert client2.get_pkp() == client.get_pkp()
\ No newline at end of file
+# def test_multi_connect():
+# client2 = connect()
+# assert client2.get_pkp() == client.get_pkp()
\ No newline at end of file